핸즈온 머신러닝 2nd Edition
Part 1 머신러닝
Chapter 1 한눈에 보는 머신러닝
- 필자는 AI를 기초부터 다시 공부해보자는 마음에 핸즈온 머신러닝을 공부하기로 했다.
- 앞으로 1챕터씩 정리해 업로드할 예정이다.
1. 머신러닝의 정의
- 머신러닝은 IMB 인공지능 연구원이었던 아서 사무엘(Arthur Samuel)이 쓴 1959년 논문 “Studies in Machine Learning Using the Game of Checkers”에 서 다음과 같이 정의하였다.
명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야이다.
아서 새뮤얼(Arthur Samuel, 1959)
왜 머신러닝을 사용해야 하는가?
- 우리가 자주 사용하는 후후 앱의 경우를 살펴보자.
- 광고메세지를 차단하기 위해
메세지 키워드 필터링
기능을 이용할 때면, 스팸 문자가 올 때마다 광고 메세지의 키워드를 등록해주어야 한다.
후후 메시지 필터링 화면
- 이와 같은 방식에서는 새로운 패턴이 발견될 때마다, 우리는 새로운 규칙을 추가해주어야 한다.
- 반면 머신러닝을 활용하면 사용자가 스팸 메세지로 분류할 때마다 자동으로 규칙을 학습하고, 다음에 비슷한 메세지가 오면, 자동으로 스팸메일함으로 분류하도록 할 수 있다.
- 데이터 마이닝이란 머신러닝 기술을 사용해서 대용량 데이터를 분석하여 데이터에 내장된 새로운 패턴을 발견하는 것이다
2. 머신러닝이 시스템의 유형 4가지
- 머신러닝 시스템은 다양한 범주를 가지지만, 주로 다음 4가지 항목으로 분류한다.
- 지도, 준지도, 강화학습: 사람의 감독하에 훈련하는 것을 기준으로 분류
- 온라인 학습, 배치 학습: 실시간으로 모델 학습이 가능한지 여부
- 사례 기반 학습, 모델 기반 학습: 알고 있는 데이터포인트와 새 데이터포인트를 비교하는 것인지, 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지를 기준으로 분류
3. 지도 학습과 비지도 학습
지도학습의 두 가지 유형
- 지도학습은 훈련 데이터와 정답지(레이블)를 통해 알고리즘이 원하는 결과를 도출할 수 있도록 하는 것이다.
- 데이터의 여러 특성(Feature) 데이터를 기반으로 분류(Classification) 또는 회귀(Regression)을 수행한다.
- 주요한 지도학습 알고리즘들은 다음과 같다.
- k-최근접 이웃
- 선형 회귀
- 로지스틱 회귀
- 서포트 벡터 머신
- 결정트리와 랜덤 포레스트
- 신경망
비지도학습의 두 가지 유형
- 비지도 학습은 지도학습과 정 반대로 개발자가 정답지(레이블)를 제공하지 않고, 알고리즘 스스로 목적한 작업을 수행하는 방식을 의미한다.
- 주요한 비지도학습 알고리즘은 다음과 같다.
- 군집: 세분화해 분류
- k-means
- DBSCAN
- 계층적 군집 분석
- 군집: 세분화해 분류
- 이상치 탐지와 특이치 탐지: 매우 깔끔한 데이터셋 필요
- 원-클래스 SVM
- isolation forest
- 시각화와 차원 축소: 특성 추출(Feature Extraction)
- 주성분 분석(PCA)
- Kernel PCA
- LLE: locally-linear embedding (지역적 선형 임배딩)
- t-SNE: t-distributed stochastic neighbor embedding
- 연관 규칙 학습 : 대량 데이터에서 흥미로운 관계를 탐색
- Apriori
- Eclat
준지도학습
- 일부만 레이블이 있고, 일부는 레이블이 없는 데이터로 학습.
- 지도학습+비지도학습 알고리즘의 조합으로 구성
- 강화학습 - 강화학습 알고리즘의 구성요소
- 에이전트: 학습자
- 보상/벌점
- 정책 : 주어진 상황에서 (보상/벌점에 따라) 에이전트가 어떻게 행동해야 할 것인가?
4. 배치 학습과 온라인 학습
- 알고리즘이 입력 데이터의 stream으로부터 점진적으로 학습할 수 있는지 여부
- 배치학습batch learning과 점진적 학습incremental learning으로 구분
- 배치학습은 새로운 데이터를 알고리즘에 반영하기 위해 알고리즘에 전체 데이터를 처음부터 다시 학습시켜야 함. 일반적으로 오프라인 학습이 이루어 진다.
- 점진적 학습은 데이터를 순차적으로 한개씩 또는 미니배치(mini-batch) 단위로 주입하여 알고리즘을 훈련시킬 수 있음. 일반적으로 온라인 학습이 이루어진다.
- 컴퓨터 한 대 메모리에 들어갈 수 없는 아주 큰 데이터셋을 학습하는 경우에도 온라인 학습 알고리즘을 사용할 수 있다.(외부 메모리(out-of-core) 학습이라고 한다.)
5. 사례 기반 학습과 모델 기반 학습
- 사례 기반 학습은 훈련 Sample를 기억하기 위해 Sample간의 유사도를 측정하고, 새로운 데이터와 학습한 샘플 중 일부와 유사도를 측정하는 방식으로 일반화한다.
- 모델 기반 학습은 샘플들로부터 모델을 만들어 예측에 활용하는 것이다.
6. 모델 파라미터와 하이퍼파라미터의 차이는?
- 모델 파라미터: 모델은 하나 이상의 파라미터를 사용해 샘플이 주어졌을 때 예측하는 데 사용한다.
- 하이퍼파라미터: 알고리즘에 적용할 학습률, 규제 정도 등에 대한 설정값이다.
7. 모델 기반 알고리즘의 특성
- 새로운 샘플을 잘 일반화하기 위한 파라미터의 최적값을 찾는다.
- 일반적으로 모델을 효용함수를 극대화하거나 또는 비용함수를 최소화하도록 정의한다.
8. 머신러닝의 주요 도전과제
- 머신러닝은 실제 데이터를 통한 기능구현 과정에서 다음과 같은 문제에 직면하고 있다.
- 부족한 데이터
- 낮은 데이터 품질
- 대표성 없는 데이터
- 무의미한 특성
- 훈련 데이터에 과소/과대 적합된 모델
'Study > Hands On Machine Learning' 카테고리의 다른 글
핸즈온머신러닝- 머신러닝 라이프사이클 (1) (0) | 2024.01.20 |
---|