책 『단단한 머신러닝』 미리 보기(Google Books)
읽기 전에
이 책은 입문용 '교과서'이다.
저자는 입문 단계에서 가장 필요한 것은 '기본 개념에 대해 제대로 이해하고 종합적인 상황을 이해하는 것'이라고 강조한다. 디테일한 내용을 전부 아는 것보다 개괄적인 내용을 파악하는 것에 충실한 책임을 미리 참고하길 바란다.
머신러닝이 뭐지?
머신러닝은 컴퓨터(머신)라는 도구로 경험을 활용해 시스템 자체를 개선해 나가는 방법을 연구하는 학문이다.
이때 컴퓨터 시스템에서 일반적으로 경험이란 바로 데이터를 말한다.
따라서 머신러닝이 연구하는 주요 내용은 학습 알고리즘, 즉 컴퓨터로 데이터에서 하나의 모델을 만들어내는 알고리즘이라고 할 수 있다.
학습 알고리즘이 있으면 우리는 경험이라는 데이터를 제공하고, 해당 데이터에 기반을 둔 새로운 모델을 만들 수 있는 것이다.
이처럼 머신러닝을 하려면 데이터가 반드시 필요하다.
예를 들어, 우리가 수박에 관한 데이터를 수집했다고 가정해보자.
(색깔 = 청록; 꼭지 모양 = 말림; 소리 = 혼탁함),
(색깔 = 진녹색; 꼭지 모양 = 약간 말림; 소리 = 둔탁함),
(색깔 = 연녹색; 꼭지 모양 = 곧음; 소리 = 맑음), ...
이러한 데이터의 집합을 데이터셋 dataset이라고 하고, 각 수박에 대한 데이터를 사례 instance 혹은 샘플 sample이라고 한다.
또 색깔, 꼭지 모양, 소리와 같은 것들을 수박의 속성 attribute 또는 특성 feature라고 부른다.
그렇다면 이 수박에 관한 데이터셋으로 우리는 무얼 할 수 있을까?
놀랍게도 우리는 수박을 잘라보지 않고도 잘 익었는지를 판단하는 머신러닝 모델을 만들 것이다!
어떻게 만들 수 있을까?
우리가 원하는 결과(수박이 잘 익었는지)를 예측prediction 할 수 있으려면, 우선 학습시킬 데이터셋에 그와 관련된 정보가 있어야 한다.
그 결과를 나타내는 정보를 레이블label 이라고 부른다.
훈련 데이터가 레이블 데이터를 가지고 있느냐에 따라서 지도 학습 혹은 비지도 학습으로 나눌 수 있다.
전형적인 지도 학습에는 분류classification 와 회귀regression, 비지도 학습에는 군집화clustering 가 있다.
다시 한 번 예를 들어 보자.
만약 우리가 예측하려는 값이 '잘 익은 수박', '덜 익은 수박' 같은 이산값discrete value 일 경우, 이를 분류 문제라고 한다.
혹은 예측하려는 값이 정량적으로 나타나는 수박의 당도(0.95, 0.37 등) 같은 연속값일 경우, 이를 회귀 문제라고 한다.
수박의 종류에 대한 클러스터링도 가능하다. 훈련 세트의 수박을 몇 개의 집단으로 나누고, 각 집단은 하나의 클러스터가 된다. 이렇게 자동으로 형성된 클러스터는 데이터 내에 잠재되어 있는 어떠한 패턴에 대응해 형성된다.
ex) 청록색 수박, 옅은 색 수박, 외래종, 토종 등
이제 우리의 원래 목표로 돌아오자.
우리는 수박이 잘 익었는지 아닌지, 둘 중 하나를 판단하는 것이 목표이기 때문에 지도학습 중에서도 분류 모델을 만들고 싶다.
이 분류 모델뿐 아니라 머신러닝의 기초적인 사상을 이해하기 위해서 한 가지 개념을 소개한다. 바로 '귀납 학습'이다.
귀납은 연역과 함께 과학 추론의 기본적인 방법이다.
귀납은 특수에서 일반으로 일반화하는 과정이고, 구체적인 사실에서 일반성을 가진 규칙을 찾는 것이다.
반면 연역은 일반에서 특수로 특화하는 과정이며, 기초 원리로부터 구체적인 정황을 추론하는 것을 뜻한다.
귀납 학습은 개념 학습이라고도 할 수 있는데, 그 중 가장 기초가 되는 것이 부울bool 개념 학습이다.
즉 yes or no의 불리언boolean 값을 가진 목표 개념을 학습하는 것이다.
예를 들어 '잘 익은 수박'인지의 여부가 수박의 색깔과 꼭지 모양, 소리라는 세 요소에 의해 정해진다고 가정해보자.
다시 말해 어떤 수박의 세 가지 속성을 정확히 알 수 있다면, 그 수박이 잘 익었는지를 판단할 수 있다는 뜻이다.
이 문장을 논리식으로 표현하면 다음과 같다.
여기서 물음표? 는 확정되지 않은 값을 뜻하고, 이 ?를 찾는 것이 바로 우리의 목표다.
잘 익은 수박 <=> (색깔 = ?) ^ (꼭지 = ?) ^ (소리 = ?)
* 참고로 ^는 논리곱을 의미한다. 자세한 개념은 링크 에서 확인할 수 있다.
To Be Continued...
'공부하며 성장하기 > 인공지능 AI' 카테고리의 다른 글
앙상블 학습(Ensemble Learning)이란? (2) | 2021.08.15 |
---|---|
경사하강법(Gradient Descent)이란? (0) | 2021.07.27 |
수치 미분(Numerical differentiation)이란? (0) | 2021.07.27 |
퍼셉트론(perceptron)이란? (0) | 2021.07.21 |
판다스Pandas 가 뭔가요? (+ 와인 리뷰 데이터 탐색 맛보기) (1) | 2021.07.10 |