본문 바로가기

도함수8

5. 벡터 합성함수의 도함수 표현 벡터로 이루어진 합성함수의 도함수는 어떻게 표현할 수 있는지 알아보자. 지난 시간에 벡터 X, W에 대한 합성함수 f(X, W)를 아래와 같이 정의했었다. 1. 도함수 ∂f/∂X , ∂f/∂W 구하기 입력 변수는 X, W 두개이므로 각각에 대한 도함수 ∂f/∂X , ∂f/∂W 를 구하면 된다. 체인룰을 이용하여 구해보자 즉, ∂g/∂X , ∂g/∂W 를 구해야 한다는 것이다. (앞의 부분은 sigmoid 자체를 미분하면 되므로 쉽다) ∂g/∂X 에 대하여 각 요소를 구해보면 이렇게 표현할 수 있으므로 ∂g/∂X 를 구해보면 X에 대한 편미분이므로 W를 상수취급한다. 즉 결과는 아래와 같다. W행렬의 전치행렬(transpose matrix)이다. 즉, W의 shape가 (a, b)였다면 W의 전치행렬은 (.. 2021. 12. 29.
4. 벡터 입력에 대한 합성함수 표현 벡터 입력에 대한 합성함수와 도함수 표현을 알아보자. 벡터를 행렬로 표현하여 곱셈, 합성함수와 도함수를 어떻게 표현할 것인지 알아볼 것이다. 1. 벡터의 곱 연산 벡터 입력에 대해 다음과 같은 출력을 가정해 보자.(딥러닝에서 본 것 같지 않나요?) 이를 파이썬 코드로 표현해보면 다음과 같다. import numpy as np X = np.array([[1, 2, 3]]) W = np.array([[3], [2], [1]]) print('x.shape', X.shape) print('w.shape', W.shape) def matmul_forward(X, W): return np.dot(X, W) print('matmul_forward ', matmul_forward(X, W)) 행렬의 곱셈을 복습해보자... 2021. 12. 29.
3. 입력이 여러 개인 함수와 도함수의 표현 입력이 여러 개인 함수와 도함수는 어떻게 표현할 수 있는지 알아보자. 간단한 함수부터 출발하자. 입력 x, y를 받아서 더하여 출력한다. geogebra로 그려보면 x, y, z로 이루어진 3차원에서 2차원 평면 그래프가 그려진다. sigmoid라고 하여 딥러닝에서 많이 봤던 함수와 합성하고자 한다. 로 정의되는 함수고, 이렇게 그려지는 함수다. 보통 classification, 분류에서 사용할 수 있는 활성화함수로도 쓰인다. g(x) -> f(x)로 합성시킬 것이다. 이 합성함수의 그래프를 파이썬으로 그려보자. matplotlib의 3차원 모듈을 이용할 것이다. from mpl_toolkits.mplot3d import axes3d import numpy as np import matplotlib.py.. 2021. 12. 28.
2. 함수와 합성함수의 도함수 표현하기 일반적으로 도함수의 정의는 아래와 같다. 이를 파이썬 코드로 표현해 보자 def deriv(func, input, delta=0.001): return (func(input + delta) - func(input)) / delta delta는 \(\Delta x\)의 표현으로 값을 줄리면 더 정확한 도함수를 얻겠지만... 연산이 많은 작업이라면 오래 걸릴 수 있으므로 적당히 하는 것을 추천 이차함수 \(x^{2}\) 와 도함수를 그래프로 그려보자. import numpy as np import matplotlib.pyplot as plt def square(x): return np.power(x,2) def deriv(func, input, delta=0.001): return (func(input + .. 2021. 12. 27.