파일명 | 파일 용도 | 관련 절 | 페이지 |
---|---|---|---|
gradient_1d.py | 수치 미분으로 기울기를 구합니다. | 4.3.2 수치 미분의 예 | 125 |
gradient_2d.py | 수치 미분으로 기울기를 구합니다(두 편미분을 동시에 계산). | 4.4 기울기 | 129 |
gradient_method.py | 경사하강법의 갱신 과정을 보여줍니다. | 4.4.1 경사법(경사 하강법) | 132 |
gradient_simplenet.py | simpleNet 클래스 | 4.4.2 신경망에서의 기울기 | 134 |
train_neuralnet.py | 미치배치 방식으로 학습하고 시험 데이터로 평가합니다. | 4.5.2 미니배치 학습 구현하기 / 4.5.3 시험 데이터로 평가하기 | 141, 143 |
two_layer_net.py | 2층 신경망 클래스 | 4.5.1 2층 신경망 클래스 구현하기 | 137 |
이번 장의 주제는 신경망 학습입니다. 여기서 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻합니다. 이번 장에서는 신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 소개합니다. 이 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표입니다. 이번 장에서는 손실 함수의 값을 가급적 작게 만드는 기법으로, 함수의 기울기를 활용하는 경사법을 소개합니다.
4.1 데이터에서 학습한다!
__4.1.1 데이터 주도 학습
__4.1.2 훈련 데이터와 시험 데이터
4.2 손실 함수
__4.2.1 평균 제곱 오차
__4.2.2 교차 엔트로피 오차
__4.2.3 미니배치 학습
__4.2.4 (배치용) 교차 엔트로피 오차 구현하기
__4.2.5 왜 손실 함수를 설정하는가?
4.3 수치 미분
__4.3.1 미분
__4.3.2 수치 미분의 예
__4.3.3 편미분
4.4 기울기
__4.4.1 경사법(경사 하강법)
__4.4.2 신경망에서의 기울기
4.5 학습 알고리즘 구현하기
__4.5.1 2층 신경망 클래스 구현하기
__4.5.2 미니배치 학습 구현하기
__4.5.3 시험 데이터로 평가하기
- 기계학습에서 사용하는 데이터셋은 훈련 데이터와 시험 데이터로 나눠 사용한다.
- 훈련 데이터로 학습한 모델의 범용 능력을 시험 데이터로 평가한다.
- 신경망 학습은 손실 함수를 지표로, 손실 함수의 값이 작아지는 방향으로 가중치 매개변수를 갱신한다.
- 가중치 매개변수를 갱신할 때는 가중치 매개변수의 기울기를 이용하고, 기울어진 방향으로 가중치의 값을 갱신하는 작업을 반복한다.
- 아주 작은 값을 주었을 때의 차분으로 미분하는 것을 수치 미분이라고 한다.
- 수치 미분을 이용해 가중치 매개변수의 기울기를 구할 수 있다.
- 수치 미분을 이용한 계산에는 시간이 걸리지만, 그 구현은 간단하다. 한편, 다음 장에서 구현하는 (다소 복잡한) 오차역전파법은 기울기를 고속으로 구할 수 있다.