2. [머신러닝] Linear Regression

김범수·2022년 6월 2일
0

머신러닝, 딥러닝

목록 보기
2/10

회귀 (Regression)

Training Data를 이용하여 데이터의 특성과 상관관계 등을 파악하고, 그 결과를 바탕으로 Training Data에 없는 미지의 데이터가 주어졌을 경우에, 그 결과를 연속적인 (숫자) 값으로 예측하는 것

ex) 공부시간과 시험성적 관계, 집 평수와 집 가격 관계 등

https://blog.kakaocdn.net/dn/5ZCsY/btqVV3vgOsK/VjDs5dyDaHSSE1khuWqcyK/img.png

아직 고려할 수준이 아닐지 모르겠지만, 인풋에 대한 결과 값으로 Training을 시키는 만큼 인풋과 결과 값의 상관 관계가 있는 데이터를 사용하는 것도 중요할 것이라고 예측됩니다.

학습 개념

[Step 1] Analyze Training Data

https://blog.kakaocdn.net/dn/SU43P/btqV09Brv5v/2dDcoUDKmOGm56d8TDfem0/img.png

  • 학습 데이터(Training Data)는 입력(x)인 공부시간에 비례해서 출력(y)인 시험성적도 증가하는 경향이 있음
  • 즉, 입력(x)과 출력(y)은 y = Wx + b 형태로 나타낼 수 있음

[Step 2] Find W and b

https://blog.kakaocdn.net/dn/bFxvWt/btqV2aNBRtr/xwW7qVa2MEl140n1yC2i4k/img.png

  • [Step 1]에서 y =Wx + b 라고 나타낼 수 있기 때문에 해당 하는 여러 직선 中
  • Training Data의 특성을 가장 잘 나타내는 가중치 W(기울기), 바이어스 b(y 절편)를 찾는 것이 학습 개념

Training Data의 입력과 출력 간의 상관 관계를 이해하여 어떤 그래프를 나타낼지 예측하는 과정이 꽤나 중요한 과정이라고 생각됩니다.

https://blog.kakaocdn.net/dn/LX1Jh/btqV08WUO1y/eon86m8iaBKKUcIWlBnN1k/img.png

Training Data의 정답(t) 값과 직선 y = Wx + b 값의 차이인 오차(error) 값을 통하여 가중치와 바이어스를 설정합니다.

오차 (error) = t - y = t - (Wx + b)

오차가 크다면 가중치와 바이어스 값이 잘못된 것이고, 오차가 작다면 가중치와 바이어스 값이 잘 설정된 것이기 때문에 미래 값 예측도 정확할 수 있다고 예상이 가능합니다.

  • > 모든 데이터의 오차의 합이 최소가 되는, 미래 값을 잘 예측 가능한 기울기 W와 바이어스 b 를 찾아야 합니다.

손실함수 (Loss Function)

손실함수는 Trainnig Data의 정답(t)과 입력(x)에 대한 대한 계산 값 y의 차이를 모두 더해 수식으로 나타낸 것 입니다.

※ 각각의 오차는 (+), (-) 값이 존재하므로 오차 제곱의 합을 통해 계산합니다.

(제곱을 하기 때문에 정답과 계산값의 차이가 크다면 오차는 더 크기 때문에 학습에 있어 장점을 가집니다.)

https://blog.kakaocdn.net/dn/cbGtLa/btqVZTlBWLu/FH8kTbar7UI4q3pZtlpwXK/img.png

https://blog.kakaocdn.net/dn/qqvsG/btqVZS73BiQ/pJvzUj1YMhZoPHJzNBqpL0/img.png

x와 t는 Training에서 주어지는 값이므로 손실함수 E(W,b)는 W와 b에 영향을 받는 함수이며, E(W, b)가 작다는 것은 평균 오차가 작다는 의미입니다.

=> 손실 함수 E(W, b)가 최소값을 갖도록 가중치와 바이어스를 구하는 것이 Regression model의 최종 목적

위 수식에서 손실 함수가 MSE^2 형태인 2차 함수 형태를 띄고 있기 때문에 포물선의 형태를 띄고 있을 겁니다.

(실제로 완전한 포물선 형태를 띄고있을거라 생각되지 않아 설명드릴 경사하강법은 아주 간단한 예측법이라고 생각됩니다.)

  • 경사하강법 (Gradient Decent Algorithm)

https://blog.kakaocdn.net/dn/daWeXD/btqV19BeJir/ver9aJ2pejc2VolAGM8WmK/img.png

  1. 임의의 가중치 W 선택합니다.
  2. 해당 W에서의 dE(W)/dW 편미분 값을 구합니다.
  3. if) dE(W)/dW > 0 : W를 왼쪽으로 이동시켜(감소), 손실함수 E(W) 최소값을 찾습니다. elif) dE(W)/dW < 0 : W를 오른쪽으로 이동시켜(증가) 손실함수 E(W) 최소값을 찾습니다.

https://blog.kakaocdn.net/dn/bugKnf/btqV19gTb6n/VHau8JglqTi8qT0Zkkda90/img.png

α는 학습율이라고 부르며, W 값의 감소 또는 증가 비율을 나타냅니다.

https://blog.kakaocdn.net/dn/dDxV9N/btqV2atmluj/IsxZEOD7O4OeSRs9QGuBRk/img.png

이처럼 가중치 W와 바이어스 b를 편미분을 이용하여 손실함수의 최소값을 찾는 방법을 경사하강법이라고 합니다.

출처 : 유튜브 NeoWizard 채널 머신러닝/딥러닝 강의

profile
iOS Developer

0개의 댓글