센로그

2. 선형 회귀/경사 하강법 본문

기타/기계학습

2. 선형 회귀/경사 하강법

seeyoun 2023. 2. 2. 16:35

◆ Linear Regression with One Variable
: 단변수 선형 회귀

 

  • m : 학습할 데이터 수
  • x : 입력 변수 (독립 변수)
  • y : 출력 변수 (종속 변수)
  • (x, y) : 한 데이터 셋
  • (x^i, y^i) : i번째 데이터 셋
  • h : 가설(hypothesis). 학습 알고리즘이 하는 일. x와 y를 매핑하는 함수

 

학습 알고리즘을 디자인할 때, 우리가 결정해야 할 것은

가설 'h'를 어떻게 표현할 것인지 결정하는 것!

 

 

단변수 선형 함수

하나의 변수를 가지고 결과를 예측하는 함수.

θ0과 θ1은 파라미터.

 


Cost Function
: 비용 함수

에서, θ0와 θ1의 값을 고르는 방법!

실제 결과값인 y값과 hθ(x)값의 차를 최소화해주는 θ0, θ1을 찾으면 됨.

 

평균 제곱 오차 함수 (Squared Error Function)

J(θ0, θ1)의 값을 최소화하는 파라미터 θ0, θ1을 구하면 됨.

y값과 hθ(x)값의 오차를 제곱해서 더한 뒤 나눔 (평균)

(1/2 를 곱하는 것은 미분시 계산을 편하게 하기 위함)

 

제곱 오차 함수는 주로 회귀 문제에서 가장 많이 사용됨.

 

 만약 θ0 = 0 인 경우, J는 아래와 같은 2차원 평면에 표현 가능

그러나 θ0 != 0인 경우, J를 표현하려면 3차원이 필요함

 

이것을 등고선 그래프에 표현하면 아래와 같이 나옴

핑크색 x 세개는 J값이 다 같음~

타원 중심일수록 최소값이 됨

 

위 그림에서, hθ(x)의 형상은 오른쪽 그래프에서 빨간 점 부분인데, 이는 최소값과 꽤 떨어져있음

따라서 데이터셋과 hθ(x)와의 양상도 다름

 

 

아까보다 최소값에 근접한 값을 가져온 결과!

데이터셋과 양상도 비슷함

 


경사 하강법

비용 함수 J를 최소화하는 경사 하강 알고리즘. J의 최솟값을 찾을 때까지 한 스텝씩 내려감

 

산 정상에서 산 아래로 내려가는 가장 빠른 길을 찾는 과정.

한 스텝씩 움직여서 그 지점에서의 주위의 최소값을 찾아 다음 스텝을 결정함.

시작 지점이 다르면 경로도 달라짐

 

α : 학습률 (언덕 내려갈 때 보폭)

:= : 지정 연산자(컴퓨터에서의 대입 연산자)

∂ : 편미분

 

 

매 단계에서 θ0, θ1의 값을 동시에 업데이트.

temp0과 temp1의 값을 각각 구한 후, θ0 = temp0과 θ1 = temp1을 계산한다.

 

미분항이 양수이면, θ1 := θ1 - α*양수 이므로, 최솟값이 있는 왼쪽으로 이동

미분항이 음수이면, θ1 := θ1 - α*음수 이므로, 최솟값이 있는 오른쪽으로 이동

 

* 최솟값에 가까워질수록 자동으로 더 작은 거리를 이동하기 때문에, 최솟값에 가까울 때 학습률 α를 줄일 필요는 없다!

 


학습률 α가 클수록 경사가 가팔라짐.

단, 학습률 α가 너무 크면 아래와 같이 경사하강법이 제대로 동작 못하는 경우가 벌어질 수 있음.

이럴땐 적당히 작게 조절해야함


◆ 배치 경사 하강 알고리즘

전체 학습 데이터를 하나의 배치로 묶어 학습시키는 경사 하강법

매 스텝마다 모든 학습 데이터셋에 대해 합산함.

'기타 > 기계학습' 카테고리의 다른 글

3. 피처 스케일링/정규 방정식  (0) 2023.02.02
1. 머신러닝 기초  (0) 2023.01.31
Comments