ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 경사 하강법
    CS 공부/AI 2023. 1. 9. 19:45
    • 미분

    미분의 정의

    - sympy.diff()

    sympy.diff()

    • 경사상승법 / 경사하강법
    • 미분값을 더하면 경사상승법이라고 하며 극대값의 위치를 구할 때 사용
    • 미분값을 빼면 경사하강법이라고 하며 극소값의 위치를 구할 때 사용
    • 경사하강법 알고리즘

    var = init # var=x
    grad = gradient(var) # grad=f'(x)
    while (abs(grad) > eps ) : #컴퓨터로 계산할 때 미분값이 0이 되는 것은 불가능하므로 eps보다 작을 때 종료
         var = var - lr * grad # lr은 업데이트 속도 조절
         grad = gradient(var)
    • 편미분

    편미분의 정의

    - sympy.abc()

    각 변수 별로 편미분을 계산한 그레디언트 벡터를 이용하여 경사하강/상승법에 사용할 수 있다
    그레디언트 벡터 ▽f(x,y)는 각 점 (x,y)에서 가장 빨리 증가하는 방향으로 흐른다

    ex. f (x, y) = x^2 + 2y^2  => ▽f = (2x, 4y) => -▽f = -(2x, 4y)

    경사하강법 알고리즘 (그레디언트 벡터)

    var = init # var=x
    grad = gradient(var) # grad=f'(x)
    while (norm(grad) > eps ) : # 벡터는 절대값 대신 norm을 계산해서 종료조건을 설정
         var = var - lr * grad # lr은 업데이트 속도 조절
         grad = gradient(var)

     

    'CS 공부 > AI' 카테고리의 다른 글

    선형변환  (0) 2023.01.10
    Neural network  (0) 2023.01.09
    DL_Basic 1강. Historical Review  (0) 2023.01.08
    부분공간의 기저와 차원  (0) 2023.01.08
    선형종속  (0) 2023.01.06
Designed by Tistory.