* 알고리즘 유형
> 교사학습(지도학습)
- Supervised Learning은 훈련 데이터(Training Data)로부터 하나의 함수를 유추해내기 위한 기계학습(Machine Learning)의 한 방법이다. 훈련 데이터는 일반적으로 입력 객체에 대한 속성을 벡터 형태로 포함하고 있으며 각각의 벡터에 대해 원하는 결과가 무엇인지 표시되어 있다. 이렇게 유추된 함수 중 연속적인 값을 출력하는 것을 회귀분석(Regression)이라 하고 주어진 입력 벡터가 어떤 종류의 값인지 표식하는 것을 분류(Classification)라 한다.
- 지도 학습기(Supervised Learner)가 하는 작업은 훈련 데이터로부터 주어진 데이터에 대해 예측하고자 하는 값을 올바로 추측해내는 것이다. 이 목표를 달성하기 위해서는 학습기가 “알맞은” 방법을 통하여 기존의 훈련 데이터로부터 나타나지 않던 상황까지도 일반화하여 처리할 수 있어야 한다. 사람과 동물에 대응하는 심리학으로는 개념학습(Concept Learning)을 예로 들 수 있다.
- Supervised Learning을 이용한 알고리즘
. 서포트 벡터 머신(support vector machine)
. 은닉 마르코프 모델(Hidden Markov model)
. 회귀 분석(Regression)
. 신경망(Neural network)
. 나이브 메이즈 분류(Naïve Bayes Classification)
> 비교사학습(자율학습)
- Unsupervised Learning은 데이터가 어떻게 구성되었는지를 알아내는 문제의 범주에 속한다. 이 방법은 지도학습(Supervised Learning) 혹은 강화학습(Reinforcement Learning)과는 달리 입력값에 대한 목표치가 주어지지 않는다.
- 자율 학습은 통계의 밀도 추정(Density Estimation)과 깊은 연관이 있다. 이러한 자율 학습은 데이터의 주요 특징을 요약하고 설명할 수 있다.
- 자율학습의 예로는 클러스터링(Clustering) 기계학습을 들 수 있다. 또 다른 하나의 예로는 독립 성분 분석(Independent Component Analysis)이 있다.
> 반 교사학습(준 지도학습)
- Semi-Supervised Learning이란 기계학습의 한 범주로 목표값이 표시된 데이터와 표시되지 않은 데이터를 모두 훈련에 사용하는 것을 말한다. 대게의 경우 이러한 방법에 사용되는 훈련 데이터는 목표값이 표시된 데이터가 적고 표시되지 않은 데이터를 많이 갖고 있다. 이러한 준 지도 학습은 목표값이 충분히 표시된 훈련 데이터를 사용하는 지도학습과 목표값이 표시되지 않은 훈련 데이터를 사용하는 자율학습 사이에 위치한다. 많은 기계 학습 연구자들이 목표값이 없는 데이터에 적은 양의 목표값을 포함한 데이터를 사용할 경우 학습 정확도에 있어서 상당히 좋아짐을 확인하였다. 이러한 훈련 방법이 사용되는 이유는 목표값을 포함한 데이터를 얻기 위해서는 훈련된 사람의 손을 거쳐야 하기 때문이고 그 비용이 감당할 수 없을만큼 클 수 있기 때문이다. 따라서 그러한 경우 준 지도 학습을 사용하여 결과를 향상 시킬 수 있다.
- 이러한 준 지도 학습의 예로는 상호 훈련을 들 수 있다. 이것은 두개 이상의 학습기 각각이 예제를 통해 훈련되는 방법이며 학습기가 사용하는 예제의 특성은 각각 다르며 독립적이다.
- 그 이외의 접근으로는 특징점과 목표값의 결합 분포를 모델링 하는 것이다. 목표값이 없는 데이터에 대해서는 목표값을 '잃어버린 데이터' 로 처리한다. 이러한 방법에서는 예측 최대화 알고리즘(EM 알고리즘)을 모델의 우도 (수학)(likelihood)를 최대화 하기 위해 사용한다.
> 강화학습
- 어떤 환경을 탐색하는 에이전트가 현재의 상태를 인식하여 어떤 행동을 취한다. 그러면 그 에이전트는 환경으로부터 포상을 얻게 된다. 포상은 양수와 음수 둘 다 가능하다. 강화 학습의 알고리즘은 그 에이전트가 앞으로 누적될 포상을 최대화 하는 일련의 행동으로 정의되는 정책를 찾는 방법이다.
- 환경은 일반적으로 유한상태 마르코프 결정 프로세스(MDP)로 표현할 수 있다. 이런 관점에서 강화 학습 알고리즘은 동적 계획법과 깊은 연관이 있다. MDP에서 상태 전이 확률(state transition probabilities)와 포상은 확률에 따른 값일 수도 있고, 이미 결정되어 있는 값일 수도 있다.
- 강화 학습이 원하지 않는 행동을 명시적으로 수정하는 지도 학습과 다른 점은 온라인 수행에 중심을 두고 있다는 점이다. 강화 학습은 아직 조사되지 않는 영역을 탐험하는 것과 이미 알고 있는 지식을 이용하는 것의 균형을 잡는 것이다. 이 탐험과 이용 사이에 있는 트레이드오프는 Multi-armed bandit과 같은 문제에서 알아 볼 수 있다.
* 기계학습 주제
> 선수 지식
- 베이즈 이론
> 모형화
- 인공 신경망
- 결정 트리
- 유전 알고리즘 (Genetic Algorithm)
- 유전자 프로그래밍
- 가우스 과정 회귀
- 선형 분별 분석
- K 근접 이웃
- 퍼셉트론
- 방사 기저 함수 네트워크
- 서포트 벡터 머신 (support vector machine)
> 모수 추정 알고리즘
- 동적 프로그래밍
- 예측 최대화 알고리즘(EM 알고리즘)
> 생성 모형을 이용한 확률 분포 함수의 모형화
- 베이즈 네트워크와 마르코프 임의장을 포함한 그래프 모형
> 근사 추론 기법
- 몬테 카를로 방법
Supervised Learning (지도 학습)
신경망에서 학습기가 분류(Classification)하려는 대상이 자갈과 모래라는 것을 미리 알고서 training example로서 학습시켜 어떤 대상이 자갈에 속하는지 모래에 속하는지를 분류하는 것이 지도 학습이다.
지도학습은 훈련 데이터로부터 함수를 만들어내는 기계 학습(machine learning) 기술이다. 훈련 데이터는 입력 대상(일반적으로 벡터)의 쌍과 원하는 출력으로 구성된다. 함수의 출력은 연속값 (regression)일 수 있고 또는 입력 대상의 분류 명(classification)을 예상할 수도 있다. 지도 학습기(supervised learner)의 일은 단지 소수의 training example (즉 입력 쌍과 목표 출력) 들만을 보고서 유효한 입력 대상을 위한 함수의 값을 예측 하는 것이다. 이를 위해서 learner는 합리적인 (reasonable) 방법으로 현재 데이터로부터 보이지 않는 상황까지 일반화 해야 한다. 지도학습의 주어진 문제(예를 들면 필기체 문자를 인식하도록 학습하는 것) 를 해결하기 위해서는 다음의 단계들을 고려해야 한다.
- Training example들의 유형(type)을 결정 한다. 다른 것을 하기 전에 엔지니어는 example로 사용되는 데이터가 어떤 종류의 데이터 인지를 결정해야 한다. 예를 들면, 이것이 단 하나의 필기체 문자인지, 전체 필기체 단어인지, 전체 필기체 문장인지 와 같은 것이다.
- Training set을 모은다. Set은 함수가 실제 현실에서의 특징을 보일 필요가 있다. 그래서 전문가나 혹은 측정을 통해 얻어진 데이터 집합이 모아지고 입력에 대응하는 출력이 모아져야 한다.
- 학습 함수(learned function)의 특징(feature) 표현을 결정한다. 학습 함수의 정확성은 입력대상이 어떻게 표현되느냐에 크게 좌우된다. 보통 입력대상은 feature vector로 바뀌고, 대상을 묘사하는 특징 수를 포함한다. Feature의 개수는 차원의 문제로 (curse of dimensionality) 때문에 너무 커서는 안되지만, 충분히 많은 양이 있어야 한다.
- 학습 함수의 구조와 동등한 학습 알고리즘을 결정한다. 예를 들면 엔지니어는 신경망(Neural Network)을 사용할 것인지, 의사 결정 트리 (Decision Tree)를 사용할 것인지 선택 한다.
- 설계를 완성한다. 그리고 나서 모아진 훈련 집합 상에서 훈련 알고리즘을 작동 시킨다. 학습 알고리즘의 인수(parameter)들은 subset(validation set)에서 성능을 최적화 하거나, 또는 cross-validation을 통해 조정 될 수 있다. Parameter 조정과 학습 후에, 알고리즘의 성능은 training set에서 분리된 test set상에서 측정 될 수 있다.
Example:
Unsupervised Learning (자율 학습)
분류하려는 대상에 대한 어떤 정보도 주지 않고 학습기로 하여금 그것이 자갈인지 또는 모래인지 또는 그 밖의 어떤 것인지를 분류하는 것이 자율학습이다.
자율학습(Unsupervised Learning)은 어떤 모델이 관찰한 것을 맞추는 기계 학습의 한 방법이다. 사전 정보가 없다는 사실에서 supervised learning과 구분된다. 자율 학습에서는 입력 대상들의 집합을 모아둔 후, 그것을 random variable의 집합으로 취급된다. 적용되는 확률 밀도는 그 데이터 집합에 대해 만들어진다.
자율학습은 다른 것에 주어진 임의 변수에 대한 조건부 확률 계산하기 위해 베이즈 추론과 함께 사용될 수 있다. 또한 자율 학습은 데이터 압축을 위해 사용 가능하다. 근본적으로 모든 데이터 압축 알고리즘은 입력집합에 대해 명시적으로나 암묵적으로 확률분포에 의존한다. 자율학습의 또 다른 형태는 Clustering 이다.
Example: