AI, Deep Learning Basics

    [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(ci),P(θ) Posterior: 궁극적으로 구해야 하는 성질. 어떤 x가 주어졌을 때 이 x가 어떤 class에 속하는가. ex. 피부 밝기(x)가 주어졌을 때 그 물고..

    [Generative Model] Variational AutoEncoder 3. Variational Inference

    이 글은 VAE 모델을 학습하는 데 있어 이미지를 생성하는 Decoder 쪽에서 일어나는 Variational Inference 부분을 수식을 통해 자세히 이해하고자 만든 글입니다. 참고자료는 블로그, 블로그2, 블로그3 입니다. -220319. z에 관한 설명, 수식 전체적으로 latex 처리 🔦 시작하기 전 단어 정리 Variational Inference/Varational Bayesain Method: 변분 추론 KL-Divergence: 두 확률분포의 차이를 나타내는 지표 ELBO(Evidence LowerBOund): Loss function을 추론하며 나타나는, 함수가 학습되면서 학습할 방향을 지정한다. 🧨 VAE Concept Recap Probabilistic Encoder $p(z|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} $..

    [Generative Model] Variational AutoEncoder 2. Application: Conditional VAE, Convolutional CVAE 코드 구현

    이 글은 필자가 주재걸 교수님의 2018-1 Image Generation and Translation 강의를 듣고 추가 블로그 참고1, 참고2를 읽으면서 정리차 작성한 글입니다. 강의를 듣게 된 경위: 이용해야 할 개념에서 Image와 같이 2D 개념에 적용한 예시가 없어서 이를 2D에 적용하면서 나타낼 수 있는 문제점들이나 인사이트들을 다시 확용하고자 image generation task에 연결하고자 듣게 되었다. 🎈 Conditional Variational AutoEncoder (CVAE) VAE + Condition: VAE 구조에서 Label 정보를 추가해서 더 높은 정확도를 제공하는 VAE를 제공한다. Model structure VAE구조에 시작부분, Representation 부분에 정..

    [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..

    [Generative Model] Variational AutoEncoder 1. Basic: AE, DAE, VAE

    이 글은 필자가 주재걸 교수님의 2018-1 Image Generation and Translation 강의를 듣고 추가 블로그 참고1, 참고2, 참고3, 참고4를 읽으면서 정리차 작성한 글입니다. 강의를 듣게 된 경위: 이용해야 할 개념에서 Image와 같이 2D 개념에 적용한 예시가 없어서 이를 2D에 적용하면서 나타낼 수 있는 문제점들이나 인사이트들을 다시 확용하고자 image generation task에 연결하고자 듣게 되었다. - 220130. VAE loss function 자세히 내용 보충 - 220319. Generative model ) Latent variable model 내용 보충 Generative model? : Training data의 distribution을 학습하여 새로..

    [Computer Vision] Image, Video 분야 subtask 및 데이터 종류 정리

    Task 종류와 관련 dataset (핫한 순위별로) Video Object Tracking Dataset OTB(Object Tracking Benchmark) Video Action Classification / Action Recogntion Dataset UCF101: 13,320 video clip and its categories(101 categories, divided into 5 types: 1)Human-Object Interaction 2) Body-Motion Only 3) Human-Human Interaction 4) Playing Musical Instruments 5) Sports) Kinetics: 500,000 video clips(around 10 second, high..

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

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

    [Basic] 3x3 Conv, 1x1 Conv 하는 이유(FCN vs. FC Layer vs. FPN)

    3x3 Convolutional Layer: 3x3 공간이 지닌 특징을 하나의 값으로 추출하기 with stride = 1 (각 픽셀별 위치정보가 갈수록 줄어든다. ex. FC layer) 1x1 Convolution Layer: 1x1 공간이 지닌 특징을 하나의 값으로 추출하기 with stride = 0 = 각 픽셀별 위치정보를 해치지 않은 채 조합에 따른 정보 분석을 하는 것 = 각 픽셀별 분석 ex.Fully Convolutional Network Fully Connected Layer 일반적인 Convolution Layer에 쓰이는 현상 Feature map을 flatten -(FC Layer)-> 전체 이미지의 특징을 출력하기 = 각 픽셀별 이미지의 위치 정보가 사라진다. Fully Conv..

    [Instance segmentation] Mask R-CNN/Detectron2 모델 파일 분석

    mask-rcnn .circleci configuration of the environment to run config.yml: environments to run the jobs in .github arrangement on the github environment ISSUE_TEMPLATE workflows CODE_OF_CONDUCT.md CONTRIBUTING.md ISSUE_TEMPLATE.md pull_request_template.md build options that is built on my macosx environment lib.macosx-10.9-x86_64-3.7 configs structure of the whole model(-common-models-mask_rcnn_fpn..

    [톺아보기] Pytorch를 이용한 Image Classifier 코드, Gradient Descent

    본 글은 Gradient Descent의 Pytorch 코드에 대한 필자의 이해를 위해 번역된 글로, 원글은 여기서 보실 수 있습니다. Pytorch 를 통해 이미지 분류기를 만들어보도록 하겠습니다. 흐름은 다음과 같습니다. 데이터셋 준비하기 - torchvision을 통해 CIFAR10 데이터셋 준비(Loading train/test dataset, normalization 포함) CNN 네트워크 준비하기 Loss function 정의하기 Train dataset을 CNN 네트워크 학습하기 CNN 네트워크로 test dataset 예측하기 본 글은 이미지가 학습되는 전체 구조 중심으로 설명하기 보다는 gradient descent가 어떤 흐름으로 이루어져있는지 자세히 살펴보고자 만들어졌습니다. 그럼 시..

    [논문리뷰] Everybody Dance Now

    Everybody Dance Now #MotionTransfer #videotovideotranslation #GAN Dataset: a variety of videos, enabling trained amateurs to spin and twirl like ballerinas, perform martial arts kicks, or dance as vibrantly as pop stars Transfer motion between two video subjects in a frame-by-frame manner > mapping between images of two inidividuals > discover an image-to-image translation between source and tar..

    [NLP] RNN 예제로 살펴보는 RNN 맛보기

    *이 글은 네이버 AI Hackerton의 참가 때 이용하였던 ClovaAI Github를 참고하여 작성되었습니다. 깃허브 링크를 누르시면 더 전반적인 코드를 보실 수 있습니다. 이 Encoder, Decoder 부분은 Attention 함수를 기반으로 작성되었기에 좀 어려움을 느끼실 수 있겠지만, RNN 전반적인 코드 작용에 대한 이해를 돕기 위해 작성되었습니다. 너무 깊게 보시는 것보다는 이런 흐름으로 이어진다는 느낌 정도를 받는다는 생각으로 가볍게 보시길 추천드립니다. Encoder 함수 엿보기 1. Conv2d: Convolution 작업(filter를 통해 곱하고, activation function을 거치는 작업)을 하는 레이어 input_channel : 1 < 초기 channel 개수 ou..

    [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..