Google ML Bootcamp/4. Convolutional Neural Networks(49)
-
13. Classic Networks
네트워크가 깊어질수록 height와 width는 줄어드는 것을 볼 수 있다. 반대로 number of channels는 증가한다. Conv -> pool -> Conv -> pool -> F.C -> F.C -> softmax - 꽤 일반적인 CNN 구조. LeNet 논문을 읽게 된다면 오히려 요즘에는 쓰지 않아도 되는(컴퓨팅 파워가 증가) 기법들로 구현이 되어 조금 더 읽기 어려움을 주의. height, width가 2배 감소하는동안 number of channels는 2배 증가. - 상당히 매력적인 구조. 안정적이잖아!
2023.09.15 -
12. Why look at case studies?
코드를 처음 배울 때 다른사람의 코드를 배고 배웠던 것 처럼 다른 사람의 연구, 혹은 비슷한 분야의 예시들을 읽어보는 것은 매우 도움된다.
2023.09.15 -
11. Why Convolutions?
if convolution operation을 사용할 경우, filter에 속한 weight만 학습하면 되는데 - filter.shape(5,5)라고 했을 때 25 * number of filters가 한 layer의 parameter 개수가 된다. 입력 image 크기에 상관없이! 그렇다면 적은 수의 parameter로 학습시키는건데.. 어떻게 잘 작동할 수 있는걸까? 1. parameter sharing - filter : detect feature. 즉 edge detection을 수행하는 filter의 경우, fully connected된 선형 구조 보다는 convolution 과정을 거치면서 weight를 공유해도 괜찮다. 이미지의 전체 위치에서 edge detection을 수행하는 과정은 동일..
2023.09.15 -
10. CNN Example
**정리 : layer가 깊어질 수록 image의 height, width는 줄어들고 channels는 증가하는 경향을 볼 수 있다.** layer가 깊어짐에 따라 image크기가 너무 크게 바뀐다면 학습이 잘 되지 않는다. 순차적으로 감소해야함을 기억하자.
2023.09.15 -
9. Pooling Layers
Max pooling 왜 하나? - 한 특성(feature like 수염, 눈 etc...)이 필터의 한 부분에서 검출(detect)되면 최대값을 남긴다(keep the high number) - 특성이 검출되지 않은 부분에서도 최대값을 남기긴 하지만 여전히 작은값 (예시에서는 2,3)으로 남게 된다. 이때 max pooling filter에 적용되는 filter size, stride, padding 등 모두 hyperparameter (no parameter, no train) pooling filter : 2D. - 즉 각 채널에 개별적으로 적용되는 것. - Max 값을 취하는 방식이기 때문에 parameter가 따로 존재하지는 않는다. stride, filter size만 hyperparamete..
2023.09.15 -
8. Simple Convolutional Network Example
마지막 Convolution operation 후 모든 벡터를 선형으로 변환(Linear) 이후 작업해야할 task에 따라 sigmoid or softmax를 통해 predict를 생성
2023.09.15