implement_ml_models

implement_differential

명징직조지훈 2022. 11. 23. 15:09

역전파 계산을 할 때, 가중치에 변화량에 대한 오차 함수의 변화량을 구하기 위해 미분이 사용,

오차 함수, 활성화 함수의 차이에 따른 그 식이 바뀌고, 이를 적용하기 위해서는 각 함수의 미분값을 구해야 한다.

우선 가장 대표적인 오차 제곱합, 시그모이드 활성화 함수 예제를 통한 확인

오차 제곱합의 비용 함수

행렬을 통한 일반화

각 벡터 성분에 미분을 수행, 

먼저 각 행렬에 대한 미분을 위한 심볼화 

Y = sympy.Symbol('Y')
T = sympy.Symbol('T')

오차 함수 C의 정의

C = 1/2*(Y-T)**2

오차 함수의 미분 계산

d_C = sympy.diff(C, Y)

d_C.subs([(Y,1),(T,2)])
>>>
-1.0

Y, T 에 값을 대입하여 예측값과 출력값의 오차 함수에 대한 변화율을 계산할 수 있다.

활성화 함수 시그모이드 함수의 미분

시그모이드 함수의 정의

X = sympy.Symbol('X')

fa = 1/(1+sympy.exp(-X))

d_fa = sympy.diff(fa, X)