머신러닝을 알아보기 앞서, 모든 인공지능이나 머신 러닝 수업의 첫시간에 배우는
AI, ML, DL 의 차이에 대해 간단히 알아보겠다.
가장 간단하게 알아보면 이 3개의 용어는 서로 부분 집합 관계이다
DL ⊆ ML ⊆ AI 의 관계를 만족한다.
따라서 ML은 AI라 할 수 있지만, AI는 ML라 할 수 없다는게 중요한 키포인트가 된다.
그렇다면 AI는 무엇을 말하는 걸까? 위키에서는 아래와 같이 정의하고 있다
인공지능 또는 AI는 인간의 학습능력, 추론능력, 지각능력을 인공적으로 구현시키는 컴퓨터과학의 한 분야이다. 자연어의 이해, 음성 번역, 로보틱스, 인공 시각, 문제 해결, 학습과 지식 획득, 인지 과학 등에 응용된다. 인간을 포함한 동물이 갖고 있는 자연지능(natural intelligence)와는 다른 개념이다.
되게 복잡하게 설명되어 있지만 간단하게 요약하면 ‘인간과 비슷한 지능을 가진 기계 또는 시스템’을 의미한다. 이를 구현하기 위해 우리는 ML과 같은 알고리즘을 사용한다고 생각하면 된다.
사실 AI의 정의는 어떻게 내리고 작성자의 관점에 따라 글마다 생각하는 AI는 다르다. 그렇기에 인간의 여러 능력을 모방해 컴퓨터가 인간처럼 행동하게 해주는 모든 기술을 인공지능이라고 생각하면 될 것 같다.
인공지능을 간단하게 알아봤으니 우리의 메인 주제인 머신 러닝에 대해 알아보자. 머신러닝도 위키에서는 아래와 같이 정의 하고 있다.
기계 학습(機械學習) 또는 머신 러닝(machine learning, ML)은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구이다.
머신러닝은 정의보다 구체적인 예시를 통해 이해하는게 가장 이해가 쉬웠던 같아 간단한 예시를 준비했다.
기존의 컴퓨터 프로그래밍을 할때는 입력 데이터와 프로그램(코드)을 컴퓨터에 주면 컴퓨터는 이를 바탕으로 결과를 제공해준다. 간단한 예시로 컴퓨터에게 덧셈을 하는 프로그램과 입력값 7과 3을 제공해주면 컴퓨터는 10이라는 출력을 하게 된다.
그렇다면 머신러닝에서는 어떠한 차이가 있을까? 머신러닝에서는 입력으로 데이터와 출력값(결과값)을 주었을때 컴퓨터가 프로그램(코드)를 예상해준다. 간단한 예시로 위와 마찬가지로 입력값 7과 3, 출력값으로 10을 준다면 컴퓨터가 덧셈을 하는 프로그램을 예측하는 식이다.
물론 위와 같이 하나의 입출력 값으로 예상하는게 아닌, 적게는 수백개에서 수백만개의 데이터를 이용해서 프로그램을 예측하게 된다. 이때 위 사진에서 보이듯 결과 값이 옵션이라고 되어 있는데 이는 결과 값이 없어도 적용할 수 있는 머신러닝 알고리즘이 있기 때문이다. 여기서 머신러닝을 통해, 컴퓨터가 프로그램을 구하는 과정을 학습 이라고 한다.
그러면 머신 러닝의 종류에는 어떤 것들이 있을까?
머신 러닝의 분류는 크게 보면 3가지가 있다. (지도학습과 비지도 학습을 혼합한 준지도학습도 있지만 여기서 생략하자)
머신러닝에 대해서는 앞으로 더 자세히 공부할 것이므로, 분류는 이정도만 알아보고 넘어가도록 하자.
마지막으로 딥러닝에 대해 알아보자. 딥러닝에 대해 알아보자. 딥러닝의 정의는 간단하다.
인공신경망(ANN)을 사용한 머신러닝 기법을 말한다.
여기서 인공신경망(ANN, artificial neural network)이란 인간의 뇌에 있는 뉴런의 동작 원리를 모방해 만든 알고리즘 기법이라고 생각하면 된다.
인공신경망에서는 위 사진에서와 같이 실제 뉴런과 유사하게 동작하도록 퍼셉트론을 구성하게 된다.
간단하게 퍼셉트론을 보게 되면 입력값 X와 편향(bias) b를 받아서 뉴런의 활성화 함수를 거쳐 출력을 하게 된다. 여기서 X와 b를 파라미터라 하고, 학습을 통해 이를 구해 나가게 된다.
그리고 이러한 퍼셉트론을 여러 층으로 쌓아 만든 것을 다층 퍼셉트론(Multi-Layer Perceptron, MLP)라 하고, 이것이 DNN(Deep Neural Network)의 하위 개념이므로 비슷한 개념으로 생각하면 되고 아래 사진과 같이 구현이 된다.