네이버 부스트캠프 AI Tech 2기

[08.09] Day6 - '🧑‍🏫 DeepLearning Overview + MLP'

Jay x 2 2021. 8. 13. 19:30
728x90
반응형

딥러닝 기본 용어와 History

[수업 내용]

강사 : 최성준 조교수님

어떻게 좋은 Deep learner가 될 수 있나?

  1. 구현하는 스킬들(Tensorflow, Pytorch)
  2. 수학적 기술(선형 대수, 확률론)
  3. 최근 연구 결과를 살펴본다.

인공지능이란 → 사람의 지능을 모방하는 것이라고 하셨다.

Deep Learning의 중요한 Key 요소들

  1. The Data that the model can learn from
  2. The Model how to transform the data
  3. The Loss Function that quantifies the badness of the model
  4. 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

  1. "뉴럴 네트워크는 동물의 뇌를 기반으로한 생물학적 뉴럴 네트워크에 기반하여 영감을 받은 컴퓨팅 시스템이다." (100%로 맞는 말은 아니라고 하신다. Why? 역전파가 인간에게 일어나는가)
  2. "뉴럴 네트워크는 함수를 근사하는 모델이다. 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의 구조이다.


[피어세션 정리]

  1. 오늘은 필수 과제로 주어진 Pytorch 코드를 뜯어보고 한줄 한줄 무슨 의미인지 파악했다.
  2. 알고리즘 스터디도 진행 중이기 때문에 문제에 대한 생각을 나누었다.

[학습 회고]

  • Historical 한 방법론을 짧지만 핵심만 요약해서 알려주셔서 좋았다.
  • non-linear Function의 활용 이유에 대해서 알게 되었다.
  • Loss Function, Activation Function, Optimizer를 구분할 수 있게 되었다.
반응형