목록분류 전체보기 (18)
이번 글에서는 파이토치를 활용하여 MNIST dataset을 불러들인 다음, 간단한 MLP(Multi Layer Perceptron)를 생성해보도록 할 것이다. 먼저 필요한 패키지들을 불러들이고 시드 설정을 한다. import torch import torchvision.datasets as dsets import torchvision.transforms as transforms import matplotlib.pyplot as plt import random device = 'cuda' if torch.cuda.is_available() else 'cpu' # 시드설정 random.seed(777) torch.manual_seed(777) if device == 'cuda': torch.cuda.man..
1. Introduction 언어 모델링, 기계 번역 등의 영역에서는 RNN(Recurrent Neural Network), LSTM(Long Short-Term Memory), Gated RNN 등이 주로 활용되어 왔다. 또한 attention을 활용하여 RNN의 성능을 더욱 극대화시켰다. 그럼에도 한계는 존재하였다. 2017년에 발표한 Transformer은 RNN을 제외하고 attention으로만 작동한다. 그럼에도 RNN보다 월등한 성능을 보였다. 그 이유는 바로 효율적인 병렬처리 때문인데, 이에 대한 것은 글을 써내려가면서 상술할 예정이다. 2. Background 기존의 ConvS2S, Bytenet 등 많은 프레임워크는 sequential computation을 활용하였다. 하지만 input..
이번 글에서는 Pytorch로 Linear regression을 진행한다. 먼저 linear regression을 위하여 필요한 라이브러리를 불러들인다. import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim #시드 설정 torch.manual_seed(1) 먼저 각각의 x_train, y_train 값을 정하고, weight initialization, hypothesis 설정, cost function, gradient descent까지 진행하여 본다. x_train = torch.FloatTensor([[5], [8], [9]]) y_train = torch.FloatTensor([[1..
이번 포스트는 Alexnet에 대한 정리를 할 것이다. 해당 논문을 읽으면서 정리했던 부분들을 업로드할 것이다. 1. Introduction Alexnet은 2012년에 출시된 딥러닝 프레임워크이다. 당시에는 dataset이 클 때 recognition task를 효율적으로 하기 어려웠다. 특히 Imagenet 같은 1500만 개의 이미지와 22,000개의 카테고리가 있는 대량의 데이터 저장소에서는 기존 MLP(Multi-Layer Perceptron) 기법의 비용적, 기술적 한계가 존재하였다. 물론 LeNet같은 기존의 CNN 기술이 존재하기는 했다. Neural network의 depth나 이미지 자체를 조절할 수도 있었고, MLP 보다 적은 parameter을 가져 계산도 용이했다. 하지만 비용이 ..
Neural Networks: Representation - Non-linear Hypotheses 여태까지 배워왔던 classification은 선형적인 상황에서 이루어졌다. 그러나 위 슬라이드와 같이 non-linear classification(비선형분류)을 진행해야 하는 경우도 발생한다. 만약 선형적으로 decision boundary를 결정해야 한다면, 그 식은 매우 복잡할 것이다. Feature의 개수 또한 증가해야할 것이고 overfitting의 문제가 발생할 소지도 있다. Neural Networks: Representation - Neurons and the Brain The "one learning algorithm" hypothesis란 뇌의 각 부분은 하나의 기작만 학습한다는 것이다..
Logistic Regression - Classification 1강에서 supervised learning(지도 학습)은 크게 regression과 classification로 나눌 수 있다고 언급한 바 있다. 2강에서는 regression에 대하여 살펴보았고, 3강에서는 classification에 대하여 알아볼 것이다. Classification은 분류의 문제이며, 특정 이메일이 스팸인지 아닌지, 사기 온라인 거래임을 파악할 수 있는지 아닌지, 특정 종양이 악성인지 양성인지 확인할 수 있다. 분류할 종목이 2가지이면 {0,1} 두개의 결과값을 가지게 되며, 0과 1은 각각 "거짓", "참"으로 나눌 수 있다. 분류할 종목이 4가지라면 {0,1,2,3} 네개의 결과값을 가지게 된다. Classifi..
Linear Regression with Multiple Variables - Multiple Features Univariate linear regression과 달리 multiple feature은 특정 y값(종속변수)을 결정짓는 feature(독립변수)가 여러개이다. 간단한 notation을 살펴보면 n = feature의 개수 x^(i) = i번째 training example의 모든 입력값 xj^(i) = i번째 training example의 j번째 feature 임을 확인할 수 있다. Univariate linear regression의 가설과는 달리 multiple feature(위 슬라이드처럼 feature이 4개)이 있을 때에는 가설을 형태로 설정한다. 그리고 각각의 parameter을..
머신러닝이란? 머신러닝(한국어로 기계학습이라고도 한다)은 AI의 세부분야 중 하나이다. 컴퓨터가 스스로 새로운 능력을 학습하도록 한다. 머신러닝의 예로는 대량의 데이터에서부터의 데이터마이닝 코딩만으로 해결할 수 없는 코딩문제 (자율 헬리콥터, 손글씨 인식, NLP, CV 등) 아마존, 넷플릭스와 같은 개인을 위한 맞춤 프로그램 인간의 학습과정 이해 가 있다. 그렇다면 머신러닝이란 무엇일까? Arthur Samuel(1959)는 머신러닝을 프로그래밍 되지 않아도 컴퓨터가 스스로 학습할 수 있도록 하는 학문이라고 하였다. 조금 구체적으로 Tom Mitchell(1998)은 머신러닝을 경험 E, 작업 T, 성능 P로 나누어 설명한다. 작업 T에 대한 경험 E를 해서 성능 P가 증가한다면, "컴퓨터가 스스로 학..