<머신러닝의 기본 프로세스 - 가설 정의, 손실함수 정의, 최적화 정의 >

① 학습하고자 하는 가설(Hypothesis) h(θ) 을 수학적 표현식으로 나타낸다

② 가설의 성능을 측정할 수 있는 손실함수(Loss Function) J(θ)을 정의한다

③ 손실함수 J(θ)을 최소화(Minimize)할 수 있는 학습 알고리즘을 설계한다

 

 

 

1. 가설 정의

ex) 선형 회귀 모델

y = Wx + b

 

x = 인풋 데이터  /  y = 타겟 데이터  / W와 b는 파라미터(θ) 

 

 

 

 

2. 손실함수 정의

: 적절한 파라미터 값을 알아내기 위해 이 과정이 필요

 

ex) 평균제곱오차(Mean of Squared Error, MSE)

사진출처 https://dailyheumsi.tistory.com/167

 yi = 정답값

y^i = 예측값

 

모델의 예측값이 정답과 멀다면 MSE 손실함수는 큰 값을 가지게 되고 정답에 가깝다면 MSE 손실함수는 작은 값을 갖게 됨

 

이처럼 손실 함수는 우리가 풀고자 하는 목적에 가까운 형태로 파라미터가 최적화 되었을 때(모델이 잘 학습되었을 때) 더 작은 값을 갖는 특성을 가짐

 

따라서 손실함수를 "비용 함수(Cost Function)"라고도 부름

 

 

 

 

3. 최적화 정의

최적화Optimization 기법 = 파라미터를 적절한 값으로 업데이트 하는 알고리즘

대표적인 기법 = Gradient Descent (경사하강법)

 

Gradient Descent

출처 https://codingslime.tistory.com/18

: 현재 스텝의 파라미터W에서 손실함수(cost)의 미분값에 러닝레이트(Learning rate) α 를 곱한만큼을 빼서 다음 스텝의 파라미터 값으로 지정

 

+ 학습률(Learning rate) = W에 변화를 주는 정도

 

 

따라서 손실 함수의 미분값이 크면 하나의 스텝에서 파라미터가 많이 업데이트 되고

손실 함수의 미분값이 작으면 적게 업데이트 됨

 

또한 러닝레이트α 가 크면 많이 업데이트되어 반복횟수가 줄어들고

러닝레이트α 가 작으면 적게 업데이트되어 반복횟수가 늘어난다.

 

출처 https://www.skyer9.pe.kr/wordpress/?p=437

 

+ Batch Gradient Descent, Stochastic Gradient Descent, Mini-Batch Gradient Descent

위에서 살펴봤던 경사하강법은 

 

트레이닝 데이터 n개의 손실함수 미분값을 모두 더한 뒤 평균을 취해서 파라미터를 한 스텝 업데이트 하는 방법이었다.

이런 방법을 전체 트레이닝 데이터를 하나의 Batch로 만들어 사용하기 때문에 Batch Gradient Descent 라고 부른다.

---> 트레이닝 데이터가 많아지면 파라미터를 한 스텝 업데이트하는데 많은 시간이 걸린다는 단점이 있다!

 

 

이와 반대로, Stochastic Gradient Descent 방법은 1개의 트레이닝 데이터만 사용하는 기법이다.

---> 파라미터를 자주 업데이트할 수 있지만 전체 트레이닝 데이터의 특성을 고려하지 않고 각각의 트레이닝 데이터의 특성만을 고려하므로 부정확한 방향으로 업데이트가 진행될 수 있다.

 

 

따라서, 실제 문제를 해결할 때는 이 둘의 절충적 기법인 Mini-Batch Gradient Descent 를 많이 사용한다.

전체 트레이닝 데이터 Batch가 1000(n)개라면 이를 100(m)개씩 묶은 Mini-Batch 개수만큼의 손실 함수 미분값 평균을 이용해서 파라미터를 한 스텝 업데이트 하는 기법이다.

 

 

'Study > Deep Learning' 카테고리의 다른 글

다양한 Computer Vision 문제 영역  (0) 2021.10.14
머신러닝 Data 종류  (0) 2021.10.14
딥러닝의 응용분야  (0) 2021.10.13
머신러닝/딥러닝 기초  (0) 2021.10.13
수치 미분  (0) 2020.11.06

+ Recent posts