머신러닝
개요
1. 머신러닝의 정의
Machine Learning의 2가지 정의가 있는데, Arthur Samuel은 1959년 처음으로 Machine Learning이라는 용어를 사용하였다.
Arthur Samuel (1959)
- 명시적으로 프로그램을 작성하지 않고 컴퓨터에 학습할 수 있는 능력을 부여하기 위한 연구 분야
“The field of study that gives computers the ability to learn without being explicitly programmed”
Machine Learning의 예 (y=3x)
- 학습데이터 (1,3), (3,9), (4,12), (6,18)
- 컴퓨터에 y=3x의 함수를 프로그래밍하지 않아도 앞의 학습데이터를 학습한 후 (8, ?) (10, ?)의 질문을 던져도 그 대답을 할 수 있게 만드는 것.
Tom Mitchell은 1997년에 Machine Learning에 대해 현대적으로 재 정의를 하였다.
Tom Mitchell (Carnegie Mellon University, 1997)
- 만약 컴퓨터 프로그램이 특정한 태스크 T를 수행할 때 성능 P만큼 개선되는 경험 E를 보이면, 그 컴퓨터 프로그램은 태스크 T와 성능 P에 대해 경험 E를 학습했다라고 할 수 있다.
"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."
- 문제) 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. What is the task T in this setting?
① Classifying emails as spam or not spam. ② Watching you label emails as spam or not spam. ③ The number (or fraction) of emails correctly classified as spam/not spam.
Training Set (학습 데이터)
- Machine Learning이 학습 모델을 만들기 위해 사용하는 데이터
- 학습 데이터가 나쁘면 실제 현장의 특성을 제대로 반영하지 못하므로, 학습 데이터 확보 시 실제 데이터의 특성이 잘 반영되고 편향 되지 않는 학습 데이터를 확보하는 것이 매우 중요함.
Model (학습 모델)
- Machine Learning에서 구하려는 최종 결과물로 가설(Hypothesis)이라고도 부른다.
Inference (추론)
- 학습된 모델을 실제 현장에서 사용하는 과정
2. 머신러닝의 분류
- 학습 데이터에 레이블(label)이 있는 경우와 그렇지 않은 경우에 따라 지도학습과 비지도학습으로 구분하고, 강화학습은 지도학습 중 하나로 분류되거나 또는 독립적인 세 번째 머신러닝 모델로 분류하기도 한다.
Type | Task | Algorithms |
---|---|---|
지도 학습(Supervised Learning) | 분류(Classification) | KNN : K Nearest Neighbor SVM : Support Vector Machine Decision Tree (의사결정 나무) Logistic Regression |
예측(Prediction) | Linear Regression (선형 회귀) | |
비지도 학습 (Unsupervised Learning) | 군집(Clustering) | K-Means Clustering DBSCAN Clustering Hierarchical Clustering (계층형 군집) |
강화 학습 (Reinforcement Learning) | MDP : Markov Decision Process |
Logistic Regression (tensorflow, keras 에서 많이 사용)
3. 지도 학습
label이 있는 학습 데이터(Training set)를 이용해서 학습
분류와 회귀의 비교
구분 | 분류 (Classification) | 회귀 (Regression) |
---|---|---|
결과 | 학습데이터의 레이블 중 하나를 예측 (discrete) |
연속된 값을 예측 (Continuous) |
예제 | 학습데이터가 A, B, C 인 경우 결과는 A, B, C 중 하나다. 예) 스팸메일 필터 |
결과 값이 어떠한 값도 나올수 있다. 예) 주가 분석 예측 |
4. 비지도 학습
label이 없는 학습 데이터(Tranining set)를 이용해서 학습
분류와 군집의 비교
구분 | 분류 (Classification) | 군집 (Clustering) |
---|---|---|
공통점 | 입력된 데이터들이 어떤 형태로 그룹을 형성하는지가 관심사 | |
차이점 | 레이블이 있다. | 레이블이 없다. 예) 의학 임상실험 환자군 구별 구매자 유형 분류 |
5. 강화학습
상과 벌이라는 보상을 통해 현재의 행위의 그 방향 혹은 반대 방향으로 행위를 강화화는 학습 방향
강화학습
- 시행착오 과정을 거쳐 학습하기 때문에 사람의 학습방식과 유사
- Agent는 환경으로부터 상태를 관측하고 이에 따른 적절한 행동을 하 면 이 행동을 기준으로 환경으로부터 보상을 받는다.
- 관측 – 행동 – 보상의 상호작용을 반복하면서 환경으로부터 얻는 보상을 최대화하는 태스크를 수행하기 위한 일련의 과정.
- 관측 – 행동 – 보상의 과정을 경험(Experience)이라고도 한다.
6. 과적합 (Overfitting)
- 학습 데이터에 너무 지나치게 맞추다 보면 일반화 성능이 떨어지는 모델을 얻게 되는 현상을 과적합(Overfitting)이라고 한다
학습데이터가 적을때도 over-fitted 발생
학습데이터가 잘 준비해야 트레이닝 할때와 new Data로 할때의 Accuracy 의 차이를 극복 할수 있다.
- Under Fitting
- 적정 수준의 학습을 하지 못하여 실제 성능이 떨어지는 경우
- Normal Fitting (Generalized Fitting)
- 적정 수준의 학습으로 실제 적정한 일반화 수준을 나타냄. 기계 학습이 지향하는 수준.
- Over Fitting
- 학습 데이터에 성능이 좋지만 실제 데이터에 관해 성능이 떨어짐. 특히 조심해야 함.
드롭아웃(Dropout)
Node 중의 일부를 꺼버리는 것. (과적합을 줄일 수 있는 방법 중 하나)
- 학습 데이터의 일부를 따로 떼어 내어 학습이 아닌 검증용으로 사용하는 기법
- 보유하고 있는 데이터셋을 Training set (50%~60%), Validation set (20%~25%), Test set (20%~25%) 으로 구분
(1) Training set 을 가지고 예측 혹은 분류 모델을 훈련시키고
(2) Validation set을 가지고서 훈련 중인 모델이 혹시 과적합(over-fitting)인지 검증, 감시를 하면서 최적의 적정 적합 (generalized-fitting) 구간을 찾아 모델을 선택한 후
(3) Test set을 사용해서 최종 모델(final model)에 대해서 평가
- 교차 검증 (Cross Validation)
- 학습 데이터를 용도별로 나누는 것은 같은데, 처음에 나눠진 데이터를 그대로 사용하는 것이 아니라 중간중간에 서로 다시 나눠 줌
인공지능의 등장
John McCarthy (‘1927 ~ ‘2011)
- 1956년 John McCarthy가 Dartmouth 대학 Conference에서 최초로 인공지능 용어를 사용
- 1958년 LISP 프로그래밍 언어 개발 (인공지능용 프로그래밍 언어)
- 인공지능 연구에 지대한 영향을 미침
Arthur Samuel (‘1901 ~ ‘1990)
- 1959년 논문에서 Machine Learning 용어를 처음 사용
- “명시적으로 프로그램을 작성하지 않고 컴퓨터에 학습할 수 있는 능력을 부여하기 위한 연구 분야”
- 2000년대 Deep Learning으로 기계학습의 비약적인 발전
Frank Rosenblatt (‘1928 ~ ‘1971)
- 1958년 인공신경망(ANN: Artificial Neural Network)을 실제로 구현한 Perceptron 이론을 발표
- 맥컬록과 피츠의 인공신경망 이론에 헵(Hebb)의 생물학적 신경망의 학습효과를 인공신경망에 적용
- 400여 개 빛 감지 센서와 512개의 증폭기, 40개 제어 부품으로 8개의 뉴런(Neuron, 신경세포)을 시뮬레이션 함
Perceptron 이론의 한계 발견
- Perceptron은 학습이 진행될수록 선형 분리(linear boundary)를 업데이트하면서 학습
- 하지만, 간단한 XOR문제에는 적용할 수 없는 한계가 발견 -> 인공지능의 외면
Natural Language Processing - 자연어 처리
Speech Recognition - 음성 처리
Speech to Text - 음성 -> 텍스트
Text to Speech - 텍스트 -> 음성