지금까지 해왔던 것과 달리, 이번 글에서는 행렬을 이용해 Linear Regression을 해보도록 하겠습니다.
데이터와 가중치는 아래 그림과 같이 행렬로 구성되어 있으며, 행렬 곱을 이용해 계산합니다.
위 사진의 식은 아래와 같이 계산됩니다.
사실 바로 전 글인 변수와 가중치가 각각 n개 있는 데이터를 학습하는 것과 같지만, 데이터가 행렬 형태로 들어온다는 점이 다릅니다.
데이터는 아래와 같이 저장합니다.
1 |
|
여기서 쓰일 가설 함수는 이전에 쓰던 것과 매개변수의 종류가 약간 다릅니다.
1 |
|
idx라는 매개 변수는 행렬에 있는 전체 데이터 중 몇 번째 데이터를 사용할 지를 결정하는 매개변수이며, 뒤에 나올 코드에도 계속 활용이 됩니다.
비용 함수는 다음과 같습니다.
1 |
|
미분 함수는 idx번째 데이터를 활용하되, wi에 대해 편미분한 값을 반환하는 함수입니다.
1 |
|
여기까지 잘 구현했다면 학습 함수는 이전 글에서 썼던 코드를 약간 수정하는 정도밖에 되지 않습니다.
1 |
|
전체 코드는 아래에 있습니다. 이전 글과 마찬가지로 inline함수와 register변수를 함께 사용합니다.
1 |
|
이 글을 마지막으로 Linear Regression의 설명이 끝났습니다. 다음 글부터는 Classification에 대해 쓸 예정입니다.