-
3. 신경망 학습(1)AI 모델(딥러닝 기초)/3. 신경망 학습 2023. 1. 5. 15:26728x90
■ 학습이란?
- 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것
데이터 주도 학습은 크게 세가지로 분류할 수 있다.
1. 사람이 생각한 알고리즘을 통한 학습
2. 사람이 생각한 특징 + 머신러닝(SVM, KNN)을 통한 학습
3. 신경망(딥러닝)을 통한 학습
신경망을 통한 학습은 종단간 기계학습이라고도 하면 처음부터 끝까지 모든 작업을 기계가 하는 것이다. 사람의 영역 자체가 없는 인공지능 그 자체이다. 우리는 신경망 학습을 위해 필요한 몇 가지 지표들을 알아보려고 한다.
※ 손실함수(loss function), 비용함수(cost function)
둘 다 같은 말을 뜻한다. 일반적으로 오차제곱합(SSE)와 교차 엔트로피 오차를 사용한다.
■ 오차제곱합(SSE)
- 현재의 신경망 성능의 에러값을 토대로 얼마나 훈련 데이터를 잘 처리하지 못하는지를 지표로 삼아 신경망 성능을 점검한다.
y : 신경망의 출력(추정값)t : 정답k : 데이터의 차원 수import numpy as np def sum_squares_error(y, t): return 0.5 * np.sum((y-t)**2)SSE를 코드로 구현해 보았다.
이제 SSE를 직접 적용해서 어떤식으로 사용될 수 있는지를 살펴보자.
t = [0,0,1,0,0,0,0,0,0,0] # one-hot-encoding : 1은 정답 위치 원소, 나머지는 0 으로 0과 1만으로 표현하는 기법 # Case1 y1 = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0] SSE1 = sum_squares_error(np.array(y1), np.array(t)) print(SSE1) # Case2 y2 = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0] SSE2 = sum_squares_error(np.array(y2), np.array(t)) print(SSE2)이렇게 구현을 해보면 결과값이 SSE1 : 0.09750000, SSE2 : 0.5975 가 나오게 된다.
SSE1 < SSE2 이므로 error 값이 더 작은 Case1이 Case2 보다 정답에 더 가깝다고 판단할 수 있다.
Case1이 손실 함수 출력값이 작고 정답과의 오차도 작은 것으로 판단
■ 교차 엔트로피 오차(CEE)
- 실질적으로 정답일 때의 추정의 자연로그를 계산하는 식, 정답일 때의 출력이 전체 값을 정하게 된다.

y : 신경망의 출력(예측값)
t : 정답
k : 데이터의 차원 수
import numpy as np def cross_entropy_error(y, t): delta = 1e-7 return -np.sum(t * np.log(y + delta))CEE를 코드로 구현해 보았다.
이제 CEE를 직접 적용해서 어떤식으로 사용될 수 있는지를 살펴보자.
t = [0,0,1,0,0,0,0,0,0,0] # one-hot-encoding : 1은 정답 위치 원소, 나머지는 0 으로 0과 1만으로 표현하는 기법 # Case1 y1 = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0] CEE1 = cross_entropy_error(np.array(y1), np.array(t)) print(CEE1) # Case2 y2 = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0] CEE2 = cross_entropy_error(np.array(y2), np.array(t)) print(CEE2)SSE 때와 같은 코드를 그대로 적용시켜 보았다. 결과 값을 살펴보면, CEE1 : 0.51082, CEE2 : 2.30258 의 수치 값을 가지는 것을 확인할 수 있다. 여기서도 CEE1 < CEE2 임을 확인할 수 있고, error 값이 더 작은 Case1이 더 정답일 가능성이 높다고 판단할 수 있다. 해석을 해보면 Case1은 정답일 때의 출력이 0.6인 경우, Case2는 정답일 때의 출력이 0.1인 경우이다.
SSE와 CEE의 정답을 유추하는 결과는 같지만, 해석의 방식에 약간의 차이가 있는 것을 확인할 수 있다.
SSE는 정답과 오차값의 차이를 확인하여 그 차이가 작은 경우가 정답에 가까운 것으로 판단하고, CEE는 정답일 때의 출력이 높은 경우에 오차가 더 작게 나와 정답을 판단한다.
오차가 작은 경우에 정답을 판단하는 것은 일맥상통하지만, SSE는 정답과 오차값의 차이를 확인하고(y-t), CEE는 0~1사이로 나오는 y값을 (-log) 값을 통해 확인하여 정답에 가까운 수치일수록 오차값이 작아져 단순하게 판단이 가능하다.
728x90'AI 모델(딥러닝 기초) > 3. 신경망 학습' 카테고리의 다른 글
3. 신경망 학습(6) (0) 2023.01.15 3. 신경망 학습(5) (0) 2023.01.10 3. 신경망 학습(4) (0) 2023.01.09 3. 신경망 학습(3) (0) 2023.01.07 3. 신경망 학습(2) (0) 2023.01.07