인공지능과 머신러닝 그리고 딥러닝?

» deeplearning

안녕하세요. 오늘은 4차산업혁명의 대표 기술인 인공지능의 개념과 인공지능하면 따라오는 기술들인 딥러닝, 머신러닝의 개념과 관계를 알아보도록 하겠습니다.

인공지능이 뭐지?

인공지능는 영어로 Artifical Intelligence의 준말로 A.I. 라고도 불립니다. 우선 인공지능이라는 단어를 하나씩 뜯어보도록 하겠습니다.

A.I.라는 단어는 ‘인공적’이라는 의미의 Artificial과 ‘지능’을 의미하는 Intelligence가 합쳐진 형태입니다. 인공적이라는 단어가 붙은 이유는 인간이 만들어낸 기계, 컴퓨터를 의미한다고 생각이 되며 지능은 인간의 인지능력중 문제 해결 능력을 의미한다고 생각이 됩니다.

A.I.라는 단어의 의미를 정리하자면 인공적으로 만들어낸 컴퓨터를 통하여 인간의 인지능력을 모방 또는 구현을 한다는 것으로 이해가 됩니다.

지능은 뭘까?

우선 인공적이라는 단어는 말 그대로 인간이 만든 기계를 의미하니 받아들이는데 어려움이 없습니다. 하지만 지능이라는 것이 무엇이길레 그걸 기계로 만들어 낼려고 할까요?

출처 : 위키 백과

지능이란 심리학적으로 새로운 대상이나 상황에 부딪혀의미를 이해하고 합리적인 적응 방법을 알아내는 지적활동의 능력

위키 백과의 내용에 따르면 지능이라는 능력이 가지는 특징은 2가지 입니다.

  1. 새로운 대상이나 상황에 부딪혀 (문제 발생)
  2. 의미를 이해하고 합리적인 적응 방법을 알아냄 (문제 해결)

말로 정리하자면 문제가 발생하였을 때, 해당 문제를 해결할 수 있는 능력을 지능이라고 부른다고 정리할 수 있을거 같습니다.

지능을 발전시키는 방법으로는 학습이라는 방법이 존재합니다.

효과적인 학습을 방법으로는 과거의 경험 또는 선행된 지식을 활용하여 문제를 해결하는 방법이 존재하며 반복 훈련 또한 좋은 학습 방법입니다.

기계는 어떻게 지능을 가지고 학습하지?

지능의 정의를 기반으로 인공지능이라는 단어는 정의하자면 이렇게 정의할 수 있을거 같습니다.

인공지능은 문제 발생시 그 문제를 해결할 수 있는 능력을 가진 기계입니다.

인공지능이 문제를 해결할 수 있는 능력의 수준에 따라서 인간 수준으로 다방면으로 특화된 인공지능을 General AI라고 부르고 특정 업무에 특화되어 있는 수준의 인공지능을 Narrow AI라고 부릅니다.

그렇다면 어떻게 기계가 문제를 해결할 수 있는 능력을 가지게 만들며 어떻게 학습을 시켜서 능력을 발전시킬 수 있을까요?

기계의 관점에서 문제를 해결할 때 필요한 것은 문제를 해결할 수 있는 모델 및 알고리즘이며 이 알고리즘을 발전시키는 방법은 인간이 과거 경험과 선수지식을 사용하여 학습하듯이 모델 및 알고리즘은 과거의 데이터를 활용하여 학습이 가능합니다.

기계가 문제의 상황에 직면하였을 때, 과거의 데이터를 기반으로 알고리즘을 학습하여 문제를 해결하는 모델을 만드는 방법론을 머신러닝(Machine Learning)이라고 부릅니다.

머신 러닝 방법론을 통하여 기계 또한 인간의 지능과 유사하게 문제를 해결할 수 있고 데이터를 사용하여 학습이 가능하다는 것을 알게 되었습니다.

기계가 해결할 수 있는 문제가 뭐가 있지?

앞에서 머신러닝은 문제가 발생하였을 때, 데이터를 기반으로 알고리즘을 학습하여 문제를 해결한다고 하였습니다. 자꾸 문제를 언급하는데 어떤 문제를 해결할 수 있다는 건지 정리해보겠습니다.

머신러닝에서 해결 가능한 문제로는 3가지가 존재합니다

  1. 지도학습 모델을 통하여 분류, 예측 문제를 해결할 수 있습니다
  2. 비지도 학습 모델을 사용하여 군집화, 차원 축소문제를 해결할 수 있습니다.
  3. 강화 학습을 함으로써 주어진 환경에 적응하여 최선의 결과를 찾는 적응 문제를 해결할 수 있습니다.

기계가 문제를 해결하는 과정은?

일반적으로 기계가 문제를 해결하는 과정은 다음과 같습니다.

image

입력 데이터는 문제를 해결하기 위해서 사용되어지는 과거 데이터이며 이 과정에서의 모델은 수학적, 공학적 이론을 기반으로 만들어진 수식을 손으로 프로그래밍하여 구현한 알고리즘입니다. 그리고 출력 데이터는 문제가 해결되는 데이터를 반환합니다.

하지만 손으로 구현한 프로그래밍의 경우 한계점이 존재합니다.

  1. 문제를 해결하기 위한 알고리즘의 조건을 알 수가 없는 경우

  2. 알고리즘의 조건이 너무 많고 복잡한 경우
  3. 예외 조건이 너무 많은 경우

이러한 한계점들이 존재하기 때문에 오늘날 발생하는 복잡한 문제들을 해결하기에는 적절한 방식은 아닙니다.

머신러닝이 문제를 해결하는 과정은?

이번에는 머신러닝 방법론으로 문제를 해결하는 과정을 알아보겠습니다.

image

예를 들어 자동차인지 아닌지 분류하는 문제를 해결하는 경우, 입력 데이터(Input)는 문제를 해결하기 위해서 사용되어지는 자동차 데이터입니다.

자동차의 바퀴 개수, 자동차 차종, 브랜드등의 자동차의 특징(Feature), 속성(Attribute)등을 사용자가 직접 손으로 표나 벡터 형식으로 정리를 합니다.

정리되어진 데이터의 특징들을 분류 모델에 입력하여 나온 결과물은 출력 데이터(Output)로 반환되어 집니다.

해당 과정에서 학습이 발생하려면 모델은 Parametric model이어야 합니다. Parametric의 의미는 주어진 데이터가 어떠한 분포를 따르기에 그 분포를 표현할 파라미터가 존재하는 모델을 생성할 수 있다는 의미입니다.

모델을 가정할 수 있는 Parametric model의 파라미터를 학습시키기 때문에 머신러닝은 학습이 가능한 모델입니다.

Feature Extraction은 학습할 수 있을까?

기존의 기계가 학습하는 방식은 모든 부분을 프로그래밍 코딩에 의존하였으며 머신러닝에서는 모델의 파라미터는 학습을 통하여 자동화가 이루어지지만 데이터의 특징 추출을 하는데 코딩에 의존하고 있습니다.

그렇다면 모델의 파라미터도 학습을 하니 데이터가 내포하고 있는 특징(Feature) 또는 내재적 표현(Interval Representation)도 학습을 할 수 있지 않을까요?

이러한 데이터의 내재적 표현도 인공신경망 이론을 적용하여 학습시키는 방식을 Deep Learning이라고 부릅니다.

참고 사이트

  • 머신러닝 문제 해결 과정 : https://nathanh.tistory.com/37
  • General Ai, Narrwo AI : https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/
  • General Ai, Narrwo AI : https://www.ibm.com/cloud/learn/strong-ai
  • cs182 번역 : https://simonezz.tistory.com/82?category=928418
  • cs182 lecture 1 intro : https://cs182sp21.github.io/static/slides/lec-1.pdf