[08.09] Day6 - '🧑🏫 DeepLearning Overview + MLP'
딥러닝 기본 용어와 History
[수업 내용]
강사 : 최성준 조교수님
어떻게 좋은 Deep learner가 될 수 있나?
- 구현하는 스킬들(Tensorflow, Pytorch)
- 수학적 기술(선형 대수, 확률론)
- 최근 연구 결과를 살펴본다.
인공지능이란 → 사람의 지능을 모방하는 것이라고 하셨다.
Deep Learning의 중요한 Key 요소들
- 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 Algoritm to adjust the parameters to minimize the loss
[Data]
: 데이터는 문제에 대한 종류, 유형들에 따라서 결정이 된다.
[Model]
: 문제에 따라 다양한 모델들이 적용이 된다.
[Loss Function]
: 모델과 데이터가 정의되어 있을때, 이 모델을 어떻게 학습할 수 있을까 (이루고자 하는 것에 근사치에 불과한다. Loss function이 줄어든다고 항상 우리가 원하는 목표를 이룬다고 할 수 없다.)
[Optimization Algorithm]
: 네트워크를 어떻게 줄일지, 이런 다양한 Optimization들의 특성을 아는 것도 중요하다. 네트워크가 학습 데이터에만 잘 적용되는 것이 목표가 아니라 새로운 데이터들에 대해서 잘 예측을 해야하기 때문에 추가적인 요소들도 적용이 된다.
[다양한 방법론 - Historical]
[2012] - Alex Net
: 224*224 이미지를 분류하는 것이 목표였다. 이 당시 Alex Net모델이 우승하게 되었다. 딥러닝을 통해서 최초로 1등을 했던 방법론
[2013] - DQN
: 알파고를 만든 딥마인드 회사에서 '아타리'라는 게임을 강화학습으로 푸는데 사용한 방법론이 DQN이다.
[2014] - Encoder/Decoder, Adam
: NMT, 다른 언어로 되어 있는 문장이 주어질 때, 어떻게 잘 표현해서 다른 언어의 단어 연속으로 만들어 주는 것이 목적이었다.
: Adam Optimizer. 왜 다 Adam을 사용할까? Optimizer는 여러개가 있는데, 결과가 잘나와서 그렇다.
[2015] - GAN, ResNet
: 이미지, 텍스트를 어떻게 만들어낼 수 있을지에 대한 방법론. (네트워크가 Generator와 Discriminator두개를 만들어서 학습을 시키는 것이다.)
: 딥러닝이 딥러닝이 가능하게 되었다. 네트워크를 깊게 쌓기 때문에 그렇다. 이전에는 깊게 쌓으면 성능이 잘 안나온다는 이야기가 있었는데, ResNet이 나오면서 많은 양의 Layer를 쌓을 수 있게 되었다.
[2017] - Transformer
: 'Attention is All You Need'. 요즘 웬만한 RNN, CV 쪽을 먹어삼키고 있을 만큼. 굉장히 핫한 모델이다.
[2018] - BERT(fine-tuned NLP models)
: Bidirectional 을 사용해서 Tranformer 모델을 만든다.
[2019] - Big Language Model(GPT-X)
: Language 모델이고, 약간의 fine tunning을 통해 여러가지 시퀀셜 모델을 만들 수 있다. 강점은 많은 파라미터로 되어 있다.
[2020] - Self-Supervised Learning
: SimCLR의 기반. 분류 문제를 풀고 싶은데, 한정된 학습 데이터가 있을때, 모델을 바꿔가면서 성능을 올려주는 것이 일반적이었다면. 이 모델 같은 경우는 Label을 모르는 Un-supervised 데이터를 활용한다는 방법론이다.
MLP(Multi Layer Perceptron)
[수업 내용]
강사 : 최성준 조교수님
Neural Networks
- "뉴럴 네트워크는 동물의 뇌를 기반으로한 생물학적 뉴럴 네트워크에 기반하여 영감을 받은 컴퓨팅 시스템이다." (100%로 맞는 말은 아니라고 하신다. Why? 역전파가 인간에게 일어나는가)
- "뉴럴 네트워크는 함수를 근사하는 모델이다. affine transformatoin(행렬 곱)에 non-linear 연산이 반복적으로 일어나는 네트워크이다."
인간이 새가 되고 싶어서 새가 될 필요는 없다. 우리만의 방식으로 표현하고 이에 대해서 왜 잘되었는가? 어떻게 만들어졌는가? 를 생각하는 것이 더 중요한 포인트이다.
Linear Neural Network
데이터 : 2차원에서 좌표값들(N개)
모델 : 선형 함수
Loss Function : 오차 제곱의 평균(MSE)
목표 : N개 데이터를 잘 설명하고 표현할 수 있는 선형식을 구한다.
어떻게 W와 bias를 찾을까?
→ Back Propagation. Loss가 줄어드는 것이 목표. 그래서 미분하는 방향을 음수 방향으로 밀게 되면 Loss가 최소값이 될 것이다.
: Gradient Descent라고 부른다. 왜? 내가 Loss Function에 대해서 각 파라미터에 대해 편미분을 구하고 빼주는 과정을 진행하기 때문이다.
이렇게 차원이 다른 x와 y에서 x→y의 의미는. 선형변환을 의미한다.
중간에 non-linear Function(activation function)을 통해서 Feature Vector를 다시 선형 곱을 통하고 이를 계속적으로 반복한다.
→ 이 구조가 MLP의 구조이다.
[피어세션 정리]
- 오늘은 필수 과제로 주어진 Pytorch 코드를 뜯어보고 한줄 한줄 무슨 의미인지 파악했다.
- 알고리즘 스터디도 진행 중이기 때문에 문제에 대한 생각을 나누었다.
[학습 회고]
- Historical 한 방법론을 짧지만 핵심만 요약해서 알려주셔서 좋았다.
- non-linear Function의 활용 이유에 대해서 알게 되었다.
- Loss Function, Activation Function, Optimizer를 구분할 수 있게 되었다.