브렌쏭의 Veritas_Garage

[3Blue1Brown] Backpropagation 역전파 본문

[Project_하다]/[Project_공부]

[3Blue1Brown] Backpropagation 역전파

브렌쏭 2024. 7. 4. 12:11
"각 오차는 오차함수가 얼마나 각 가중치 및 편차에 민감한지를 나타낸다"

 

 

조작 가능한 것은 Weight 와 Bias 다

여러 레이어로 이루어져있다면 그 이전의 활성치 값 또한 그 값을 정하는 이전의 가중치와 편향치를 조작해 바꿀 수 있다.

각 뉴런들은 이전의 모든 뉴런들과 연결되어 있다는 점을 통해 출력에서 부터 거꾸로 영향력을 변경 가능하다.

 

이렇게 역으로 그 과정을 찾아 적절한 가중치와 편향치를 정하는 것을 Backpropagation이라고 한다.

Backpropagation

최종 출력층의 뉴런은 그 이전 계층의 뉴런들의 활동의 결과이므로, 원하는 최종 출력을 얻기 위한 조절 값을 알아낼 수 있다.

동시에 모든 훈련 데이터에 대한 "적절한 조절값"을 찾는 것은 몹시 오래 걸리고 많은 계산을 필요로 한다.

Mini Batches

몇가지 표본을 뽑아 모든 경우의 수 대신에 표본에 대해서만 계산을 하게 된다면 굉장히 많은 계산을 건너뛰고 빠른 결과를 얻을 수 있게 된다.

How to Calculate? 

비용을 최소화하기 위해서 계산을 해보자

원하는 (목표) 결과: 1

실제로 나온 (최종 출력) 결과: 0.66

비용 = (최종출력 값 - 목표 값)^2

  • 이때 최종 출력 값은 그 앞의 레이어의 뉴런들에 가중치를 곱하고 전체에 편향치를 더한 값이다.

최종 출력 값 = 정규화(가중치 * 이전 레이어의 출력 값 + 편향치)

  • 정규화는 시그모이드 함수나, ReLU 함수를 통해 0 ~ 1 사이의 값으로 바꾼다

비용 = (정규화(가중치 * 이전 레이어의 출력 값 + 편향치) - 목표 값)^2

이런 식으로 쭉 시작 지점까지 진행하게 된다.

이렇게 선행 결과들이 후행 결과에 영향을 주는 관계를 수식으로 나타낸 것이 Chain rule이 된다

Chain Rule

Neurons that Fired together, are Wired together

 

앞서 적용된 가중치의 변화가 이후 계층에서 미치는 영향은 그 앞선 뉴런이 얼마나 강하게 활성화되는 지에 달려있다.

 

모든 예제 데이터에 대해 계산하고 평균을 낸다면 위와 같다

이제 하나의 예제가 아니라 모든 뉴런들에 대해 값을 구하게 된다면 각 비용(Cost)의 평균으로 생각할 수 있게 된다.

갯수가 늘어나더라도 해야할 일은 크게 변하지 않는다는 점이 포인트이다
도함수의 경우에도 모든 경로에 대한 비용을 더하는 것으로 찾아낼 수 있다.

 

'[Project_하다] > [Project_공부]' 카테고리의 다른 글

[BoostCourse] 확률론  (0) 2024.07.05
[3Blue1Brown] Attention  (1) 2024.07.05
[3Blue1Brown] Generative Pre-trained Transformer  (0) 2024.07.04
[3Blue1Brown] DeepLearning  (1) 2024.07.01
[CS231n] #4. Neural Network  (1) 2024.07.01
[CS231n] #3. Loss Function, 최적화  (0) 2024.06.28
[CS231n] #2. 이미지 분류(2)  (0) 2024.06.27
Comments