728x90
반응형
Sung Kim 님의 "모두의 딥러닝" 강의노트입니다
좋은 강의 감사드립니다!
https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5
10개 중에 1개를 예측하는 시스템을 생각가능
N개의 이미지 784개의 값을 가짐
이를 이미지 입력으로 넣기 위해 reshape을 해줌 -1은 n개를 말한다.
x image가 바로 입력이 될 것 이다.
필터의 크기는 3x3, 색상, 32개의 필터를 사용함
conv를 통과시킴
Padding = same해서 w의 크기에 상관없이 출력값은 입력의 이미지 사이즈와 같게 만들어줌 (그대로 28x28 유지)
그 다음 ReLU통과( 값이 변화하지 않음)
그 후 pooling 해줌 stride 2x2 이기에 14x14로 나오게 될 것 이다.
14x14x32를 기억하고 두 번째 Conv layer에 입력을 하게 된다.
64개(channel)의 필터를 사용함!
또 pooling’s strides가 2x2이기에 사이즈가 7x7로 반으로 줄어든다.
이제 마지막으로 FC(Fully Connected)를 통과해야하는데
값이 입체적이다. 그래서 이를 펼쳐야한다. 이를 펼치는 것이 reshape이다
tf.reshape( reshape대상, [n개, 7*7*64의 값으로]
7*7*64는 최종 max pool후 값이다.
n개의 7*7*64개가 있을 것이다. 이를 펼치고(reshape) FC에 넣는 것이다.
그러면 (N,3136)으로 나오게 된다.
처음 이미지가 784였는데 C1, C2를 거치기 3136으로 늘어났고 이제 FC로 넣는 것이다.
W의 값은 Vector 입력의 값 7*7*64를 이어받는다. 그리고 10개의 label이기 때문이다( 0~ 9 ) (b 도 마찬가지이다 ) (W2 -> W3으로 수정)
이러한 과정을 거치면 98.85%의 정확도를 보인다
여기서 더 Deep하게 나아가 보자
Conv layer와 pooling layer를 늘렸다.
장점은 정확도가 높아진다는 것이다!
주의할 점은 dropout을 할 때 학습시에는 0.5~0.7로 평가할 때는 1로 설정하여 사용하여야한다.
728x90
반응형