구현
, 수학
, 논문-트렌드
이다.AI의 방법론 중 하나가 ML, ML의 방법론 중 하나가 DL이다.
DL의 중요한 요소는 data
, model
, loss
, optimizer
이다.
위의 4가지 관점으로 논문을 바라보면, 기존 연구에 비해 어떤 장점이 있는지 알 수 있다.
데이터는 해결하고자 하는 문제의 유형에 의존한다. 예를 들어 강아지와 고양이를 분류하기 위해선 이미지 데이터가 필요할 것이다.
문제의 유형으로는 Classification
, Semantic Segmentation
, Detection
, Pose Estimation
, Visual QnA
등이 있다.
Loss function은 이루고자 하는 것의 근사값이다.
데이터에 noise가 있을 수 있고 loss function은 근사치이기 때문에, 단순히 loss 값을 줄이는 것을 목표로 하면 안된다.
Loss function에는 MSE, CE, MLE 등이 있는데 해당 함수들의 성질을 잘 이해해 목적에 맞게 선택해야 한다.
예로들어, MSE는 이상치에 민감하게 반응하므로 robust한 모델을 위한 loss function으로는 적합하지 않다.
Optimizer algorithm의 종류로는 SGD
, Momentum
, NAG
, Adagrad
, Adadelta
, Rmsprop
등이 있다.
Optimizer algorithm의 특성을 잘 이해해서 목적에 맞게 잘 사용 해야 한다.
이외에도 Dropout
, Early stopping
, k-fold validation
, weight decay
, batch normalization
, mixup
, ensenble
, bayesian optimization
등의 기법을 통해 최적화를 할 수 있다.
기계학습에 큰 변화를 준 모델들을 소개하겠다.
2012 - AlexNet
2013 - DQN
2014 - Encoder / Decoder
2014 - Adam Optimizer
2015 - GNN(Generative Adversarial Network)
2015 - Residual Networks
2017 - Transformer
2018 - BERT(Bidirectional Encoder Representations from Transformers)
2019 - BIG Language Models
2020 - Self Supervised Learning
처음에는 날기 위해 새를 모방했지만, 결국 비행기는 새를 닮지 않았다. 딥러닝도 시작은 사람의 뇌였지만, 현재는 그렇지 않다.
Neural networks are function approximators that stack affine transformations followed by nonlinear transformations.
즉, NN은 affine 변환에 비선형 변환이 쌓인 function approximators이다.
loss가 최소가 되는 w, b를 바로 찾을 수 있다. ex) 역행렬 곱하기
그렇지만, 데이터가 적고 loss가 convex하고 모델이 linear해야 한다는 등 많은 제약 조건이 붙는다.
역전파를 사용하자.
층을 쌓을 때 nonlinear transform(활성함수)를 사용하지 않으면, 는 또다른 행렬이 되므로 층을 쌓는 의미가 없어진다.
Hidden layer가 1개 있는 NN의 표현력은 일반적인 continuous function을 다 포함한다. 즉 원하는 function을 표현하는 NN은 어딘가에는 존재하는데 그것을 찾아야한다.
그만큼 NN의 표현력이 크고, 그렇기 때문에 잘 된다.