[모두의 딥러닝] ConvNet Max pooling 과 Full Network
📗강의노트/모두의 딥러닝

[모두의 딥러닝] ConvNet Max pooling 과 Full Network

728x90
반응형

Sung Kim 님의 "모두의 딥러닝" 강의노트입니다

좋은 강의 감사드립니다!

https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5


ConV ReLU이외의 나머지 부분에 대한 것 

Pooling layer는 Sampling이라고 봐도 된다!

Conv layer를 통해 하나의 이미지가 나오게 된다. size를 작게 만들어 주는 것을
Pooling(sampling)이라고 한다.

그리고 resize된 것들을 다시 쌓는다 . 

2x2의 output이 나오게 된다. 

어떤 값을 가져올지를 pooling이 정한다. 
가장 많이 사용되는 방식이 큰 값을 가져오는 Max Pooling이다. 

Score 값이 가장 크다 -> 그 feature가 가장 유력하다. MAX값을 선택할 이유

따라서 
( 6,8
  3,4 ) 로 나오게 된다. 
전체의 데이터에서 하나만 뽑기에 Sampling이라고도 하는 것이다. 
 
pooling을 하는 이유 : 풀링 레이어가 하는 일은 네트워크의 파라미터의 개수나 연산량을 줄이기 위해 representation의 spatial한 사이즈를 줄이는 것이다. 이는 오버피팅을 조절하는 효과도 가지고 있다

ConV에서 나온 vector를 ReLU에 입력하게 되면 쉽게 되는 것이다. 
그리고 pooling(sampling)을 한다. 
pooling의 위치는 스스로 설정할 수 있다. conv를 더 쌓고해도 된다.

그리고 마지막에 pooling을 하게 되는데, 그 값들의 전체가 나오게 되는데 
3 x 3 x 10이었다면(이것이 입력값이 됨) 이를 원하는 만큼의 깊이의 일반적인 NN(FN)을 만들어서 마지막에 Softmax Classify를 하는 것이다. 

에서 자세한 과정을 볼 수 있다 .

정리해보자면,
  1. ConV layer를 통해 이미지를 추출한다
  2. ReLU에 입력한다
  3. Pooling한다
  4. 전체를 반복하거나 / ConV, ReLU반복하다가 마지막에 pooling
  5. FC layer를 거친다
  6. 마지막으로 Softmax를 통해 분류한다.






728x90
반응형