반응형

안녕하세요 이번엔 SVD를 이용한 추천 시스템을 소개해 보려고 합니다.

그전에 SVD에 대해 간략히 소개해드리겠습니다.

 

 

특이값 분해(SVD) - 공돌이의 수학정리노트

 

angeloyeo.github.io

 

저는 이분의 글을 참고하여 개념을 익혔지만 사실 수학적인 부분은 깊게 이해하지 못했기 때문에 추천시스템을 활용하기 위한 정도만 학습하였고, 제 이해를 바탕으로 글을 작성하는 것이기 때문에 깊은 이해를 원하시면 위의 링크나 따로 검색을 이용해 주세요!!

 

 

* 배경 지식 

 

먼저 고유값 분해(EVD)가 있습니다. 고유값 분해는 정방행렬에 대해서만 적용 가능하여 한계가 존재합니다.

따라서 정방 행렬이 아닌 m x n 행렬에 적용될 수 있게 일반화된 EVD가 SVD 입니다.

즉, 특이값 분해(Singular Value Decomposition, SVD)의 정의는 임의의 m x n 차원의 행렬 A에 대하여 행렬을 분해할 수 있는 방법 중에 하나입니다.

 

 

* 특이값 분해의 기하학적 의미 

 

직교하는 벡터 집합에 대하여, 선형 변환 후에 그 크기는 변하지만 여전히 직교할 수 있게되는 그 직교 집합은 무엇인가?

그리고 선형 변환 후의 결과는 무엇인가?

 

 

* 특이값 분해의 활용 

 

특이값 분해는 분해되는 과정보다 분해된 행렬을 다시 조합하는 과정에서 그 응용력이 빛을 발합니다.

A행렬을 특이값 p개 만을 이용해 A' 라는 행렬로 부분복원이 가능합니다.

특이값의 크기에 따라 A의 정보량이 결정되기 때문에 값이 큰 몇개의 특이값들을 가지고도 충분히 유용한 정보를 유지할 수 있습니다.

 

 

특이값 분해를 통해  부분 복원을 하여 사진을 더욱 선명하게 만들 수도 있습니다.

 

SVD를 이용한 실습 예제를 보고 싶으시면 다음 글을 클릭해주세요↓↓↓↓↓

 

[Python] SVD를 이용한 추천시스템 만들기 - 2

이번 포스팅은 SVD를 이용한 추천시스템 2번째 글입니다. 저는 Oracle과 연동하여 사용하였습니다. SVD에 대한 이해가 필요하다면 이전 글을 보고 와주세요 ↓↓↓↓↓ https://maxtime1004.tistory.com/90 [Py

maxtime1004.tistory.com

 

반응형

+ Recent posts