본문 바로가기
Deep Learning

[DL] CNN

by ram_ 2023. 2. 8.

 

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