개발관련/인공지능,머신러닝,딥러닝

인공지능, 머신러닝, 딥러닝이란?

Dol42 2020. 12. 31. 19:34


인공지능/머신러닝/딥러닝

 인공지능/머신러닝/딥러닝 분야는 지난 몇 년동안이나 핫한 분야였다. 어릴때 보던 SF소설, 영화에서 보던 소재에서 알파고 이후 이제 우리 삶에 본격적으로 가까워진 현실의 기술로 발전하고 있다. 그리고 그 속도는 엄청나게 빠르다.

 

DL(Deep Learning) 딥러닝

ML(Machine Learning) 머신러닝

AI(Artificial Intelligence) 인공지능

 

인공지능/머신러닝/딥러닝 이 세가지는 동떨어진 기술이 아니라 다음 그림과 같은 관계를 가진다는 점을 알아야 한다.

 

인공지능/머신러닝/딥러닝의 관계


인공지능이란?

 인공지능이라는 개념은 최근에 새로 생긴 그런 개념이 아니다. 예전(아주 많이 올라가서 신화시대까지도)부터 인간같이 생각하고, 인간을 대신해서 어떤 일을 하는 그런 개념 혹은 환상이 있었다. 이러한 인간의 꿈이 현대에 이르러 인공지능(SW)/로봇(HW)기술을 통해 점점 현실에 가까워 지고 있는 것이다. 

 

  • 인공지능 (Artificial Intelligence) : 인공 + 지능 → 인공적으로 만든 지능

    • 지능 : 본능적이나 자동적으로 행동하는 대신에, 생각하고 이해하여 행동하는 능력

  • 인공지능은 크게 3가지, 하지만 초인공지능을 제외하고 보통은 두가지로 나눠서 말한다.(강인공지능, 약인공지능)

인공지능의 분류

인공지능의 역사

 

 인공지능의 역사는 (생각보다)짧지만 (생각보다)길다. 인공적인 두뇌를 만들기 위해 인공신경(퍼셉트론)을 제작했고, 문제점(XOR문제)에 도달하면서 1차 겨울을 지나고, 인공신경망(멀티레이어드-퍼셉트론)으로 해결하니까 또 문제가 생겨(Vanishing Gradient 문제) 2차 겨울이 오고, 그러다 딥러닝 +  디지털 시대에서 폭증한 '방대한 양의 데이터(빅데이터)' + 엄청나게 늘어난 컴퓨터파워(cpu, gpu)를 통해 다시 또 부흥 중이다.

 

 이를 통해 단순히 이런 역사가 있었다. 라고 여길 것이 아니라 이를 통해 인공지능이 어떻게 발전하고, 어떤 문제점을 겪었는지 알아보고, 어떻게 그러한 점을 해결했는지를 확인 할 수 있다. 

 

인공지능의 역사


머신러닝이란?

"Machine Learning" 우리말로 하면 "기계학습"인 머신러닝은 말 그대로 기계가 직접 배운다는 뜻이다.

이를 다시 생각해본다면

 

무엇을 통해 배우는가? ->데이터

무엇을 배우는가? -> 데이터들의 일련의 규칙성

 

즉, "기계"가 "데이터"들로부터 어떤 "규칙성"을 배운다. 라고 할 수 있겠다.

 

공학적인 정의

" 만약 컴퓨터 프로그램이 특정한 태스크 T를 수행할 때 성능 P 만큼 개선되는 경험 E를 보이면 그 컴퓨터 프로그램은 태스크와 성능 P에 대해 경험 E를 학습했다라고 할 수 있다." - 톰 미첼

요 근래 머신러닝이란 무엇인가? 하고 정의할 때 많이 쓰이고 있는 카네기멜론 대학교의 톰 미첼 교수님의 정의이다.

이 정의를 과일 종류를 구별하는 머신러닝 시스템을 예시로 설명하면,

 

1. 태스크 T : 과일을 구분하고 분류 하는 것

2. 성능 P : 과일을 정확히 구별한 확률

3. 경험 E : 과일들과 정확한 과일을 표시한 데이터 세트

 

이렇게 볼 수 있다. 위 톰미첼 교수님의 정의에 과일 구별 시스템 TPE를 대입해서 생각해보면 저 말이 조금 이해가 갈 것이다.

 

또 기존 전통적인 프로그래밍(명시적프로그래밍, 인간이 변수와 상황을 예측하여 이를 기반으로 프로그래밍 하는 것)과 비교한 다음 그림도 참고해서 이해해보자.

 

 전통적인 프로그래밍과 비교하여 규칙과 데이터를 통해 답을 찾아 내는 것이 아닌 데이터와 해답을 통해 '학습'하여 스스로 규칙을 찾아낸 다는 점이 다르다. 그럼 이러한 점이 무엇이 좋은가?

 

 예를 들면 자율주행차를 생각 해 볼 수 있겠다. 신호등이 어떨 때에는 어떻게 행동해라, 보행자가 어디에 있을때는 어떻게 해라 등등 실질적으로 현실의 이 모든 상황을 규칙으로 나타 내기엔 변수와 예외상황이 매우 많기 대문에 자율주행차를 명시적으로 프로그래밍 한다는 것은 사실상 불가능하다. 하지만 자율주행차가 스스로 학습하고 판단하게 된다면 조금 더 유연하게 대처 가능한 시스템을 제작 가능하는 점에서 좀 더 좋은 성능을 기대 할 수 있다.

 

머신러닝의 분류

 머신러닝을 학습 프로세스의  학습 방법에 따라 여러가지로 분류 가능하다. 크게 지도학습, 비지도학습, 준지도학습, 강화학습으로 나누어진다. (각각에 대한 특징과 설명은 추후 다른 포스팅을 통해 추가 하겠다.) 각 방법별로 특징이 있고, 내가 필요한 시스템에 어떤 것을 적용해야 좋을지 판단해야 한다. 

학습 프로세스의 학습 방법에 따른 분류 


딥러닝이란?

딥러닝(deep learning)을 우리말로는 심층학습 이라고 할 수 있다. 여기서 말하는 deep(심층)이 의미 하는 것은 무엇인가? 바로 인공신경망의 레이어가 깊은 것을 의미한다. 인공신경망에 대한 것은 추후 다른 포스팅에서 더 자세히 다루겠다. 간략하게 설명하면 인공신경망이란 노드로 이루어진 레이어들의 연결체이다.

 

딥러닝 : 레이어가 깊은(많은) 인공신경망 인공신경망: 레이어들의 중첩레이어 : 노드들의 집합노드 : 텐서를 입력받아 텐서를 출력하는 요소텐서 : 스칼라와 벡터와 행렬을 포함하는 다차원 배열

 

일단 이번 포스팅에서는 이정도로만 알고 가면 좋을 것 같다. 딥러닝 자체도 그렇지만 딥러닝과 머신러닝의 차이에 대한 내용을 또 다른 포스팅으로 다룰 예정이다.


요약 

  • 인공지능 : 생각하고 이해하는 지능을 가진 시스템을 만드는 기술이다.

  • 머신러닝 : 규칙기반 프로그래밍이 아닌 자동으로 데이터에서 규칙을 학습하는 알고리즘(모델) 기술이다.

  • 딥러닝 : 레이어가 깊은(많은) 인공신경망을 의미하며, 이러한 인공신경망 기법을 다루는 기술이다.


 주변 지인들을 위한 스터디를 진행하면서 공부하며 정리를 하고자 한다.

 각각의 개념과 이론적인 부분은 추후 예제와 함께 더 자세히 정리해보도록 하겠다.  

반응형