본문 바로가기

Deep Learning/Terminology

(5)
Recurrent Neural Network (RNN)란 무엇인가? ANN, DNN, CNN, RNN, LSTM, GRU 등 무수히 많은 인공지능 알고리즘들이 존재한다. 그중에서 오늘은 RNN에 개념에 대해 Posting 해보고자 한다. RNN이란 시계열 및 자연어처리 (Natural Language Processing) 문제해결을 주된 목적으로 개발도어진 알고리즘으로서 Feedforward Network와 달리 이전 시점의 내부상태를 다음 시점으로 전달해 주는 구조를 통해 시간의 흐름에 따른 데이터특성을 반영하여 학습을 진행할 수 있다는 것이 가장 큰 특징이다. 아래의 그림과 같은 기본구조를 기반하여, 현재 실전 문제해결에서 보편적으로 사용되고 있는 LSTM 및 GRU등의 알고리즘들이 탄생하게 된다. 이 RNN을 기반한 다양한 알고리즘들은 CNN기반의 영상예측 알고리즘..
Logistic Regression (로지스틱 회귀) Losgistic Regression은 분류를 위한 선형 모델이며, 기존의 Linear Regression과의 다른점은 연속적이었던 목적 변수 y가, 0 또는 1의 이산값으로 바뀌게 된다는 것이다. 이 때, 0 또는 1의 이산값을 만들어주기 위해 Sigmoid라는 활성화함수(Activation Function)을 도입하고, 그 수식은 다음과 같다. 로지스틱 회귀도 앞선 선형회귀 모델처럼 확률모델이며, y가 파라미터 z의 베르누이 분포를 따른다고 가정한다. 앞선 포스팅에서 소개한 베르누이 분포의 최대우도추정을 적용시 손실함수는 아래와 같은 수식으로 나타나며, 이 손실함수가 우리가 앞으로 흔히 접하게될 Cross-Entropy임을 기억하자!
Linear Regression (선형회귀) 선형 회귀란 여러 변수로부터 하나이상의 값을 예측하는데 사용되는 기법이며, 아래의 식과 같이 수식화가 가능하다 (벡터 x는 독립 변수이며, 벡터 y는 예측하고자하는 목적 변수임). a와 b는 선형모델의 매개변수(Parameter)와 편향(Bias)이며, epsilon은 오차를 나타낸다. 본 선형회귀모델의 도입 목적은 x라는 벡터값으로 부터 y라는 벡터값을 예측해내는 것이며, 위 그림과 같이 해석적으로 결과를 분석하면, 평균제곱오차를 최소화하는 a 벡터값을 추정하는 것이다.
Stochastic Gradient Descent (확률적 경사 하강법) Likelihood 함수의 편미분값이 0이 되게하는 방정식의 solution을 찾기 힘든경우에는 수치적으로 최적화작업에 들어가야한다. 이를 위해 머신러닝 및 딥러닝 분야에서는 Cost/Loss Function이라는 개념을 도입해 목적함수를 최소화하는것을 목표로 삼는다. Gradient Descent란 미분가능한 함수에 대해 Optimal Solution을 구할 때, 미분계수를 반복적으로 계산하고 이를 바탕으로 최적화된 매개변수 Theta를 찾아가는 방법이다. Likelihood 함수와 같이 목적 함수가 동일형태의 함수의 합으로 분해할 수 있을 때는 모든 데이터값을 사용하는 것이 아니라, 랜덤하게 일부값(Mini-batch)만을 사용하는 Stochastic Gradient Descent를 쓴다.
Maximum Likelihood Estimation (최대우도추정)