본문 바로가기

전체 글

(57)
[Week3] PyTorch 활용하기 [Day4] *Multi-GPU 활용 오늘날의 딥러닝은 엄청난 데이터와의 싸움... *Model parallel 다중 GPU에서 학습을 분산하는 두 가지 방법(모델 나누기 / 데이터를 나누기) 모델을 나누는 것은 생각보다 예전부터 썻음 (alexnet) 모델의 병목, 파이프라인의 어려움 등으로 인해 모델 병렬화는 고난이도 과제 위 코드보다는 병렬적으로 파이프라인을 구축하는것이 좋다 *Data parallel 데이터를 나눠 GPU에 할당후 결과의 평균을 취하는 방법 minibatch 수식과 유사한데 한번에 여러 GPU에서 수행 PyTorch에서는 두가지 방식을 제공(DataParallel , DistributedDataParallel) DataParallel - 단순히 데이터를 분배한후 평균을 취함 -> GPU 사용 ..
[Week3] PyTorch 구조 학습 [Day2 ~ Day3] *AutoGrad & Optimizer *torch.nn.Module 딥러닝을 구성하는 Layer의 base class Input, Output, Forward, Backward 정의 학습의 대상이 되는 parameter(tensor) 정의 *nn.Parameter Tensor 객체의 상속 객체 nn.Module 내에 attribute가 될 때는 required_grad=True로 지정되어 학습 대상이 되는 Tensor 우리가 직접 지정할 일은 잘 없음 - 대부분의 layer에는 weights 값들이 지정되어 있음 *Backward Layer에 있는 Parameter들의 미분을 수행 Forward의 결과값 (model의 output=예측치)과 실제값간의 차이(loss)에 대해 미분을 수행 해당 값으로 P..
[Week3] PyTorch Basics [Day1] *PyTorch의 특징 (tensorflow와 다른점) Computational Graph 연산의 과정을 그래프로 표현 Define and Run : 그래프를 먼저 정의 -> 실행시점에 데이터 feed Define by Run (Dynamic Computational Graph) : 실행을 하면서 그래프를 생성하는 방식 *Why PyTorch Define by Run의 장점 : 즉시 확인 가능 -> pythonic code GPU support, Good API and community 사용하기 편한 장점이 가장 큼 TF는 production과 scalability의 장점 Numpy + AutoGrad + Function Numpy 구조를 가지는 Tensor 객체로 array 표현 자동미분을 지원하여 D..
[Week2] DL Basic - Generative Models [Day5] *Learning a Generative Model Suppose we are given images of dogs We want to learn a probability distribution p(x) such that Generation : 개와 같은 비슷한 이미지를 생성할 수 있음 Density estimation(anomaly detection) : p(x)의 x가 강아지 같은지 아닌지 분류 Unsupervised representation learning : feature learning Then, how can we represent p(x)? *Basic Discrete Distributions Bernoulli distribution : (biased) coin flip D = {Heads..
[Week2] DL Basic - Transformer [Day4] *Sequential Model 문장을 예로 들면 문장의 길이는 가변적이고 중간이 생략될 수 있음 이러한 문제들 때문에 sequential한 입력에 대해 모델링하는것이 어렵다 transformer를 통해 해결할 수 있음 *Transformer Transformer is the first sequence transduction model based entirely on attention encoder , decoder 구조 Encoder의 Self-Attention n개의 단어를 한번에 인코딩할 수 있음 각 단어를 z에 모두 인코딩함 3가지 종류의 벡터를 만든다 (Quries, Keys, Values) : 한 단어마다 3개의 벡터를 만들고 임베딩함 thinking 단어에 대한 score 벡터를 계산할때 내..
[Week2] DL Basic - RNN [Day4] *Sequential Model 일상에서 대부분 데이터는 sequential data sequential data는 레이블이 딱 정해지지 않고, 길이가 언제나 달라질 수 있음(과거 정보량이 늘어남) Naive sequence model Autoregressive model 고정된 길이의 과거만 고려 Markov model (first-order autoregressive model) 바로 전 과거에만 의존함 반례) 수능날의 시험점수는 전날 공부한것에서만 나온다? -> X Latent autoregressive model hidden state가 과거의 정보를 요약하고 있음 *Recurrent Neural Network Long-term dependencies 과거의 정보를 활용하고 싶은데 시간이 오래지나..
[Week2] DL Basic - CNN [Day3] *Convolution Contiunuous convolution Discrete convolution 2D image convolution 2D convolution in action RGB Image Convolution *Convolutional Neural Networks Convolution and pooling layers : feature extraction Fully connected layer : decision making (e.g., classification) 최소화 시키는 추세 (parameter dependency : 파라미터가 많으면 학습이 잘 안되고, Generalization performance 감소) *Stride *Padding *Convolution Arithmeti..
[Week2] DL Basic - Optimization [Day2] *Optimization *Important Concepts in Optimization Generalization Under-fitting vs. over-fitting Cross validation Bias-variance tradeoff Bootstrapping Bagging and boosting *Generalization 일반적으로 training error가 줄어들지만, 어느 순간을 지나면 test error는 증가함 Generalization performance : Test error - Training error *Underfitting vs. Overfitting underfitting : 네트워크가 간단하거나 train횟수가 적어 학습 데이터를 잘 맞추지 못함 overfitting ..