CNN
- 특징을 찾아내는 특징검출 구간과 그 특징을 사용하여 딥러닝을 돌리는 분류 구간으로 나뉘어져 있다.
Conv Filter 의미
- Convolution : 특정 패턴이 있는지 박스로 훑으며 마킹
- 위아래선 필터, 좌우선 필터, 대각선 필터, 동그라미 필터 등등 여러가지 "조각"필터로 해당 패턴이 그림 위에 있는지 확인한다.
- Convolution 박스로 밀고나면 숫자가 나온다. 그 숫자를 Activation(주로 ReLU)에 넣어 나온 값으로 이미지 지도를 새로 그린다.
Pooling 의미
- MaxPoolinng : 사진을 점진적으로 줄인다. nxn(Pool)을 중요한 정보(Max) 한개로 줄인다. 선명한 정보만 남겨서 판단과 학습이 쉬워지고 노이즈가 줄며서 융통성이 확보된다.
- 보통 2x2 필터로 화면 전역에 적용한다. Strid : 좌우로 몇칸씩 뛸지 설정. 보통 2x2이다.
Conv Layer 의미
- 패턴들을 쌓아가며 점차 복잡한 패턴을 인식한다.(conv) 사이즈를 줄여가며 더욱 추상화 해나간다.(MaxPooling)
+ )
Zero Pading
- 코드가 진행되다보면 사진의 귀퉁이가 잘리다보니, 사이즈 유지를 위해 conv 전에 0을 모서리에 보태고 진행한다. padding='same'
Drop Out
- 흔히 융통성, 과적합 방치라고 얘기한다.
- 학습시킬때, 일부러 정보를 누락시키거나 중간중간 노드를 끈다. (학습을 방해하여 과정합을 방지하는 개념이다)
vscode에서 하나의 epoch를 도는데에 대략 50초가 걸렸다.
colab의 런타임 유형 -> gpu로 변경한 뒤, 같은 코드를 실행해 보았다.
하나의 epoch 당 7-8초가 걸렸다.
무려 86%가 감소했다! 솔직히 좀 많이 놀랐다.
딥러닝 학습을 시작한 만큼, colab을 사용해야겠다고 다짐한 순간이다.
심지어 ML에서는 한번도 본 적이 없는 99% acc가 떴다 !
(도서관이라 숨 죽인채 기뻐했달까)
model.save('MNIST_CNN_model.h5')
모델을 저장해주고 끝낸다.
'Deep Learning' 카테고리의 다른 글
[DL] t-SNE (0) | 2023.02.19 |
---|---|
[DL] AutoEncoder. Latent Vector (0) | 2023.02.19 |
[DL] Transfer learning _ 기본 option (0) | 2023.02.16 |
[DL] options in DeepLearning ( Transfer learning) (0) | 2023.02.16 |
[DL] Deep Learning Scratch (0) | 2023.02.13 |