728x90
반응형

데이터사이언스/PyTorch 5

PyTorch 5 - 딥러닝 기반 협업필터링

딥러닝 기반 협업필터링¶ 이번 포스팅에서는 신경망을 기반으로 한 협업필터링을 구현해본다. 신경망 기반 협업필터링은, 기존의 MF기반 협업필터링과는 조금 다르다. MF기반은 벡터끼리의 내적곱을 활용하지만, 신경망 기반은 비선형 활성함수(relu)를 사용하게 된다. In [43]: # 패키지 import from pathlib import Path import pandas as pd import numpy as np In [44]: data = pd.read_csv('./ml-latest-small/ratings.csv') data.head() Out[44]: userId movieId rating timestamp 0 1 1 4.0 964982703 1 1 3 4.0 964981247 2 1 6 4.0 9..

PyTorch 4 - 협업필터링

PyTorch를 활용한 협업필터링¶ 이번 포스팅에서는 행렬분해를 사용한 추천시스템 문제를 풀어보려 한다. 그리고 더 일반적인 산경망 모델을 사용해 해당문제를 풀어보겠다. MovieLens 데이터셋은 영화 추천에 자주 활용되는 유명한 데이터셋이다. 이 데이터셋에는 영화 추천 시스템 내의 별점 5점 만점의 평점데이터와 자유 텍스트 태깅 정보가 들어있다. 총 9125개의 영화에 대한 100004개의 평점과 1296개의 태그가 기록되어 있다. 영화 데이터는 https://grouplens.org/datasets/movielens/ 에서 내려받을 수 있다. In [3]: # wget을 사용해 데이터를 내려받는다 !wget http://files.grouplens.org/datasets/movielens/ml-la..

PyTorch 3 - 데이터 로더, 신경망

DataLoader와 스토캐스틱 경사하강법¶ 딥러닝은 하나의 중요한 알고리즘으로 많이 발전하게 되었다. 바로 스토캐스틱 경사하강법이다. 기존의 경사하강법은 한 epoch에 모든 데이터셋을 한번에 학습시킨다. 스토캐스틱 경사하강법은 이 큰 데이터셋을 여러개로 나누고, 나눠진 데이터의 서브셋 마다 학습을 시킨다. 이것을 기존 경사하강법의 근사치로 보면 될것이다. 이 하나의 서브셋을 배치 또는 미니배치라고 부른다. In [101]: import torch from torch import autograd, nn, optim import torch.nn.functional as F import numpy as np def lin(a,b,x): return a*x+b # 가짜 데이터 생성 def gen_fake_d..

PyTorch 2 - 로지스틱 회귀

PyTorch를 활용한 로지스틱회귀¶ 로지스틱회귀는 주어진 데이터를 0이나 1값으로 분류하는 선형 분류 모델이다. In [176]: import torch from torch import autograd, nn, optim import torch.nn.functional as F import numpy as np In [177]: lin = lambda a, b, x : a*x + b def gen_fake_data(n, a, b): x = np.random.uniform(-20, 20, (n, 2)) x2_hat = lin(a,b, x[:,0]) y = x[:,1] > x2_hat return x, y.astype(int) # 분류문제에 맞는 가짜 데이터를 생성한다 x, y = gen_fake_data..

PyTorch 1 - 텐서

PyTorch 기본¶ 먼저 PyTorch의 주요 패키지들을 가져온다. torch는 PyTorch의 최상위 패키지이고, Numpy와 비슷하지만, Tensor라는 N차원벡터를 GPU위에서 다룰 수 있는 패키지이다. torch.autograd는 경사하강법 및 미분을 자동으로 해주는 패키지이다. torch.nn은 여러 많이 사용되는 신경망들의 구현체를 가지고있는 패키지이다. torch.optim은 SGD나 Adam을 비롯한 여러가지 최적화 함수들을 가지고있는 패키지이다. PyTorch 텐서¶ 위에서 언급한 것 처럼 텐서는 N차원벡터들을 의미한다. 아래는 PyTorch에서 텐서를 어떻게 사용하는지 보여주는 코드이다. In [2]: import torch from torch import autograd, nn, o..

728x90
반응형