3. 신경망 학습
3-1. 데이터 주도 학습
학습: 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것
신경망 학습의 지표는 손실 함수(loss function)
신경망 학습의 목표는 손실 함수의 값을 최소화하는 가중치 매개변수를 찾는 것
신경망은 데이터를 있는 그대로 학습하며, 사람의 개입 없이 목표한 출력값을 얻음
즉 주어진 데이터 그대로를 입력 데이터로 활용
- 훈련 데이터와 시험 데이터 Train Data and Test Data
모델의 범용 능력 평가를 위해 데이터를 훈련 데이터와 시험 데이터로 분리
또, 오버피팅을 피하도록 도와줌
범용 능력: 임의의 데이터(훈련 데이터에 포함되지 않은)에 대해서 문제를 올바르게 풀어내는 능력
오버피팅 overfitting: 한 데이터셋에만 지나치게 최적화된 상태
3-2. 손실 함수 Loss Function
신경망 학습에서 사용하는, 성능의 '나쁨'을 나타내는 지표
보통 오차제곱합(SSE)과 교차 엔트로피 오차(CEE)를 사용
- 오차제곱합 Sum of Squares for Error, SSE
$$E = \frac{1}{2}\sum_{k}^{}(y_{k}-t_{k})^{2}$$이때 $y_{k}$는 신경망의 출력, $t_{k}$는 정답 레이블, $k$는 데이터의 차원 수 의미
# 오차제곱합 SSE
import numpy as np
def sum_squares_error(y, t):
return 0.5*np.sum((y-t)**2)
t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
print(sum_squares_error(np.array(y), np.array(t)))
- 교차 엔트로피 오차 Cross Entropy Error, CEE
$$E = -\sum_{k}^{}(t_{k}\ln{y_{k}})$$이때 $y_{k}$는 신경망의 출력, $t_{k}$는 정답 레이블(원-핫 인코딩되어 있다고 가정)
원-핫 인코딩된 정답 레이블은 정답에 해당하는 인덱스 원소만 1이고 나머지는 0이므로 정답일 때의 추정의 자연로그를 계산하는 식이 됨
# 교차 엔트로피 오차 CEE
def cross_entropy_error(y, t):
delta = 1e-7 # -inf 방지
return -np.sum(t*np.log(y+delta))
t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
print(cross_entropy_error(np.array(y), np.array(t)))
그리고 모든 훈련 데이터 $N$개에 대한 손실함수는 다음과 같음$$E = -\frac{1}{N}\sum_{n}^{}\sum_{k}^{}(t_{nk}\ln{y_{nk}})$$마지막에 $N$으로 나누어 평균 손실 함수를 구함(정규화)
- 미니배치 학습 Mini-batch Learning
훈련 데이터의 수가 매우 많을 때, 일일이 손실 함수를 계산하는 것은 어려운 일
따라서 데이터 일부를 추려 학습을 수행한 후 전체에 대한 근사치로 활용 가능(미니배치 학습 mini-batch learning)
- 손실 함수가 지표인 이유
신경망 학습에서 최적의 매개변수(가중치와 편향)를 탐색할 때, 매개변수의 미분을 계산하고 해당 값을 단서로 매개변수 값을 서서히 갱신함
이때 손실 함수가 아닌 정확도를 지표로 삼는다면, 매개변수의 미분이 대부분의 장소에서 0이 되므로 손실 함수를 지표로 채택하는 것
Textbook used -> book.interpark.com/product/BookDisplay.do?_method=detail&sc.prdNo=263500510&gclid=EAIaIQobChMImIeshoSn7wIVWVtgCh0sqQ6IEAYYASABEgLGm_D_BwE
싸니까 믿으니까 인터파크도서
파이썬으로 익히는 딥러닝 이론과 구현 새로운 지식을 배울 때 설명만 들어서는 석연치 않거나 금방 잊어버리게 됩니다. 그래서 무엇보다 '직접 해보는 것'이 중요합니다. 이 책은 딥러닝의 기
book.interpark.com
<Source>