EverGiver
1장 본문
728x90
- 머신러닝이란?
: 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학(또는 예술)이다.
- 공학적 정의
: 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다.
- 용어
º 훈련 세트 (training set)
: 시스템이 학습하는 데 사용하는 샘플
º 훈련 사례 (training instance) / 샘플
: 각 훈련 데이터
º 예시 - 스팸 필터
ⅰ) 작업 T : 새로운 메일이 스팸인지 구분
ⅱ) 경험 E : 훈련 데이터
ⅲ) 성능 측정 P : 정확히 분류된 메일의 비율(직접 정의) → 정확도 - 왜 머신러닝을 사용하는가?
- 스펨 필터
- 너무 복잡하거나 알려진 알고리즘이 없는 문제
ex) 음성 인식
- 머신러닝 알고리즘이 학습한 것을 조사할 수 있다.
→ 데이터 마이닝 (data mining) : 머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견하는 경우
- 뛰어난 분야
ⅰ) 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
ⅱ) 전통적인 방식으로는 해결 방법이 없는 복잡한 문제
ⅲ) 유동적인 환경
ⅳ) 복잡한 문제와 대량의 데이터에서 통찰 얻기 - 애플리케이션 사례
- Classification (CNN) : 합성곱 신경망
- Natural language processing (NLP) : 자연어 처리
- Natural language understanding (NLU) : 자연어 이해
- Regression : 회귀 - 머신러닝 시스템의 종류
- 넓은 범주 분류
ⅰ) 사람의 감독하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화 학습)
ⅱ) 실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습과 배치 학습)
ⅲ) 단순하게 알고 있는 데이터 포인트와 새 데이터 포인터를 비교하는 것인지 아니면 과학자들이 하는 것처럼 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지(사례 기반 학습과 모델 기반 학습)
4.1 지도 학습과 비지도 학습
: '학습하는 동안의 감독 형태나 정보량'에 따라 분류
- 지도 학습 (supervised learning)
: 알고리즘에 주입하는 훈련 데이터에 레이블(label)이라는 원하는 답이 포함된다.
⑴ 분류(classification)가 전형적인 지도 학습 작업
ex) 스팸 필터 → 많은 메일 샘플과 소속 정보(스팸인지 아닌지)로 훈련되어야 하며 어떻게 새 메일을 분류할지 학습해야 한다
⑵ 회귀 (regression)
: 예측 변수(predictor variable)라 부르는 특성(feature)을 사용해 타깃(target) 수치를 예측
→ 시스템을 훈련하려면 예측 변수와 레이블이 포함된 데이터가 많이 필요하다.
⑶ 가장 중요한 지도 학습 알고리즘
º k-초근접 아웃 (k-nearest neighbors)
º 선형 회귀 (linear regression)
º 로지스틱 회귀 (logistic regression)
º 서포트 벡터 머신 (support vector machine) (SVM)
º 결정 트리 (decision tree)와 랜덤 포레스트(random forest)
º 신경망 (neural networks)
- 비지도 학습 (unsupervised learning)
: 훈련 데이터에 레이블이 없다.
→ 시스템이 아무런 도움 없이 학습해야 한다.
⑴ 가장 중요한 비지도 학습 알고리즘
º 군집 (clustering)
- k-평균 (k-means)
- DBSCAN
- 계층 군집 분석 (hierarchical cluster analysis) (HCA)
- 이상치 탐지 (outlier detection)와 특이치 탐지 (novelty detection)
- 원-클래스 (one-class SVM)
- 아이솔레이션 포레스트 (isolation forest)
º 시각화 (visualization)와 차원 축소 (dimensionality detection)
- 주성분 분석 (principal component analysis) (PCA)
- 커널 (kernel) PCA
- 지역적 선형 임베딩 (locally-linear embedding) (LLE)
- t-SNE (t-distributed stocastic neighbor embedding)
º 연관 규칙 학습 (association rule learning)
- 어프라이어리 (Apriori)
- 이클렛 (Eclat)
- 준지도 학습 (semisupervised learning)
: 일부만 레이블이 있는 데이터를 다루는 경우
⑴ 심층 신뢰 신경망 (deep belief network) (DBN)
: 여러 겹으로 쌓은 제한된 볼츠만 머신 (restricted Boltzmann machine) (RBM)이라 불리는 비지도 학습에 기초
- 강화 학습 (reinforcement learning)
: 학습하는 시스템을 에이전트라고 부르며 환경을 관찰해서 행동을 실행하고 그 결과로 보상 또는 부정적인 보상에 해당하는 벌점을 받는다.
→ 시간이 지나면서 가장 큰 보상을 얻기 위해 정책이라고 부르는 최상의 전력을 스스로 학습한다.
→ 정책 : 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의한다.
4.2 배치 학습과 온라인 학습
: 입력 데이터의 스트림(stream)으로부터 점진적으로 학습할 수 있는지 여부
- 배치 학습 (batch learning)
ⅰ) 시스템이 점진적으로 학습할 수 없다.
ⅱ) 일반적으로 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행된다.
ⅲ) 먼저 시스템을 훈련시키고 그런 다음 제품 시스템에 적용하면 더 이상의 학습 없이 실행된다.
→ 학습한 것을 단지 적용만 한다. (오프라인 학습) (offline learning)
ⅳ) 새로운 데이터에 대해 학습하려면 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련해야 한다. 그런 다음 이전 시스템을 중지시키고 새 시스템으로 교체한다.
ⅴ) 자원이 제한된 시스템이 스스로 학습해야 할 때 많은 양의 훈련 데이터를 나르고 학습을 위해 매일 몇 시간씩 많은 자원을 사용하면 심각한 문제를 일으킨다.
- 온라인 학습 (online learning)
: 데이터를 순차적으로 한 개씩 또는 미니배치(mini-batch)라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다.
ⅰ) 매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습 가능하다.
ⅱ) 연속적으로 데이터를 받고 빠른 변화에 스스로 적용해야 하는 시스템에 적합하다
ⅲ) 새로운 데이터 샘플을 학습하면 학습이 끝난 데이터는 더는 필요하지 않으므로 버리면 된다.
ⅳ) 학습률 (learning rate)
: 변화하는 데이터를 얼마나 빠르게 적용하는지 여부
→ 높으면 시스템이 데이터에 빠르게 적응하지만 예전 데이터를 금방 잊어버린다.
→ 낮으면 시스템의 관성이 더 커져서 더 느리데 학습되지만 새로운 데이터에 있는 잡음이나 대표성 없는 데이터 포인트에 덜 민감해진다.
4.3 사례 기반 학습과 모델 기반 학습
: 어떻게 일반화(generalize)되는가에 따라 분류
- 사례 기반 학습 (instance-based learning)
ⅰ) 시스템이 훈련 샘플을 기억함으로써 학습한다.
ⅱ) 그리고 유사도(similarity) 측정을 사용해 새로운 데이터와 학습한 샘플을 비교하는 식으로 일반화한다.
ex) 스팸 필터를 사용자가 스팸이라고 지정한 메일과 동일한 모든 메일을 스팸으로 분류한다.
- 모델 기반 학습 (model-based learning)
: 샘플들의 모델을 만들어 예측(predication)에 사용하는 것
ⅰ) 선형 모델 (linear model)
→ 1인당 GDP라는 특성 하나를 가진 삶의 만족도 = θº + θ¹ x 1인당_GDP
ⅱ) 측정 지표 : 모델이 최상의 성능을 내도록 하는 값을 알 수 있는 방법
º 효용 함수 (utility function) / 적합도 함수 (fitness function)
: 모델이 얼마나 좋은지 측정
º 비용 함수 (cost function)
: 얼마나 나쁜지 측정
º 선형 회귀에서는 보통 선형 모델의 예측과 훈련 데이터 사이의 거리를 재는 비용 함수를 사용한다. - 머신러닝의 주요 도전 과제
: 학습 알고리즘을 선택해서 어떤 데이터에 훈련시키는 것에 문제가 될 수 있는 두 가지는 '나쁜 알고리즘'과 '나쁜 데이터'이다.
5.1 충분하지 않은 양의 훈련 데이터
ⅰ) 대부분의 머신러닝 알고리즘이 잘 작동하려면 데이터가 많아야 한다
5.2 대표성이 없는 훈련 데이터
ⅰ) 일반화가 잘되려면 우리가 일반화하기 원하는 새로운 사례를 훈련 데이터가 잘 대표하는 것이 중요하다.
ⅱ) 샘플링 편향 (sampling bias)
: 샘플이 작으면 샘플링 잡음(sampling noise) (즉, 우연에 의한 대표성이 없는 데이터)이 생기고, 매우 큰 샘플도 표본 추출 방법이 잘못되면 대표성을 띠지 못할 수 있다.
5.3 낮은 품질의 데이터
ⅰ) 훈련 데이터가 에러, 이상치, 잡음으로 가득하다면 머신러닝 시스템이 내재된 패턴을 찾기 어려워 잘 작동하지 않는다.
ⅱ) 훈련 데이터 정제에 시간을 투자할 만한 가치는 충분하다
5.4 관련 없는 특성
ⅰ) 특성 공학 (feature engineering)
: 훈련에 사용할 좋은 특성을 찾는 것
5.5 훈련 데이터 과대적합
ⅰ) 모델이 훈련 데이터에 너무 잘 맞지만 일반성이 떨어진다.
5.6 훈련 데이터 과소적합
ⅰ) 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 일어난다.
728x90
Comments