2022. 7. 15. 16:58ㆍML_DL/DL
컴퓨터 비전에서 자주 사용되는 합성곱 신경망에 대해서 알아보자
이미지는 공간적인 특성을 가지고 있으므로, 복잡한 이미지에 대해 현재 까지 해준 Flatten으로 퍼준 뒤 연산하는 기술은 공간적 특성을 표현하기 어렵다.
즉 공간적인 특성을 살리려고 등장한 것.
CNN(Covolutional Neural Network)의 구조

먼저 Conv Layer 와 Pooling Layer의 역할을 보자.
Conv Layer
Convolution 합성곱

이러한 Convolution이라는 개념이 CNN에서는 어떻게 적용이 되었을까?

초록표 : 기본 Input
노란표 : 합성곱 필터
노란표가 이동하는 것 : 슬라이딩
분홍표 : 합성곱이 이루어진 Output

단순한 Convolution은 위와 같이 이루어지는 것을 확인했다.
그러면 Convolution에 적용할 수 있는 기술인 Padding / Stride에 대해 알아보자
Padding

이미지 외부를 특정한 값으로 둘러싸서 처리해주는 방식 : 보통 zero padding이 많이 사용된다.
Output인 Feature map의 크기를 조절하고 실제 이미지 값을 활용하기 위함.
Stride

Output size formula

p는 몇 픽셀로 둘러싸였는지를 의미한다.
Pooling Layer
가로,세로 방향의 공간을 줄이기 위해 수행하는 작업.
즉 파라미터 수를 줄임으로 overfitting을 방지할 수 있고 속도 측면도 개선이 가능하다.

가중치가 없고, 채널 수가 변하지 않는다.
Fully Connected Layer
분류를 위한 Layer로 기존에 사용했던 다층 퍼셉트론 신경망으로 구성되어 있다.
CNN에서 학습이 되는 부분은 Filter의 가중치 부분이 조정이 된다.
전이 학습 ( Transfer Learning )
이전 학습된 내용을 기반으로 새로운 모델을 구축하는 것
보통 사전 학습 가중치는 학습되지 않도록 고정한 채로 진행되기에 더 좋은 결과를 얻을 수 있다.
주요 사전 학습 모델 3가지에 대해서 알아보자.
1. VGG(13,16,19)
해당 숫자는 층 수를 의미하고 있다.
VGG 16의 구조

활성화 함수로는 ReLU를 사용하였고, 가중치 초깃값으로는 He 초기화를 사용하였다.
Dropout과 Adam을 이용하여서 과적합을 방지하였다.
2.GoogLeNet( Inception )

3.ResNet

ResNet은 152층으로 구성하였다고 한다.
그러면 한 가지 의문점이 드는데 정보의 손실이 계속해서 일어나게 될텐데 이를 어떻게 해결했는지에 대한 의문이다.
해결법은 다음과 같다.

활성화 함수를 거치지 않는 데이터의 부분을 더해 줌으로 기울기 소실을 방지를 어느정도 가능하게 하였다.
* 이미지증강
이상치에 대한 일반화된 모델을 위해서 이미지를 회전 혹은 반전 등 다양한 효과를 주면서 학습을 진행하기도 한다.
'ML_DL > DL' 카테고리의 다른 글
| Deep Learning -> CNN 복습 (0) | 2022.09.13 |
|---|---|
| DL) GAN (0) | 2022.07.20 |
| DL) RNN 구조와 Attention (0) | 2022.07.12 |
| DL) RNN , LSTM (0) | 2022.07.12 |
| DL) 단어의 분산 표현(Distributed Representation) (0) | 2022.07.11 |