title: “신경망(Network) 학습”
categories:
- Deep learning
tags: - Study, Deep learning
신경망(Network) 학습
목차
- Step 1. 데이터 주도 학습
- Step 2. 손실 함수
- Step 3. 미분
- Stpe 4. 연쇄법칙(Chain rule)
해당 게시물은 참고자료를 참고하거나 변형하여 작성하였습니다.
Step 1. 데이터 주도 학습
1) 데이터 주도 학습
딥러닝을 end to end maching learning(종단간 기계학습) 이라고도 한다. 처음부터 끝까지라는 의미로, 데이터(입력)에서 목표한 결과(출력)을 얻는다는 뜻을 가지고 있다. ( 그림 출처 : 밑바닥 부터 시작하는 딥러닝 )
1.2) training 데이터와 test 데이터
머신러닝과 딥러닝에서는 데이터를 training data, test data로 나눠 학습과 테스트를 진행하는 것이 보편적이다. 보통 비율을 8:2, 7:3으로 나눈다.
먼저 training data를 학습하여 최적의 매개변수(weight, bias)를 찾는다. 그런 다음 test data를 이용하여 훈련된 모델의 성능을 평가한다. 이렇게 데이터를 나누는 이유는 모델의 범용성(generalization)을 위함이다. 만약 training data로만 학습을 한다면 어떻게 될까? 지난 overfitting 포스팅에서 해당 경우를 보여준다.
Step 2. 손실 함수(Loss function)
신경망 학습에서 해당 학습이 잘 진행이 되는지 아닌지를 판단하는 지표가 필요하다. 그 해당 지표를 손실 함수 를 통해서 확인할 수 있다. (앞선 포스팅에선 비용함수 라고 표현했음) 이러한 지표를 좋게 만들어주는 weight 값을 탐색하는 과정이 신경망 학습이라 할 수 있다.
손실 함수는 여러 종류가 존재하지만 가장 많이 쓰이는 손실 함수 두 가지는 앞서 배웠던
1) 평균제곱오차(MSE) - 회귀 문제에서 많이 쓰이는 손실 함수
2) 크로스 엔트로피(Cross Entrophy) - 분류 문제에서 많이 쓰이는 손실 함수
즉, 손실 함수는 신경망 성능의 ‘나쁨’을 나타내는 지표로서 값을 최소화하는 방향으로 학습을 해야한다.
1) 그렇담 왜 손실 함수를 사용?
그럼 왜 정확도 같은 지표를 제외하고 손실 함수를 지표로 사용하는 것일까? 이 의문은 ‘미분’의 역할에 주목하면 알 수 있다.
신경망 학습은 최적의 매개변수(weight, bias) 값을 탐색할 때 손실 함수의 값을 가능한 작게하는 매개변수 값을 찾는다. 이때 매개변수의 미분을 계산하고, 그 미분 값을 단서로 매개변수를 갱신하는 과정을 반복한다.
매개변수의 손실 함수 미분이란 가중치 매개변수의 값을 변화시켰을 때 손실 함수가 어떻게 변하냐는 의미이다. 만약 미분 값이 음수라면 그 가중치 매개변수를 양의 방향으로 변화시켜 손실 함수의 값을 줄 일 수 있다. 반대의 경우도 마찬가지다. 해당 과정을 반복하여 미분 값이 0 이라면 가중치의 매개변수의 갱신은 거기서 멈춘다.
정확도를 지표를 삼아서는 안 되는 이유는 미분 값이 대부분 장소에서 0 이 되어 손실 함수와 같이 매개변수를 갱신할 수 없기 때문이다.
정확도는 매개변수의 아주 작은 변화에도 거의 반응을 보이지 않으며, 있더라도 그 값이 불연속적으로 변화한다.
이는 계단함수를 활성화 함수로 이용하지 않는 이유와도 같다. 그래서 계단 함수보다는 시그모이드 함수를 사용하는 것이 적절하다.
Step 3. 미분
미분은 간단히 말해 어느 한순간 변화의 정도를 나타낸 것이다. 우리가 주목 해야할 미분은 편미분 이다
1) 편미분(partial derivative)
편미분은 두 개 이상의 변수가 존재하는 함수(다변수 함수)에서 특정 변수를 제외한 나머지 변수를 상수로 취급하고 미분하는 경우를 말한다.
Step 4. 연쇄법칙(Chain rule)
1) 합성 함수
함수의 실행 단계를 두 개 이상으로 나눌 수 있는 함수로서 예를 들면 $z = (x + y)^2$ 이라는 함수는 먼저 $(x+y)$를 계산하고 이후에 제곱을 해야한다.
즉, 한 함수의 결과값이 다른 함수의 입력값이 되어 사용되는 함수를 말한다.
2) 연쇄 법칙(chain rule)
미분의 연쇄법칙이라고도 불리는 법칙으로
함수 $f, g$가 있을때, 모두 미분이 가능하며 $F = f(g(x)) = f \circ g$로 정의된 합성 함수이면 $F$는 미분이 가능하다.
미분을 거친 $F$는 $F’(x) = f’(g(x)) \centerdot g’(x)$로 표현한다.
그리고 $t = g(x)$라고 한다면 $\frac{ dy }{ dx } = \frac{ dt }{ dx } \frac{ dy }{ dt }$ 가 성립한다.
한 가지 예시를 더 들어보자.
$t = x + y$ $z = t^2$
\[\frac{ dz }{ dx } = \frac{ dz }{ dt } \frac{ dt }{ dx }\] \[\frac{ dz }{ dt } = 2t, \frac{ dt }{ dx } =1\]즉, $\frac{ dz }{ dx } = \frac{ dz }{ dt } \frac{ dt }{ dx } = 2 t * 1 = 2(x+y)$ 가 성립한다.
갑자기 애네들을 왜 공부한걸까? 그것은 다음 포스팅인 역전파(backpropagation) 을 다루기 위함이다.
참고 자료
https://excelsior-cjh.tistory.com/170?category=940400 https://evan-moon.github.io/2018/07/19/deep-learning-backpropagation/