ML 24

Lab-11-0-1 cnn basics convolution, Lab-11-0-2 cnn basics pooling

feature extraction: 특징을 추출함 ex) 배 사진을 추출할 때 주변의 물, 뾰족함 등으로 배라고 판단하게 해서 학습시킴 주로 이미지에 쓰기 때문에 2D Convolution Layer로 사용한다. 흑백인 경우에는 channel 1 / feature map을 입력으로 받을 것이기 때문에 channel은 3보다도 더 큰 숫자인 경우가 대부분이다. 5X5 filter라고 부르지만 사실은 5X3X3이고, 필터는 convolution layer의 입력으로 들어오는 이미지의 채널 수와 같아야 한다! ex) blue - 물 찾는 필터 green - 뾰족한 것 찾는 필터 output feature의 채널 수(6)는 convolution filter의 개수와 같다! 순서를 꼭 지켜야 한다! valid: ..

lec11-1 ConvNet의 Conv 레이어 만들기, lec11-2: ConvNet Max pooling 과 Full Network, lec11-3 ConvNet의 활용예

어떤 그림을 고양이가 보면 그림의 각 부분에 따라 뇌가 부분적으로 작용한다는 것을 알게 됨. 이에 착안하여 이미지를 잘라 각각의 입력으로 넘기게 된다. 이 창을 convolution이라고 부른다. RELU 함수와 POOL을 반복 적용하고 Fully Connected Neural Network를 구성하여 레이블링까지 하게 된다. filter라는 개념으로 전체 그림의 일부분을 처리한다고 한다. filter는 궁극적으로 한 값을 만들어낸다. 색깔은 맨마지막에 X3으로 처리한다. Wx+b 식 앞에 Relu를 붙여 Relu 창을 구현할수도 있다. 그렇다면 이런 방식으로 몇 개의 값을 얻을 수 있을까? 출력은 5X5가 나오게 된다. 움직이는 것을 Stride라고 한다면 Stride: 1일 때 이러한 결과인 것이다...

Lab-10-1 Relu

Sigmoid의 문제점 ground-truth와 output의 차이를 loss라고 하는데, 이 loss를 미분한 것을 gradient라고 한다. gradient = 그래프의 기울기 그래프 가운데는 기울기가 크지만, 양 극단의 경우 기울기가 매우 작다. (분홍색 부분) backpropagation을 할 때 이러한 sigmoid를 쓰면 매우 작은 gradient가 계층이 쌓일수록 많아지게 되고, 이는 vanishing gradient를 초래한다. 이러한 경우 네트워크 학습이 잘 되지 않게 된다. 대안: Relu 0 이상의 gradient = 1 따라서 아무리 네트워크가 deep해도 gradient 값이 잘 전달된다. 그러나 0보다 작은 gradient는 아예 0의 값을 가지기 때문에 전달이 잘 안 된다는 단..

Lab-09-1 neural nets XOR, Lab-09-2 tensorboard XOR

총 세 개의 logistic regression을 통해 XOR 문제를 해결할 수 있다. 두 단의 layer가 쌓인 것이므로 2 layer Neural Network라고 할 수 있다. Tensorboard: 데이터로 모델을 만드는 과정에서 여러 가지 weight, bias, loss 값들을 시각화 해주는 것 Eager모드에서 중요한 점은 log를 저장하거나, 횟수를 정할 때 등 contrib 모듈 하단에 저장이 되는 것에 유의 Keras: TensorBoard에 모든 정보 저장 그래프 값을 scholar 값으로 담았던 eager mode와 달리, Keras는 자동으로 값을 담아서 학습한다.

Lab-07-3-2 application and tips

Sample Data Fashion MNIST / IMDB / CIFAR-100 train과 test 이미지 로드 256 크기의 이미지들을 0 - 1 사이로 정규화 학습을 위해 모델 표준화 컴파일 하기 위해: optimizer, loss, metrics 선언 모델 5번에 걸쳐 훈련시킴 test 이미지 넣어서 어떻게 출력되는지 확인. - 자연어 처리 위한 데이터 Internet Movie DataBase - Text Classification 영화 평 분류 잘 하기 위한 처리 기법 worst - 0 (부정) brilliant - 1 (긍정) 단어 10000개 선언 자연어 같은 경우 전처리 과정이 중요. 공백을 벡터로 선언, 시작 값, 모르는 값, 사용되지 않은 값 등을 벡터로 설정하는 전처리를 통해 학습 ..

Lab-07-3-1 application and tips

Data sets Training / Validation / Testing Evaluating a hypothesis Anomaly Detection Learning Online vs Batch Fine tuning Efficient Models 모델 만드는 과정에서 데이터 구성이 가장 중요! 모델 만들 때 훈련과 평가를 거침. 데이터 구성을 왼쪽처럼 / 오른쪽처럼. 왼쪽: 평가할 때 학습에 없는 얼굴들이 들어감. => 제대로 된 평가 할 수 없게 됨! 오른쪽: 평가를 통해 해당하는 얼굴이 있었는지 판별 가능해진다. 데이터 구성은 우측 이미지처럼 잘 구성해야 한다! 학습을 위한 데이터와 평가를 위한 데이터를 잘 고른 후 모델의 성능을 높이는 작업을 해야한다. 데이터 바탕으로 여러 레이어를 만들어서 네트워..

Lab-07-2-1 application and tips

학습이 반복될수록 모델이 가설에 맞춰져가면서 Accuracy가 높아지고 평가 값이 높아지게 된다. 이때 학습 모델이 쓰이지 않은 데이터로 테스트를 하게 되면 오히려 Test는 떨어지는 경향을 보인다. 따라서 Test 데이터와 평가 데이터가 모두 잘 들어맞는, 최고의 Accuracy를 보이는 것이 가장 중요하다. High bias: 데이터가 편향된, 학습이 덜 된 underfit 상태가 있다. High variance: 데이터에만 맞는 모델, 즉 변화량이 많은 overfit 상태가 있다. 좌: 테스트 데이터 / 가운데: 평가 데이터 / 우: 테스트 데이터 테스트와 평가 데이터 모두에 잘 적용이 되어야 하는데 주로 테스트 데이터에만 잘 적용되는 경우가 많고, 이를 overfitting 상태라고 한다. 해결방..

Lab-07-1 application and tips

Learning rate 값을 어떤 식으로 조정해야 하는가? 학습 시킬 data에 대해 어떻게 preprocesssing 할 지? + 그 기법들 학습 시에는 잘 되었지만, 새로운 데이터에서는 잘 안 될 때 = Overfitting Learning rate = Gradient = 기울기 learningrate와 기울기의 연관 관계에 대하여 조절을 통해 최적의 cost를 지닌 모델을 찾는다. 텐서플로우에서 loss_value = cost 가설 값과 실제 값의 비교를 통해 도출 tape.gradient를 통해 업데이트한다. 어떤 learning rate 쓸 지 Optimizer 함수를 통해 설정. gradient: 각 위치별로 기울기 값이 나옴 vs learning rate: 한 번에 얼만큼 이동할 지 / 어..