-
Matrix Multiplication | Advanced Learning AlgorithmMachine Learning/Stanford ML Specialization 2024. 2. 10. 06:05
지난시간, for loop을 이용하는것보다 vectorization을 통해서 2D Array, 즉 Matrix를 이용하면 훨씬 코드를 간단하게 만들 수 있었다. 그렇다면 이 Matrix를 곱한다는것은 어떤 의미일까? Linear Algibra 수업으로 되돌아가보자.
간단한 예시이다. 2개의 Vector를 dot product하게 되면, 간단하게 같은 층에 있는 값들끼리 곱해서 더하게 된다. 이런식의 행렬같은 경우, 같은 위치에 있는 값들을 모두 곱해서 더하는 방식인데, 이런것을 벡터 도트의 곱셉이라고 한다. 그런데 이런 방식이 아니라, 다른 방식도 존재한다.
벡터 a를 전치(transpose) 하게 되면 형태가 변형이 된다. 그런데 이 transpose된 값을 w벡터와 곱하면, 위에서 벡터 도트의 곱셈을 했던것과 같은 결과가 나오게 된다.
자, 이제 Vector에 Matrix를 곱해보자. a 는 1 x 2 이지만, w 는 2 x 2일 경우 아래와 같이 계산할 수 있다.
마지막으로, 그렇다면 matrix 를 matrix에 어떻게 곱할 수 있을까? A도 W도 2x2 matrix라고 해보자. 우선 A의 Transpose를 만들어주어야 하는데, 그러려면 아래와 같이 Colums를 Rows로 만들어주면 된다. 그리고 두 matrix의 곱셈을 하기 위해서는 조금 복잡하기 각 값을 곱해서, 다시 2x2 매트릭스가 탄생하게 된다.
각각의 값들은 첫번째 매트릭스의 rows들과 columns들을 순서에 알맞게 곱해준 값이 된다.
Reference
Advanced Learning Algorithms
In the second course of the Machine Learning Specialization, you will: • Build and train a neural network with TensorFlow to perform multi-class ... 무료로 등록하십시오.
www.coursera.org
'Machine Learning > Stanford ML Specialization' 카테고리의 다른 글