Deep Learning Basic Lecture 1: Historical Review

2023. 1. 1. 23:51BOOTCAMP/boostcamp AI Tech Pre-Course

Introdiction

Disclaimer
한 사람이 짧은 시간에 두기에 다양한 연구 주제가 있음. 장님이 코끼리를 만지는 상황을 일반적으로 생각하는데, 딥러닝이라 불리우는 학문은 여러 분야에 얽혀 있다.
일반적으로 3가지가 있는데 ,하나가 구현 실력(텐서플로우, 파이토치)이 중요함. 머릿속에서 떠오른 것을 결과로 뽑는 것. 가장 근간이 되는 것을 보도록 할 것이다.
Implementation Skills 
Math Skills(Linear Algebra, Probability)
Knowing a lot of recent Papers
- 연구를 하는 입장에서 보면 현재 트렌드와 어떤 논문과 연구가 무엇인지 아는 것이 중요하다.
꼭 알아야하는 논문들 위주.
Artificial Inteligence
사람의 지능을 모방하는데, 꼭 인공지능만 쓰는 것이 아니기에 분류 체계를 잘 알아야 함. 
Artificial Inteligence
- 학습을 데이터로 하며, 강아지와 고양이를 분류하는 문제를 풀 때, 강아지와 고양이 많은 이미지들을 이것을 자동으로 분류하는 알고리즘 머신을 만드는 것이 머신러닝이다.
- 인간의 지능을 모방하는 것을 세부적인 분야가 딥러닝, 인공지능 전체를 말하는 것이 아닌 뉴럴 네트워크를 말한다.
- 딥러닝이라는 분야에 가장 기본이 되는 요소는 일반적으로 네가지를 말하며, 그 중에 하나가 데이터.
The data that the model can learn from
- 강아지와 고양이를 분류할 때, 수많은 관련 이미지가 필요하며, 자연어를 분류할 때에 위키피디아 등의 말뭉치가 필요함. 비디오가 필요할 때, 유튜브의 수많은 영상 데이터가 필요하다.
- 학습하고자 하는 것이 필요하고, 출력이 고양이인지 강아지인지 라벨이 필요하며, 이러한 모델을 학습하는 것이 중요하다.
Key Components of Deep Learning
 - The data that the model can learn from
 - The model how to transform the data
 - The loss function that quantifies the badness of the model
 - The algorithm to adjust the parameters to mnimize the loss
연구 논문을 4가지를 통해서 보면 조금더 논문을 이해할 수 있게 된다.
Data
- Data depend on the type of the problem to solve.
Classification: 이미지가 필요
Semantic Segmentation: 이미지의 픽셀이 어떤 것에 속해있는지, 하늘인지 도로인지 등등 
Detection: 이미지안의 물체에 대한 바운딩 박스를 찾는 것. 이 영역에는 고양이가 있고, 이 영역에는 강아지가 있다 등의 공간적인 개념.
Pose Estimation: 3차원 혹은 2차원 스켈리톤 정보를 알려주는 것
Visual QnA: 이미지가 주어지고, 눈에 색깔에 대한 답을 알려줌. 
Model
- AlexNet, GoogLeNet, ResNet, DenseNet, LSTM, Deep AutoEncoders, GAN
바꿔주는 모델. 어떤 데이터와 테스크가 있다해도 결과를 잘 나오게 하기 위한 테크닉이 존재.
Loss
- The loss function is a proxy of what we want to achieve.
모델을 어떻게 학습할지, 뉴럴 네트워크라는 것은 레이블에 들어있는 웨이트에 각각 파라미터들을 어떻게 업데이트할지.
그때 기준이 되는 로스 펑션. 
Regression Task
Classification Task
확률적인 부분, 값에 대한 평균과 분산. 중요한 점은 loss function은 이루고자하는 근사치에 불과함.
일반적으로 분류와 회귀 문제를 풀 때, 로스 펑션이 줄어진다고 하여 원하는 값을 이룬다는 보장은 없음. 관계를 잘 이해하는 것이 
새로운 연구를 하는데, 가장 중요함. 데이터의 노이즈가 많을 때, 뉴럴의 타겟값을 줄게 하면 제곱이 전체적인 학습을 줄이게 함. 
절대값, 여러 로스 펑션을 제한함. 회귀 문제를 풀 때, 진짜 풀고자 하는 문제를 어떻게 푸는지 이해하는게 중요함.
Optimization Alforithm
뉴럴 네트워크의 파라미터를 1차 미분한 정보를 활용하는데, 변형한 모멘텀 등을 이해하는 것. 
학습할 때, 오히려 안되게 하는 방법을 추가하는데, 이유는 단순히 로스 펑션을 줄이는 것이 아닌 학습하지 않은 데이터에 모델이 잘 동작하는 것
Dropout, Early stopping, k-fold validation, Weight decay, Batch normalization, MixUp, Ensemble, Bayesian Optimization
Historical Review
2012 - AlexNet
이전부터 있어 왔는데, 알렉스넷이 딥러닝으로 1등한 것. 이후엔 딥러닝 이외의 방법론으로 1등한적이 없을 정도로 딥러닝이 실질적인 성능을 발휘.
 
2013 - DQN
Q러닝이라는 강화학습 기반. 딥마인드의 성과로 구글에게 인수.
 
2014 - Encoder / Decoder
풀고자 하는 문제는 다른 언어로 되어 있는 문장이 있을 때, 잘 표현해서 단어의 연속으로 만드는 것.
 
2014 - Adam Optimizer 
딥러닝을 학습시킬 때, 아담을 사용함. 아담을 그냥 쓰는 경우가 많은 것은 결과가 잘나와서임. 구글이나 큰 그룹의 논문을 보면 희안한 행동을 많이 하는데, 
학습의 절반이 이뤄졌을 때, 러닝 레이트를 맞추면 결과가 나옴. 이렇게 안할 때 같은 결과가 나오지 않음.
 
2015 - Generative Adversarial Network
네트워크가 제너레이티브와 애드벌서리얼을 하는 것. 술집에 가서 술을 마시는게 연구에 도움이 되는 걸 알 수 있음.
 
2015 - Residual Networks
딥러닝이 가능하게 된 이유, 네트워크를 사용하는 것이 많아졌고, 네트워크가 많이 쌓이면 트레이닝 에러는 낮지만, 성능이 안나온다는 기존의 것을 깨트림
네트워크를 깊게 만들게 했음
 
2017 - Transformer
도전적인 제목, 풀고자하는 문제와 어떻게 풀었는지 어떤 성질을 정하는 것이 중요. 왠만한 부분을 대체하고 있음.
이 구조가 기본의 방법론에 비해 장점이 있고, 좋은 성능을 낼 수 있는지 알 수 있음. 
 
2018 - BERT (fine-tuned NLP models)
Pre-training / Fine-Tuning
 
2019 - BIG Language Models
BERT의 끝판왕, 다양한 프로그램과 표 등의 시퀀스 모델을 만들 수 있음. 많은 파라미터를 갖고 있다는 장점이 있음.
1,700억개의 파라미터가 있음.
 
2020 - Self Supervised Learning
한정된 학습 데이터가 주어졌을 때, 다른 좋은 결과를 내는 것과 학습 데이터 외에 라벨을 모르는 un-supervised 모델을 모음.
논문에서 하고 싶은 것은 어떻게 하면 이미지를 컴퓨터가 이해하게 하는지와 같이 활용하여 풀고자하는 분류 문제를 잘 풀겠다는 것이 핵심.
풀고자하는 문제에 대한 고도화된 도메인 지식이 있어 더 좋은 결과를 냄.​
SimCLR: a simple framework for contrastive learning of visual representations