input이 1인 경우에는 data가 위의 그림처럼 나오게되고, 하나의 x와 하나의 y로 결과값이 나오게 된다.
여러 개의 input인 경우, 즉 x1, x2, x3와 같이 three inputs 인 경우에
위 그림과 같이 quiz 1과 quiz 2, mid 1 점수를 통해 final 점수를 예측하는 것이다.
기존의 H(x)의 식에서 input의 갯수만큼 w와 곱해주면 된다.
cost function 또한 똑같이 예측한 값과 실제의 값을 구하는 것이기 때문에
input의 갯수만큼 예측한 값에 실제의 값을 빼서 제곱한 식을 해주면된다.
따라서, input이 늘어날 때마다 위의 그림과 같이 식을 세워주면된다.
하지만, 이렇게 input이 늘어날 때마다 식을 나열하는 것은 불편함을 준다.
이러한 문제를 해결하는 것이 matrix 이고, matrix multiplication 방식을 사용하여 간단하게 문제를 해결할 수 있도록 한다.
위의 그림처럼 Hypothesis를 행렬로 표현하게 되면 간단하게 행렬의 곱셈을 수행하여 원하는 결과를 얻을 수 있다.
여기서 자세히 보면, x와 w의 자리가 바뀌어있는데 곱셈은 순서가 바뀌어도 값이 똑같으므로 보통 matrix를 쓸 때 X를 먼저 쓰고 W를 뒤에 놓도록 한다.
실제 데이터는 row 방향으로 봤을 때 5개이고, 한 row를 instance라고 부른다.
한 instance 당 W를 곱할 수 도 있지만 instance가 많이 있는 경우 갯수만큼의 계산량을 필요로 한다. 따라서, 많은 효율성을 필요로 함
따라서, instace의 수 만큼 행렬을 만들어서 한꺼번에 곱셈을 하게되면 이전에 instace를 한줄 씩 곱한 값과 똑같이 나오게 된다.
instace의 갯수는 가변한 값이기 때문에 n 개로 두고,
Numpy 경우에는 -1, tensorflow 경우에는 None의 값으로 Matrix를 사용한다.
출력을 여러 개로 두고 싶은 경우에도 matrix를 사용할 수 있다.
위 그림은 2개의 출력을 하고 싶은 경우이다.
이 경우에는 [3, 2]의 W를 사용하면 된다.