SGD 4

[Linear Algebra] SVD(Singular Value Decomposition)

기존의 이웃 기반 협업 필터링(Neighbor Based Collaborative Filtering, NBCF)이 가지고 있는 희소성(Sparsity), 확장성(Scalarbility) 문제를 해결하기 위해 모델 기반 협업 필터링(Model Based Collaborative Filtering, MBCF)이 등장했다. MBCF의 종류는 엄청나게 다양하지만 여기서는 행렬 분해(Matrix Factorization) 중 대표적인 기법인 SVD(Singular Value Decomposition)에 대해서만 다룰 것이다. 이전에 다룬 고윳값 분해와는 조금 다른 방식으로 접근한다. SVD는 특이값 분해라고 부른다. SVD는 행렬을 고윳값과 고유벡터가 아닌, 특이벡터(Singular vector)들과 특이값(si..

[Recommender System] Neighborhood based method(CF)

K-Neighborhood based method(KNN)은 k개의 군집으로 clustering을 하는 머신러닝 기법 중 하나이다. 추천시스템에서 KNN이라 함은 Explicit Data 즉, 유저가 자신의 선호도를 직접 표현한 데이터를 가지고 새로 유입된 사용자 혹은 상품에 대해서 선호도를 예측하는 기법이라고 볼 수 있다. User Based Collaborative Filtering 사용자 간 유사도를 측정해 사용자가 아이템에 해당하는 평점을 직접 입력하지 않더라도, 해당 사용자와 유사한 사용자의 평점을 가지고 사용자에 대한 아이템의 선호도를 예측하는 기법이다. 주로 코사인 유사도, 피어슨 유사도를 사용하여 유사도를 계산하여 측정한다. 주의해야할 점은 해당 사용자가 측정한 평점에 bias가 들어갈 수..

[CS231N] Optimization의 종류 - SGD부터 Adam까지

Contents Mini-batch SGD 1. Sample a batch of data 2. Forward prop it through the graph, get loss 3. Backprop to calculate the gradients 4. Update the parameters using the gradient 이런 경우에는 몇천만개의 데이터들을 learning rate($\eta$) 하나로 고정을 시키고 최적화를 시키는 것이 과연 좋은 것인가? 라는 물음을 할 수 있다. 아래와 같은 SGD의 약점은 시작을 해서 flatten 지점에서 넘어가지 못하고 local minimum에 빠져버린다. Momentum GD와 Momentum의 다른점은 어떤 것인가? gradient descent의 경우 $ ..

[Optimization] Gradient Descent

경사법 ( 경사 하강법 ) 신경망에서 최적의 매개변수를 학습 시에 찾아야 한다. 최적이란 손실 함수가 최솟값이 될 때의 매개변수 값이다. 하지만 매개변수의 공간이 광대하여 최솟값을 찾는데에 있어 어려움이 있기 때문에 경사하강법을 사용하여 최솟값을 찾으려고 한다. 하지만 그 기울기가 가리키는 곳에 정말 함수의 최솟값이 있는지 보장할 수 없다(안장점). 실제로 복잡한 함수에서는 기울기가 가리키는 방향에 최솟값이 없는 경우가 대부분이다. 경사법은 현 위치에서 기울어진 방향으로 일정 거리만큼 이동하는 것을 말한다. 그런 다음 이동한 곳에서 다시 기울기를 구하고, 또 기울어진 방향으로 나아가기를 반복한다. 이 방법은 특히 신경망 학습에 많이 사용된다. $x_{0} = x_{0} - \eta {\partial f ..

반응형