부스트캠프 AI Tech

3주차 - 딥러닝 기본

이니니 2022. 10. 4. 19:06

1강. Neural Networks & Multi-Layer Perceptron

 

인공지능이란? 사람의 지능을 모방하는 것이다.

인공지능, 머신러닝, 딥러닝

딥러닝에서 중요한 요소는?

  • data : 풀고자 하는 문제에 의존
  • model 
  • loss fuction : 모델을 어떻게 학습시킬까
  • optimization algorithm

 

Historical Review : 어떠한 연구들이 큰 변화를 주었는가

  • 2012 - AlexNet : AlexNet의 등장으로 딥러닝이 시작되었다고 볼 수 있으며, 기계학습에 대한 판도가 뒤집힘
  • 2013 - DQN : 알파고를 만든 알고리즘이다. 강화학습을 딥러닝에 적용한 방법론이다.
  • 2014 - Encoder / Decoder : 어떤 문장이 주어졌을 때, 이를 잘 표현해서 다른 언어로 표현해 줄 때 활용( 기계번역의 트렌드가 바뀜)
  • 2014 - Adam Optimizer : Adam을 사용하면, 웬만한 실험에서 좋은 성능을 보여준다.
  • 2015 - GAN(Generative Adversarial Network) : 이미지, 텍스트를 생성
  • 2015 - ResNet : 네트워크가 깊게 쌓일 수 있게끔 만들어준 논문
  • 2017 - Transformer : attention 구조를 가지고 있으며, 이전의 방법론들에 비해 더 좋은 성능을 보여줌
  • 2018 - BERT : fine-tuned model
  • 2019 - Big Language Models(GPT-X) : 엄청난 거대 모델
  • 2020 - self-supervised learning : 주어진 학습 데이터 외에 라벨링 안된 데이터를 활용하는 것

2강. Neural Networks & Multi-Layer Perceptron

 

Neural Network란, 포유류의 신경망을 모방하고자 하는 시스템이다.

이를 깊은 의미를 담아 다시 말하자면, 비선형 연산이 반복적으로 일어나는 모델이라고 할 수 있다. ( ex. GoogLeNet )

 

가장 간단한 neural networks는 Linear Neural Networks이다.

이는 Linear function으로, 입력이 1차원이고 출력이 1차원일 때, 이 두 개를 연결하는 모델을 찾는 것이다. (선형적인 관계) 문제를 해결하는 방법은 model에서의 w, b 값을 찾는 것이다.

이러한 회귀 문제를 풀 때, 사용하는 Loss는 squared error이다. 이를 보통 MSE라고 부른다.

우리는 예측값이 정답값에 가까워지게 하기 위해서 loss를 최대한으로 줄여야 한다. 이 때, 사용하는 것이 back propagation이다. 결국은 loss function이 주어질 때, 파라미터가 어느 방향으로 움직였을 때 loss function이 줄어드는지 찾고, 그 방향으로 파라미터를 바꿔주는 것이다. 이 과정에서 loss function을 각각 파라미터로 미분하게 되는 방향의 음수 방향으로 업데이트 해주면 loss가 최소화 되는 지점에 도달 할 수 있을 것이다.

이렇게 업데이트 해가는 과정을 Gradient descent라고 한다. 업데이트 해주는 과정에서 step size를 너무 크거나 너무 작게 설정하면 학습이 안되기 때문에 적절하게 설정하는 것이 필요하다.

 

딥러닝은 neural network를 깊게 쌓는 것이다. 그러나, 선형 layer만을 깊게 쌓으면, 그것은 결국 위와 같이 될 것이다. ( 예측값을 구하는 과정을 행렬의 연산으로 표현 가능하다.) 그렇기 때문에 한 번 선형 결합이 반복되게 되면, 그 뒤에 activation function( ex. relu, sigmoid, softmax ) 을 곱해주면서 nonlinear transform이 되고, 이렇게 얻어진 feature vector를 다시 선형 결합, activation function, 선형 결합..... 을 거치면 더 많은 표현력을 갖게 된다. 

 

그렇다면 어떤 nonlinear function을 사용해야 할까? ReLu, Sigmoid, Hyperbolic Tangent 등이 있다.

 

MLP (Multi-Layer Perceptron)은 입력이 주어질 때, 입력을 linear transform과 nonlinear transform을 거치면 hidden vector가 나온다. 이러한 2개 이상의 layer가 있는 neural network를 말한다.

 

회귀 문제를 풀 때의 목적은, 입력이 주어졌을 때 해당 출력 값과 dataset에서 나오는 target 값 사이의 제곱을 줄이는 것이었다. 이를 MSE라고 한다. 

분류 문제를 풀 때에는 cross entropy loss function으로 주로 푼다. 일반적으로 분류 문제의 output은 one-hot vector로 표현 가능하다. 

각각의 loss function들은 아래와 같다.


회고

loss function을 이해만 하고 있었는데, 이들을 수식을 보며 어떤 의미인지 깊게 생각해볼 수 있었다. 딥러닝의 역사를 간단히 보면서, 그 흐름을 간단하게 파악할 수 있었다.


위 내용은 부스트캠프 AI Tech 에서 제공한 내용을 바탕으로 작성하였습니다.

'부스트캠프 AI Tech' 카테고리의 다른 글

3주차 - CNN (Convolutional Neural Network)  (1) 2022.10.06
3주차 - 최적화  (0) 2022.10.05
2주차 - PyTorch 구조 학습하기  (0) 2022.09.30
2주차 - Pytorch 기본  (0) 2022.09.29
1주차 - AI Math (9/19 ~ 9/23)  (1) 2022.09.23