Convolutional Neural Network 강좌를 정리한다.
Convolutional Neural Network
하나의 입력이 계속 여러개인 경우는 fully Connected Network 이고 여러 입력 Layer를 가지고 있는 경우를 CNN이라 한다.
CNN은 고양이가 이미지를 받아들이는 것이 한조각씩 나누어서 인지하고 이것을 합치는 실험에서 출발한다.
CNN 처리과정
일정 부분을 처리하는 것을 filter라 부른다. 예로 32x32x3 image를 5x5x3 사이즈로 필터링한다. 그러면서 이 작은 이미지를 전체 이미지를 이동하며 Wx+b를 수행한다.
이것을 이동해 가는 것을 그림으로 그려본다. 한칸을 Stride라고 한다. 2 stride는 두칸이 이동함을 의미한다.
CNN을 사용할 때는 pad(모서리) 라는 개념을 사용함. 7x7 에 패딩을 줌으로 9x9가 된다. 하지만 INPUT과 OUTPUT은 7x7로 같아진다.
Max Pooling
pool을 sampling이라고 보면된다.
각 한 Layer에 대해 크기를 줄여서 sampling한다. max pooling은 layer안에서 가장 큰값을 고르는 것이다.
CONV -> ReLU -> POOL ==> 최종: FC (Fully Connected Layer)
ConvNet 활용 예
라쿤 교수의 LeNet
AlexNet
처음 ReLU사용 in ImageNet
GoogLeNet
2014년에 시도
ResNet
2015년에 나옴. 많은 대회를 휩쓸면서 최강좌 자리차지함. 152 Layer를 사용한다. Fast Forward를 사용하여 학습하는 Layer를 줄여줌.
2014년 Yoon Kim
Text에 대한 Classification이 가능해짐
그리고 CNN을 사용한 DeepMind사의 알파고가 있다.
참조
'Deep Learning > NN by Sung Kim' 카테고리의 다른 글
[CNN] MNIST 99% 도전 (0) | 2018.07.11 |
---|---|
[CNN] Tensorflow CNN 기본 (0) | 2018.07.11 |
[Neural Network] Softmax에 NN 적용하는 순서 팁 (0) | 2018.07.09 |
[Neural Network] 종류 (0) | 2018.07.09 |
[Deep Learning] Dropout 과 앙상블 (0) | 2018.07.09 |