본문 바로가기

AI/이론

[ML] AI, Machine Learning, Deep Learning

 

 



 

 

머신 러닝이란?

인공지능의 하위 집한 개념인 머신러닝은 정확한 결정을 내리기 위해 제공된 데이터를 통하여 스스로 학습할 수 있습니다. 처리될 정보에 대해 더 많이 배울 수 있도록 많은 양의 데이터를 제공해야 합니다.

즉, 빅데이터를 통한 학습 방법으로 머신러닝을 이용할 수 있습니다. 머신 러닝은 기본적으로 알고리즘을 이용해 데이터를 분석하고, 분석을 통해 학습하며, 학습한 내용을 기반으로 판단이나 예측을 합니다. 따라서 궁극적으로는 의사 결정 기준에 대한 구체적인 지침을 소프트웨어에 직접 코딩해 넣는 것이 아닌, 대량의 데이터와 알고리즘을 통해 컴퓨터 그 자체를 ‘학습’시켜 작업 수행 방법을 익히는 것을 목표로 한답니다.

 

딥 러닝이란?

딥 러닝은 인공신경망에서 발전한 형태의 인공 지능으로, 뇌의 뉴런과 유사한 정보 입출력 계층을 활용해 데이터를 학습합니다. 그러나 기본적인 신경망조차 굉장한 양의 연산을 필요로 하는 탓에 딥 러닝의 상용화는 초기부터 난관에 부딪혔죠. 그럼에도 토론토대의 제프리 힌튼(Geoffrey Hinton) 교수 연구팀과 같은 일부 기관에서는 연구를 지속했고, 슈퍼컴퓨터를 기반으로 딥 러닝 개념을 증명하는 알고리즘을 병렬화하는 데 성공했습니다. 그리고 병렬 연산에 최적화된 GPU의 등장은 신경망의 연산 속도를 획기적으로 가속하며 진정한 딥 러닝 기반 인공 지능의 등장을 불러왔죠.

 

딥 러닝으로 훈련된 시스템의 이미지 인식 능력은 이미 인간을 앞서고 있습니다. 이 밖에도 딥 러닝의 영역에는 혈액의 암세포, MRI 스캔에서의 종양 식별 능력 등이 포함됩니다. 구글의 알파고는 바둑의 기초를 배우고, 자신과 같은 AI를 상대로 반복적으로 대국을 벌이는 과정에서 그 신경망을 더욱 강화해 나갔습니다.

 

머신러닝과 가장 큰 차이점은 딥러닝은 분류에 사용할 데이터를 스스로 학습할 수 있는 반면 머신 러닝은 학습 데이터를 수동으로 제공해야한다는점이 딥러닝과 머신러닝의 가장 큰 차이점입니다.

 


AI

 

개와 고양이를 보고 어떤 짜여진 로직에 의해 귀가 뾰족하고 눈이 크며 야옹하고 울면 고양이고, 귀가 늘어지고 눈이 상대적으로 작으며 멍멍하고 울면 개다.’라고 explicit programming과 같이 판단하지 않고 마치 사람들이 직관적으로 개다, 고양이다 하듯 머신러닝도 후자와 같은 프로세스를 갖는 것을 목표로 한다고 할 수 있다. 

 


ML

머신러닝은 다시 크게 3가지.

지도학습(Supervised Learning),

비지도학습(Unsupervised Learning),

강화학습(Reinforcement Learning)으로 나누어진다.


 1) 지도 학습(Supervised Learning)

 

지도 학습(Supervised Learning)은 쉽게 말해 기계에게 정답을 가르쳐주는 학습이다. 지도 학습 방법에는 크게 2가지가 있으며 분류(Classification)와 회귀(Regression)가 있다.

[그림 4] 왼쪽은 Supervised learning system으로 Classification structure를 만들어보았다.

system이란 수식으로 쉽게 y=f(x)라고 할 수 있다여기서 x input data를 의미하고 f(x) x에 대한 system 함수(function)이다. , input data system에 입력되어 어떤 출력값인 output, y 도출한다고 할 수 있다.

 

 (1) 분류(Classification) - discrete value(이산값)

 

여기서 우리가 원하는 시스템은 1,2,3 input data 각각 supervised learning system에 넣었을 때, 1,2,3으로 분류하는 것이다.

이렇게 하기 위해 먼저 시스템에게 1 1임을, 2 2임을, 3 3임을 알려준다. 이렇게 1,2,3인 정답을 알려주는 것은 label이라 하고 이러한 data labeled data라 한다

하지만 인공지능 시스템은 우리가 1을 넣었을 때 바로 1이라고 인지하는 것이 아니다. (b)그림과 같이 1을 넣었지만 2라고 인지하였을 때 시스템은 우리가 준 정답(label data)과 비교하여 스스로 오답임을 알고 정답이 2라고 인지한다. 이렇게 학습을 한 후 (c)와 같이 다시 1을 넣었을 땐 1이라고 인지할 수 있다.

이것이 Supervised Learning의 방식이고 기계에게 정답임을 알려주는 방식이다.

이렇게 1,2,3을 각각 넣었을 때 시스템이 1 2 3이라는 것으로 분류하는 것을 분류(Classification)이라 한다분류가 discrete value(이산값)이라 한 것은 output값이 뚝 뚝 떨어지는 형태인 이산형태를 나타내기 때문이다.

 

  (2) 회귀(Regression) - continuous value(이산값)

 

회귀는 변수 x y와의 관계에 대한 line()을 의미한다. [그림 4]의 오른쪽 structure를 보자.

우리가 원하는 시스템은  f(1) = 1, f(2) = 2, f(3) = 3를 만족하는 시스템을 설계하는 것이다. 여기서 사람들에게 '6 input data로 넣으면 output 으로 어떤 값이 나올까요?' 라고 한다면 모두 6이라고 할 수 있을 것이다. 하지만 우리는 인공지능 시스템이 그렇지 않고 위와 같이 사전 정답 데이터를 통해 '학습'해야한다는 것을 알고 있다. 다시 structure를 본다면 (d)와 같은 과정을 '학습(Learning) 혹은 훈련(training)'이라 할 수 있고 (e)는 진짜 우리가 알기를 원하는 Test를 말한다. 시험을 잘보기 위해 시험공부하는 것을 학습, 훈련이라 하고 실제 시험을 치는 것을 Test(시험)이라 하듯 인공지능 시스템도 똑같다. (f) Regression system에 대한 function을 그래프로 나타낸 것으로 training을 통해 1,2,3은 정답임을 알 수 있지만 test 6에 대한 값은 다소 정답선과 거리가 있다고 있을 수도 있다. 이를 오차라고 한다.

 

 

2) 비지도 학습(Unsupervised Learning)

 

비지도학습은 지도 학습과 달리 input data에 label이 되어있지 않다. 즉, 정답이 없는 data를 input으로 사용한다. 이 말은 비지도 학습의 목적은 데이터의 정답-오답이 아니라 입력 데이터들 사이의 어떤 관계, 패턴에 관심이 있다는 것이다. [그림 5]는 지도학습과 비지도학습 시스템의 결과를 나타낸다. 

여기서 먼저 알아야할 것은 지도학습과 비지도학습에 대한 input data는 같지 않다는 것이다. (혹은 같아도 비지도학습에서는 label을 무시함.) 지도학습은 사전 학습시 O데이터는 O라고 명시된 답을 알고있고 X는 X라고 알고있다. 하지만 비지도학습의 경우 O와 X를 구별하지 않는다.

어쨌든 지도학습은 주어진 데이터를 O와 X로 분류하였다면 비지도학습은 데이터를 빨간 원으로 묶었다. 즉, 비지도학습은 주어진 데이터를 비슷한 특성끼리 묶고 데이터 군집간의 특징을 살펴보는데에 목적이 있다고 할 수 있다.

이를 클러스터링(Clustering)이라 하고 이는 비지도학습의 일종이다. 이 외에도 차원축소, Hidden Markov Model등이 있다.

 

딥러닝(Deep Learning)

 

 

딥러닝을 설명하기 위해 계층 트리를 가져왔다. 마찬가지로 AI라는 나무에 머신러닝 뿌리가 근거하여 한 가지에 Neural Network - Deep Learning이 있다. 딥러닝은 퍼셉트론(perceptron)에 근거한 인공신경망(Artificial Neural Network,ANN)의 일종이다. 머신러닝의 많은 알고리즘(계층트리에서 나뭇가지) 중에 Perceptron에 근거한 Neural Network이 있고 여기서 망(?)이 깊어지면 그것을 딥러닝이라 한다. 딥러닝과 머신러닝의 가장 큰 차이점이 뭐냐고 묻는다면 'Deep Learning'의 용어처럼 머신러닝에 비해 'input data가 많으며 망(Layer)이 깊다(deep)' 라고 대답할 것이다. 

 

 

 

 

 

'AI > 이론' 카테고리의 다른 글

[ML] Supervised/Unsupervised learning  (0) 2020.06.15
[ML] Activation function  (0) 2020.06.15
[ML] CNN(Convolutional Neural Network)  (0) 2020.06.12
[ML] Backpropagation  (0) 2020.06.12
[ML] Machine Learning training  (0) 2020.06.12