본문 바로가기

LAB/AI

딥러닝(4) ANN, DNN, CNN, RNN 개념과 차이

728x90
반응형

 

 

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

 

 

(1) 인공지능 : 인간의 지능을 기계 등에 인공적으로 구현한 것

(2) 머신러닝 : 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 것

(3) 딥러닝 : 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화

     즉 다량의 복잡한 자료들에서 핵심적인 내용만 추려해는 작업을 시도하는 기계학습 알고리즘

 

 

2. ANN, DNN, CNN, RNN

 

(1) ANN

 

 

Artificial Neural Network의 약자로, 인공 신경망을 의미한다. 사람의 신경망 구조 및 원리는 모방하여 만든 기게학습 알고리즘이다. 인간의 뇌에서 뉴런들이 어떤 신호나 자극을 받고, 그 자극이 일정 임계값(threshold)을 넘어서면 결과 신호를 전달한다. ANN은 이와 같은 과정으로 작동한다. 

모델은 크게 입력층, 은닉층(들) 그리고 출력층으로 구성되며 각 층은 여러 개의 뉴런 또는 노드로 구성된다. 은닉층의 개수와 노드의 개수를 구성하는 것을 모델을 구성한다고 말하는데, 우리는 이 모델을 잘 구성하여 원하는 출력 값을 잘 예측해야 한다. 노드들은 가중치와 활성화 함수를 통해 연결되고, 정보 처리 및 전달을 수행한다. 은닉층에서는 활성화 함수를 사용하여 최적의 가중치와 바이어스를 찾아내는 역할을 한다. 

ANN의 단점은 다음과 같다. [1] 과적합(Overfitting), 네트워크가 학습 데이터에 너무 많이 적합되어 다른 데이터에서 일반화되기 어려워지는 현상이다. 이로 인해 모델이 학습 데이터에 대해서는 잘 작동하지만, 새로운 데이터에 대해서는 성능이 떨어지기도 한다. [2] 하이퍼파라미터 조정의 어려움, 하이퍼파라미터는 모델의 성능에 큰 영향을 미치지만 이를 효과적으로 조정하는 것은 어렵다. [3] 계산 복잡성, 규모가 큰 신경망의 경우 계산이 많이 필요하다. 이로 인해 학습 및 추론 시간이 오래 걸릴 수 있다. 그 외에도 데이터 부족 문제, 데이터 편향성, Vanishing Gradient 문제 등이 있다. 

이 링크를 참고하여 좀 더 세부적으로 공부해보자. 

 

(2) DNN 

 

 

Deep Neural Network의 약자로, 모델 내의 은닉층을 많이 늘려 학습의 결과를 향상시킨 학습 방법이다. 은닉층은 2개 이상으로 구성된다. 각 은닉층은 '이전 은닉층의 출력'을 '입력'으로 받아 새로운 특징을 추출하고, 이러한 계층적인 특징 추출 과정이 여러 번 반복된다. 이를 통해 모델은 더 복잡한 데이터 패턴을 학습, 더 높은 수준의 추상적인 표현을 만든다. 

DNN은 이미지 처리, 음성 인식, 자연어 처리 등 다양한 분야에서 성공적으로 활용된다. 그러나 효과적인 학습을 위해선 많은 양의 데이터와 계산 리소스, 신중한 하이퍼파라미터 조정 등이 필수적이다. 

 

(3) CNN

 

 

Convolution Neural Network의 약자로, 크게 Convolution 과정과 Pooling 과정을 통해 진행된다. 즉, Convolution layer와 Pooling layer를 복합적으로 구성하여 알고리즘을 만든다. Convolution 과정이란 데이터의 특징을 추출하는 과정으로, 데이터의 각 성분의 인접 성분들을 조사해 특징을 파악하고, 파악한 특징을 한 장으로 도출시킨다. 그 한 장이 Convolution Layer이다. 이 과정은 압축 과정이며, 파라미터의 개수를 효과적으로 줄여준다. Pooling 과정이란 Convolution 과정을 거친 레이어의 사이즈를 줄여주는 과정이다. 데이터의 사이즈를 줄여줄 뿐만 아니라 노이즈를 상쇄시키고 미세한 부분에서 일관된 특징을 제공한다. 

 

Convolution process & Pooling process

 

이처럼 기존의 Neural Network는 데이터에서 지식을 추출해 학습을 수행하였지만, CNN은 데이터의 특징을 추출하여 특징들의 패턴을 파악한다는 차이가 있다. CNN은 시간적이거나 공간적인 패턴을 잘 학습하므로 주로 이미지 처리, 음성 처리 등의 분야에 사용된다. 

 

(4) RNN

 

 

Recurrent Neural Network의 약자로, 내부에 순환 구조가 들어있다. 순환 구조에서 '과거 학습'을 가중치를 통해 '현재 학습'에 반영한다. 순차적 데이터 학습의 한계를 해결한 알고리즘이다. 순환 계층(Recurrent Layer)에선 이전 단계의 출력을 현재 단계의 입력과 함께 사용하여 시퀀스의 패턴을 학습한다. 은닉 상태(Hidden Layer)에선, RNN은 이전 단계의 은닉 상태를 유지하면서 현재 입력을 처리하므로, 시퀀스 내에서의 정보를 유지하고 전달하는 데 용이하다. 현재 학습과 과거 학습의 연결이 가능하고, 시간에 종속된다는 특징을 가진다. 위의 그림에서 녹색 박스는 Hidden Layer, 빨간 박스는 Input x, 파란 박스는 Output y다. 

-> 활성함수로 비선형 함수를 쓰는 이유는? 선형 함수인 h(x) = cx를 활성 함수로 사용한 3층 네트워크를 생각해보자. 이를 식으로 나타내면 y(x) = h(h(h(x)))가 된다. 이 계산은 y(x) = c*c*c*x처럼 세 번의 곱셈을 수행하지만, 실은 y(x) = ax와 똑같은 식이다. a = c3라고만 하면 끝인 셈이다. 즉, 히든 레이어가 없는 네트워크로 표현 가능하다. 층을 쌓는 혜택을 얻고 싶다면 활성 함수로는 반드시 비선형 함수를 사용해야 한다. 

 

 

기본 RNN은 장기 의존성(Long-Term Dependencies)을 캡처하기 어렵다는 단점을 가진다. 즉 vanishiing gradient problem을 가진다. 이를 보완한 구조로는 LSTM, GRU가 있다. 그중 LSTM은 Long Short-Term Memory의 약자로, RNN의 히든 state에 cell-state를 추가한 구조다. cell state는 일종의 컨베이어 벨트 역할을 하며, state가 꽤 오래 경과하더라도 그래디언트가 비교적 잘 전파된다. 

RNN과 LSTM은 이분 블로그가 너무 좋아서요..! 꼭 참고하셔서 공부하면 좋을 것 같아요. 

 

 

3. 출처 및 참고 자료

 

https://www.analyticsvidhya.com/blog/2022/01/convolutional-neural-network-an-overview/ 

https://ebbnflow.tistory.com/119

 

 

728x90
반응형