본문 바로가기
Coursera 강의/Machine Learning

[Machine Learning] Intro / 머신러닝이란 ?

by 별준 2020. 8. 2.
해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다.

- Intro

머신러닝은 흥미로운 분야 중에 하나이다. Andrew Ng 교수님의 머신러닝 강의를 통해서 현재 사용되는 알고리즘을 알아보고 예제를 통해서 직접 사용해볼 것이다. 

우리는 우리도 모르게 학습 알고리즘(learning algorithm)을 사용하고 있다.

 

구글을 통해 검색을 할 때, 웹 검색 엔진을 사용하는데 검색엔진들이 검색을 적절하게 잘 하기 위해서 학습 알고리즘을 사용한다(이 알고리즘을 통해 고글이나 마이크로소프트와 웹 페이지들을 최상위에 표시하게 된다). 페이스북이나 애플의 사진 어플리케이션을 사용할 때, 얼굴을 인식할 수 있는데 이것 또한 머신러닝을 통하여 가능하게 한다. 이메일에서 스팸 메일을 차단하는 것도 학습 알고리즘을 사용한 것이다.

 

수 많은 AI 과학자들은 인간의 뇌를 흉내내는 머신러닝 알고리즘을 개발하는 것이 인간의 기능을 가진 기계를 만드는 데에 가장 최선의 방법이라고 생각한다. 

 

이 강의에서는 머신러닝 알고리즘에 대해 배울 것이지만, 어떤 알고리즘이 사용되는지 알아볼 것이며 이 알고리즘이 어떻게 유도되는지는 알 필요가 없다.

 

- 오늘날 머신러닝은 왜 사용되고 있는 것일까 ?

머신러닝은 인공지능(Artificial Intelligence, AI) 분야에서부터 발전하게 되었다. 기계가 지능을 가지고 간단한 일들을 스스로 해결하기를 원했다(ex, A에서 B로 갈 때 어떤 길이 더 빠른가). 웹 검색, 사진 얼굴 인식, 스팸 차단 외에도 AI 프로그램들이 할 수 있는 우리가 모르는 부분들이 있다. 

 

여기서 중요한 것은 기계가 스스로 배워서 한다는 것이다. 그래서 머신러닝은 컴퓨터의 새로운 능력으로 발전되고, 오늘날 기초 과학과 산업에서 많은 분야에서 사용되고 있다. 

 

머신러닝이 필요한 분야는 점차 확산되고 있다.

 

Example

- Database mining : 데이터베이스 수집

웹과 자동화의 성장으로 이전보다 가지고 있는 데이터가 훨씬 많아 졌다.

E.g. Web click data, medical records, biology, engineering

 

- Application can't program by hand : 수동으로 프로그래밍할 수 없는 분야

E.g. Autonomous helicopter, handwriting recognition, most of Natural Language Processing(NLP), Conputer Vision

 

- Self-customizing programs

E.g. Amazon, Netflix product recommendations : 추천 시스템

 

- Understanding Human learning(brain, real AI)

 

- 머신러닝이란 무엇인가 ?

Arthur Samuel은 1959년에 머신러닝을 아래와 같이 정의하였다.

Field of study that gives computers the ability to learn without being explicitly programmed.

머신러닝이란, 프로그래머가 명시적으로 프로그래밍하지 않고(미리 수 많은 정보/규칙를 입력하지 않고) 컴퓨터가 스스로 학습할 수 있는 능력을 연구하는 분야이다.

 

 

Arthur Samuel의 정의는 조금 오래되고 추상적 정의이며, 더 최근에 나온 Tom Mitchell의 정의는 아래와 같다.

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.

Tom Mitchell은 Well-posed Learning Problem 관점에서 머신러닝을 정의하고 있다. 컴퓨터가 일정 수준의 성능(P)를 가지고 어떤 작업(T)를 수행한다고 했을 때, 경험(E)가 증가함에 따라 수행하는 성능(P)이 향상될 수 있다.

 

Example.

Suppose your email program watches which emails you do or do not mark as spam, and based on that learns how to better filter spam. Whit is the task T in this setting ?

1. Classifying emails as spam or not spam. - T

2. Watching yhou label emails as spam or not spam. - E

3. The number (or fraction) of emails correctly classified as spam/not spam. - P(분류된 메일의 비율)

4. None of the above - this is not a machine learning program.

 

 

다양한 타입의 학습 알고리즘이 있으며, 주요 알고리즘은 지도 학습(supervised learning)과 자율 학습(unsupervised learning), 두 가지로 구분되어 진다.

 

지도학습(supervised learning)은 작업을 수행하는 방법을 사용자가 학습시키는 것(to teach the computer how to do something)이고, 자율학습(unsupervised learning)은 컴퓨터가 스스로 학습하도록 유도하는 것(to let it learn by itself)이다.

 

다른 종류로는 Reinforcement learning(강화 학습), Recommender Systems(추천 시스템)이 있으며, 이것도 머신러닝 알고리즘이다.

댓글