딥러닝 기본 용어 설명 - Historical Review
딥러닝 기본 용어
- 딥러닝이라는 분야는 한 사람이 짧은 기간 동안 학습하기에 많은 연구 분야가 존재한다.
- 좋은 딥러닝 연구자가 되기 위해선 어떤 능력이 필요할까?
- 구현 기술(tensorflow, pytorch)
- 수학적 지식(선형 대수, 확률)
- 많은 최신 논문들에 대한 지식
- 인공지능은 사람의 지능을 모방하는 분야
- 머신러닝은 무언가를 학습할 때 데이터를 통해 학습하는 분야
- 딥러닝은 우리가 사용하는 모델일 Neural networks를 사용하는 세부적인 분야
- 딥러닝의 가장 중요한 요소들
1. 모델들이 배울 수 있는 데이터(ex. 개와 고양이를 분류하기 위한 이미지, corpus, 비디오 등)
2. 데이터를 우리가 원하는 결과로 변형시킬 수 있는 모델
3. 모델의 단점의 질을 측정하기 위한 loss function
4. loss를 최소화하기 위한 algorithm
* 위 4가지 항목을 비추어 새로운 논문이나 연구를 봤을 때 기존 연구와 어떤 장점이 있고 어떤 contribution이 있는지 파악하기 쉽다.
* 주의 깊게 4가지를 살펴보자
º 데이터
- 데이터는 해결해야 할 문제에 따라서 정해진다.
º 모델
- 우리가 원하는 값으로 바꿔주는 역할이다.
º Loss
- 모델과 데이터가 정해졌을 때 이것들을 어떻게 학습할지 정하는 것이다.
- 회귀 문제 : Neural Network의 출력 값과 내가 맞추고자 하는 설계점 사이 MSE(제곱의 평균) 관점
- 분류 문제 : Neural Network의 출력 값과 label data 사이 CE(cross entropy) 관점
- 확률 문제 : 나의 출력 값이 하나의 값이 아니라 값에 대한 평균과 분산으로 모델링하려고 할 때 MLE 관점
* 여기서 중요한 것은 loss 내가 이루고자 하는 것의 근사치에 불과하다.
* 단순히 loss 값을 최소화하는 것이 우리의 목적이 아니다 -> loss 값이 줄어든다고 우리가 원하는 목적을 이룬다는 보장은 없다.
* 그래서 loss값에 대한 관계를 잘 생각하며 사용해야 한다. (loss 값이 줄어든다는 것이 어떤 영향을 끼치고 있는지)
º optimiztion Algorithm
- 모델, 데이터, loss function이 주어졌을 때 네트워크를 어떻게 최적화(줄이는) 하는 방법을 찾는 것이다.
- loss function에 대한 1차 미분을 하는 방법을 활용한다.
* 1차 미분을 그래도 한 SGD는 효과가 잘 나타나지 않는다 -> 1차 미분을 활용한 여러 가지 방법이 존재한다.
Historical Review
2012 - AlexNet : ILSVRC에서 처음으로 딥러닝 모델을 사용해 1등을 수상한 모델(paradigm shift)
2013 - DQN : Q-Learning을 강화 학습에 접목한 방법(알파고의 근간이 되는 알고리즘)
2014 - Encoder/Decoder : NMT에 필요에 의해 등장, encoder라는 것은 단어의 sequence가 주어졌을 때 어떤 벡토로 encoding을 하고 decoder는 어떤 다른 언어의 sequence로 출력해주는 것
2014 - Adam optimizer : 대부분 optimizer는 adam을 쓴다 왜? computer resource에 맞게 웬만하면 성능이 좋음
2015 - GAN : 이미지나 텍스트를 만들어내는 방법론
2015 - ResNet : 딥러닝을 가능하게 해주는 딥러닝(네트워크를 좀 더 깊어질 수 있게 만듦)
2017 - Transformer : attention을 활용한 구조
2018 - Bert : fine-tuned NLP Model(거대한 말뭉치에 language model을 만들어 내가 사용하는 소수의 데이터에 fine tuned 하는 것)
2019 - GPT3(Big Languages Model) : 큰 규모의 language model로 많은 파라미터를 가지고 있다. 아무나 학습 불가
2020 - Self Supervised Model : 주어진 학습 데이터 외에 라벨을 모르는 unsupervised 데이터들을 활용하는 것. (핵심은 컴퓨터가 이해하기 위해 unsupervised 데이터들을 어떤 벡터로 변환해서 넣어 줄지가 관건)
★ 이번 포스팅은 여기까지 입니다. 질문이나 틀린 부분이 있으면 언제든지 댓글 남겨주세요. 감사합니다!