AI, Deep Learning Basics/Basic

    Training Tips for the Transformer Model

    This article is the summary for Training Tips for the Transformer Model and Advanced Techiniques for Fine-Tuning Transformers. Training data preprocessing A higher batch size my be beneficial for the training and the batch size can be higher when excluding training sentences longer than a given threshold. It may be a good idea to exclude too long sentences. Training data size Comparing different..

    Training on GPU, CPU

    이 사이트를 꼭 읽자. Training을 할 때 눈 여겨보아야 할 점은 bottleneck이 있는지이다. 즉, GPU와 CPU가 balance있게 잘 퍼졌는지 확인해야 한다는 점이다. CPU와 GPU 모두 RAM이 존재한다. CPU (RAM): 주로 serial 계산을 처리 GPU (DRAM, VRAM): matrix multiplication을 하는 역할을 한다. GPU Bottleneck (Hardward 문제) Hardward의 thread가 모자르다. -core가 모자르다. Thread를 사용할 Tensorcore 부족 Memory transfer 하드웨어 -> RAM, RAM -> GPU memory, GPU memory -> shared memory: 크게 3단계로 나뉘는데, 상위 단계로 보낼..

    (작성중) [AI602] 3. Bayesian Deep Learning

    1. Bayesian Machine Learning Posterior inference 2. Bayesian Deep Learning How: Variational inference Markov Chain Monte Carlo (MCMC) Sampling Bayes by Backprop 3. Bayesian Approximation 4. Appolication) Meta-learning: Neural Processes

    [AI602] 2. Self-supervised Learning

    Self-supervised learning is an unsupervised learning strategy to learn transferable representations by solving data-generated tasks (pretext tasks). It also learns a good representation without supervision, and implements other tasks. The model is evaluated by stacking a task-specific layer. 결국에는, SSL은 어떤 objective를 해결하기 위해서 1. pretext task에는 기존의 dataset에서 반대의 representation을 만들어서 적용하는 방식. 이후에, ..

    [AI602] 1. Vision Transformer

    Transformer: an all-attention model for encoder-decoder framework without any recurrences or convolutions. Attention Self-attention (문장 내에서의 연결) Scaled dot-product attention (with keys, values, and queries). Self-attention learns to encode a word at a certain position by learning what other words to focus on to better understand it. Done via matrix computations, which are fast to compute using G..

    [AI602] AdvancedML Introduction

    Vision Transformer Self-supervised Learning Bayesian Deep Learning

    [Logger] wandb 사용법

    본 글은 필자의 이해를 돕기 위해 작성된 글로 TensorboardX를 Pytorch에서 구동하는데 일련의 과정을 적은 글입니다. 참고자료1 wandb: tensorboard와 마찬가지로 모델의 파라미터나 accuracy, loss를 기록하는데 유용한 도구 On terminal) wandb login, init pip install wandb wandb login # then put your api key by accessing this link: https://app.wandb.ai/authorize wandb init # set the configuration information ex. entity, project name wandb.init (configuration for model) wandb..

    Methodology skeletons

    AI skeletons Supervised model Self-supervised model Unsupervised model Generative models Autoregressive models RNN & Transformer language models, NADE, PixelCNN, WaveNet Latent variable models Tractable: e.g. invertible / flow-based models (RealNVP, Glow, etc.) Intractable: e.g. Markov Chain Monte Carlo, Variational Autoencoders series Implicit models Generative Adversarial Networks (GANs) and v..

    [Basic] Probabilistic model

    Data is treated as a random variable 🌰 Deterministic Neural Network Model weights are assumed to have a true value that is just unknown All weights are having a single fixed value as is the norm Often the absence of a statistical flavor to such an analysis is prone to overfitting on selected examples and in general, presents challenges to draw confident conclusions. Softmax Model can be uncertai..

    [Logger] TensorboardX 사용하기

    본 글은 필자의 이해를 돕기 위해 작성된 글로 TensorboardX를 Pytorch에서 구동하는데 일련의 과정을 적은 글입니다. TensorboardX: 모델의 파라미터나 accuracy, loss를 기록하는데 유용한 도구 Process Pytorch 모델에 기록한 파라미터 기록하기: 밑의 코드 출처와 같이 writer를 불러서 하는 경우도 있지만 구현된 모델들에서 사용할 때는 Callback으로 간단하게 파라미터를 추가만 해도 처리가 되도록 하는 경우가 대부분이다. x = torch.arange(-5, 5, 0.1).view(-1, 1) y = -5 * x + 0.1 * torch.randn(x.size()) model = torch.nn.Linear(1, 1) criterion = torch.nn...

    Training tip 정리

    Learning rate 부터 정리 Training 시간이 왜 이렇게 오래/짧게 걸리는가 Nvidia-smi (GPU 실시간 확인) Profiler (GPU 사용 history 정리) 어떤걸 고려해야 하는가 Multi-processing: Data loader 의 num_worker Multi-threading Training 되는지 어떻게 확인하는가 Loss이 내려가는지 확인. 특히, Loss 각 항목에 관해서 처리. Parameter나 buffer의 mean, variance 확인 Etc. 결과 확인시 전체 데이터에 대해서 해야지 나오는 batch에 따른 결과를 보면 안된다. Training 때 고려 GPU resource Dataset Training time Etc. Multi-processing..

    [Basic] Activation Function/Loss Function/Evaluation metric

    본 글은 필자의 이해를 돕기 위해 작성된 글입니다. 참고 링크: 링크1 🐤Loss Function 과 Evaluation Metric 차이점 간단히 말해서 Loss function은 딥러닝 모델 학습시 성능을 높이기 위해 minimize/maximize 시켜야 하는 지표이고, Evaluation metric은 여러 딥러닝 모델들 중에 좋은 성능을 확인하기 위해 쓰이는 지표입니다. 예를 들어 classification 문제라 하면 모델의 loss function은 대체적으로 crossentropyloss 으로 분류의 지표를 표시한다면 모델 들 간의 성능을 확인하기 위해서는 evaluation metric이 accuracy가 되어야 한다. 딥러닝 모델의 parameter estimation method 중 ..

    [기초] CPU,GPU,TPU,NPU/CUDA/RAM 개념

    이 글은 CPU, GPU, CUDA, RAM에 관해 헷갈리는 부분들이 있어 필자가 이해한 내용을 정리한 글입니다. 참고자료는 링크, 블로그, 블로그, 링크 입니다. CPU(Computer Programming Unit, 중앙 처리 장치): 컴퓨터 및 운영 체제에 필요한 명령을 처리하는 중앙 장치. 여러 개의 프로세싱 코어를 갖추고 있다. 순차적인 프로그램을 실행할 때 좋은 성능을 발휘하지만 대용량 처리에는 약하다. NPU(Neural Processing Unit): 수년간 GPU를 이용해 딥러닝 연산을 해온 상황에서 딥러닝에 보다 최적화된 단위 계산 유형들을 HW 블럭을 꾸며서 최적화되고, 정형화되면서 아예 딥러닝 계산 전용 칩셋인 NPU가 생성되었다. Google의 TPU(Tensor Processin..

    [기초] 딥러닝 성능 높이기: 층을 깊게 하는 것에 대하여

    정확도를 높일 수 있는 방법 데이터 확장Data augmentation 이미지 회전/세로 이동 등의 미세한 변화 이미지 일부를 잘라내는 crop나 좌우를 뒤집는 flip 밝기 등의 외형 변화나 확대 축소 등의 스케일 변화 층을 깊게 하기 '층을 깊게 하는 것'의 중요성 신경망의 매개변수가 줄어든다. 층을 깊게 한 신경망은 깊지 않은 경우보다 적은 매개변수로 같은 (혹은 그 이상) 수준의 표현력 달성 매개변수를 줄여 넓은 수용영역 소화: ex. 5x5 합성곱 연산 vs. 3x3 합성곱 연산을 2회 반복 학습해야 할 문제를 계층적으로 분해 각 층이 학습 해야 할 문제를 더 단순한 문제로 대체 정보를 계층적으로 전달 가능 '층을 깊게 하는 것'의 영향력 : single layer를 추가하는 것에 대한 파라미터..

    [Deep Learning] 헷갈리는 기본 용어 모음집 (1)

    본 글은 필자가 자꾸 헷갈려하는 용어들을 모아놓은 글입니다. 글의 순서가 매끄럽지 않을 수 있다는 점 참고해주세요. 헷갈리는 용어들을 생각날 때마다 업데이트 한 글입니다. CNN이란? : (Convolution + Subsampling) 의 연속 + (Fully-Connected) (Convolution + Subsampling) 을 통해 Feature Extraction을 수행한 후, (Fully-Connected)를 통해 분류를 실행하게 됩니다. 이런 일련의 구조를 통해 계층구조를 형성하는데, 이를 compositionality라 칭합니다. Convolution 과정을 통해 Image * filter를 통해 Convolved Feature를 뽑게 된다. tf.nn.conv2d(input, filter..

    (작성중) [기초] 3. Overfitting/Underfitting 및 Regularization일반화/일반화 기법

    이 글은 필자가 "밑바닥부터 시작하는 딥러닝 1"을 보고 헷갈리는 부분이나 다시 보면 좋을만한 부분들을 위주로 정리한 글입니다. 추가 참고: 링크1 🏈 Overfitting vs. Underfitting Overfitting과적합 Underfitting 🏈 모델의 Bias와 Variance https://gaussian37.github.io/machine-learning-concept-bias_and_variance/ Bias편향: 모델의 예측값과 실제값이 얼마나 떨어져있는가 Bias가 크면 underfitting Inductive bias General bias Variance분산: 예측 모델의 복잡도, variance가 크면 overfitting 🏈 Regularization 규제(Regulariza..

    [Probability] MLE를 통한 MAP 추론: Posterior/Prior/Likelihood -Bayes rule/Bayesian Equation

    Posterior/Prior/Likelihood 우리가 가장 궁금한 Posterior P(c_i|x). 어떤 x가 주어졌을 때 이 x가 어떤 class에 속할지 구해야 한다. 이는 Prior, Likelihood를 이용한 Bayes rule로 추론이 가능한다. Prior: 일반적으로 가지고 있는 상식. class에 속할 확률을 이야기한다. ex. 피부 밝기(x)에 관계없이 농어와 연어의 비율이 얼마나 되는지의 값. 보통 사전 정보로 주어지거나, 주어지지 않는다면 연구자의 사전 지식을 통해 정해줘야 하는 값이다. $$P(c_i), P(\theta)$$ Posterior: 궁극적으로 구해야 하는 성질. 어떤 x가 주어졌을 때 이 x가 어떤 class에 속하는가. ex. 피부 밝기(x)가 주어졌을 때 그 물고..

    [기초] 2. Optimization최적화기법/최적화: 매개변수 초기화 및 갱신

    이 글은 필자가 "밑바닥부터 시작하는 딥러닝 1"을 보고 헷갈리는 부분이나 다시 보면 좋을만한 부분들을 위주로 정리한 글입니다. 🪀 해결이 되지 않은 부분 Gradient Descent vs. Stochastic Gradient Descent GD: 전체 데이터 update SGD: Batch 기준으로 데이터 update Loss function의 derivation이 잘 와닿지 않음/그래프 양상 이해안감. 🪀 최적화Optimization 틀 : 최적의 매개변수 구하기 = 매개변수를 갱신해가면서 최적의 매개변수를 찾는다. 결과에 따른 손실 함수(Loss function): 전체 퍼셉트론 결과에 따른 손실을 구하는 것을 말한다. 매개변수/가중치 갱신 매개변수 초깃값 설정 오차역전법으로 가중치 매개변수의 기..

    [기초] 1. 신경망 개요/단순 퍼셉트론/오차역전법

    이 글은 필자가 "밑바닥부터 시작하는 딥러닝 1"을 보고 헷갈리는 부분이나 다시 보면 좋을만한 부분들을 위주로 정리한 글입니다. 🪀 헷갈릴만한 단어 활성화 함수 vs. 손실함수 활성화 함수: 퍼셉트론에 작용 손실 함수: NN 전체에 작용 오차역전법(수단) vs. 최적화기법(목표) 오차역전법: 오차역전법으로 매개변수를 업데이트 하여 최적화 한다. 최적화기법: 최적의 매개변수 구하기 🪀 신경망 개요 Goal: Function approximation = p_\theta (x) 높이기 = 손실함수의 값을 가능한 낮추는 매개변수 찾기 = 매개변수의 최적값을 찾기 Frequentest View: Model의 파라미터들을 Fixed Value로 취급하여 데이터로부터 그 값을 구해 냅니다. 0\end{cases} $..

    [NN] PyTorch 함수 모음

    torch.jit.is_scripting: GPU에서 실행하면 true, cpu이면 False인듯 싶다. torch.nn.Conv1d: 1D Convolution을 지원한다.(Applies a 1D convolution over an input signal composed of several input planes.) torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None) >>> m = nn.Conv1d(16, 33, 3, stride=2) >>> input = torch.randn..

    [Pytorch] 모델 만들 때 초기값을 설정해주는 이유

    딥러닝 모델 자체가 거대한 feature space로 이를 값 하나하나를 적절하게 맞추기 위해서는 0보다는 임의의 값으로 설정하는 것이 유리하다. Backward propagation에서의 vanishing gradient 문제를 막기위해 아무리 좋은 optimizer를 가지고 있어도 초기값을 잘못 설정하면 global minimum을 가지는데 어려움이 있다.

    [Machine Learning] Linear Model선형모델/LinearRegression선형회귀/LinearClassification선형분류

    데이터 예측에 실행되는 순서들 Linear Model선형모델 의 간단한 개요 선형모델은 말그대로 Linear선을 가지고 모델을 짜는 알고리즘을 말합니다. 풀어서 말하면 입력값 X와 출력값Y간의 관계를 일차함수(선형 함수)로 모델링합니다. 입력값 X와 출력값Y는 각각 행렬의 형태로 하나의 x값에 대응되는 y값이 하나씩 존재합니다. 여기서 feature가 p개이면 이런 형태로 X,Y값을 나타낼 수 있습니다. 하지만 저희는 하나의 파라미터에 영향을 미친다는 가정하에 이렇게 나타낼 수 있고, 결국 y = a*x+b의 형태에 다다르게 되어 입력값 X, 출력값 Y가 있으면 이 둘의 관계에 걸맞는 최선의 a, b를 구하는 것이 저희의 목표가 될 것입니다. 최선의 a, b를 구하는 것이 Linear Regression..

    [Deep Learning]여러 개의 훈련 데이터set로 딥러닝 기반 신경망 알고리즘 적용/Neural Networks and Deep Learning/in multiple training examples/in several hidden layer

    *이 글은 Coursera: Neural Networks and Deep Learning(Andrew Ng)과 데이터 과학을 위한 통계(피터 브루스, 앤드루 브루스 지음)를 참조하여 작성되었습니다. 이 글을 읽기 위해서는 기본적인 미분 개념 및 행렬 개념(dimension 관련)이 필요합니다. ▶하나의 훈련데이터로 딥러닝 기반 신경망 알고리즘 적용하기(+신경망 기본 개념) : https://jisuhan.tistory.com/9 이번 포스팅에서는... 하나의 훈련 데이터가 아닌 m개(여러 개)의 훈련 데이터 set을 바탕으로 신경망 알고리즘이 어떻게 작동하는지 알아보는 시간을 가질 것입니다! 신경망을 공부하는데 훈련 데이터 set들을 for loop으로 돌리기에는 너무 많은 시간이 들어서 행렬로 계산도 ..

    [Deep Learning]하나의 훈련 데이터로 본 딥러닝 기반 신경망 알고리즘 적용

    *이 글은 Coursera: Neural Networks and Deep Learning(Andrew Ng)과 데이터 과학을 위한 통계(피터 브루스, 앤드루 브루스 지음) 을 참조하여 작성되었습니다. Deep Learning 시 이용되는 Neural Network 알고리즘을 이용하여 하나의 훈련데이터를 이용하여 Hidden Layer에 적용하는 일련의 목차를 설명드리고자 합니다! 입력값X와 결과값Y를 입력하고 기계에게 알고리즘을 직접 적용하여 기계가 적용된 알고리즘을 이용하는 머신러닝의 부분과는 다르게, 딥러닝은 입력값X와 결과값Y를 입력하면 기계는 이러한 X,Y 값을 학습하여(우리가 적용하지 않고) 입력값을 제시시 기계가 알아낸 학습값을 나타냅니다. 먼저 일반적인 파라미터(Parameter) 개념 및 ..

    [AI] Neural Networks and Deep Learning 단원 정리

    Deep Learning.ai Specialization (https://www.coursera.org/specializations/deep-learning?) Professor Andrew Ng Course1 : Neural Networks and Deep Learning (Week 1: Introduction to Deep Learning) It was just a normal introduction of Deep Learning. If you don't enough time to watch, I recommend you to skip. Week 2: Neural Networks Basics In this week, you will be on the practical stand to start Neu..

    2018 February) Coursera: How to Win a Data Science Competition: Learn from Top Kagglers Week 1~ Week 3 Summary

    0. Machine Learning Algorithms Linear Model Logistic Regression, Support Vector Machine Tools) scikit learn, Vowpal Rabbit Tree-based Decision Tree, Random Forest, GBDT Tools) scikit learn, XGBoost, LightGBM KNN-based methods Tools) scikit learn Neural Networks Tools) Tensorflow, Keras, Mxnet, Pytorch, Lasagne 1. Data Check Check List Target Metric Domain Knowledge +How data generated 2. Data Pr..