딥러닝 기본 개념: ANN DNN CNN RNN 순전파 역전파

딥러닝은 머신러닝의 부분집합으로서 인공신경망으로 기반으로 하는 것으로 연속된 계층으로 되어 있는 신경망에서 데이터를 통해 학습하는 머신러닝의 한 종류라고 할 수 있습니다. 이번 포스팅에서는 딥러닝의 개념과 딥러닝과 관련된 중요한 기본 지식들을 알아보려고 합니다.

ANN

ANN은 Artificial Neural Network 의 약자로 인공신경망을 의미하며 인간의 신경망 원리와 구조를 모방해 만든 머신러닝 알고리즘으로 데이터 분석, 패턴 인식 그리고 상황 판단 등의 작업에 다양하게 적용할 수 있습니다. 인공신경망은 뉴런이라는 작은 단위들이 서로 연결되어 있고 이를 통해 정보를 처리하고 전달하는 방식을 가지고 있으며 여러 계층을 구성하고 여러 개의 뉴런으로 이루어집니다. 인공신경망의 구성 요소는 입력층, 은닉층, 출력층으로 구성되어 있고 입력층은 데이터를 받아들이고 은닉층은 복잡한 패턴을 학습하고 추출하며 출력층은 최종 결과를 출력해내는 층이라고 할 수 있습니다. 뉴런과 뉴런과의 연결관계는 가중치에 따라 달라지며 Activation 함수인 활성화함수에 따라서 최종 출력값이 달라집니다. 그래서 인공 신경망은 데이터 학습을 통해 최적의 가중치를 업데이트하고 최적의 최종 결과 값을 산출하도록 합니다.

머신러닝

출처: unsplash.com 딥러닝

DNN

ANN으로 기본적인 분석의 효과가 있지만 gradient 값이 0에 수렴하여 weight 의 최적값을 찾기가 어렵고 Overfitting이 된다거나 학습시간이 느리다거나 하는 문제점이 있었는데 이러한 문제점을 해결하기 위해 ANN 내의 은닉층(Hidden layer)을 늘려서 학습의 결과를 향상시키는 방법입니다. 은닉층을 더 많이 추가하면 모델의 분석력이 증가하고 더 복잡한 패턴을 학습할 수 있습니다. DNN은 주로 이미지 인식, 음성인식, 자연어 처리, 게임 인공지능 등 다양한 분야에서 사용되며 매우 뛰어난 분석이 가능합니다.

순전파(Forward Propogation)

순전파는 인공신경망에서 학습 프로세스를 하는데 중요한 개념으로 순전파는 인공 신경망의 입력부터 출력방향으로 데이터가 흘러가는 과정입니다. 입력 데이터는 입력층으로 들어가고 각 뉴런은 입력과 가중치를 곱하고 활성화 함수를 적용하여 출력을 생성하며 출력층 까지 이과정을 반복하여 신경망은 예측값을 생성합니다. 순전파를 통해서는 신경망이 현재의 Weight와 bias를 사용해서 입력된 데이터로 부터 값을 예측합니다.

역전파(Back propagation)

역전파는 순전파를 통해 산출된 예측 값과 실제 타겟 값간의 오차와 오차에 따른 비용(Cost)를 계산하고 이 오차와 비용값을 사용하여 신경망의 Weight과 bias 를 조정하는 과정이며 역전파는 오차를 출력층에서 시작하여 역순으로 각 층으로 전파하며 각 층의 가중치와 활성화 함수의 미분값을 사용하여 이전 층의 오차를 계산하는 방법으로 최적 값을 찾아갑니다. 가중치와 편향을 조정할 때는 경사 하강법 등의 알고리즘을 사용하며 역전파로 산출된 기울기 값 즉 Gradient를 활용하여 비용값을 최소화하는 방향으로 조정하는 방법을 사용합니다.

CNN

CNN은 ANN과 같이 데이터에서 지식을 추출해 학습을 하는 형식이 아닌 데이터의 특징을 추출하여 특징들의 패턴을 파악하는 구조로 합성곱 연산을 사용하여 입력 데이터와 필터를 합성곱하여 특징 맵을 생성하는 것을 주요 프로세스로 하고 있으며 합성곱층은 입력 데이터와 필터간의 합성곱을 수행하고 특징 맵을 생성하는 것을 말하며 풀링층은 특징 맵의 크기를 줄이고 중요한 정보를 강조하는 역할을 하며 완전 연결층은 특징 맵에서 추출된 정보를 사용하여 예측을 수행할 수 있습니다. CNN은 주로 이미지 인식과 컴퓨터 비전 작업에 사용됩니다.

RNN

RNN은 순환 신경망으로서 반복적이고 순차적인 시계열과 같은 데이터 학습을 처리하는데 사용되며 순차적인 텍스트 데이터나 시계열 데이터를 다루는데 적합합니다. RNN은 순환구조로 이루어져있으며 주요 구성요소는 순환셀과 은닉상태인데 순환셀은 현재의 입력값과 이전 타임스텝에서 은닉상태를 사용하여 현재 타임스텝의 출력을 계산하며 은닉상태는 이전 타임스텝의 출력을 기반으로 과거 정보를 유지하며 전달하는 역할을 하게 됩니다. 과거의 학습된 가중치를 통해 현재 학습에 반영된다는 특성이 있으며 기존의 지속적이고 반복적이며 순차적인 데이터 학습의 한계를 해결한 알고리즘으로 현재의 학습과 과거의 학습의 연결을 가능하게 합니다. 장기적인 시간의 의존성 문제가 있지만 이를 해결하기 위해 LSTM 등의 변종 모델이 개발되면서 이러한 문제점을 해결하였습니다.

답글 남기기