일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 백준
- CSS
- Photoshop
- stl
- react
- spring
- 포토샵
- 수학
- grid
- transform
- 소수
- Codility
- SK바이오사이언스
- 통신사할인
- REM
- skt membership
- 미디어 쿼리
- float
- c++
- 알고리즘
- 반응형 웹
- 확률
- 강화학습
- JSX
- c
- pandas
- box-sizing
- 상태
- Javascript
- Gap
- Today
- Total
sliver__
[ML] 머신러닝이란? 본문
머신러닝?
- 데이터에서부터 학습하도록 컴퓨터를 프로그래밍 하는 과학
[용어]
훈련 세트 (training set)
- 시스템이 학습하는 데 사용하는 샘플
샘플 (sample)
- 하나의 훈련 데이터
데이터 마이닝 (data mining)
- 머신러닝 기술을 적용하여 대용량의 데이터를 분석하면 보이지 않는 패턴을 발견할 수 있다.
[머신러닝 시스템의 종류]
지도 학습 / 비지도 학습 / 준지도 학습 / 강화 학습
온라인 학습 / 배치 학습
사례 기반 학습 / 모델 기반 학습
[지도 학습]
- 알고리즘에 주입하는 훈련 데이터에 레이블이 포함
- 분류가 전형적인 지도 학습 작업
- feature를 사용해 target 수치를 예측하는 것 : 회귀 (regression)
- 주어진 입력 특성으로 값을 예측한다.
- 로지스틱 회귀는 클래스에 속할 확률을 나타낸다.
- 지도 학습 알고리즘
- k-nearest neighbors
- linear regression
- logistic regression
- support vector machine
- decision tree / random forest
- neural networks
[비지도 학습]
- 훈련 데이터에 레이블이 없다.
- 시스템이 아무런 도움없이 학습해야 한다.
- 비지도 학습 알고리즘
- clustering
- k - means
- DBSCAN
- hierachical cluster analysis(HCA)
- outlier detection / novelty detection
- one - class SVM
- isolation forest
- visualization / dimensionality reduction
- principal component analysis (PCA)
- kernel PCA
- locally-linear embedding (LLE)
- t - SNE (t-distributed stocahstic neighbor embedding)
- association rule learning
- Apriori
- Eclat
feature extraction
- 비슷한 두 특성을 하나로 합치는 과정
[준지도 학습]
- 일부만 레이블이 있는 데이터를 다루는 학습
[강화학습]
- 에이전트 : 학습하는 시스템
- 환경을 관찰해서 행동을 실행하고 그 결과로 보상을 받는다.
- 시간이 지나면서 가장 큰 보상을 얻기 위해 정책이라고 부르는 최상의 전략을 학습
- 정책은 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의
[배치학습]
- 시스템이 점진적으로 학습할 수 없다.
- 가용한 데이터를 모두 사용해 훈련해야 한다.
- 오프라인에서 시스템을 훈련시키고 시스템에 적용하면 더 이상의 학습 없이 실행된다.
- 이를 오프라인 학습이라고 한다.
- 많은 데이터 양을 자주 학습시켜줘야 한다면 점진적으로 학습할 수 있는 알고리즘을 사용하는게 낫다.
[온라인 학습]
- 데이터를 순차적으로 한 개씩 또는 미니배치라는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다.
- 매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있다.
- 연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야하는 시스템에 적합하다.
- 학습률 : 변화하는 데이터에 얼마나 빠르게 적응할것인지 정하는 수치
- 문제점은 시스템에 나쁜 데이터가 주입되었을 때 시스템의 성능이 점진적으로 감소한다.
[사례 기반 학습]
- 유사도 측정을 통한 분류
- 시스템이 훈련 샘플을 기억함으로써 학습한다.
- 새로운 샘플은 주변의 데이터를 보고 삼각형으로 분류될 것이다.
[모델 기반 학습]
- 샘플들의 모델을 만들어 예측에 사용한다.
- 모델을 사용하기 전에 효용 함수(utility function)을 정의하거나 얼마나 나쁜지 비용함수(cost function)을 정의한다.
[과정 요약]
- 데이터 분석
- 모델 선택
- 훈련 데이터로 모델을 훈련
- 새로운 데이터에 모델을 적용해 예측을 하고 모델이 일반화되길 기대
[주요 도전 과제]
[데이터]
- 충분하지 않은 양의 훈련 데이터
- 대표성이 없는 훈련 데이터
- 샘플이 작으면 샘플링 잡음(sampling noise)가 생기고 대표성을 띠지 못할 수도 있다.
- 샘플링 편향(sampling bias)라고 한다.
- 낮은 품질의 데이터
- 훈련 데이터가 에러, 이상치, 잡음으로 가득하다면 머신러닝 시스템이 내재된 패턴을 찾기 어려울 것이다.
- 이상치 데이터 수정
- 특성을 무시할지? 샘플을 무시할지? 빠진 값을 채울지? 특성을 넣은 모델과 제외한 모델을 따로 훈련시킬지?
- 관련 없는 특성
- 특성 선택 : 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택
- 특성 추출 : 특성을 결합하여 더 유용한 특성을 만든다. 차원 축소 알고리즘 사용
- 새로운 데이터를 수집해 새 특성을 만든다.
[알고리즘]
- 과대적합(overfitting) : 훈련 데이터에는 잘 맞지만 일반성이 떨어진다는 뜻
- 과대적합은 훈련 데이터에 있는 잡음의 양에 비해 모델이 너무 복잡할 때 발생한다.
- 파라미터 수가 적은 모델을 선택하거나, 훈련 데이터에 있는 특성 수를 줄이거나, 모델에 제약을 가하여 단순화 시킨다.
- 훈련 데이터를 더 많이 모은다.
- 훈련 데이터의 잡음을 줄인다.
- 과소적합(underfitting) : 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 발생
- 모델 파라미터가 더 많은 모델을 선택
- 학습 알고리즘에 더 좋은 특성을 제공
- 모델의 제약을 줄입니다.
[테스트와 검증]
- 훈련 세트와 테스트 세트를 나누어서 검증한다.
- 훈련 세트를 사용하여 모델을 훈련하고 테스트 세트를 사용해 모델을 테스트한다.
- 새로운 샘플에 대한 오류 비율을 일반화 오차라고 하며, 테스트 세트에서 오차의 추정값을 얻는다.
- 훈련 오차가 낮지만 일반화 오차가 높다면 오버피팅 되었다는 뜻이다.
- 홀드아웃 검증(holdout validation)
- 훈련 세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나를 선택한다.
- 새로운 홀드아웃 세트를 검증 세트라고 부른다.
- 홀드아웃 검증 순서
- 훈련 세트( 전체 훈련 세트 - 검증 세트)에서 다양한 하이퍼 파라미터 값을 가진 여러 모델을 훈련한다.
- 그 다음 검증 세트에서 가장 높은 성능을 내는 모델을 선택한다.
- 최선으로 선택된 모델을 전체 훈련 세트에서 다시 훈련하여 최종 모델을 만든다.
- 마지막으로 최종 모델을 테스트 세트에서 평가하여 일반화 오차를 추정한다
- 작은 검증 세트를 여러 개 사용해 반복적인 교차 검증을 수행한다.
출처 : 핸즈온 머신러닝
'CS > ML' 카테고리의 다른 글
[ML] SVM (0) | 2022.05.08 |
---|---|
[ML] 모델 훈련 (0) | 2022.05.08 |
[ML] 분류 (0) | 2022.05.05 |
시그모이드(Sigmoid) (0) | 2022.04.02 |
퍼셉트론(Perceptron) (0) | 2022.04.02 |