본문 바로가기

프로그래밍/for AI

[ML] 마스터 알고리즘(책) -페드로 도밍고스

 

마스터 알고리즘 / 2015년 출판

 

머신러닝을 공부하기 위해 "파이썬 머신러닝 완벽가이드"라는 도서를 구매했다. 

이 교제의 시작부분에서 이 "마스터 알고리즘"이라는 책을 소개하였다.

나는 머신러닝의 입문자로서 앞으로의 학습 방향을 설정하기에

이 책은 좋은 선택이 될것이라 생각이 들어 읽게 되었다. 

가장 흥미로웠던 점은 지금까지 스쳐가며 들었던 각종 알고리즘들이 

시작된 학파가 있고, 지금까지 각자의 논리와 영역에서 발전해왔다는 것이었다. 

수많은 알고리즘들이 5개로 분류할 수 있다니 ! 

심지어는 모든 상황에 적용가능한 마스터 알고리즘을 만들어야 한다니 ! 

처음보는 용어가 많았지만 차근차근 읽다보면 이해가 될수 있도록

수식이나 용어는 최소화하고 예시와 쉬운 설명으로 채워진 좋은 입문서였다. 

그렇기에 AI 전문가를 꿈꾸는 또다른 누구에게도 이 책을 강력히 추천한다. 

 

(아래는 개인적으로 책을 읽으며 기억에 남는 개념을 정리한 것이다.)

알고리즘의 종족(학파) 빠르게 알아보기

핵심 키워드 한 줄 정리 비고
마스터 알고리즘 모든 알고리즘을 대체할 수 있는 것으로, 최소한의 입력만을 받아도 모든 분야에 적용 될수 있고 모든 상황을 이해하고 설명할 수 있는 단 하나의 알고리즘이다.  #알고리즘의 최종 종착지
#자발적이고 능동적인 데이터 탐색
기호주의자 연역법(알고있는 것->새로운 판단)을 바탕으로 기존에 알고있는 사실을 가지고, 연역 추론에서 빠진 부분을 채우는 것을 목표로 한다.  - 역연역법(inverse deduction)
연결주의자 온전한 것을 분해하여 그 기술을 알아내는 역공학 방식으로, 어떤 연결이 오류를 일으키는 지를 파악하여 수정해가며 발전할 수 있는 알고리즘을 만드는 것을 목표로 한다.  - 역전파법(back propagation)
진화주의자 생물의 자연선택에서 착안하여, 오류가 나타나는 부분을 세부 조정하며 발달하는 방식을 가진 학습하는 구조물을 만드는 것을 목표로 한다.  - 유전자 프로그래밍
베이스주의자 학습된 데이터의 불완전성에 주목하여, 확률 추론을 통해 정답과 가까운 답을 추론하는 것을 목표로 한다.  - 베이즈 정리
유추주의자 데이터 간의 유사성을 찾아내어 다른 유사성을 발견하는 알고리즘을 만드는 것을 목표로 한다.  - 서포트 벡터머신(SVM)

 

 

책에 나온 주요 용어 한 줄 정리 하기(작성중)

핵심 키워드 한 줄 정리 비고
퍼셉트론 여러개의 입력값과 가중치를 곱한 결과를 계단함수(활성화 함수)를 거쳐 결과를 도출하는 기본적인 형태의 모델. - 계단함수: 임계값을 넘으면 1, 아니면 0을 반환
- 이진 로지스틱 회귀모델: 계단함수 -> 시그모이드
지도학습(Supervised-) 정답(라벨)이 있는 데이터의 학습을 통해, 새로운 데이터에 대한 예측 등을 진행하는 머신러닝 학습 - 회귀 모델(숫자값 예측)
- 분류모델(카테고리 할당)
비지도학습(unsupervised-) 정답(라벨)이 없는 데이터를 가지고, 데이터 간 연관성으로 그룹화 등을 진행하는 머신러닝 학습 - 클러스터링(그룹화. ex. k-means clustering)
- 연관(장바구니 분석, 추천엔진 등에 사용)
베이즈 정리(bayes's theroy) 사후확률(결과)을 사전확률(원인&결과 자체가 발생할 확률)로 조정하여 가설의 확률을 계산하는 확률추론 - 에이즈 발생 확률 자체가 너무 작으면 양성일 때 에이즈일 확률(사후 확률)도 작아진다.
나이브 베이즈 분류기(naive bayes) for 변수의 단순화, 모든 입력변수들이 서로 독립적이라고 가정한 뒤 사후확률을 계산하는 지도 학습 알고리즘. - 증상에 따른 독감 여부를 판단하기 위해, 독감일때 각 증상의 빈도와 증상 자체의 발생 빈도 확인
SVM(Support Vector Machine) 그룹을 구분짓는 선들 중에서 불필요한 벡터들을 지워나가며, 그룹을 가장 잘 분류할 경계선만 남김. - 서포트 벡터 머신
- 유추주의 머신러닝
k-최근접이웃(k-nearest-neighbor) 새로운 데이터를 가장 가까운 k개의 데이터 중 다수를 차지하는 그룹으로 할당하여 분류,회귀(평균) 수행.  - 무제한의 데이터에 대해 비선형 경계선
- 가중치로 데이터간 평균값의 차이 보정
군집화(clustering) 가장 특징이 유사한 것 끼리 묶어 집단을 구분짓는 비지도학습의 한 예시   
k-평균 알고리즘(k-means) 군집화된 k개 데이터의 평균값으로, 데이터가 추가될 때마다 각 그룹의 평균을 구하고 다시 그룹을 재할당.  
EM(Expectation Maximization) 파라미터를 갱신하며 유형을 추론하는 과정을 값이 수렴할 때까지 반복하여 최적값을 찾는 방식 - 불완전한 데이터에서 패턴을 찾는 문제 등에 사용
강화학습(reinforcement learning) 여러번의 반복수행을 통해 장기적인 누적 보상을 최대화할 수있느 최적의 선택을 찾아감  
PCA(Pinciple-component anal.) 여러개의 변수를 소수의 차원 공간에 투사(요약)하여, 원데이터(분산)를 보존하면서 선형데이터의 그룹화를 도움  
차원축소(Dim Reduction) 알고리즘의 결과에 영향을 주지 않는 변수들을 제거 또는 변형 한 후 유사성을 분석하여 효율을 증가시키는 방법 - 과적합 방지
- PCA는 변수 제거가 아닌 변환을 수행
관계형 알고리즘 모든 현상과 결과는 독립적으로 발생하지 않고 주변과 상호작용 하기에 데이터 간의 관계를 바탕으로 예측 ex) 세포는 수많은 화학반응의 부산물을 만들어내 주변 세포에 영향을 주고 받는다. 
메타학습 알고리즘 여러 알고리즘 모델을 하나로 묶어 예측을 시키는 방식으로, 성능에 따라 가중치를 부여하여 최고의 결과를 도출 - 랜덤 포레스트