본문 바로가기
반응형

경사하강법2

[경사하강법] 미분 , 경사하강법 , gradient vector , 확률적 경사하강법 ( SGD ) 이번 포스팅에서는 weight 업데이트에 사용되는 경사하강법에 대해 정리할 것이다. weight를 조정하는 방법을 설명하기 위해 가장 먼저 미분부터 살펴본다. 그 이유는 기울기를 알면 변수를 어느 방향으로 움직여야 함숫값이 증가하는지 감소하는지를 알 수 있기 때문이다. 그 후 변수가 벡터인 경우의 기울기를 나타내는 gradient vector를 다룰 것이다. 1. 미분(differentiation) 미분은 함수 f의 주어진 점 (x, f(x))에서의 접선의 기울기이다. ※ 파이썬에서 미분은 sym.diff함수를 사용하여 계산할 수 있다. import sympy as sym from sympy.abc import x sym.diff(sym.poly(x**2 + 2*x + 3), x) #poly(2*x + .. 2021. 8. 9.
28~29단계) 경사하강법 , 뉴턴 방법 , 함수 최적화 미분의 가장 중요한 용도는 함수를 최적화하는 것이다. 이번에는 특정 함수를 대상으로 최적화를 해볼 것이다. 함수 최적화 1. 로젠브록 함수 로젠브록 함수(Rosenbrock function)의 수식과 형태는 아래와 같다. 로젠브록 함수의 정의는 a, b가 정수일 때, 아래의 식과 같고, 위의 이미지는 a=1, b=100일 때에 해당된다. 목표는 로젠브록 함수의 출력이 최소가 되는 x0과 x1을 찾는 것이다. 실제로 로젠브록 함수의 최솟값은 (x0, x1) = (1, 1)이며 이를 DeZero를 사용하여 구해볼 것이다. 2. 미분 계산하기 import numpy as np from dezero import Variable def rosenbrock(x0, x1): y = 100 * (x1 - x0 ** 2.. 2021. 7. 3.
728x90
반응형