가장 쉽게 배우는 머신러닝 1주차 : 경사하강법(Gradient descent method)

wwoo·2021년 6월 28일
0

머신러닝

목록 보기
3/10
post-thumbnail

3.📚경사 하강법(Gradient descent method)

1. 📘경사 하강법이란?

위에서 정의한 손실 함수를 대충 아래와 같은 모양을 가지고 있다고 가정해보자.

우리의 목표는 손실 함수를 최소화(Optimize)하는 것이다. 손실 함수를 최소화하는 방법은 이 그래프를 따라 점점 아래로 내려가는 것이다.

컴퓨터는 사람처럼 수식을 풀 수 없기 떄문에 경사 하강법이라는 방법을 써서 점진적으로 문제를 풀어간다. 처음에 랜덤으로 한 점으로부터 시작하고 좌우로 조금씩 움직이면서 이전 값보다 작아지는지를 관찰한다. 이때 한칸씩 전진하는 단위를 Learning rate라고 한다. 그리고 그래프의 최소점에 도달하게 되면 학습을 종료한다.

위의 그래프와 같이 만약 Learning rate가 너무 작다면 최소값에 수렴하기까지 많은 시간이 걸리게 된다.

반대로 만약 Learning rate가 너무 크다면 최소값을 지나치고 계속 진동하다가 최악의 경우에는 발산하게 될 수도 있다. 이런 상황을 Overshooting이라고 부른다.

📌 우리가 만든 머신러닝 모델이 학습을 잘하기 위해서는 적당한 Learning rate를 찾는 반복작업이 필수적이다.

2. 📕손실 함수를 그릴 수 있을까?

간단한 선형 회귀 문제의 경우는 그래프를 그릴 수는 있지만 복잡한 가설을 세울 경우 아래의 그래프와 같이 사람이 그릴 수도 없고 상상도 할 수 없는 형태가 된다.

우리의 목표는 이 손실 함수의 최소점인 Global cost minimum을 찾는 것이다. 그런데 Learning rate를 잘못 설정할 경우 Local cost minimum에 빠질 가능성이 높다. Cost가 높다는 것은 우리가 만든 모델의 정확도가 낮다는 말이다.

따라서 우리는 최대한 Global cost minimum을 찾기 위해 좋은 가설과 좋은 손실 함수를 만들어서 기계가 잘 학습할 수 있도록 만들어야하고 그것이 머신러닝 엔지니어의 핵심 역할이다.

0개의 댓글