Introduction

Backpropagation은 네트워크 전체에 대해 반복적인 **연쇄 법칙(Chain rule)**을 적용하여 그라디언트(Gradient)를 계산하는 방법 중 하나이다.

핵심 문제: 주어진 함수 $f(x)$가 있고, $x$는 입력 값으로 이루어진 벡터이고, 주어진 입력 $x$에 대해서 함수 $f$의 그라디언트를 계산하고자 한다. (i.e.$∇f(x)$).

그라디언트(Gradient)에 대한 간단한 표현과 이해

미분은 각 변수가 해당 값에서 전체 함수(Expression)의 결과 값에 영향을 미치는 민감도와 같은 개념이다.

그라디언트 ∇f는 편미분 값들의 벡터이다.

$∇f=[\frac{∂f}{∂x},\frac{∂f}{∂y}]=[y,x]$

프레임워크: computational graph

선형 classifier(input: x,W) / 곱셈 노드: 행렬 곱셈 >> 스코어벡터 출력 / hinge loss 노드: 데이터항 Li계산 / regularization 항

선형 classifier(input: x,W) / 곱셈 노드: 행렬 곱셈 >> 스코어벡터 출력 / hinge loss 노드: 데이터항 Li계산 / regularization 항

computational graph를 통해 어떤 함수든 표현 가능

그래프의 각 노드: 연산 단계

이를 이용해서 backpropagation 사용 가능

연쇄 법칙(Chain rule)을 이용한 복합 표현식

연쇄 법칙: 그라디언트 표현식들을 함께 연결시키는 적절한 방법은 곱하는 것

$\frac{∂f}{∂x}=\frac{∂f}{∂q}\frac{∂q}{∂x}$

gradient를 얻기 위해 computational graph 내부의 모든 변수에 대해 chain rule를 재귀적으로 사용

복잡한 함수에 유리

Untitled

q는 단순 덧셈이기에 gradient = 1 / f의 gradient = z,q / 원하는 것: x,y,z 각각에 대한 f의 gradient

q는 단순 덧셈이기에 gradient = 1 / f의 gradient = z,q / 원하는 것: x,y,z 각각에 대한 f의 gradient