확률적 모델링
- 모든 입력 특성이 독립적이라고 가정했을 때 조건부 확률을 사용하여 특정 클래스에 속할 확률을 계산하는 방식
- 지도 학습 환경에서 훈련 데이터가 적어도 효율적으로 파라미터를 훈련 시킬 수 있다는 장점이다.
- 단순하지만 복잡한 문제에도 잘 적용된다고 한다. (스팸 메일 분류기 등)
- 연속형 데이터보다 이산형 데이터에서 성능이 좋다.
- 이름이 회귀인데 분류 알고리즘이다. 0 ~ 1 사이로 한 클래스에 속할 확률을 예측한다.
- 시그모이드 함수에 특성 값들과 파라미터 값들을 내적한 값인 log-odds를 넣어서 0 ~ 1사이의 값으로 변환
- 손실 함수는 로그 손실을 사용하고, 경사하강법을 통해 파라미터 값 조정한다.
초창기 신경망
- LeNet - 1 ( 1990년 )
- LeNet - 5 ( 1998년 )
- CNN의 초기 버전
커널 방법 (1990년대)
- 서포트 벡터는 클래스 분류를 위한 결정 경계를 만드는데 사용하는 데이터 포인트들이다. (결정 경계에서 가장 가까운 데이터 포인트)
- 이상치를 얼마나 허용하는지에 따라 마진 값(서포트 벡터와 결정 경계 사이의 거리)가 달라지고, 과대적합 혹은 과소적합이 될 수도 있다.
- 다항식 커널과 가우시안 커널을 사용하면 원래 가지고 있는 데이터의 차원을 더 높은 차원의 데이터로 변환한다.
- SVM는 회귀 문제에도 사용할 수 있다고 한다.
- 단점 : 얕은 학습 방법이기 때문에 수동으로 유용한 표현을 추출하는 과정(특성 공학)이 필요한데, 이게 어렵다.
또한 대용량의 데이터셋에 확장되기가 어렵다.
결정 트리, 랜덤 포레스트, 그래디언트 부스팅 머신 (2000년대)
- 분류와 회귀 모두 가능
- 가지치기와 최대 리프, 깊이 제한으로 과대적합을 막음
- 여러개의 트리를 랜덤하게 많이 만들고 평균을 내서 결과를 얻는 방법
- 각각의 트리는 그래도 어느정도 예측은 할 수 있어야 한다.
- 트리를 만들 때 데이터 포인트를 랜덤하게 선택하거나 특성을 랜덤으로 선택하여 만든다.
- 성능이 괜찮지만, 텍스트와 같이 차원이 높은 경우는 속도가 느린 편이다.
- 랜덤 포레스트와 다른 점은 무작위성 대신 얕은 가지를 많이 사용 한다는 점
- 이전 트리에서 놓친 데이터 포인트를 보완하는 새로운 트리를 반복해서 추가해 나가는 방식
- 경사 하강법을 사용
- XGBoost, Light GBM, CatBoost들이 그래디언트 부스팅 머신에서 발전한 모델이다. 성능과 속도가 더 좋다.
딥러닝 (2010년대)
- 2012년 이후부터 자연어 처리, 컴퓨터 비전 작업의 주력 알고리즘이 됨
- 특성 공학을 자동화 해줘서 문제 해결이 더 쉬워짐
최근 동향(2018 년도 기준) - 지금은 모름
- 구조적인 데이터 문제에는 그래디언트 부스팅을 XGBoost 라이브러리를 사용하여 해결
- 이미지 분류와 같은 지각 문제에는 딥러닝을 케라스 라이브러리를 사용하여 해결