[N134] TIL 및 회고

Sea Panda·2022년 10월 27일
0

부트캠프 TIL

목록 보기
12/46

0. 학습목표

  • 미분의 개념을 이해할 수 있다.
  • Gradient Descent에 대해 설명할 수 있다.
  • Linear Regression의 학습을 Gradient Descent를 이용해 설명할 수 있다.

1. 주요개념

1. Grdient Descent(경사하강법)

💡
앞이 보이지 않는 안개가 낀 산을 내려올 때는, 모든 방향으로 산을 더듬어가며 산의 높이가 가장 낮아지는 방향으로 한 발씩 내딛어 간다.

경사하강법을 직관적으로 이해하기 가장 쉬운 예시이다. 이 예시를 실제 모델에 대입하자면, 산은 예측값과 실제값 사이의 에러를 나타내는 오차 함수 J(θ1,θ2)J(\theta_1,\theta_2)이고, 이 오차 함수 값이 낮아지는 방향으로 독립변수 θ1\theta_1θ2\theta_2을 변형시켜가며 최종적으로 이 오차함수의 최소값을 갖도록 하는 독립변수를 찾는 방법이다.

그리고 이때 이 최소가 되는 점을 찾기 위해서 미분을 활용한다. 경사하강법이라는 이름에서 알 수 있듯이 함수의 기울기를 이용하여 θ\theta의 값을 어디로 옮겼을 때 함수가 최소값을 찾는지 알아보는 방법이다. 아래의 이미지가 이를 더 직관적으로 이해하는데 도움이 될 것이다.

특정 포인트 θ\theta에서 θ\theta가 커질수록 함수값이 커지는 중이라면 음의 방향으로 θ\theta를 옮겨야 할 것 이고, 반대로 특정 포인트 θ\theta에서 θ\theta가 커질수록 함수값이 작아지는 중이라면 양의 방향으로 θ\theta를 옮기면 된다.

💡 경사하강 알고리즘
1. 임의로 θ1,θ2\theta_1,\theta_2를 랜덤으로 선택한다. 즉, Random initialization을 실행한다.
2. 반복적으로 파라미터 θ1,θ2\theta_1,\theta_2를 업데이트 해가며, 오차함수 J(θ1,θ2)J(\theta_1,\theta_2)값이 낮아지는 방향으로 진행한다.
3. 기울기가 커진다는 것은 오차함수 값이 커지는 방향이라는 것과 같기 때문에 경사하강법 알고리즘은 기울기의 반대방향으로 이동한다.
4. 기울기가 0이 될 때까지 이동한다.
❗ 단순선형회귀 모델에서는 오차함수의 그래프가 bowl형태를 가지므로 도함수가 0이되면 Global minimum에 도달한다.


💡 경사하강 알고리즘 수학적 공식

θn+1=θnηJ(θn)\theta_{n+1} = \theta_n - \eta\nabla J(\theta_n)
η=학습률,J(θn)=기울기\eta = 학습률, \nabla J(\theta_n) = 기울기

위 공식을 살펴보면 경사하강 알고리즘은 기울기의 반대방향으로 초기 파라미터 값 θn\theta_n에서 계속적으로 업데이트 됨을 알 수 있다.

여기서 주목할 점은 기울기 J(θn)\nabla J(\theta_n)에 학습률 η\eta이 곱해져 있다는 것이다. 이는 학습률에 의해 기울기가 갱신됨을 의미한다. 이 학습률은 기울기가 이동하는 속도를 의미한다. 기울기가 이동하는 속도는 경사하강 알고리즘이 오차함수의 Global minimum을 찾는데에 중요한 역할을 하는 요소이다.

2. Learning Rate(학습률)

  1. 학습률이 너무 낮은 경우
  2. 학습률이 적당한 경우
  3. 학습률이 너무 클 경우

학습룰이 너무 낮으면 알고리즘이 수렴하기 위해서 반복을 많이 해야되고 이는 결국 수렴에 상당한 시간이 소요됨을 의미한다. 반대로 학습률이 너무 크면 오히려 극소값을 지나쳐 버려서 알고리즘이 수렴을 못하고 계산을 계속 반복하게 될 수도 있기 때문에 학습률을 정할 때는 신중해야 한다.

3. Linear Regression(선형 회귀)

선형 회귀(Linear Regression)는 널리 사용되는 회귀 알고리즘이다.(회귀가 뭔지는 찾아보자.)선형회귀는 종속 변수 y와 하나 이상의 독립변수 x와의 선형 상관관계를 모델링하는 기법이다. 만약 독립변수 x가 1개라면 단순 선형 회귀라고 하고, 2개 이상이면 다중 선형 회귀라고 한다. 그 중 이번 sprint에서는 단순 선형 회귀에 대해서 다룬다.

3-1. 단순 선형 회귀(Simple Linear Regression)

단순 선형 회귀는 y=Wx+by = Wx+b의 식으로 나타난다. 머신러닝에서는 독립변수 x에 곱해지는 WW값을 가중치(Weight), 상수항에 해당하는 bb를 편향(Bias)이라고 부른다. 따라서 단순 선형 회귀 모델을 훈련하는 것은 적절한 WWbb값을 찾는 것이다. 그래프의 형태는 직선으로 나타난다.

머신러닝 모델의 목표는 실제값의 예측이다. 그 중에서도 더 정확하게 실제값을 예측하는 것이 머신러닝 모델의 목표이다. 그 중 단순 선형 회귀는 Best-fit regression line을 가지는 것을 목표로 한다. 이 Best-fit regression line이 학습되어지는 과정은 다음과 같다.

💡 단순 선형 회귀의 수학적 표현:

hθ(x)=θ0+θ1xh_\theta(x)=\theta_0 + \theta_1 x
θ0:y절편,θ1>:기울기\theta_0: y-절편, \theta_1>: 기울기

x를 넣었을 때, y값을 예측하는 선형 모델로서 수학적으로 표현은 위와 같다.

💡 단순 선형 회귀의 오차함수

J(θ)=12mΣ(hθ(xi)yi)2J(\theta) = {1\over2m}\Sigma(h_\theta(x^i)-y^i)^2

모델이 데이터를 Training하는 과정에서, 모델은 예측값과 실제값 사이의 거리를 Mean Squared Error를 통해 계산해 오차 함수를 구한다.

위의 오차함수를 시각화하면 아래와 같은 Bowl-shaped function이다. 일반적으로는 전역 최솟값, Global minimum지역 최솟값, local minimum이 존재 하는것에 비하여 단순 선형회귀의 경우 앞 서 말했듯이 Bowl-shaped function을 가지기 때문에 Global minimum밖에 존재하지 않는다. 따라서 단순 선형회귀는 필연적으로 Global minimum으로 수렴한다.

앞에서 긴 글을 통해서 오차함수의 최소값에서 기울기가 0이라는 것을 알 수 있다. 최적의 가설함수를 구하기 위해서 하강 알고리즘을 다음과 같이 적용하여 계산한다. 그리고 이를 최소값에 도달할 때까지 아래와 같이 반복한다.

💡 선형회귀모델의 학습과정
1. 랜덤으로 θ1\theta_1,θ2\theta_2을 선택한다.
2. 그리고 cost function이 최소값에 도달할때까지 iteratively이 값들을 업데이트 한다.
3. 모델이 Cost Function의 최소값에 도달했을 때, 최상의 θ1\theta_1,θ2\theta_2을 가지게 된다.
4. 최종적으로 업데이트된 θ1\theta_1,θ2\theta_2를 이용하여 모델은 y값을 예측하게 된다.

2. 회고

명령어는 사실 미분해주는 함수를 하나 더 배우긴 했지만 딱히 정리까지는 안해도 괜찮을 것 같아서 안했다. 뭔가 확실히 초반에 그 열정이 좀 빠진거 같다. 확실히 느껴진다. 이번주 이번 수업을 마지막으로 Section1의 모든 교육은 끝났다. 다음주 일주일은 프로젝트를 진행한다고 하는데 뭘 할지 궁금하긴 하다.
프로젝트가 좀 널널할 것 같으면 Section2에서 배울 머신러닝을 좀 선행학습 좀 해야겠다. 근데 진짜 SQL은 언제하지 진짜 두 번째로 산 책인데 아직도 못끝내고 있어서 마음이 좀 아프다. 후..할게 점점 산더미처럼 불어나는 것 같다.

0개의 댓글