IT/Deep learning

DL - Convolutional Neural Network

성진팍 2017. 6. 29. 22:08

포스팅 하면서 그림넣는걸 뺏다.

그림은 한꺼번에 넣을 예정이다. ㅠ.ㅠ

 


CNN (Convolutional Neural Network)

Convolution Layer들의 연속이다.  이것들이 activation function과 같이 배치된거다.

Convolutional Neural Network

합성곱 신경망(CNN)에서는 기존 신경망의 구조를 바꾸어 학습의 어려움을 해소하였다. 

특히 이미지 인식분야의 딥러닝으로 잘 성능을 보인다고 알려져있다.

이것의 기본은, 문제에 특화된 망 구성을 하여, 다층구조의 망을 간소화하여 망학습을 쉽게 하는 것이다.

보통 입력 -> CNN -> POOLING -> CNN -> POOLING ... FUlly connected layer -> 출력이다.

 

기존 신경망 구조가 모두 fully conneted layer라고 했을 떄 이것은 다르다

CNN, Pooling 이라는 층이 있고

층들끼리 모두 다 결합하는게 아니라, 어느 특정 인공신경끼리만 결합한다. 또 각각 층마다 처리 방식이 다르다.

 

이런 형식인데.. 더 간단히 ppt로 그려봤다

Image result for convolution neural network


진짜 허접한가..ㅋㅋ



Convolution Layer의 특징은?

입력신호에 포함된 특징을 추출하는 것이다. 예를 들어 입력신호가 2차원 이미지라면 합성곱층에서는 세로방향,가로방향의 도형성분을 추춣거나 이미지가 가진 특정 픽셀을 추출한다.

즉 이미지 필터. 역할을 한다. 

CNN에서는 이미지 필터의 기능을 신경망의 학습기능을 이용하여 자동으로 얻는다.

아래 그림과 같이, 전단계의 대응하는 부분과만 결합하여 어떤일부분의 특징을 추출한다.

 

자체에 000000 padding넣고 할수도 있다

일반적으로 stride는 1

filter F*F

zero padding 넣을경우 F-1/2 


Pooling Layer의 특징은?

입력신호를 흐리게 하여 정보 위치의 뒤틀림에 대한 대처를 강하게 한다.

즉 전단계의 좁은영역중의 평균값 or 최대값을 가져온다. 

max pooling

average pooling 이 있는데..

그냥 layer를 한번 pooling에 의해서 줄이는 것이다. DownSampling같은 개념

overapping할수도있고 안할수도있다.


224*224*64 ->   112*112*64 뭐 이렇게



나는 이 그림이 젤 이해하기 쉬웠다 

   conv_all.png




Stride


Output size


N - F / stride + 1



32*32*3 input이 있고


7*7 필터로 stride 2해서 밀고나가면?


32-7 / 2 ...   +1 인건가




Fully connected layer란?

1by1인 convolution Layer를 뜻한다. 필터 깊이는 줄어들수는 있다. 





'IT > Deep learning' 카테고리의 다른 글

Moving average and Moving variance  (0) 2021.03.18
DL - RCNN, Fast RCNN, FCN, DeconvolutionNetwork  (0) 2017.06.30
DL - Deep Neural Network  (0) 2017.06.29
DL - Neural Net  (0) 2017.06.29
Test22222  (0) 2014.04.16