본문 바로가기
딥러닝 & 머신러닝/딥러닝 파이토치 교과서

5장. 내용 정리

by sim0609 2023. 9. 23.

합성곱층의 필요성

이미지 3 * 3 배열을 9 * 1로 flatten하면 데이터의 공간적 구조를 무시하기 때문에 이를 방지하기 위해 합성곱층 필요함

합성곱 신경망 구조

입력층

합성곱층(활성화 함수: Relu)

풀링층

완전 연결층

출력층(활성화 함수: softmax)

입력층

입력 이미지 데이터가 최초로 거치게 되는 계층 → 높이 * 너비 * 채널

합성곱층

입력 데이터에서 특성 추출, stride라는 지정된 간격에 따라 순차적으로 이동

입력 이미지(컬러(RGB): 3, 흑백: 1)와 필터의 채널 수는 동일

위의 그림에서 필터의 크기는 2 * 2이고, 채널 수(RGB, 흑백에 따라 달라지는 부분)는 3이며 필터의 개수는 1개

즉, 필터의 개수에 따라 합성곱 연산 후 출력되는 특성맵의 수가 달라짐

 

아래 그림은 필터의 개수가 4개인 경우, 특성맵의 결과를 보여줌

→ 입력: 3 * 3 * 3(RGB), 필터: 2 * 2 * 3(RGB)가 4개, 출력(stride = 1): 2 * 2 * 4(필터의 수)

풀링층

합성곱층과 유사하게 특성맵의 차원을 다운 샘플링해 연산량을 감소시키고, 주요한 특성 벡터 추출

 

풀링 연산

1) 최대 풀링: 대상 영역에서 최댓값 추출

2) 평균 풀링: 대상 영역에서 평균 반환

완전 연결층

이미지는 3차원 벡터에서 1차원 벡터로 펼쳐지게 됨

출력층

마지막 출력층의 소프트맥스 함수(입력받은 값을 0~1 사이의 값으로 출력)를 사용해 이미지가 각 label에 속할 확률값이 출력되고, 이때 가장 높은 확률 값을 갖는 label이 최종 값으로 선정

1D, 2D, 3D 합성곱

이동하는 방향의 수와 출력 형태에 따라 1D, 2D, 3D로 분류 가능

 

1D 합성곱

필터가 시간을 축으로 좌우로만 이동할 수 있는 합성곱

ex. 입력이 [1, 1, 0, 1, 0]이고, 필터가 [0.25, 0.5, 0.25]일 때 출력은 [0.75, 0.5, 0.5]이 된다

2D 합성곱

필터가 방향이 두 개로 움직이는 형태

즉, 입력(W, H)과 필터(k, k)에 대한 출력은 (W, H)가 되며, 출력 형태는 2D 행렬

3D 합성곱

필터가 방향이 세 개로 움직이는 형태

입력(W, H, L)과 필터(k, k, d)를 적용하면 출력은 (W, H, L)이 되며, 출력 형태는 3D 행렬(단, d < L)

3D 입력을 갖는 2D 합성곱

입력 (W, H, L)에 필터 (k, k, L)를 적용하면 출력은 (W, H)가 된다

1 x 1 합성곱

입력 (W, H, L)에 필터 (1, 1, L)를 적용하면 출력은 (W, H)가 된다

전이 학습

이미지넷처럼 아주 큰 데이터셋을 사용해 훈련된 모델의 가중치를 가져와 우리가 해결하려는 과제에 맞게 보정해 사용 

미세 조정 기법

사전 훈련된 모델과 합성곱층, 데이터 분류기의 가중치를 업데이트해 훈련시키는 방식

 

1. 데이터셋이 크고 사전 훈련된 모델과 유사성이 작을 경우:

전체 데이터셋 재학습시키기 

 

2. 데이터셋이 크고 사전 훈련된 모델과 유사성이 클 경우:

합성곱층의 뒷부분과 데이터 분류기 학습시키기

 

3. 데이터셋이 작고 사전 훈련된 모델과 유사성이 작을 경우:

합성곱층의 일부분과 데이터 분류기를 학습시키기 

 

4. 데이터셋이 작고 사전 훈련된 모델과 유사성이 클 경우:

데이터 분류기만 학습시키기

설명 가능한 CNN

각 중간 계층부터 최종 분류까지 입력된 이미지에서 특성이 어떻게 추출되고 학습하는지를 시각적으로 설명

 

실습 코드

https://colab.research.google.com/drive/1yeHvpAcE0RhstYrz6AbMB2sg81N-BOK2?usp=sharing 

 

5장.합성곱 신경망.ipynb

Colaboratory notebook

colab.research.google.com