K 개발자

머신러닝이란 본문

인공지능/핸즈온 머신러닝

머신러닝이란

ddingz 2020. 9. 3. 14:11

머신러닝

데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학


머신러닝이 뛰어난 분야

  • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제 : 하나의 머신러닝 모델이 코드를 간단하게 만들고 전통적인 방법보다 더 잘 수행되도록 할 수 있다.
  • 전통적인 방식으로는 해결 방법이 없는 복잡한 문제 : 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾을 수 있다.
  • 유동적인 환경 : 머신러닝 시스템은 새로운 데이터에 적응할 수 있다.
  • 복잡한 문제와 대량의 데이터에서 통찰 얻기(데이터 마이닝data mining)

머신러닝 시스템의 종류

  • 지도, 비지도, 준지도, 강화 학습 (사람의 감독하에 훈련하는 것인지 아닌지)
  • 온라인 학습과 배치 학습 (실시간으로 점진적인 학습을 하는지 아닌지)
  • 사례 기반 학습과 모델 기반 학습 (단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 아니면 과학자들이 하는 것처럼 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지)

지도 학습supervised learning

훈련 데이터에 레이블 O
알고리즘

  • k-최근접 이웃k-nearest neighbors
  • 선형 회귀linear regression
  • 로지스틱 회귀logistic regression
  • 서포트 백터 머신support vector machine(SVM)
  • 결정 트리decision tree와 랜덤 포레스트random forest
  • 신경망neural network

비지도 학습unsupervised learning

훈련 데이터에 레이블 X
알고리즘

  • 군집clustering
    • k-평균k-means
    • DBSCAN
    • 계층 군집 분석hierarchical 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-SNEt-distributed stochastic neighbor embedding
  • 연관 규칙 학습association rule learning
    • 어프라이어리Apriori
    • 이클렛Eclat

준지도 학습semisupervised learning

훈련 데이터에 일부만 레이블
알고리즘

  • 심층 신뢰 신경망deep belief network(DBN)

강화학습reinforcement learning

관찰 -> 정책에 따라 행동을 선택 -> 행동 실행! -> 보상이나 벌점을 받음 -> 정책 수정 (학습 단계) -> 최적의 정책을 찾을 때까지 반복

배치 학습batch learning

가용한 데이터를 모두 사용하여 훈련
보통 오프라인에서 수행 : 오프라인 학습offline learning

온라인 학습online learning

데이터를 순차적으로 한 개씩 또는 미니배치mini-batch라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련
메인 메모리에 들어갈 수 없는 아주 큰 데이터셋을 학습 : 외부 메모리out-of-core 학습 (온라인 X, 점진적 학습incremental learning)

사례 기반 학습instance-based learning

시스템이 훈련 샘플을 기억함으로써 학습
유사도 측정을 사용해 새로운 데이터와 학습한 샘플을 또는 학습한 샘플 중 일부를 비교하는 식으로 일반화

모델 기반 학습model-based learning

데이터를 분석
모델을 선택
훈련 데이터로 모델을 훈련 (학습 알고리즘이 비용 함수를 최소화 하는 모델 파라미터를 찾는다.)
새로운 데이터에 모델을 적용해 예측


머신러닝의 주요 도전 과제

나쁜 데이터

충분하지 않은 양의 훈련 데이터
대표성 없는 훈련 데이터
낮은 품질의 데이터
관련 없는 특성

나쁜 알고리즘

훈련 데이터 과대적합overfitting

해결 방법

  • 파라미터 수가 적은 모델을 선택하거나, 훈련 데이터에 있는 특성 수를 줄이거나, 모델에 제약을 가하여 단순화시킨다.
  • 훈련 데이터를 더 많이 모은다.
  • 훈련 데이터의 잡음을 줄인다. (e.g. 오류 데이터 수정과 이상치 제거)

훈련 데이터 과소적합underfitting

해결 방법

  • 모델 파라미터가 더 많은 강력한 모델을 선택
  • 학습 알고리즘에 더 좋은 특성을 제공 (특성 공학)
  • 모델의 제약을 줄인다. (e.g. 규제 하이퍼파라미터를 감소)

테스트와 검증

훈련 세트training set

모델을 훈련

훈련-개발 세트train-dev set

모델이 훈련-개발 세트에서 잘 작동하지 않는다면 훈련 세트에 과대적합
모델이 검증 세트에서 나쁜 성능을 낸다면 데이터 불일치

검증 세트validation set

훈련 세트에서 다양한 하이퍼파라미터 값을 가진 여러 모델을 훈련 -> 검증 세트에서 가장 높은 성능을 내는 모델을 선택 : 홀드아웃 검증holdout validation
홀드아웃 검증 과정이 끝나면 이 최선의 모델을 검증 세트를 포함한 전체 훈련 세트에서 다시 훈련하여 최종 모델을 만든다.

테스트 세트test set

모델을 테스트


실습코드링크 : 키프로스 삶의 만족도 예측

'인공지능 > 핸즈온 머신러닝' 카테고리의 다른 글

결정 트리  (0) 2020.10.10
서포트 벡터 머신  (0) 2020.10.06
모델 작동 원리  (0) 2020.09.30
분류 시스템  (0) 2020.09.12
머신러닝 프로젝트 주요 단계  (0) 2020.09.03
Comments