• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

이해가 잘 안되서 질문드려요 ㅠ

21.03.27 10:42 작성 조회수 191

0

선생님~강의에서 첫번째 실습으로 하는 (강의 1:13부터 시작하는 내용)

'1  경사하강을 이용한 행렬 분해 ' 내용에서 결과(11:50)
기존 R의 행렬과 예측행렬 pred_matrix 를 보면, 

이렇게 결과가 나오는데요..
노란색 친 부분이 기존에 nan값이었던 부분인데요..
이 값들은 의미있게 예측이 된 것이 맞나요..?

(강의 8:10부터 내용)

이 내용을 보면 기존 R에서 nan 값의 위치하는 원소들은 제외하고, 경사하강법을 통해 P와 Q의 원소들을 업데이트 하는데..그러면 nan 값의 위치하는 원소들의 값은 경사하강이 되는게 맞는건지요..?

강의 (11:50~54)에서도 선생님께서 '최대한 값이 있는 것에 대해서는 실제값과 유사하게 근사되었음을 확인하실 수 있습니다. ' 라고 말씀하셨는데요..
그래서  nan값이 값들에 대한 예측은 의미없는거로 이해가 되었는데요..

그 이후, 두번째 실습인 영화평점 실습에서도 위와 같은 방식으로 예측행렬을 구하는데..
기존에 사용자가 영화를 보지 않은 평점은, 첫번째 실습에서의 nan값과 같은 거 아닌가요..?
그렇다면.. 예측행렬에서 nan값 위치들의 예측값들이 의미가 있는건지..즉 사용자가 관람하지 않은 영화에 대한 평점예측값이 이 방식에서는 의미가 있는 건지..의문이 듭니다.. 

제가 이해가 잘 안되네요..ㅜ 

답변 1

답변을 작성해보세요.

0

안녕하십니까,

1. '최대한 값이 있는 것에 대해서는 실제값과 유사하게 근사되었음을 확인하실 수 있습니다. ' 라고 말씀하셨는데요..그래서  nan값이 값들에 대한 예측은 의미없는거로 이해가 되었는데요..

=> nan 값들에 대한 예측이 의미가 있는 것입니다.

코드에서 P와 Q를  Random하게 값을 주었습니다. 이를 기반으로 경사하강법은 통해 예측 행렬 R을 만들었습니다.  경사하강법은 기계적으로 예측 오류값을 감소하는 방식으로 행렬 분해를 수행합니다. 계속 반복하면서 예측 오류를 감소 시키는 방향,  즉 원래 행렬값, 그리고 예측 행렬값과의 차이를 계속 줄이면서 예측 행렬을 만들어 갑니다.

이렇게 해서 만든 예측 행렬에서 원래 nan위치에 있는 값들을 예측해 나가는 겁니다.

그러니까 경사 하강법으로 행렬 분해 예측한 결과로 nan 위치에 있는 값을 예측합니다.

원래 적용할 시에는 오버 피팅하는지 확인하기 위해서 별도의 테스트 데이터를 추출하는데, 원래 값이 있는 테스트 데이터에서 특정 위치의 값을 nan으로 만든 후, 학습 된 예측 모델로 예측을 해보면서 규제계수등을 조절해서 학습 시킵니다.

감사합니다.