[머신러닝]합성곱 신경망
컨볼루션 레이어 ( Convolution Layer)
정의 및 사용 이유
-
컨볼루션 레이어 : 이미지를 필터를 통해 사이즈를 조정해 Activation Map을 생성
-
사용 이유 : fully connected layer 로 영상을 처리할때 Parameter 가 너무 많아져서 Parameter를 줄이면서 양질의 결과가 나오는 Convolution layer 를 사용한다
Conv2D 레이어
해당 레이어는 주로 영상 처리에 사용되며, 필터가 탑재되어 있다.
아래는 Conv2D 클래스 사용 예제이다.
Conv2D(32,(5,5),padding='valid', input_shape(28,28,1),activation ='relu')
- 첫 번째 인자 : 컨볼루션 필터의 수
- 두 번째 인자 : 컨볼루션 커널의 행, 열
- padding : 경계처리 방법 (valid 유효한 영역만 출력, same 출력 과 입력 사이즈가 동일)
- input_shape : 샘플 수를 제외한 입력 형태를 정의, 첫 레이어 일때만 정의 ( 흑백 1, RGB 3 )
- activation : 활성화 함수 (relu, sigmoid, softmax)
Max Pooling, Average Pooling
- 정의 : weight 없이 이미지 사이즈를 줄이는 과정
- 사용 이유 : Convolution 으로 대체는 가능한데 Parameter가 필요없는 레이어들도 많기에 불필요한 Parameter를 지우기 위해 사용한다.
Convolutional Neural Networks
용어 정리
- Kernel Size : 필터의 크기
- Stride : 보폭이라는 의미, 필터를 적용하는 간격
- Padding : 합성곱 연산전에 입력 데이터 주위에 특정 값을 채우는 것. 1폭짜리는 데이터 상하좌우 1픽섹을 특정한 값으로 삽입 (보통 0을 하나, 전체 패딩을 동일한 값으로 해야함)