[인공지능(AI) 기초 다지기] - 경사하강법(순한맛)

Jeonghwan Kim·2022년 12월 15일
0
post-thumbnail

부스트코스 강의 인공지능(AI) 기초 다지기 중 '경사하강법(순한맛)'을 정리한 내용이다.

미분

  • 미분(differentiation)은 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구로 최적화에서 제일 많이 사용하는 기법

  • 미분은 함수 f의 주어진 점(x,f(x))에서의 접선의 기울기를 구하는 것

    • 한 점에서 접선의 기울기를 알면 어느 방향으로 점을 움직여야 함수값이 증가하는지/감소하는지 알 수 있음

      • 증가시키려면 미분값을 더하고, 감소시키려면 미분값을 뺌 (미분값이 음수이기에)
    • 미분값을 더하는 것을 경사상승법(gradient ascent)라 하며 함수의 극대값의 위치를 구할 때 사용함

    • 미분값을 빼는 것을 경사하강법(gradient descent)라 하며 함수의 극소값의 위치를 구할 때 사용함

    • 경사상승/경사하강 방법은 극값에 도달하면 움직임을 멈춤

경사하강법: 알고리즘

  • 미분을 계산하는 gradient, 시작점, 학습률, 알고리즘 종료조건을 설정해줌, 컴퓨터 계산에서 미분이 0이 되는것은 불가능하므로 eps보다 작을 때 종료시켜줌
    • 업데이트 속도를 조절하는 학습률을 조정해줌
    • 종료조건이 성리하기 전까지 미분값을 계속 업데이트

변수가 벡터인 경우

  • 벡터가 입력인 다변수 함수의 경우 편미분(partial differentiation)을 사용함
  • 각 변수별로 편미분을 계산한 gradient 벡터를 이용하여 경사하강/경사상승법에 사용할 수 있음

gradient vector

  • f(x,y)의 극소점으로 향하는 화살표들의 움직임, x,y의 어떤 점에서 출발하든 - gradient f 방향으로 따라가면 f(x,y)의 최소점으로 흐름

  • 등고선으로 살펴보면 graident vector는 원점에서 가장빨리 증가하는 방향으로 흐르고, - gradient vector는 가장 빨리 감소하게 되는 방향으로 흐름

    • 이처럼 gradient vector를 이용해 주어진 함수의 극댓점, 극솟점으로 흐르는 방향을 알 수 있고 최적화에 활용할 수 있음
  • 경사하강법 알고리즘

    • 앞에서는 미분값의 절대값을 계산했지만 벡터는 절대값을 구할 수 없으니 norm을 대신 계산한다.

0개의 댓글