딥러닝 개념
Good Deep Learner?
- 구현 능력 (TensorFlow, PyTorch, ...)
- 수학 스킬 (선형대수, 확률론, ...)
- 최근 논문과 연구 숙지
인공지능
- 사람마다 정의가 다름
- 사람의 지능을 모방하는 것
머신러닝
- 인공지능 안에 있는 분야
- 무언가를 학습하고자 할 때 데이터를 통해 학습함
- 이 학습 알고리즘을 만드는 것이 머신러닝
딥러닝
- 머신러닝 안에 있는 분야
- Neural Network 기반 모델을 사용하는 머신러닝
딥러닝의 구성 요소
- Data
- Model
- Loss Function
- Optimization Algorithm
Data
- 이미지, 비디오, 텍스트 등
- 해결하고자 하는 Task에 따라서 필요 데이터가 다름
Model
- 이미지/텍스트 등 데이터가 주어졌을 때 이것을 변환해주는 것
- AlexNet, GooLeNet, LSTM, GAN, ...
Loss Function
- 모델과 데이터가 주어졌을 때 모델을 어떻게 학습할지 정해주는 것
- Weight의 파라미터들을 어떻게 업데이트할지 기준이 되는 함수를 정의함
Task | Loss Function |
Regression | MSE |
Classification | CE |
Probability | MLE |
- Loss Function은 우리가 이루고자 하는 것의 근사치에 불과함
- Loss가 줄어든다고 우리가 원하는 결과를 항상 이룬다는 보장이 없음!
- 상황에 따라 다른 Loss Function을 제안하는 것이 중요 (위 표가 절대적인 것이 아님)
Optimization Algorithm
- SGD, Momentum, NAD, Adagrad, Adadelta, RMSProp, Adam, ...
- Dropout, Early Stopping 등으로 학습을 일부러 더디게 하기도 함
- 학습 데이터가 아니라 새로운 데이터(평가 데이터)에서도 잘 동작하도록 하기 위해!
딥러닝 역사
2012 - AlexNet
- CNN 기반 모델
- 224x224 이미지가 들어왔을 때 분류하는 것이 목표 (ImageNet 대회)
- 딥러닝을 이용해서 처음 1등을 한 모델 (이전에는 고전적인 머신러닝 방법들이 1등)
- 이후로는 항상 딥러닝 기반 모델들이 1등!
2013 - DQN
- 알파고 알고리즘을 만든 회사 딥마인드에서 만든 것
- 강화학습 알고리즘
- 오늘날의 딥마인드가 존재하게 한 모델
2014 - Encoder / Decoder
- 구글 번역 등
- 단어의 연속이 주어졌을 때 다른 언어의 단어의 연속으로 뱉어주기
- Vector 기반
- 이후로 기계어 번역의 트렌드가 많이 바뀜
2014 - Adam Optimizer
- 요즘 Optimizer 사용한다 하면 다 Adam
- Adam이 대부분 결과가 잘 나옴
2015 - Generative Adversarial Network (GAN)
- 네트워크가 Generative와 Discriminator를 만들어서 학습 시키는 것
2015 - Residual Networks (ResNet)
- 이것 덕분에 딥러닝이 Deep Learning 가능해짐
- 왜 Deep Learning? → 네트워크를 깊게 쌓기 때문이라는 말이 있음
- 이전에는 네트워크를 너무 깊게 쌓으면 테스트 진행 시 성능이 좋게 안 나온다는 이야기가 있었음
- ResNet이 테스트 데이터에도 성능이 잘 나오면서 층을 깊게 쌓을 수 있도록 해줌!
2017 - Transformer - Attention Is All You Need
- 현재 웬만한 NN 모델들을 다 대체함
- 이전에는 NLP 분야에서는 모르겠지만 이게 모든 걸 대체할 거라고는 생각 못 함
- Vision 분야도 넘보고 있음
2018 - BERT (Bidirectional Encoder Representations from Transformers)
- 딥러닝의 흐름을 바꾸는 데에는 여기에 들어간 fine-tuned NLP models 라는 개념이 중요
예를들어, NLP는 보통 Language Model을 학습하는데, 내가 좋은 뉴스 기사를 작성하는 네트워크를 만들고 싶다고 가정하자.
그렇다면 일반적으로 뉴스 데이터가 필요한데, 뉴스 데이터는 일반적인 데이터에 비해 희소해서 수집하기에 어려움이 많음.
이때, 일반적인 데이터로 학습한 모델에 추가로 소수의 데이터 (뉴스 데이터)로 fine-tuning 하는 것이 fine-tuned NLP model
2019 - Big Language Models
- GPT-X → Fine-tuned NLP model의 끝판왕 (OpenAI)
- ChatGPT가 이에 기반함
2020 - Self Supervised Learning
- SimCLR 구글 논문이 포문을 열음
- 한정된 학습 데이터 외에 라벨을 모르는 데이터를 학습에 활용하겠다.
- 즉, Supervised Learning에 Unsupervised Learning을 함께 활용하겠다!
- 학습 데이터를 도메인 지식을 통해 추가로 만들어내서 학습 데이터를 뻥튀기하는 것도 Self Supervised Learning이라고 부르고, 이쪽도 많은 연구가 진행 중
'boostcamp AI Tech > 기타 정리' 카테고리의 다른 글
[DL Basic] Generative Models - Autoregressive Models (0) | 2023.03.26 |
---|---|
[DL Basic] Optimization (0) | 2023.03.21 |
[DL Basic] Neural Networks 기본 (0) | 2023.03.20 |
[torchtext, sklearn] get_tokenizer(), vocab(), get_stoi(), get_itos(), CountVectorizer() (0) | 2023.03.17 |