AI

내가 생각하는 딥러닝 간단 소개

해쨔니 2022. 8. 1. 13:42

Deep Learning과 Machine Learning의 목적은 정확도를 올리는 것이 아니라, weight와 bias의 업데이트를 통해 loss를 최소화하는 예측값을 찾는 것임.

input data를 X, 가중치를 w, bias를 b라고 하면

  • Linear regression은 (X*w + b) 연산을 통해 예측한 Y로 loss를 산출하고 (Y-target)
  • Logistic regression은 Z = (X*w + b)에 비선형성을 추가하기 위해 activation function으로 sigmoid를 적용하여 예측한 Y로 loss를 계산
  • Deep leaning은 여러 층에 걸쳐 (X*w + b)에 activation function를 적용한 후 계산된 Y로 loss 산출
  • CNN은 convolution 연산이라고 부르는 integral{f(x)g(x-t)}로 Y를 예측하여 loss를 산출하게 됨.

즉, 모든 딥러닝과 머신러닝은 중간에 비선형 알고리즘과 같은 연산이 다를 뿐 결국 loss라 일컫는 (Y-T)를 최소화 시키기 위해 w와 b를 업데이트하는 과정이라고 할 수 있음.

따라서 학습 흐름은 아래와 같이 요약할 수 있음

  1. Data preperation
  2. Initialize weights & bias randomly
  3. Define loss function & output, y
  4. Learning (for epochs, steps)
  5. Evaluate & Predict

 

그럼 딥러닝의 큰 분류라고 할 수 있는 CNN, RNN, Transformer의 차이는 무엇인가? => 은닉층에 사용하는 함수

Convolution을 사용하면 CNN

Sequence를 사용하면 RNN

Seq to Seq를 사용하면 Transformer가 되는 것임.

 

그래도 activation function이나 Loss function도 다 다르던데? => 아무거나 사용해도 됨

간혹 로지스틱엔 binary cross entropy 선형회귀엔 mse 등 특정 loss function만을 사용해야 한다고 알고있는 사람들이 있는데, 아님. Loss는 단지 Y-T를 계산해주기만 하면 됨. 다만, 사용하는 알고리즘에 따라 '최적화'된 방법이 있을 뿐임. 로지스틱에 BCE를 사용하면 mse를 사용하는 것보다 더 정확하게 loss가 계산되기 때문에 사용할 뿐이지 로지스틱에 mse를 사용해도 상관은 없음.

 

마찬가지로 일반적인 러닝에서 activation function으로는 sigmoid가 자주 쓰이고, 이미지 분석에서는 ReLU, 자연어처리에서 tanh가 쓰이는 이유도 데이터 타입에 따라 가장 '최적화'된 방법론이기 때문임. 새 이론이 나온다면 언제든지 변경될 수 있는 부분이지 절대적인 게 아님