본문 바로가기

머신 러닝

딥러닝 이전의 머신 러닝에는 무엇이 있었을까?

[케라스 창시자에게 배우는 딥러닝] 1.2 딥러닝 이전 : 머신 러닝의 간략한 역사

1.2.1 확률적 모델링

나이즈 베이즈 (Naive Bayes' theorem) : 컴퓨터 이전부터 사용된 분류 알고리즘. 입력 데이터의 특성이 모두 독립적이라고 가정
로지스틱 회귀 (logistic regression, logreg) : 회귀(regression)이 아닌, 분류(classification) 알고리즘 

1.2.2 초창기 신경망

초기 개념은 1950년대. 성공은 1989년 벨 연구소에서 우편 봉토의 우편 번호 코드를 자동으로 읽기 위해 사용한 LeNet

1.2.3 커널 방법

분류 알고리즘의 한 종류를 뜻하며, 그중 서포트 벡터 머신 (Support Vector Machine, SVM)이 가장 유명하다. 분류 문제를 해결하기 위해 2개의 다른 범주의 속한 데이터 포인트 그룹 사이에 좋은 결정 경제를 찾고, 새로 들어온 데이터를 분류한다.
1) 하나의 초평면(hyperplane)으로 데이터를 매핑한다. 
2) 초평면과 각 클래스의 가장 가까운 데이터 포인트 사이의 거리가 최대가 되는 최선의 결정 경계를 찾는다. (마진 최대화)
이론상으론 좋아 보이지만, 컴퓨터로 구현하기 어렵다. -> 커널 기법 (Kernel trick)으로 해결. 실제로 찾지 않고 커널 함수를 이용해 거리만 계산한다. 간단한 분류 문제에선 최고 수준의 성능, 하지만 대용량 / 지각 관련에 취약하다. 왜냐하면 데이터를 기계가 이해할 수 있는 유용한 데이터 표현으로 추출하기 어렵기 때문이다. *이를 특성 공학이라고 부른다.

1.2.4 결정 트리, 랜덤 포레스트, 그래디언트 부스팅 머신

결정 트리 : 시각화하고 이해하기 쉽다.
랜덤포레스트 : 서로 다른 결정 트리를 만들고 그 출력을 앙상블한다.
그래디언트 부스팅 머신 : 랜덤 포레스트 + 이전 모델에서 놓친 데이터 포인트르 보완하는 새로운 모델을 반복적으로 훈련(그래디언트 부스팅) -> 캐글에서 두 번째로 많이 사용된다. 첫 번째는 우리가 배울 딥러닝이다.

1.2.5 다시 신경망으로

2012년 대규모 이미지 분류대회인 ImageNet에서 심층 합성곱 신경망 (Deep convolutional neural network, ConvNet, 컨브넷) 1등 (정확도 83.6%). 이전 일등은 74.3%였다. 2015년 96.4%로 문제를 해결한 것으로 간주되었다.

1.2.6 딥러닝의 특징

특성 공학의 부분을 자동화한다. 머신 러닝 작업 흐름을 매우 단순화시키며, 고도의 다단계 작업을 앤드-투-앤드로 실행할 수 있다. 딥러닝의 변환 능력은 모델이 모든 표현 층을 순차적 (탐욕적)이 아닌, 동시에 공동으로 학습하게 만든다. 즉 모델의 모든 변화는 최종 목표를 따라가게 된다. 
1) 층을 거치면서 점진적으로 더 복잡한 표현이 만들어진다.
2) 이런 점진적인 중간 표현이 공동으로 학습된다.

1.2.7 머신 러닝의 최근 동향

2017년 캐글에서 가장 많이 사용된 기법 (라이브러리)
1) 딥러닝 (Keras)
2) 그래디언트 부스팅 (XGBoost 라이브러리)