신경망 학습(Neural network learning)
1. 신경망 학습 학습이란 데이터로보터 가중치의 최적값을 자동으로 획득하는 것을 뜻한다. 이 학습의 지표로 손실함수를 이용한다. 이 손실함수를 최대한 작게 만드는 가중치를 찾아야 한다. 2. 학습에 필요한 데이터 학습에 필요한 데이터로는 훈련용 데이터(traning data)와 시험 데이터(test data)로 나눠서 학습과 시험을 수행한다. 처음 보는 데이터로 문제를 풀어내는 것을 범용 능력이라 하는데 이를 위해 다양한 데이터로 학습이 진행되어야 한다. 한 데이터셋에 지나치게 최적화된 상태를 오버피팅(Overfitting)이라 한다. 3. 손실함수(Loss function) 3.1 오차제곱합(sum of squares for error) 오차제곱합은 다음과 같이 정의된다. $$E = \frac{1} {2} \sum_{k}{(y_k - t_k)}^2$$ 위에서 $y_k$는 신경망의 출력, $t_k$는 정답 레이블, $k$는 데이터의 차원 수를 나타낸다. 이를 python으로 구현해보았다. import numpy as np def SSE ( y , t ): return 0.5 * np.sum((y - t)** 2 ) t = np.array([ 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]) y = np.array([ 0.1 , 0.05 , 0.6 , 0.0 , 0.05 , 0.1 , 0.0 , 0.1 , 0.0 , 0.0 ]) print (SSE(y, t)) t = np.array([ 0 , 0 , 1 , 0...