이제 깊어진 망을 학습하는 방법을 알아볼 것이다. 우리는 미분이라는 개념을 알고 있어야 하며 합성곱의 미분을 알아야하며 편미분도 알아야한다. 또한, chain rule 이라는 연산을 이용할 것이다. 모르는 분이 있다면 꼭꼭 알아야하니 기본적인 미분이랑 편미분 등등을 학습하고 오시길 바란다.
우리는 일반적으로 예측 값과 실제값의 차이를 이용해 비용함수를 구하고 그 비용함수에 경사하강법을 이용하여 적절한 w,b의 값을 구했다. global min 을 구했다.
따라서 우리가 nn에서 또한 같은 방식을 적용하여 답을 구해보려고 한다. 하지만?! 이게 깊어진 만큼 계산이 엄청 복잡해졌다. 중간에 활성화 함수인 시그모이드 함수도 끼고 정말 복잡해졌다.
예를 들어 x1 이라는 input이 예측된 y 값에 어떤 영향을 미치나에 따라 w,b값을 조정해야하는데 그것이 깊어진 만큼 힘들어졌다.
따라서 우리는 각각의 입력 값들이 결과에 미치는 영향에 대하여 알아야하는 문제가 생겼다.
민스키 교수님은 이러한 것을 아무도 할 수 없다!라고 했지만
이러한 문제를 해결하기 위해 폴 교수님이랑 힌튼 교수님이 만든것이 backpropagation이다.
이름과 같이 어떤 출력 값과 실제값의 에러를 비교해서 cost를 뒤에서부터 앞으로 보내며 미분값을 이용해서 구하는 것이다. 지금부터 이 backpropagation의 동장 방법에 대하여 알아볼 것이다.
우리는 위의 f,g를 다음과 같은 방식으로 정의를 해보겠다.
위에서 한 정의를 아래의 그래프로 수식화 해보겠다 f를 구하기위해 덧셈과 곱셈의 연산을 사용했다.
(참고로 저기에 있는 것은 노드는 아니고 그냥 수식에 대한 것을 도식화 해본것이다.)
따라서 우리가 구해야하는 것을 w, b이므로 각가의 문제 w,x,b 에 대하여 저 값들이 수식 f 에 미치는 영향에 대하여 관심을 가져야 w,b의 값을 조정할 수 있다. (미분이란 것의 정의가 잘게 쪼갠다라는 의미도 있을 뿐 아니라 기울기를 의미하는 것도 있다. 기울기는 어떤 값 증가량에 따른 다른 값의 변화량을 나타낸것을 의미 한다는 것도 잊지말자)
따라서 w값에 따른 f의 변화 , x값에 따른 f의 변화, b 값에 따른 f 의 변화가 궁금하다.
우선 들어가기전 미분의 개념을 간단하게 알아야한다.
위의 그림들처럼 진행을 해보면
1. (forward) 실제 주어진 값(w,x,b)을 이용해서 그래프에 값을 넣어본다.
그럼 f함수의 값이 나오게 될것이다.
우리에게 주어진 수식들 중에 간단하게 미분들을 해두어야 할게 있다. 여기서 편미분이 사용된다.
각각 f,g에 대하여 미분을 해둔다. (나중의 계산을 위해서다) 근데 왜 진짜 하는거야? 라는 의문이 생길텐데 미리 계산해둔 저 값들 때문에 우리는 어떤 복잡한 미분의 값들을 쉽게 계산을 할 수 있다.
우선 우리는 거꾸러 f 쪽부터 시작한다. g가 f에 미치는 영향을 우리는 미분을 통해 보면 이미 우리는 계산을 해두었다.
아래 b가 f 에 미치는 영향을 우리는 이미 또 계산을 해두었다!
이제 각가 남은 값들은 w가 f 에 미치는 영향과 , x가 f에 미치는 영향의 값들이 궁금하다.
이때 우리는 체인 룰을 사용하게 된다. 위의 그림에서 왼쪽을 보게 된다면
이것과 같은 수식을 볼 수 있는 데 체인룰을 적용해보면 이미 우리는 계산을 해둔 것을 알수 있다. 따라서 우리가 이미 w,x 값은 초기에 받았으므로 x 값이 f 에 미치는 영향과 w 값이 f 에 미치는 영향의 값을 구할 수 있다.
근데 여기까지 해보고 아니 이게..? 왜 중요하지? 라는 것에 대한 의문을 가질수 있다.
그럼 간단하게 우리가 여기서 w,x,b의 값을 변화 시켜보자 만약에 w의 값이 현재는 -2 이지만 -3으로 변화를 시켜주고 결과를 계산해보면 f = -12 가 된다 기존에는 f = -7 이었는데 w 값이 단지 -1만 변했을 뿐인데 우리가 구한 w값에 따른 변화량 만큼인 -5만큼 변하게 되었다. 이렇게 계산한 값들이 결과에 미치는 영향을 우리는 backpropagation으로 알게 되었다.
결과적으로 우리는 이렇게 복잡한 경우라도 정리할 수 있다.
마지막 예시로 시그모이드에 chain rule 을 적용해보면 이렇게 할 수 있다.
중간 중간 미분 값을 구할 수 있으면 계산이 쉬워진다 끝
아주 중요한 개념이니 꼭 알아두자.
정리하자면 백프로파 게이션은 지금의 파라미터 값들이 어느정도 결과값에 영향을 주는지 판단하고 미세조정을 하는 것을 말한다.
'AI > 머신러닝(딥러닝) 정리' 카테고리의 다른 글
10-2. Initialize weights in a smart way (0) | 2022.05.05 |
---|---|
10-1. ReLU : Better non-linearity (0) | 2022.05.05 |
9-1. Neural Nets(NN) for XOR (0) | 2022.05.04 |
8-2. Deep Neural Nets (0) | 2022.05.04 |
8-1. Deep Neural Nets (0) | 2022.05.04 |