티스토리 뷰

머신러닝/기초

행렬 연산 (Matrix C)

기루광 2017. 5. 8. 00:09

이 내용은 다크 프로그래머님의 http://darkpgmr.tistory.com/141  (벡터 미분과 행렬 미분) 내용을 보고 내용을 정리 한 수준입니다. 다크 프로그래머님의 내용과 같이 추가로 https://en.wikipedia.org/wiki/Matrix_calculus 위키피디아 내용도 참조하였습니다. 


학부 시절에 배웠던 gradient 가 머신러닝을 하면서 이렇게 와 닿을 줄 몰랐습니다. x1, x2, x3 독립 변수를 가지는 f(x) 에 대하여 gradient 를 취하면 각 독립변수에 대한 미분 값을 구할 수 있습니다. ( 스칼라 미분을 벡터로 확장). 다음에 배우겠지만, vector 를 vector 로 미분하게 되면 jacobian 까지 확장 될 수 있습니다.





이제 추가로 matrix(행렬)과 vector, scala 에 대해서 일반적인 미분식을 사용하면 아래와 같이 정리 할 수 있습니다.

다크프로그래님의 말씀처럼, 정리하는 폼에 따라서 Numerator-layout notation(분자 우선 표현), Denominator-layout notation(분모 우선 표현) 2가지 종류에 따라서 numerator 은 행벡터로 , denominator 는 열벡터로 표현 할 수 있습니다.단순 표시하는 notation 에 따라 표현식이 달라질 수 있으나, 결과적으로 transpose 를 하면 서로 같은 내용이라는 걸 알 수 있습니다. 저도 혼동이 안가고자 모든 표현을 numerator 분자우선 표현으로 식을 정리하도록 하겠습니다.

* 볼드체 경우는 열벡터 (column vector)

* 대문자 경우는 행렬 (matrix)


 

 Scala y

Vector y (size m)

Matrix Y (size m x n)

 Scala x

 Vector x (size n)


 Matrix X (size m x n)








댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함