티스토리 뷰

머신러닝이란?

Machine Learning은 "기계가 일일이 코드로 명시되어 있지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 '알고리즘'을 개발하는 연구 분야이다."(1959년 아서 사무엘)

머신러닝을 간단히 말하면 "데이터를 이용한 모델링 기법" 이라 할 수 있습니다.
부연 설명을 해보면 머신러닝은 데이터에서 모델을 찾아내는 기법입니다.
데이터는 문서, 음성, 이미지 등의 자료를 뜻하고, 모델은 머신러닝으로 얻어낸 최종 결과물을 뜻합니다. 그리고 모델링에 사용하는 데이터를 학습 데이터라고 합니다.

예를 들면 우리가 스팸메일을 걸러내는 프로그램을 만든다고 생각해 보자. 가장 간단하게 생각 할 수 있는 것은 블랙리스트를 만들어 블랙리스트에 있는 사람은 걸러내는 방법이다. 하지만 이것은 이름을 바꿔서 보내면 스팸을 보내기가 쉬우므로 좋은 방법은 아니다. 두 번째 방법은 제목이나 내용('광고, 할인' 등)으로 스팸을 판단하는 것이다. 하지만 이 방법은 일반 사람이 보낸 메일 내용에 '광고'라는 글이 있다고 스팸이라 판단 할 수 있으므로 좋은 방법은 아닙니다.

위 문제를 machine learning으로 해결해 보도록 합시다. 컴퓨터에게 스팸메일과 일반사람의 메일을 주고, 어떤 것이 스팸 메일인지를 학습시켜 데이터로 보관한 후 이 데이터를 통해 컴퓨터가 스팸메일을 걸러낼 수 있도록 할 수 있습니다. 그리고 새로운 방법의 스팸 메일이 오더라도 학습을 다시 한다면 다음에 똑같은 방법은 사용할 수 없을 것입니다.

따라서 Machine Learnig이 하는 일은 주어진 ‘데이터’ X=(x1,x2,x3,…,xn)와 각 데이터에 대응하는 실제 ‘현상’ Y=(y1,y2,…,yn)에 대한 ‘관계’ function f를 찾는 과정과 같다. 정확한 함수 f를 찾기 위해 Machine Learnig 알고리즘들은 데이터에 대한 가정을 하고, 그 가정에 따라 주어진 데이터를 ‘최대한 잘 설명할 수 있는’, 함수 f′을 찾습니다. 이때 이런 f′을 Hypothesis라고 합니다.

사실 모델링 기법에 머신러닝만 있는 것은 아닙니다. 동역학 분야에서는 뉴턴의 법칙을 이용해 물체의 운동을 일련의 방정식, 즉 운동 방정식으로 기술하는 모델링 기법을 오래전부터 사용해 왔습니다. 인공지능 분야에서는 전문가들의 지식과 노하우등을 모아 전문가에 못지않은 문제 해결 능력을 갖도록 모델링한 '전문가 시스템'도 있습니다.

하지만 이것들은 공식이나 법칙으로 접근합니다. 그러나 공식이나 법칙으로 접근하기 힘든 경우에는 학습 데이터를 이용해 모델을 구하자는 것이 머신러닝의 핵심 개념입니다.

머신러닝과 딥러닝


머신러닝은 인공지능 기법의 일종이지만 인공지능보다 더 좁은 의미로 사용됩니다.
인공지능과 머신러닝, 딥러닝의 관계를 한 문장으로 정리하면 다음과 같습니다.

"딥러닝은 머신러닝의 일종이고, 머신러닝은 인공지능의 일종이다."

구체적으로 말해보면 '인공지능'은 뜻이 포괄적입니다. 특정 기술 분야를 지칭한다기보다는 지능적인 요소가 포함된 기술을 총칭하는 용도로 쓰인다. 반면, 머신러닝은 특정 분야를 지칭하는 단어입니다. 그리고 머신러닝에는 많은 기술이 포함되어 있는데, 딥러닝이 그 중 하나입니다.


머신러닝과 딥러닝의 관계가 중요한 이유는 딥러닝이 머신러닝의 한계를 그대로 물려받았기 때문입니다.

머신러닝 알고리즘의 세 가지 분류

머신러닝의 알고리즘은 크게 세가지 분류로 나눌 수 있습니다. 바로, 지도 학습(supervised learning), 비지도 학습(unsupervised learning), 강화 학습(reinforcement learning)입니다.



Supervised learning(지도 학습)

지도 학습(supervised learning)은 데이터에 대한 레이블(lable)-명식적인 정답이 주어진 상태에서 컴퓨터를 학습시키는 방법입니다.(입력과 정답)

즉, (데이터, 레이블) 형태로 학습을 진행하는 방법이다. 예를 들어서, 아래와 같은 28x28 크기의 이미지인 MNIST 데이터셋이 있으면, 이를 이용해 학습을 진행할 때, 트레이닝 데이터셋(training set)은 아래와 같이 구성될 것입니다.




이렇게 구성된 트레이닝 데이터셋(training data set)으로 학습이 끝나면, 레이블(label)이 지정되지 않은 테스트 데이터셋(test set)을 이용해서, 학습된 알고리즘이 얼마나 정확히 예측하는지를 측정할 수 있습니다.

예를 들어서, (4을 나타내는 28x28 이미지)를 학습된 분류기에 집어 넣으면, 올바르게 4를 예측하는지 아니면 3이나 5와 같은 잘못된 레이블을 예측하는지를 측정할 수 있습니다.

지도학습의 학습 데이터 -> {입력, 정답}으로 보면 됩니다.

딥러닝에서 supervised learning 방법론으로 주로 사용되는 구조는 Convolutional Neural Network(CNNs), Recurrent Neural networks(RNNs)입니다.

Type of supervised learning


classification

지도 학습은 classifiction과 regression으로 나누어집니다. 먼저, classification은 주어진 데이터를 정해진 카테고리에 따라 분류하는 문제를 말합니다. 최근에 많이 사용된느 이미지 분류도 classification 문제 중에 하나입니다.

예들 들어 암을 예측한다고 가정했을 때 이 종양이 악성종양인지/아닌지로 구분 할 수 있습니다. 이처럼 맞다/아니다 로 구분되는 문제를 Binary Classification 이라고 부릅니다.

분류 문제가 모두 맞다/아니다 로 구분되지는 않습니다. 예를 들어, 공부시간에 따른 전공 Pass/Fail을 예측한다고 하면 이는 Binary Classification으로 볼 수 있습니다. 반면에, 수능 공부시간에 따른 전공 학점을 A/B/C/D/F 으로 예측하는 경우도 있습니다. 이러한 분류를 Multi-label Classification이라고 합니다.

Regression

다음으로 Regression은 연속된 값을 예측하는 문제를 말합니다. 주로 어떤 패턴이나 트렌드, 경향을 예측할 때 사용됩니다. Coursera에서는 Regression을 설명할 때 항상 집의 크기에 따라 다른 매매가격을 예로 듭니다. 또 다른 예를 들자면, 공부시간에 따른 전공 시험 점수를 예측하는 문제를 예로 들 수 있습니다. 

분류와 회귀에서의 차이는 정답이 어떻게 주어지냐에 따라 달라집니다. 즉 분류 문제에서는 '범주'가 정답으로 주어지고, 회귀 문제에서는 '값'이 정답으로 주어집니다.

Unsupervised learning(비지도 학습)

비지도 학습(unsupervised learning)은 데이터에 대한 레이블-명시적인 정답이 주어지지 않은 상태에서 컴퓨터를 학습시키는 방법론입니다.(입력만 있음)

즉, (데이터(data)) 형태로 학습을 진행하는 방법입니다. 예를 들어서, 아래와 데이터가 무작위로 분포되어 있을 때, 이 데이터를 비슷한 특성을 가진 세 가지 부류로 묶는 클러스터링(Clustering) 알고리즘이 있습니다.

비지도 학습은 데이터의 숨겨진 특성이나 구조를 발견, 데이터를 가공하는데 사용하는데 사용됩니다.


딥러닝에서 Unsupervised Learning 방법론으로 주로 사용되는 구조는 Autoencoders입니다.


강화 학습(Reinforcement learning)

강화 학습은 앞서 살펴본 지도 학습과 비지도 학습과는 약간 다른 종류의 학습 알고리즘입니다.

데이터가 정방이 있는 것도 아니며, 심지어 주어진 데이터가 없을 수도 있습니다. 강화학습이란, 자신이 한 행동에 대한 '보상'을 받고 그로부터 학습하는 것을 말합니다.

예를 들면, 아이가 걷는 것을 배우는 것처럼 어떻게 행동할 줄 모르지만 환경과 상호작용 하면서 걷는법을 알아가는 것과 같은 학습 방법을 강화학습이라고 합니다.


보통 아타리 게임 인공지능을 많이 예시로 드는데, 여기에서 학습 대상(agent)은 움직이면서 적을 물리치는 존재입니다. 이 학습 대상은 움직이면서 적을 물리치면 보상(reward)을 받게 됩니다. 이러한 과정을 스스로 반복학습(Trial and Error)하면서 점수를 최대화 하는 것을 목표로 합니다.


요약하면 {입력, 출력, 출력에 대한 평가 점수}라 볼 수 있습니다.


강화학습의 대표적인 알고리즘은 Q-Learning이 있고, 딥러닝과 결합하여 Deep-Q-Network(DQN) 방법으로도 사용됩니다.









처음에 저도 공부를 시작하기 막막했지만 좋은 자료들을 보며 공부했습니다. 

http://www.techjini.com/blog/machine-learning/

http://www.frankichamaki.com/data-driven-market-segmentation-more-effective-marketing-to-segments-using-ai/

https://www.youtube.com/watch?v=qPMeuL2LIqY

https://www.coursera.org/learn/machine-learning














댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함