혼자서

20220711

금잔디명예소방관 2022. 7. 19. 17:28

* 밑바닥부터 시작하는 딥러닝

 

overfitting을 피하기 위해

가중치 감소 : 큰 가중치에 대해서는 큰 패널티를 부가하여 오버피팅 억제

Drop out : 뉴런을 임의로 삭제하면서 훈련.

 

* CNN

 

1. 전체 구조

합성곱 계층(convolution layer)과 풀링 계층(pooling layer)으로 나뉨.

기존에는 affine layer를 사용했지만, 이는 데이터의 형상이 무시된다는 단점이 존재. (3차원 데이터를 1차원으로 평탄화 해줘야 하기 때문에)

합성곱 계층은 이 3차원 형상을 유지.

입력 데이터 : 입력 특징 맵(input featuer map), 출력 데이터 : 출력 특징 맵(output feature map)

입력 데이터에 필터 적용 후 + 편향 = 출력 데이터

 

padding : 합성곱 연산을 수행하기 전 입력 데이터 주변을 특정 값(ex. 0)으로 채우는 기법

주로 출력 크기를 조정할 목적으로 사용. padding이 커질수록 출력 크기도 커짐

stride : 필터를 적용하는 위치의 간격. stride를 키우면 출력의 크기가 작아짐

 

2. pooling layer

가로세로 방향의 공간을 줄이는 연산.

max pooling : 최댓값을 구하는 연산

일반적으로 풀링의 윈도우 크기와 스트라이드는 같은 값으로 설정하는 것이 보통

average pooling : 대상 영역의 평균을 계산

특징 : 1. 학습해야 할 매개 변수가 없음

2. 채널 수가 변하지 않음. 입력 데이터의 채널 수를 그대로 출력 데이터로 내보낸 . 채널마다 독립적으로 계산하기 때문.

3. 입력의 변화에 영향을 적게 받는다.

 

 

Affine 계층 : 행렬을 곱할 때 곱하는 행렬 사이 차수가 같은 상태를 의미. 7x8 행렬과 3x2행렬은 차수가 달라 서로 곱할 수 없어 Affine이 아니라 하고, 7x8 행렬과 8x3 행렬은 서로 차수가 같아 곱할 수 있는 상태여서 Affine 상태이다.

 

신경망의 학습 순서 :

1. 미니배치 : 훈련 데이터 중에서 무작위로 다수의 데이터를 골라낸다.

2. 기울기 계산 : 오차역전파로 각 가중치 매개변수에 대한 손실함수의 기울기를 구한다.

3. 매개변수 갱신 : 기울기를 사용하여 가중치 매개변수를 갱신한다.

4. 반복