MLOps 프로젝트/도서 '케라스 창시자에게 배우는 딥러닝'

1부 1.2 딥러닝 이전: 머신 러닝의 간략한 역사

youjin86 2021. 8. 23. 10:49

1부 딥러닝의 기초

1장 딥러닝이란 무엇인가?


1.2 딥러닝 이전: 머신 러닝의 간략한 역사

확률적 모델링

통계학 이론을 데이터 분석에 응용한 것으로 초창기 머신 러닝 형태 중 하나이며 요즘도 사용되는 것

대표 알고리즘 : 나이브 베이즈 알고리즘

 

나이브 베이즈 알고리즘

데이터의 특성이 모두 독립적이라고 가정하고 베이즈 정리를 적용하는 머신 러닝 분류 알고리즘

 

로지스틱 회귀

분류 알고리즘로 나이브 베이즈와 매우 비슷

 

LeNet

초창기 신경망으로, 합성곱 신경망과 역전파를 연결하여 손글씨 숫자 이미지를 분류하는 문제에 적용

 

역전파 알고리즘 : 경사 하강법 최적화를 사용하여 연쇄적으로 변수가 연결된 연산을 훈련하는 방법

 

커널 방법

분류 알고리즘의 한 종류이며 그 중 SVM(Support Vector Machine)이 가장 유명

 

 

SVM (Support Vector Machine)

분류 문제를 해결하기 위해 2개의 다른 범주에 속한 데이터 포인트 그룹 사이에 좋은 결정 경계를 찾음.

새로운 데이터 포인트를 분류하려면 결정 경계 어느 쪽에 속하는지 확인

 

[장점]

- 수학적으로 깊게 분석하기 용이

- 이론을 이해하고 설명하기 쉬움.

 

[단점]

- 대용량의 데이터셋에 확장되기 어려움.

- 이미지 분류 같은 지각에 관련된 문제에서 좋은 성능을 내지 못함.

- 얕은 학습 방법으로 지각에 관련된 문제에 취약

 

결정 경계 : 훈련 데이터를 2개의 범주에 대응하는 영역으로 나누는 직선이나 표면으로 생각하면 됨.

 

SVM이 결정 경계를 찾는 과정

1. 결정 경계가 하나의 초평면으로 표현될 수 있는 새로운 고차원 표현으로 데이터를 매핑

(2차원 데이터일 때, 초평면은 직선이 됨.)

 

2. 마진 최대화

초평면과 각 클래스의 가장 가까운 데이터 포인트 사이의 거리가 최대가 되는 최선의 결정 경계를 찾기

 

커널 기법

SVM 결정 경계 찾기가 컴퓨터로 구현하기 어려워 해결하기 위해 개발된 기법

새롭게 표현된 공간에서 좋은 결정 초평면을 찾기 위해 새로운 공간에 대응하는 데이터 포인트의 좌표를 실제로 구할 필요 없음.

커널 함수를 활용해 새로운 공간에서의 두 데이터 포인트 사이의 거리를 계산

커널 함수 : 원본 공간에 있는 두 데이터 포인트를 명시적으로 새로운 표현으로 변환하지 않고 타깃 표현 공간에 위치했을 때의 거리를 매핑해 주는 계산 가능한 연산으로 직접 만들어야 함. (데이터로부터 학습되지 않음.)

 

결정 트리 (decision tree)

플로우 차트같은 구조를 가지며 입력 데이터 포인트를 분류하거나 주어진 입력에 대해 출력 값을 예측

시각화하고 이해하기 쉬움.

 

랜덤 포레스트 알고리즘 (Ramdom Forest)

결정 트리 학습에 기초한 것으로 안정적이고 실전에 유용

서로 다른 결정 트리를 많이 만들고 그 출력을 앙상블하는 방법을 사용

 

그래디언트 부스팅 머신 (gradient boosting machine)

약한 예측 모델인 결정 트리를 앙상블하는 것을 기반으로 하는 머신 러닝 기법으로, 이전 모델에서 놓친 데이터 포인트를 보완하는 새로운 모델을 반복적으로 훈련함으로써 머신 러닝 모델을 향상하는 방법인 그래디언트 부스팅(gradient boosting) 사용

 

그래디언트 부스팅 기법(gradient boosting) : 비슷한 성질을 가지면서도 대부분의 경우에 랜덤 포레스트의 성능을 능가하는 모델을 만듦.

 

심층 합성곱 신경망 (ConvNet, deep convolutional neural network)

컴퓨터 비전 작업의 주력 알고리즘으로 지각에 관한 모든 문제에 적용할 수 있음.

 

딥러닝의 특징

1. 층을 거치면서 점직적으로 더 복잡한 표현이 만들어짐.

2. 점진적인 중간 표현이 공동으로 학슴됨. (층을 순차적으로 학습하는 것이 아니라 동시에 학습)

 

자동화를 통해 다단계 작업 과정을 하나의 간단한 end-to-end 딥러닝 모델로 대체할 수 있음.

 

머신 러닝 최근 동향

캐글의 머신러닝 경연을 살펴보면 최근 동향을 알 수 있음.

 

주로 사용하는 라이브러리 : XGBoost와 Keras