본문 바로가기

카테고리 없음

Google ML - 3) ML 전환하기

선형 회귀

☞ 점 집합에 가장 잘 맞는 직선 또는 초평면을 찾기 위한 방법

이 모듈에서는 선형 회귀를 직관적으로 탐구한 후 선형 회귀에 대한 머신러닝적 접근 방식의 기초를 다집니다.

 

학습목적
  • 선형 회귀에 관한 지식을 상기합니다.
  • 머신러닝에서의 가중치와 편향이 선형 회귀에서의 기울기 및 오프셋과 어떤 관계를 갖는 지 설명합니다.
  • '손실'의 일반적인 개념과 그 중 특별히 제곱 손실에 대해 설명합니다.

 

동영상 강의

 

말씀드렸듯이, Google 모델은 데이터를 통해 학습시킵니다. 

여기에는 복잡한 모델 유형도 많고 데이터를 학습할 수 있는 흥미로운 방식도 많죠.

하지만 일단 아주 쉽고 친숙한 방식으로 시작해서 좀 더 복잡한 방식으로 넘어가도록 하겠습니다.  

 

첫 번째 데이터 모델을 학습시켜 볼까요?

간단한 데이터 세트예요.

X축은 입력값인 주택 면적이고 Y축은 목푯값인 주택 가격 예상가죠.

 


 

이제 주택 면적을 입력하면 주택 가격을 예측하여 출력하는 모델을 만들어볼게요.

데이터 세트에 라벨이 있는 예시가 여러 개 있네요.

 

학생의 마음으로 돌아가서 여기에 맞는 선을 그어볼게요.

데이터 세트를 잘 보고 이쯤에 선을 그으면 이런 모습이 됩니다.

이제 이 선이 입력값에 따라 주택 가격을 예측한 모델이 되죠.


이 선을 방정식으로 정의하면 Y = WX + B가 돼요.

고등학교에서 배울 땐 MX라고 썼지만 머신 러닝에서는 W를 쓰죠.

가중치(weight) 벡터의 W를 나타내요.

여기 작은 첨자가 들어가죠.

차원이 늘어날 수도 있으니까요.

B는 편향을 나타내요. 그리고 W가 기울기죠.

 


 

선을 제대로 그었는지 어떻게 알 수 있을까요?

손실이라는 개념을 생각해보세요.

 

손실을 보면 아까 그린 이 선이 각각의 예시를 얼마나 잘 예측하는지 알 수 있습니다.

예시에서 주어진 예측값 X에서 실제값을 빼면 손실값을 정의할 수 있죠.

 

이 예시는 손실이 어느 정도 있네요.

여기에는 손실이 거의 없고 여기는 손실이 딱 0이네요.

이 경우 손실이 양수죠. 손실은 항상 0 이상의 양수 범위에 있어요.


손실은 어떻게 정의될까요?

 

이 부분은 조금 더 명확하게 생각해 볼 필요가 있습니다.  

회귀 문제에서 손실을 간단히 정의하는 방법이 있어요.

 

손실에 관한 함수가 이것밖에 없는 건 아니지만 이 방법으로 시작하면 좋죠.


이걸 L2 손실이라고 합니다.

제곱 오차라고도 하죠.

이 손실은 각 예시별로 정의되는데 예측값과 실제값의 차를 제곱한 값이에요.

 

물론 실제값에서 점점 멀어지면서 손실도 제곱이 되면서 커지죠. 

 

모델을 훈련시킬 때는 하나의 예시가 아니라 전체 데이터 세트에서 손실을 최소화해야 해요.