- 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 말한다.
- 손실함수란 신경망이 학습할 수 있도록 해주는 지표이다.
- 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표이다.
데이터에서 학습한다
신경망의 특징은 데이터를 보고 학습할 수 있다는 것이다.
데이터 주도 학습
- 기계학습의 접근법
- 사람이 생각한 알고리즘으로 결과 도출
- 사람이 생각한 특징으로 기계학습 후 결과 도출
- 기계학습의 중심에는 데이터가 존재한다.
- 기계학습에서는 사람의 개입을 최소화하고, 수집한 데이터로부터 패턴을 찾으려 시도한다.
- 이미지에서 특징을 추출하고, 그 특징의 패턴을 기계학습 기술로 학습하는 방법이 있다.
- 특징은 입력 데이터에서 본질적인 데이터를 정확하게 추출할 수 있도록 설계된 변환기이다.
- 모아진 데이터로부터 규칙을 찾아내는 역할을 기계가 담당하지만, 특징을 설계하는 것은 사람이기 때문에 문제에 적합한 특징을 설계하지 않으면 좋은 결과를 얻을 수 없다.
- 신경망(딥러닝)으로 결과 도출
- 신경망은 이미지를 있는 그대로 학습하고, 이미지에 포함된 중요한 특징까지도 기계가 스스로 학습한다.
훈련 데이터와 시험 데이터
- 훈련 데이터를 사용하여 학습하면서 최적의 매개변수를 찾는다.
- 시험 데이터를 사용하여 훈련한 모델의 실력을 평가한다.
- 범용 능력은 아직 보지 못한 데이터로도 문제를 올바르게 풀어내는 능력이다. 이 범용능력을 제대로 평가하기 위해 훈련 데이터와 시험데이터를 분리한다.
- 한 데이터셋에만 지나치게 최적화된 상태를 오버피팅이라고 한다.
손실함수
신경망에서는 손실함수를 하나의 지표로 사용하고, 이 지표를 가장 좋게 만들어주는 최적의 매개변수를 탐색한다.
오차제곱합

y는 신경망의 출력, t는 정답 레이블, k는 데이터의 차원 수이다.
3.6 손글씨 숫자 인식

출력 y는 소프트맥스 함수의 출력이다. 정답 레이블 t는 정답을 가리키는 위치의 원소만 1로 표기하고 나머지는 0으로 표기하는 원-핫인코딩 방식을 이용한다.
오차제곱합 기준으로 손실 함수의 출력이 더 작은 쪽이 오차가 더 작은 것으로 판단하여, 정답에 더 가까울 것으로 판단할 수 있다.
교차 엔트로피 오차

교차 엔트로피 오차는 정답일 때의 출력이 전체 값을 정한다.


np.log를 계산할 때 delta를 더해 입력값이 0이 되지 않게, 출력값이 마이너스 무한대가 되지 않게 한다.
미니배치 학습
기계학습 문제는 훈련데이터에 대한 손실함수의 값을 구하고, 그 값을 최대한 줄여주는 매개변수를 찾아낸다. 따라서 모든 훈련 데이터를 대상으로 손실 함수 값을 구해야 한다.
- 훈련 데이터 모두에 대한 교차 엔트로피의 식

- 훈련 데이터가 많을 경우 데이터의 일부를 추려 전체의 근사치로 이용하는데, 이 일부를 미니배치라고 한다. 미니배치를 뽑아 학습하는 방법을 미니배치 학습이라고 한다.

np.random.choice()로 지정한 범위의 수 중에서 무작위로 원하는 개수를 꺼낼 수 있다.
배치용 교차 엔트로피 오차 구현하기
- 정답 레이블이 원-핫 인코딩으로 주어졌을 때

- 정답 레이블이 원-핫 인코딩이 아니라 숫자 레이블로 주어졌을 때

손실함수를 설정하는 이유
신경망을 학습할 때의 목표는 높은 정확도를 끌어내는 매개변수 값을 찾는 것이다. 신경망 학습에 정확도를 지표로 사용할 수 있지만 정확도는 매개변수의 미소한 변화에는 거의 반응을 보이지 않고, 반응이 있더라도 값이 불연속적으로 갑자기 변화한다. 따라서 매개변수의 미분값이 대부분의 장소에서 0이기 때문에 손실함수의 값을 지표로 삼는다.