[케라스 창시자에게 배우는 딥러닝] 참고
확률적 모델링(Probabilistic modeling)
: 초창기 머신 러닝 형태 중 하나로 통계학 이론을 데이터 분석에 응용한 것.
가장 잘 알려진 알고리즘 중 하나는 Naive Bayes (나이브 베이즈) 알고리즘 이다.
나이브 베이즈는 입력 데이터의 특성이 모두 독립적이라고 가정하고 베이즈 정리(Bayes' theorem)를 적용하는 머신 러닝 분류 알고리즘이다. <naive = '순진한'>
이런 형태의 데이터 분석은 컴퓨터보다 앞서 있었기 때문에 수십년 전에는 수작업으로 적용했다.(1950년대)
이와 밀접하게 연관된 모델이 로지스틱 회귀(logistic regression)이다.
이 모델은 현대 머신 러닝의 시작으로 여겨진다. 나이브 베이즈와 비슷하게 컴퓨터보다 훨씬 오래 전부터 있었지만, 간단하고 다목적으로 활용할 수 있어 여전히 유용하게 쓰인다. 로지스틱 회귀는 분류 알고리즘이다.
초창기 신경망
1950년대 작게나마 연구되었지만 본격적으로 시작되기까지는 수십 년이 걸렸다.
1980년대 중반, 여러 사람들이 제각기 역전파 알고리즘을 재발견하고 신경망에 이를 적용하기 시작했다. 이 알고리즘은 경사 하강법 최적화를 사용해 연쇄적으로 변수가 연결된 연산을 훈련하는 방법이다.
성공적인 첫 번째 신경망 애플리케이션은 1989년 벨 연구소(Bell Labs)에서 나왔다. 얀 르쿤(Yann LeCun)은 초창기 합성곱 신경망(CNN)과 역전파를 연결해 손글씨 숫자 이미지를 분류하는 문제에 적용했다.
LeNet이라 부르는 신경망은 1990년대 우편 봉투의 우편 번호 코드를 자동으로 읽기 위해 미국 우편 서비스에 사용되었다.
커널 방법
초기 성공에 힘입어 1990년대 신경망은 연구자들 사이에서 관심을 얻기 시작했지만, 머신 러닝의 새로운 접근 방법인 커널 방법이 인기를 얻자 신경망은 빠르게 잊혀졌다.
커널 방법(Kernel method)은 분류 알고리즘의 한 종류를 말하며 그 중 서포트 벡터 머신(SVM)이 가장 유명하다.
SVM은 분류 문제를 해결하기 위해 2개의 다른 범주에 속한 데이터 포인트 그룹 사이에 좋은 결정 경계(Decision boundary)를 찾는다. 결정 경계는 훈련 데이터를 2개의 범주에 대응하는 영역으로 나누는 직선이나 표면으로 생각할 수 있다. 새로운 데이터 포인트를 분류하려면 결정 경계 어느 쪽에 속하는지를 확인하면 된다.
요약하자면, SVM은 분류 문제를 간단하게 만들기 위해 데이터를 고차원 표현으로 매핑하는 기법이다.
하지만, 이 기법이 이론상으로는 좋아 보이지만 실제로는 컴퓨터로 구현하기 어려운 경우가 많다.
<SVM이 결정 경계를 찾는 과정>
1) 하나의 초평면으로 데이터를 매핑한다. (2차원 데이터라면 초평면(Hyperplane)은 직선이 된다.)
2) 마진 최대화(maximizing the margin)하기 (초평면과 각 클래스의 가장 가까운 데이터 포인트 사이의 거리가 최대가 되는 최선의 결정 경계를 찾는다.) -> 결정 경계가 새로운 샘플에 잘 일반화되도록 함.
SVM이 개발되었을 때 간단한 분류 문제에 대해 최고 수준의 성능을 달성했다. 또 수학적으로 깊게 분석하기 용이해 이론을 이해하고 설명하기 쉽다. 이런 유용한 특징 때문에 SVM이 오랫동안 머신 런이 분야에서 큰 인기를 끌었다.
그러나 SVM은 대용량의 데이터셋에 확장되기 어렵고 이미지 분류 같은 지각에 관련된 문제에서 좋은 성능을 내지 못했다. SVM은 얕은 학습 방법이기 때문에 지각에 관련된 문제에 SVM을 적용하려면 먼저 수동으로 유용한 표현을 추출(특성공학,Feature engineering)해야 하는데 이는 매우 어렵고 불안정하다.
그 후 커널 기법(Kernel trick)이 등장했다.
새롭게 표현된 공간에서 좋은 결정 초평면을 찾기 위해 새로운 공간에 대응하는 데이터 포인트의 좌표를 실제로 구할 필요가 없다. 새로운 공간에서의 두 데이터 포인트 사이의 거리를 계산할 수만 있으면 된다.
커널 함수(kernel function)를 사용하면 이를 효율적으로 계산할 수 있는데, 이는 원본 공간에 있는 두 데이터 포인트를 명시적인 새로운 표현으로 변환하지 않고 타깃 표현 공간에 위치했을 때의 거리를 매핑해 주는 계산 가능한 연산이다. 커널함수는 일반적으로 데이터로부터 학습되지 않고 직접 만들어야한다. SVM에서 학습되는 것은 분할 초평면뿐이다.
결정트리, 랜덤 포레스트, 그래디언트 부스팅 머신
결정트리(Decision tree)는 플로차트(flowchart) 구조를 가지며 입력 데이터 포인트를 분류하거나 주어진 입력에 대해 출력 값을 예측한다. 결정트리는 시각화하고 직관적으로 이해하기 쉽다. 데이터에서 학습되는 결정트리는 2000년대부터 연구자들에게 크게 관심을 받기 시작했고 2010년까지는 커널 방법보다 선호하곤 했다.
특히 랜덤 포레스트(Random Forest)알고리즘은 결정 트리 학습에 기초한 거스로 안정적이고 실전에 유용하다.
서로 다른 결정 트리를 많이 만들고 그 출력을 앙상블하는 방법이다. 다양한 문제에 적용할 수 있는데, 얕은 학습에 해당하는 어떤 작업에서도 거의 항상 두 번째로 가장 좋은 알고리즘이다.
그 후 2014년 그래디언트 부스팅 머신(gradient boosting machine)이 나왔다. 랜덤 포레스트와 비슷하게 결정 트리를 앙상블 하는 것을 기반으로 하는 머신 러닝 기법이다. 이전 모델에서 놓친 데이터 포인트를 보완하는 새로운 모델을 반복저그로 훈련함으로써 머신 러닝 모델을 향상하는 방법인 gradient boosting을 사용한다.
성능이 매우 뛰어나 딥러닝을 제외하고 캐글 경연 대회에서 가장 많이 사용된다.
신경망
2010년경 신경망은 관심을 받지 못했지만, 신경망에 대해 연구하던 일부 사람들이 중요한 성과를 내기 시작했다.
(토론토 대학의 제프리 힌튼(Geoffrey Hinton), 몬트리올 대학의 요슈아 벤지오(Yoshua Bengio), 뉴욕 대학의 얀 르쿤, 스위스의 IDSIA)
2011년 IDSIA의 댄 크리슨(Dan Ciresan)이 GPU로 훈련된 심층 신경망(Deep Neural Network)으로 학술 이미지 분류 대회에서 우승한 것이 시작이었다. 이것이 현대적인 딥러닝의 첫 번째 성공이다.
그리고 이어서 2012년 대규모 이미지 분류 대회인 ImageNet에 힌튼 팀이 83.6%의 큰 성과를 내었다.
( 당시 이 대회는 아주 어려운 문제였는데, 1400만개의 이미지를 훈련시키고 고해상도 컬러 이미지를 1000개 범주로 분류해야 했다. )
이후부터 매년 이 대회는 심층 합성곱 신경망(Deep Convolutional Neural Network, convNet)이 우승을 차지했다.
2012년부터 심층 합성곱 신경망이 모든 컴퓨터 비전 작업의 주력 알고리즘이 되었다.
이 알고리즘은 조금 더 일반적이며, 지각에 관한 모든 문제에 적용할 수 있었고 동시에 딥러닝은 자연어 처리(NLP) 같은 다른 종류의 문제에도 적용되었으며, 다양한 애플리케이션에서 SVM과 결정 트리를 완전히 대체하고 있다.
(ex. 유럽입자물리연구소(CERN)의 대형 강입자 충돌기(LHC)에 있는 ATLAS 감지기에서 얻은 입자 데이터를 분석하기 위해 결정 트리 기반의 알고리즘을 사용했지만, 최근 높은 성능과 손쉬운 훈련을 할 수 있는 케라스(Keras) 기반의 심층 신경망을 적용하기 시작함.)
딥러닝이 다른 모델보다 좋은 이유
딥러닝은 다양한 문제에 좋은 성능을 낼 뿐만 아니라, 머신 러닝에서 가장 중요한 단계인 특성 공학을 완전히 자동화해주어 문제를 더 해결하기 쉽게 만들어준다.
딥러닝의 변환 능력은 모델이 모든 표현 층을 순차적이 아니라, 동시에 공동으로 학습하게 만든다. 이런 공동 특성 학습 능력 덕택에 모델이 내부 특성 하나에 맞추어질 때마다 이에 의존하는 다른 모든 특성이 사람이 개입하지 않아도 자동으로 변화에 적응하게 된다. 또, 모델을 많은 중간 영역(layer)로 나누어 복잡하고 추상화된 표현을 학습ㅅ킬 수 있기 때문에 얕은 학습 모델을 순차적(탐욕적, greedily)으로 쌓은 것보다 훨씬 강력하다. 여기서 각 층은 이전 층에 의존하지 않는 단순한 변환을 수행한다.
딥러닝이 데이터로부터 학습하는 방법에는 두 가지 중요한 특징이 있다.
1) 층을 거치면서 점진적으로 더 복잡한 표현이 만들어진다.
2) 이런 점진적인 중간 표현이 공동으로 학습된다.
각 층은 상위 층과 하위 층의 표현이 변함에 따라 함께 바뀐다. 이 2개의 특징이 이전의 머신 러닝 접근 방법보다 딥러닝이 훨씬 성공하게 된 이유이다.
머신러닝 최근 동향
최근 머신러닝 알고리즘과 도구의 동향에 대해 정보를 얻는 좋은 방법은 캐글의 머신 러닝 경연을 살펴 보는 것이다.
2016년과 2017년 캐글에는 그래디언트 부스팅 머신과 딥러닝의 두 가지 접근 방법이 주류를 이루었다.
특히 그래디언트 부스팅(거의 XGBoost)은 구조적인 데이터인 경우 사용되고, 딥러닝은 이미지 분류 같은 지각에 관한 문제에 사용된다.
'머신러닝 (Machine Learning) > 머신러닝 기초' 카테고리의 다른 글
머신러닝 용어 ( Data Point, Sample, Instance 등 ) (0) | 2021.04.27 |
---|