티스토리 뷰

딥러닝의 역사를 이해하기 쉽게 시간순으로 정리해봤습니다!

본문의 자세한 개념들은 링크를 통해 살펴보실 수 있도록 하나씩 추가해나갈 예정이에요!

딥러닝의 시초 인공신경망 (1940~1950)

딥러닝의 역사는 1940년대 인공지능에서부터 시작되었습니다. 인간은 기계에게 지능을 부여하고자 했으며

인공지능 연구자들은 인간의 두뇌를 모방하여 정보를 처리하고자 하였습니다.

1943년 최초로 제안된 인공신경망(Artificial Neural Networks)

인간의 뇌 신경세포 구조를 수학적으로 모델링하는 개념입니다.

인간의 뉴런구조

인간의 신경세포(뉴런)  구조 [참고1]

인간의 뉴런은 Dendrite(수상돌기)를 통해 여러 개의 시그널을 받습니다.

Dendrite가 받은 여러 개의 시그널이 복합적으로 계산되어 Cell body에 전달되면 한 가지의 시그널이 만들어지고

만들어진 한 개의 시그널이 Axon(축색돌기)을 통해 다른 뉴런으로 전달되게 됩니다.

인간의 신경세포(뉴런)  구조 [참고1]

Dendrite와 Axon terminal의 결합점인 시냅스(Synapse)에서 일정치 이상의 입력신호를 받으면 출력신호가 나타납니다.

이것이 우리의 뇌가 신호를 받아서 반응하는 원리입니다.

퍼셉트론(Perceptron, 1958, Rosenblatt)

퍼셉트론의 구조 [출처 : Google - Wikimedia]

최초의 인공신경망 모델인 퍼셉트론은 위처럼 인간의 뉴런과 비슷한 구조로 이루어져 있습니다.

퍼셉트론 모델이 x라는 신호(input)를 받으면 각각의 x는 각각의 가중치(w)와 곱해지고 편향치(b)와 더해집니다.

모든 인풋 결과가 더해진 값을 활성화 함수에 인자로 대입하면 기대치 여부에 따라 다른 신호(output)가 리턴됩니다.

퍼셉트론 구조 [참고1]

*가중치 : 입력값에 대한 결과값 영향도 조정 매개변수
*편향치 : 활성도 결과값 조정 매개변수
*활성화 함수 : 결과값이 기대치 이상인지 아닌지에 따라 다른 신호를 보내는 함수

---------------------------------------------------------------------------------------------------------------------------------

인공신경망의 문제와 해결 (1960~1980)

퍼셉트론은 AND와 OR 연산자의 Linear separable한 문제를 쉽게 해결할 수 있었습니다. 

and or 게이트 [출처 : 유튜브 - 허민석님]

그러나 1969년, Minskey와 Papert의 저서를 통해

퍼셉트론으로는 XOR 연산자의 Unlinear separable한 문제를 해결할 수 없음이 밝혀졌습니다.

xor 게이트 [참고1]

XOR 연산의 한계로 신경망의 인기가 사그라지다가, 1986년 Geoffrey Hinton 연구진이

단층 퍼셉트론을 여러층 쌓아올린 다층 퍼셉트론(MLP,Multi Layer Perceptron)을 제시하였고

NAND, OR, AND연산자를 조합하여 비선형 분리 XOR 연산 문제를 해결할 수 있게 되었습니다.

하지만 MLP 층의 수가 많아지면서 늘어나는 Weight와 Bias를 수동으로 설정하여 학습시키기에는 한계가 있었습니다.

이를 해결하기 위해 Hinton 교수진이 Back propagtion Algorithm을 제안하면서 MLP를 제대로 학습할 수 있게됩니다.

오차 역전파 알고리즘
Back Propagation Algorithm

오차 역전파 알고리즘 [출처 : Google]

1974년 Paul Werbos이 처음 제안한 알고리즘으로 후진 방식 자동 미분에서 영감을 받아
오차(실제값 - 예측값)를 출력층에서 입력층으로 역으로 전파시켜 각 층의 가중치와 편향치를 계산하는 방법

---------------------------------------------------------------------------------------------------------------------------------

딥러닝의 등장과 암흑기 (1980~2000)

오차 역전파법으로 다층 퍼셉트론을 학습할 수 있게 되면서 인공신경망(ANN)은 호황기를 누릴 수 있었습니다.

 연구가 호황을 이루면서 ANN은닉층을 깊게 쌓아 만든 딥러닝 모델들(CNN, RNN)이 등장하기 시작했어요.

그러나 1990년대 접어들면서 실생활 문제 데이터의 차원이 증가하고, 구조가 복잡해지면서

러 문제가 발생하게 되고 딥러닝의 개념들은 그 당시 기술력의 부족으로 실질적인 한계를 마주하게 됩니다.

● Vanishing gradient, Non convex optimization problem
Non convex한 차원 그래프의 오차 희석 문제

손실함수 그래프 [출처 : Google]

최적의 파라미터 가중치(Global minimum) 할당하기 위해 경사하강법(Gradient descent) 사용하였으나
은닉층이 많아지고 구조가 복잡해지면서(Non convex) 최적값이 아닌지점(Local minimum)에서 학습을 멈춰버리는 문제

● Curse of dimensionality, Overfitting - 고차원의 저주와 과적합 문제

과대적합과 과소적합 (출처 : Google)

모델이 학습데이터에만 특화되게 학습되어 새로운 데이터를 입력받았을 때 성능이 저하되는 문제
고차원으로 갈수록 심해지는 현상 발생

● Low learning time - 느린 학습시간

하드웨어의 발전 (출처 : Google)

은닉층이 증가할수록 연산량이 급증하는 문제, 1900년대 당시 하드웨어에 큰 부담과 한계

이러한 문제들에 의해 신경망(Neural Network)기술은 암흑기를 맞이하게 됩니다.

---------------------------------------------------------------------------------------------------------------------------------

머신러닝의 호황기 (2000~2006)

인공지능의 시대적 번영 [참고2]

1900년대 후반, 신경망 기술이 움츠러들게 되고 2000년대에 접어들면서는 비선형 함수를 이용한

다양한 머신러닝 알고리즘들이 인공지능의 대세를 이루게 됩니다.

Support Vector Machine - 서포트 벡터 머신

SVM (출처 : Google)

클래스를 구분하는 경계면을 찾아서 입력값의 클래스를 예측하는 인공 신경망과 별개로 개발된 지도학습 분류 예측기법
오차를 최소화 하는 것 외에 두 부류 사이에 존재하는 여백(margin)을 최대화 하는 구분 경계면을 찾는 것이 목표
클래스 구분 경계면이 직선이 아닌 경우에는 커널을 이용하여 더 높은 차원의 데이터로 변형하여 학습

 K Nearest Neighborhood - 최근접 이웃 알고리즘

KNN (출처 : Google)

실제값과의 거리를 기준으로 입력값의 클래스를 예측하는 지도학습 예측 기법
입력값이 연속형인 경우에는 대개
유클리디안 거리를 사용하며, 이산형인 경우에는 해밍 거리를 사용
입력값에서 가장 가까운 K개의 실제값을 거리 탐색 후,
분류 문제이면 다수 투표를 수행하고, 회귀 문제이면 평균 계산을 수행하여 입력값의 클래스를 예측

두 기법은 labeled data(정답이 존재하는 데이터)에 기반한 지도학습 방식입니다.

그러나 실제로 세상에 존재하는 데이터들은 대부분 Unlabeled data(정답이 없는 데이터)였기 때문에

이 기법들 외에도 다른 지도학습 기법들은 성능이 좋았음에도 불구하고 한계에 봉착하게 됩니다.

---------------------------------------------------------------------------------------------------------------------------------

ANN의 일부 문제 해결과 딥러닝의 재조명 (2006~2010)

기나긴 암흑기에도 끊임없는 연구를 계속했던 Hinton 교수진는 2006년 Unsupervised방식의 선학습법을 적용한

RBM모델을 발표하고 ANN의 고질적인 문제들을 일부 해결하면서 비로소 딥러닝이 재조명 받게 됩니다.

Restricted Boltzmann Machine - 제한된 볼츠만 머신

Labeled data없이 Unlabeled data로 선학습 시킨 후,
역전파알고리즘을 통해 기존의 Supervised learning을 수행하는 학습법

RBM의 원리 (출처 : Google)

Pre training - 선학습법

군집화(비지도학습)를 통해 데이터노이즈를 감소시키면서
하위층 시냅스를 선훈련 시키고 선훈련된 층들을 쌓아 올려 최적화를 수행하는 학습법

선학습법을 통해 최적의 Training initial point지정할 수 있게 되면서

Vanishing graident, Non convex, Overfitting, Curse of dimensionality 문제들을 일부 해결할 수 있게 됩니다.

---------------------------------------------------------------------------------------------------------------------------------

 정규화 방법의 발전 (2010~2012)

Sigmoid 함수 (출처 : Google)

그러나 기존 신경망의 대표적인 활성화 함수인 시그모이드 함수가 비선형 모델 이기 때문에

선학습에도 불구하고 미분 과정에서 오차가 사라지는 Vanishing gradient(오차 희석)현상은 여전히 문제였습니다.

ReLU 함수 (출처 : Google)

이를 해결하기 위해 Hinton교수는 2010x0이상일 때 선형 증가하는 함수인 ReLU함수를 제안하고

ReLU함수를 활성화 함수로 사용하여 미분 문제를 해결하게 되면서 선학습의 필요성을 없애주었습니다.

그럼에도 Labeled data의 부족과 그로 인한 Overfitting문제는 여전히 ANN의 어려운 이유 중 하나였습니다.

이에 Hinton교수는 2012 DropOut이라는 정규화 방법을 제안합니다.

Drop out 방식 (출처 : Google)

이는 은닉 계층의 일부 유닛을 확률적으로 제외시키면서 학습을 진행시키는 것인데

학습할 때마다 일부 유닛만 사용하고 결과적으로 학습결과를 합치면 더 좋은 성능을 보인다는 것입니다.

---------------------------------------------------------------------------------------------------------------------------------

다양한 딥러닝 알고리즘의 발전 (2012~)

신경망의 고전적인 문제들을 대부분 해결하게 되고,

빅데이터의 폭발적인 증가와 더불어 하드웨어 기술의 발전으로 딥러닝은 전성기를 맞게되면서 

초창기의 딥러닝 알고리즘 CNN과 RNN이 크게 발전하게 됩니다.

CNN (Convolutional Neural Network)
합성곱 신경망 알고리즘

CNN (출처 : Google)

영상처리를 위해 고안된 특수 연결구조를 가진 표상학습 다층신경망
기본적으로 컨볼루션 과정과 서브샘플링 과정으로 진행되는데,
컨볼루션과정에서 데이터를 특징으로 추출하여 패턴을 파악
풀링 과정이라고도 불리는 서브샘플링 과정은 차원축소 과정으로 컨볼루션 과정을 거친 층의 사이즈를 줄여줌
풀링과정을 통해 데이터 노이즈가 감소되고 일관적인 특징만을 얻을 수 있게됨
가중치를 공유하기 때문에 학습속도가 빠르고 일반화 능력이 우수하다는 장점을 가진 모델

-Lenet5-
초기(1998) 6 CNN 모델로서 3개의 컨볼루션 층과 2개의 서브샘플링 층, 1개의 완전연결층 구조
컨볼루션 과정에서 시간이 많이 사용되기 때문에 같은 크기의 MLP보다 실행 속도가 3배 정도 느린 단점 존재

-Alexnet-
Hinton 교수진이 2012년에 만든 딥러닝 혁명을 이끈 8 CNN 모델로서
5개의 컨볼루션 층과 3개의 완전연결층 구조를 가지며 최상위층은 1000개의 소프트맥스 뉴런으로 구성
활성함수로 ReLU를 사용하고, GPU를 사용해 컨볼루션 연산을 수행하기 때문에
Lenet5에 비해 학습시간이 굉장히 단축되었고완전연결층에 Drop-out 정규화 방법을 적용해 과다학습을 방지

-DeepFace-
대규모 딥망을 통해 얼굴 영상을 표상 학습하는 방법
9 DNN으로, CNN과 달리 노드들이 가중치를 공유하지 않음
이 심층망은 학습한 특징벡터와 정렬 알고리즘을 결합하여 높은 얼굴 인식 성능을 보임

-GoogLenet-
22 CNN으로 인셉션 모듈이라는 빌딩 블록을 반복 사용하는 모델
물체 분류와 물체 검출 과제에서 신기록을 갱신
제한된 계산 자원을 최대한 이용하여 신경망을 설계한 구조로서
인셉션 모듈은 CNN의 최적의 지역적 희소 구조를 찾아내고 이를 사용 가능한 자원으로 근사

 

RNN (Recurrent Neural Network)
순환 신경망 알고리즘

RNN (출처 : Google)

뉴런들이 순환 구조로 연결되어 과거 정보를 기억하는 동적 시스템으로 다양한 길이의 순차적인 데이터를 처리
RNN은 다른 신경망처럼 경사하강을 이용한 오류역전파 알고리즘을 사용하는데
시간이 지날수록 신호가 급변하거나 사라지는 장기적 의존성 문제가 존재

-장단기 메모리망 LSTM-
장기적 의존성 문제를 해결하고자 기존 RNN에 네 개의 상호작용하는 층을 추가하여 만든 모델
장기적 의존성 문제를 효과적으로 포착하고 안정적인 학습이 가능

 

GAN(Generative Adversarial Network, 2014, Ian Goodfellow)
생산적 적대 신경망

GAN (출처 : Google)

구글 브레인에서 머신러닝을 연구하고 있는 이안 굿펠로우(Ian Goodfellow)2014년 NIPS 학회에서 발표한
비지도 학습 기반 신경망 알고리즘으로, 진짜 같은 가짜를 만들어내는 기술
GAN은 기본적으로 두 신경망 모델의 경쟁을 통해 학습하면서 결과를 만들어냄
두 모델은 생성자와 감별자로 불리는데 두 모델은 서로 상반된 목적을 갖고 있으며
생성자는 실제 데이터를 학습해 거짓데이터를 만들고 감별자는 생성자가 만든 데이터가 실제인지 거짓인지 판별
이 과정이 반복되면서 실제에 가까운 거짓 데이터가 생성

 

[참고자료]

[1]
https://www.youtube.com/playlist?list=PLVNY1HnUlO24lnGmxdwTgfXkd4qhDbEkG

 

딥러닝 이론 - YouTube

딥러닝 이론이 없이 딥러닝의 CNN, RNN 등에 도전했다가 포기하시는 분들을 많이 보았습니다. 딥러닝은 이론이 바탕이 되지 않으면 상당히 접근 하기 힘든 분야입니다. 이번 비디오 리스트는 딥러

www.youtube.com

[2]
https://blogs.nvidia.co.kr/2016/08/03/difference_ai_learning_machinelearning/

 

인공 지능과 머신 러닝, 딥 러닝의 차이점을 알아보자 - 엔비디아 공식 블로그

인공 지능과 머신 러닝, 딥 러닝의 차이점을 알아보자   세기의 바둑대전에서 구글 딥마인드의 인공지능 ‘알파고(AlphaGo)’ 프로그램이 한국의 이세돌 9단을 꺾었을 때, 알파고의 승리 배경을 ��

blogs.nvidia.co.kr

글 보관함