본문 바로가기

카테고리 없음

chapter 01 도구와 기술

1.1 신경망의 종류

네트워크 : 다양한 레이어가 서로 어떻게 연결되어 있는지를 보여주는 설계

ex) 완전 연결 레이어는 행렬 형태의 입력 데이터를 받아 가중치(weight) 값을 가진 또 다른 행렬과 곱하고 편향(bias) 행렬을 더한다. 

각 레이어에 활성화(activation) 함수가 있는데, 이는 레이어의 출력과 다음 레이어의 입력을 연결하는 수학적 연산으로 Relu는 양수는 그대로 음수는 0으로 만들어 전달한다.

모델 : 네트워크위 설계와 더불어 런타임에 수행하게 될 내용을 결정하는 변수들까지도 포함


1.1.1 완전 연결 네트워크

완전 연결 네트워크는 아래와 같은 공식으로 표현가능하다.

   

 입력 벡터와 가중치 행렬 W를 곱해 출력 벡터를 구한다.

하지만 이는 입력과 출력 간의 선형 맵핑만 학습한다는 한계가 있다. 하지만 다양한 형태를 표현하기 위해 비선형 활성화 함수 행렬 곱셉 연산을 사용한다.

  • 쌍곡 탄젠트 (tanh) 함수

                    


하지만, 0으로부터 멀리 떨어진 지점에서는 함수가 매우 수평적이라는 문제가 있다.


  • 선형 유닛 (ReLU) 함수


  • 시그모이드(sigmoid) 함수

대부분 네트워크 마지막 레이어에 사용한다. 항상 0과 1사이의 출력을 갖기 때문에 일종의 확률로 취급할 수 있다. 


     


1.1.2 컨볼루션 네트워크

앞선 완전 연결 네트워크는 이미지가 입력인 경우에 안 좋은 선택이다. CNN은 함수를 이미지 전체에 적용하지 않고, 이미지의 작은 부분만 적용한다. 

서브샘플링 (Subsampling)

서브샘플링을 통해 이미지가 네트워크를 통과할 때 이미지의 크기를 줄임으로써 전체 이미지에 있는 객체들을 인식한다.

서브샘플링 방법은 스트라이드 컨볼루션(Stride convolutions)풀링(pooling)가 있다.


스트라이드 컨볼루션(Stride convolutions) 

이미지 위로 컨볼루션 필터를 움직이면서 하나나 그 이상의 픽셀을 건너뜀으로써 이미지를 줄인다. 

                                    

                                                 


(4x4 이미지에 컨볼루션 필터 3x3적용, stride=1, padding=0인 경우)                                              (5x5 이미지에 컨볼루션 필터 3x3적용, stride=2, padding=0인 경우)

 => 둘 다 이미지 4x4와 5x5에서 2x2로 줄어들었다.


풀링(pooling)

최댓값이나 평균값을 이용한다. 최댓값 풀링은 스캐닝하는 구간에 대해 각 채널의 최댓값을 취하고 평균값 풀링은 평균값을 취한다.


예측

CNN안에 컨볼루션과 풀링 레이어들을 쌓은 후 하나 혹은 두개의 완전 연결 레이어를 최종적으로 쌓음으로써 예측 결과를 추출하도록 한다.


1.1.3 리커런트 네트워크(RNN)

문서나 음성 데이터처럼 일정한 순서를 가진 입력의 경우에 흔히 사용된다.


반응형