NaverBoost Camp 4기/DL BASIC

[DL Basic] 딥러닝의 기초와 흐름

쫑쫑JJONG 2022. 10. 4. 19:14
728x90

"딥러닝은 AI의 일부이다"

Artificial Intelligence : 인공지능 - 사람의 지능을 모방

Machine Learning : 머신러닝 -  Data-driven approach : 데이터 기반 학습

Deep Learning : 딥러닝 - machine learning의 방법중 Neural Networks를 이용한 방법

 

Deep Learning = 여러가지 분야로 구성

1. Coding Skills (Python, Pytorch, tensorflow...) : 구현실력
2. Linear Algebra + Probability (선형대수 + 확률과 통계) : 수학적 지식
3. Knowing a lot of recent Papers : 논문을 많이 아는 것

 

<논문을 읽을 때 KeyPoint 4가지>

1. Data : 어떤 데이터를 사용하였는지
2. Model : Data를 어떻게 바꿔서 학습했는지
3. Loss : model의 평가지표를 어떻게 잡았는지
4. Algorithm : Loss를 최소화 하기위해 어떤 방법을 사용했는지

 

CV의 종류 (대충)

- Classification : 개냐 고양이냐!

- Semantic Segmentation : 한 이미지에 어디가 하늘이고 땅이고 잔디고 사람이냐

(label을 찾는게 아니라 픽셀별로 분류하는 것)

- Detection : Bounding box를 구현하는 것

- Pose Estimation : 스켈레톤 정보를 뽑아내는 것

- Visual QnA : 이미지 + 문장 - ex) 사진속 사람은 눈 색깔은 "Blue"이다

 

 

<Loss>

모델과 데이터가 정해졌을 때 모델을 어떻게 학습할지 (Weight 와 Bias를 어떻게 Update 할지)

-> loss를 줄인다고 해서 우리의 목표에 다가간다는 보장은 없다

 

Loss function이 정해진건 아니지만 일반적으로 사용하는게 있긴하다

 

1. Regression (MSE)

$$ MSE = \frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}(y_{i}^{(d)}-\hat{y}_{i}^{(d)})^2 $$

2. Classification (Cross-Entropy)

$$  CE = -\frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}y_{i}^{(d)}log \hat{y}_{i}^{(d)} $$

3. Probabilistic (MLE)

확률적인 모델을 사용할 때 (출력값이 평균,분산 이런거 일 때)

 

$$MLE = \frac{1}{N}\sum_{i=1}^{N}\sum_{d=1}^{D}logN(y_{i}^{(d)} ; \hat{y}_{i}^{(d)}, 1)$$

 

 

<Regularization>

  • 학습을 잘 안되게 해주는 효과
  • 단순히 학습데이터에서만 잘 동작하는게 아니라 실생활 or New data에 적합하게 하기 위함

- Dropout

- Early Stopping

- K-fold validation

- Weight decay

- Batch normalization

- Mix up

- Ensemble

- Bayesian Optimization

 

<Historical Review>

https://dennybritz.com/posts/deep-learning-ideas-that-stood-the-test-of-time/

 

Deep Learning ideas that have stood the test of time

Deep Learning is such a fast-moving field and the huge number of research papers and ideas can be overwhelming.

dennybritz.com

 

2012 : AlexNet

이전에는 ILSVRC 대회에서 커널기반 아니면 SVM등을 사용하다 이거 등장한 이후엔 이것만 씀

224 x 224 이미지를 classification 하는게 목표

 

2012 : DQN (Deep Q- Network)

강화학습 ex) 알파고

https://ai-com.tistory.com/entry/RL-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-1-DQN-Deep-Q-Network

 

[RL] 강화학습 알고리즘: (1) DQN (Deep Q-Network)

Google DeepMind는 2013년 NIPS, 2015년 Nature 두 번의 논문을 통해 DQN (Deep Q-Network) 알고리즘을 발표했습니다. DQN은 딥러닝과 강화학습을 결합하여 인간 수준의 높은 성능을 달성한 첫번째 알고리즘입니

ai-com.tistory.com

2014 : Encoder / Decoder (NMD)

단어의 연속이 주어질 때 다른 연속된 단어로 뱉어주는 것 (ex) 구글 번역기

2014 : Adam Optimizer 

왜 Adam이 SGD 보다 좋을까? 왜 사람들이 Adam을 주로 쓸까??

A: 그냥 좋으니깐 쓰자!! (설명하기 힘듬)

2015 : GAN(Generative Adversarial Network)

ex) 이미지를 스스로 생성 (추후 포스팅 예정)

 

2017 : Transformer

구조를 이해하는 것이 중요 (추후 포스팅 예정)

 

 

2018 : BERT(Bidirectional Encoder Representations from Transformers)

(fine-tuned NLP models)

위키피아 등을 활용해 다양한 언어를 Pre-trained + 내가 풀고자 하는 소수의 데이터에 fine tunning

 

2019 : Big Language Models (GRT-x)

GPT-3 굉장히 큰 Parameter를 가짐 

약간의 fine tunning을 통해 문장,표,프로그램 같은 시퀀셜 모델을 만듬

 

2020 : Self Supervised Learning (SimCLR)

한정된 학습데이터의 한계를 극복하기 위해 라벨을 모르지만 학습에 활용을 함

SimCLR : a simple framework for contrastive learning of visual representations

(이미지를 컴퓨터가 이해할 수 있는 vector로 어떻게 바꿀지)

2020~ : Self Supervised Data Sampling

풀고자 하는 문제를 굉장히 잘 알고 있고 고도화된 도메인이 있을 때 Dataset을 만들어내는 방법

(학습데이터를 만들어서 학습)

728x90