전체 글(10)
-
[Pytorch] Wide & Deep
김성 교수님의 유튜브 강의 PyTorchZeroToAll 7강을 참조하였습니다. 변수의 확대 Matrix Multiplication을 사용한다. Go Wide Go Deep input, output size를 정하는 것은 매우 중요하다 Sigmoid Vanishing Gradient Problem(층이 깊어질수록 gradient가 사라짐)이 발생함. 다양한 Activation 함수를 사용해야 함 ReLU는 잘 동작하는 Activation 함수 중 하나. Example from torch import nn, optim, from_numpy import numpy as np xy = np.loadtxt('./data/diabetes.csv.gz', delimiter=',', dtype=np.float32)..
2021.01.09 -
[Pytorch] Linear Regression in PyTorch way
김성 교수님의 PyTorchZeroToAll 5강을 참고하여 정리하였습니다. Pytorch Rythm Desing your model using class with Variables class와 variable을 이용한 모델을 생성한다 Construct loss and optimizer (select from PyTorch API) loss와 optimizer의 구조화를 한다 Training cycle (Forward, Backward, Update) Example from torch import nn import torch from torch import tensor x_data = tensor([[1.0],[2.0],[3.0]]) y_data = tensor([[2.0], [4.0], [6.0]]) ..
2021.01.03 -
[Pytorch] Gradient Descent
김성 교수님의 Youtube 강의 PyTorchZeroToAll 3강을 참조하였습니다. Compute Gradient w의 관점에서 보았을 때 loss의 gradient는 ∂loss/∂w 그렇다면 더 복잡한 모델에서의 Gradient 계산은 어떻게 해야 할까? Chain Rule f = f(g), g = g(x) 라고 했을 때, df/dx = df/dg * dg/dx 로 표현할 수 있다. forward pass : x=2, y=3 라고 가정한다. 2*3=6. z는 6이다. local gradient을 계산한다. ∂z/∂x = ∂xy/∂x = y ∂z/∂y = ∂xy/∂y = x ∂Loss/∂z=5라고 가정했을 때, Backpropagation을 계산해보자. ∂Loss/∂x = ∂L/∂z * ∂z/∂x =..
2021.01.02 -
Jupyterlab Ipywidgets 설치 (Mac, Anaconda)
자유 형식인 연말 성과 발표를 위해 어떤 형식을 선택할까 알아보다가 ipywidgets을 써 보면 어떨까 해서 설치 해 보았다. 일반적인 ppt는 많이 보실테니 지겨우실 것 같고, 비슷비슷한 내용에 형식이라도 참신 해 보면 어떨까 싶어서 도전 해 본다. 환경 및 Version macOS Mojave ver.10.14.5 conda 4.7.12 Python 3.7.3 jupyter lab 0.35.4 pip 19.0.3 참고 : https://ipywidgets.readthedocs.io/en/latest/user_install.html#with-conda Installation — Jupyter Widgets 7.5.1 documentation With pip pip install ipywidgets j..
2019.12.01 -
numpy where
numpy.where 함수는 'x if condition else y' 같은 삼항식의 벡터화된 버전이다. import numpy as np xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5]) yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5]) cond = np.array([True, False, True, True, False]) result1 = [(x if c else y) for x, y, c, in zip(xarr, yarr, cond)] result2 = np.where(cond, xarr, yarr) result1 과 result2 는 arry([1.1, 2.2, 1.3, 1.4, 2.5]) 로 같은 결과를 얻을 수 있다. np.where의 두..
2019.11.10 -
Feature Engineering
Feature Engineering for Machine Learning 리스케일링 알고리즘은 여러 변수의 상대적인 크기에 상당히 민감하다. 범위가 다른 여러개의 다양한 파라미터가 있는 경우 어떤 알고리즘은 편차가 더 큰 변수를 주요 변수로 간주하기도 한다. 각 파라미터의 스케일이 매우 다른 경우 모델이 학습하려는 파라미터 공간이 매우 왜곡되고 복잡해 질 수 있다. 이 때, Gradient Descent Algorithm을 사용할 경우 local minima 또는 경사면의 다른 복잡한 위치에 빠지는 경향이 있다. 고전적인 방법으로는 0과 1사이의 값으로 스케일은 선형 재조정 하는 방법이 있다. → 파라미터들이 동일 범위내에 있게 된다. 비선형 스케일링으로는 제곱 스케일링, 제곱근 스케일링, 로그 스케일링..
2019.10.30