본문 바로가기

머신러닝 및 인공지능

딥러닝을 알아보자 [Chapter 1] - Deep Neural Network (DNN)

흔히 우리가 말하는 딥러닝 모델은 DNN이라고 하는데 

 

사실 네트워크 구성을 어떻게 구성하느냐에 따라 기본적인 MLP(Multi-Layer Perceptron)부터 시작해서 CNN, RNN, GNN그리고 요즘 GPT 모델에 사용되는 Transformer 모델까지 다양하게 많이 있다. 

 

그래서 나도 이번 기회에 복습도 할겸 

 

딥러닝 모델들에 대해서 기초적인 개념부터 차근차근 정리해볼 예정이다.

 

1. Deep learning 개념 및 구조

기존의 지도 학습(Supervised learning)안에서 ANN(Artificial Neural Network) 모델의 기반한 모델이며, 인간의 신경망의 구조를 띈다고 해서 붙어진 모델이름이다.

 

기존의 ANN은 (1)번에서 Hidden layer가 하나만 존재하는 모델이였다면 MLP는 Hidden layer를 여러개로 두어서 기존에 ANN에서 해결하지 못한 XOR 문제를 해결한 모델이다.

(Hidden layer가 겹겹이 많이 쌓여있기 때문에 깊다고해서 Deep이라는 이름이 붙여진 걸로 알고 있음)

 

최종적으로 (2)번에서 input data를 넣으면 각각의 Layer를 통과하면서 가중치 (Weight)와 곱해진 값으로 넘어가고 해당 값들을 활성화 함수(Activaition function)을 통해서 최종 output 값이 도출되게 된다.

 

2. 가중치는 어떻게 업데이트 되는지?

가중치는 역전파(Backpropagation) 알고리즘이 활용되는데, 간단하게 말하면 임의로 가중치 값을 설정하고

훈련 데이터의 output 값을 비교하며 가중치를 업데이트해나가는 방식이다. 

역전파 알고리즘도 기본적인 경사하강법(Gradient Descent), 모멘텀(Momentum), Adam 과 같이 여러가지가 존재하는데 주로 Adam을 많이 사용하는 듯 하다. 옵티마이저 관련해서는 이 아래 그림이 주로 직관적으로 이해하기 쉽다

 

출처 : https://wikidocs.net/291515

 

 

3. 활성화 함수는 어떤것들이 있나?

활성화 함수는 레이어 단계와 최종 출력 단계로 나누어서 각각에 사용되는 함수가 다르다.

우선 레이어 단계는 주로 ReLU를 활용한다. 기존에는 Sigmoid 함수를 사용했었으나, 가중치를 업데이트 하는 과정에서 가중치 손실 현상이 있기 때문에 이를 해결하기위한 함수가 ReLU이고 이의 변형 함수가 Leaky ReLU, ELU, GeLU 같은 함수가 있다. 

최종 출력 단계에서는 분류(Classifiation)를 진행한다면, 이진 변수인경우 Sigmoid, 다중 변수인 경우 softmax 함수를 활용한다.