티스토리 뷰

Data Science/Deep Learning

Deep Learning이란

Hula_Hula 2018. 11. 22. 03:35

[ Deep Learning 과 Machine Learning]


알파고가 세상에 나왔을 때, Deep Learning, Machine Learning, AI, 인공지능과 같은 단어들이 붐을 일으켰죠. 수많은 비슷한 단어들이 쏟아져 나오면서 사람들이 혼용하는 경우도 많았습니다. 대표적으로 Machine learning과 Deep learning은 혼용하지만 엄연히 다른 뜻을 가지고 있습니다. 


인공지능의 개념은 1950년대 후반에 나왔을 정도로 그 역사가 오래되었습니다. 하지만 실제로 사용되고 알려지기 시작한건 최근이죠. 그 이유는 SNS와 같은 서비스가 많이 나오면서 데이터의 양이 급격히 증가했고 GPU의 성능이 좋아짐에 따라 기계학습이 낼 수 있는 성과가 대중들에게 알려질 정도로 인상 깊었기 때문입니다.


사실 예전에도 이 정도의 Machine Learning을 수행하는건 그렇게 어려운 일이 아니었습니다.


[그림1] 나이에 따른 특정한 병의 감염여부


우리가 여태 다뤘던 Regression과 Softmax와 같은 방법론으로 대부분의 문제를 풀 수 있을 것 같았습니다.

하지만 문제는 간단한 XOR 문제에서 터졌습니다.


[그림2] XOR은 같은 것일 때 -, 다른 것일 때 + 인 경우를 말한다.


XOR문제는 다른 OR이나 AND문제와 다르게 어떤 방식으로 선을 그어도 +와 -를 구별하지 못합니다.

그리고 Marvin Minsky라는 사람이 1969년에 이 XOR문제는 절대 풀 수 없다는 내용의 책을 쓰죠. 그리고 그 이후 1986년에 Hinton이라는 사람이 Backpropagation의 개념을 넣어 해결책을 가지고 왔습니다. (그 전에 Paul Werbos가 발견했지만 묻혔습니다..


Deep learning은 기존 Machine learning 방법론으로 풀 수 없는 문제를 풀기 위한 방법 중 하나입니다. 

그래서 Machine learning이라는 큰 부분에 부분집합으로 들어간다고 이해하는 경우가 많습니다.


Machine learning은 Label의 형태에 따라 (보통) 3가지로 분류가 나뉩니다.

  • Supervised Machine Learning

  • Unsupervised Machine Learning

  • Reinforcement Machine Learning


위에 있는 세가지는 Machine learning을 "Label(정답)의 형태"에 따라 분류된 종류들이지만 Machine learning을 "학습의 방법론 혹은 과정"으로 나누어 봤을 때, 그 분류에 Deep learning이 속해 있는 겁니다.

그렇기 때문에 Deep learning이 있고 Shallow learning이 있습니다. (사실 Deep learning이 뜨기 전의 모든 학습은 Shallow learning이었습니다.)


deep learning shallow learning에 대한 이미지 검색결과

[그림3] 오른쪽에 있는 Deep learning은 layer을 거치면서 Input값이 많이 바뀌는 것을 예상해볼 수 있다.


Deep learning은 기존에 사용하던 Machine learning 방법들과는 다르게 Input값 이외에 거의 관여하는 일이 없습니다. Input값을 기계가 직접 바꿔가면서 많은 결과물을 도출하죠. (구글의 알파고도 Reinforcement Deep learning을 통해 Input값을 바꿔가며 수많은 경우의 수를 찾습니다) 전에는 Regression의 방법론에 따른 Hypothesis, Cost function... 등 모델에 따라서 중간과정에 손봐줘야할 게 많습니다. 하지만 Deep learning은 처음과 끝만 보죠. 그래서 "End-to-End Learning"이라고도 합니다. 혹은 학습과정에서 Input값을 스스로 계속 Representation으로 바꾸기 때문에 "Representation Learning"이라고도 합니다.


그럼 Deep learning은 어떻게 탄생하게 되었을까. 원래 Neural Network 개념의 기반에서 탄생했습니다. 인간의 뇌를 본따기 위해서 시작된 인공지능은 사고를 담당하는 인간의 뇌를 연구했고 뇌세포인 뉴런(neuron)의 작동과정을 파헤쳤죠.


neuron에 대한 이미지 검색결과

[그림4] Dendrite(수상돌기)에서 신호를 받아들여 Axon Terminal(축색돌기)로 신호가 연결된다.


[그림4]와 같은 "1천억개" 이상의 뉴런들이 뇌를 구성하고 있습니다. 이 뉴런들의 사이(시냅스)를 거쳐 정보가 전달됩니다. 이런 시냅시는 "100조"개가 존재한다고 합니다..(여기서 다시 인체의 신비를 느낍니다.) 그리고 신호가 전달되기 위해서는 Threshold(임계값) 이상의 신호가 들어와야 하는데, 이 임계값은 우리가 1과 0을 판단할 수 있는 기준이 되는거죠. 

뉴럴네트워크에 대한 이미지 검색결과

[그림5] 하얀색 원은 뉴런, 화살표는 시냅스.


Neural Network는 이러한 뇌의 사고과정에 착안해서 만들어졌습니다. 세분화된 정보를 수집하고(Input layer), 정보를 분류한 뒤(Hidden layer), 마지막으로 판단(Output layer)하는거죠. Layer 안에 있는 하얀색 원은 노드라고 합니다. Input layer에서 입력받은 feature들은 Hidden layer의 노드에서 어떤 계산과정이 이뤄질까요? 다양한 변수를 받아서 예측값이 만들어지므로 Multi-variable Linear Regression과 같이 계산됩니다. 


[그림6] weight와 input값의 곱의 선형결합을 perceptron(퍼셉트론)이라고 한다.


머신러닝과 딥러닝이 다른 알고리즘을 갖는 부분은 여기서 나옵니다. Perceptron이라 불리는 하나의 선형 모델이 하나의 Layer에 많이 분포하고 있습니다. 이 형태를 다층 퍼셉트론(MLP, Multi-layer Perceptron)이라고 부릅니다. 그리고 다층 퍼셉트론이 구성하는 하나의 층을 Hidden Layer라고 부릅니다. 이 학습과정은 [그림4]와 같은 수많은 뉴런들이 다른 수많은 뉴런들과 연결되고 있는 형태를 정확하게 본땄습니다. 그리고 이런 MLP가 포함된 Layer가 많아지면 Deep이라는 개념을 가져와 Deep Learning이라고 부릅니다.


선형결합이란 데이터를 단순하게 요약하는 방법입니다. [그림6]에 나온 첫번째 노드(perceptron)은 데이터를 1차적으로 요약하고 특징을 추출하는 역할을 합니다. (1차적으로 특징을 추출합니다.) 그렇다면 어떤 특징이 추출될까요? 그건 모릅니다. 저 수많은 x 데이터를 무작위의 가중치를 부여해 정보를 요약했습니다. 그렇기 때문에 요약된 숫자를 보면 어떤 의미를 갖는지 모릅니다. 그래서 Deep Learning이 단순히 블랙박스(혹은 매직박스)라는 이야기를 듣는지도 모르겠습니다.

그렇다면 노드들이 모여 있는 첫번째 Layer는 1차적으로 간단하게 판단한 결과들을 다음 Layer로 넘기는 역할을 하겠죠. 

노드의 개수는 무슨 의미일까요? 자신이 뽑고자 하는 특징들을 개수를 의미합니다. 첫번째 Layer는 넓은 범위의 특징들을 추출합니다.

(예를들어 고양이 사진이 주어졌습니다. 강아지, 고양이, 말 셋 중에 어떤 사진인지 골라야합니다. 사진의 픽셀들을 분석해 첫번째 Layer에서 애매하게 분류합니다. 첫번째 Layer에서는 사진의 직선들의 위치와 같은 정보를 분류합니다. 두번째 Layer에서는 직선들의 조합, 접해있는 직선끼리 묶어서 분류합니다. 세번째 Layer에서는 눈모양, 귀모양, 수염모양 등이 나옵니다. 이런식으로 Layer가 많아질수록 특징이 구체화되고 마지막에는 "고양이"라는 판단을 내립니다. )


결론을 내리자면 Deep learning의 모델은 Machine learning에서 사용하던 단순한 선형 모델을 가져와서 뇌세포처럼 복잡한 구조로 연결짓고 Input값이 깊은(Deep) Layer층을 통과할 때마다 정제되면서 다양한 판단을 내릴 수 있습니다. (다양한 판단 속에서 Supervised learning이 수행된다면 정답을 예측하는 모델 또한 만들 수 있습니다)


이제 기계도 사람의 뇌처럼 사고할 수 있는 구조를 갖게 됐습니다.







'Data Science > Deep Learning' 카테고리의 다른 글

Neural Network로 XOR 문제 풀기  (0) 2018.11.30
댓글
최근에 올라온 글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
공지사항
최근에 달린 댓글