Training Neural Network
Neural Networks
1.
QnA
신경망 학습 과정
- 순전파
- 입력층 - 은닉층 - 출력층
- 가중합, 활성화 함수 반복적 시행
- 손실함수
- 순전파 -> 예측값 - 타겟값 차이
- 손실함수 ex)케라스 기준
- 회귀 : mse
- 이중 분류 : binary_crossentropy
- 다중 분류 : categorical_crossentropy(원핫 001 010 100),
sparse_categorical_crossentropy(정수형 0 1 2)
- 역전파
- 손실함수 출력층 -> 입력측
- 손실 줄이는 방향으로 가중치 업데이트 -> 경사하강법
역전파
- 경사하강법(GD)
- 가중치 수정 방향 결정
- 손실함수 미분값(기울기) -> 작아지도록 가중치 변경
- 편미분, 체인룰
- 가중치 기울기 -> 손실함수를 해당 가중치로 편미분
- 모든 가중치 값 -> 체인룰
- 옵티마이저
- 경사를 내려가는 방법 결정
- GD -> 모든 데이터 사용 -> 느림
- SGD -> 1개 데이터 사용 -> 빠름 / 불안정한 경사하강
- 미니 배치 GD -> n개 데이터
배치 사이즈 : 클수록 안정적, 2의 배수
배치 크기는 보통 2의 제곱수를 사용합니다. ex) 2, 4, 8, 16, 32, 64... 그 이유는 CPU와 GPU의 메모리가 2의 배수이므로 배치크기가 2의 제곱수일 경우에 데이터 송수신의 효율을 높일 수 있다고 합니다.미니 배치 경사 하강법에서
batch_size가 떨어지게 설정하는 것이 좋지만,
batch_size가 떨어지지 않을 경우, 나머지는 버리는게 좋다고 합니다.
예를 들어, 1050개의 데이터에서, 배치 크기를 100으로 나누고 싶은 경우,
나머지 50개는 버리는 것이 좋습니다. ( 무작위 선택해서 버려야 됩니다. )
10개의 배치는 1/100의 비중으로 선택이 되지만
나머지 11번째 배치는 1/50의 비중으로 선택이 되서
동등한 비중의 평가가 이루어지지 않기 때문입니다.
of data = batch-size x iteration -> 1 epoch