1장. 컴퓨터는 데이터에서 배운다.

이 장에서 다룰 주제

  • 머신 러닝의 일반적 개념 이해하기
  • 세 종류의 학습과 기본 용어 알아보기
  • 성공적인 머신 러닝 시스템을 설계하는 필수 요소 알아보기
  • 데이터 분석과 머신 러닝을 위한 파이썬을 설치하고 설정하기

머신러닝( Machine Learning )

✨ 데이터를 이해하는 알고리즘의 과학이자 애플리케이션

  • 20세기 후반에 데이터에서 지식을 추출하여 예측하는 자가 학습( self-learning ) 알고리즘과 관련된 인공지는의 아위 분야로 머신리닝이 출현
  • 효율적으로 지식을 추출하여 예측 모델과 데이터 기반의 의사 결정 성능을 점진적으로 향상시킴

머신 러닝의 세 가지 종류

  • 지도 학습( Supervised Learning )
    • 레이블된 데이터
    • 직접 피드백
    • 출력 및 미래 예측
  • 비지도 학습( Unsupervised Learning )
    • 레이블 및 타깃 없음
    • 피드백 없음
    • 데이터에서 숨겨진 구조 찾기
  • 강화 학습( Reinforcement Learning )
    • 결정 과정
    • 보상 시스템
    • 연속된 행동에서 학습

지도학습

✨ 지도 학습의 주요 목적은 레이블( label )된 훈련 데이터에서 모델을 학습하여 본 적 없는 미래 데이터에 대해 예측을 만드는 것

  • 지도( uupervised ) : 희망하는 출력 신호( 레이블 )가 있는 일련의 샘플( 데이터 입력 )을 의미
  • 작업 흐름 : 레이블된 훈련 데이터가 머신 러닝 알고리즘에 전달되어 예측 모델을 훈련하고 그다음 새로운 레이블되지 않은 데이터 입력에 대해 예측을 수행
  • 분류와 회귀가 있다.

분류 : 클레스 레이블 예측

✨ 과거의 관측을 기반으로 새로운 샘플의 범주형 클래스 레이블을 예측하는 것이 목적

  • 샘플을 알려진 클래스로 분류
  • 클래스 레이블은 이산적이고 순서가 없어 샘플이 속한 그룹으로 이해할 수 있다.
  • 클래스를 구분할 수 있는 규칙을 학습해 규칙을 통해 결정 경계를 만들어 분류해 낸다.
  • 이진 분류

    EX) 이메일 스팸 필터

    • 스팸과 스팸이 아닌 이메일 두개의 클래스 사이를 구분
  • 다중 분류

    EX) 손글씨 인식

    • 글자는 예측하려는 대상이며 순서가 없는 범주나 클래스 레이블로 표현
    • 알파벳 각 글자를 손으로 쓴 이미지 샘플을 모아 훈련 데이터셋을 구성
    • 새로운 글자를 입력으로 제공하면 예측 모델이 일정한 정확도로 알파벳 글자를 예측

회귀 : 연속적인 출력 값 예측

예측 변수와 연속적인 반응 변수가 주어졌을 때 출력 값을 예측하기 위해 두 변수 사이의 관계를 찾는다.

  • 타깃 변수의 연속된 출력을 예측

    EX) 수학 SAT 점수를 예측

    • 시험 공부에 투자한 시간과 최종 점수 사이에 관계가 있다 생각하고 진행
    • 투자 시간과 최종 점수를 타겟으로 선형 회귀( Linear Regression )을 나타낸다
    • 데이터에서 학습한 직선의 기울기와 절편을 사용하여 새로운 데이터의 출력 값을 예측

강화 학습

✨ 환경과 상호 작용하여 시스템 성능을 향상하는 것이 목적

  • 강화 학습의 피드백은 정답 레이블이나 값이 아니다
    👉 보상 함수로 얼마나 행동이 좋은지를 측정한 값
  • 여러 하위 분류가 있지만, 일반적인 구조는 강화 학습 에이전트가 환경과 상호 작용하여 보상을 최대화하는 것
    - 각 상태는 양의 보상이나 음의 보상과 연관

    EX) 체스 게임

비지도 학습

  • 레이블되지 않거나 구조를 알 수 없는 데이터를 다룬다
  • 레이블 되지 않은 데이터에서 구조를 찾는 유용한 기법
  • 알려진 출력 값이나 보상 함수의 도움을 받지 않고 의미 있는 정보를 추출하기 위해 데이터 구조를 탐색할 수 있다.

군집( Clustering ) : 서브그룹 찾기

✨ 사전 정보 없이 쌓여 있는 그룹 정보를 의미 있는 서브그룹 또는 클러스터로 조직하는 탐색적 데이터 분석 기법

  • 분석 과정에서 만든 각 클러스터는 어느 정도 유사성을 공유하고 다른 클러스터와는 비슷하지 않은 샘플 그룹을 형성
  • 정보를 조직화하고 데이터에서 의미 있는 관계를 유도하는 휼륭한 도구

    EX) 마케터가 관심사를 기반으로 고객을 그룹으로 나누어 각각에 맞는 마케팅 프로그램을 개발

차원 축소 : 데이터 압축

잡읍( Noise ) 데이터를 제거하기 위해 특성 전처리 단계에서 종종 적용하는 방법

💡 잡음 데이터는 특정 알고리즘의 예측 성능을 감소시킬 수 있다.

  • 고차원 데이터를 다뤄야 하는 경우
  • 관련 있는 정보를 대부분 유지하면서 더 작은 차원을 가진 부분 공간으로 데이터를 압축

    EX) 3D 공간을 2D 공간으로 압축

머신 러닝 시스템 구축 로드맵

1. 전처리 : 데이터 형태 갖추기

✨ 주어진 원본 데이터의 형태와 모습이 학습 알고리즘이 최적의 성능을 내기에 적합한 경우는 매우 드물다

  • 최적의 성능을 내려면 선택된 특성이 같은 스케일을 가져야 한다.
  • 01 사이의 범위를 가지는 최소-최대 정규화( Min-Max Nomalization )
  • 평균이 0이고 단위 분산을 가지는 표준 정규 분포 (Standard Nomaldistribution ) 등...
  • 차원 축소 기법을 사용하여 특성을 저차원 부분으로 압축
    • 특성 공간의 차원을 축소하여 저장공간을 줄이고 연산을 빠르게 할 수 있다.
    • 모델의 예측 성능을 높이기도 한다.
  • 랜덤하게 훈련 데이터셋과 테스트 데이터셋으로 나눈다.
    • 훈련 데이터셋 : 머신 러닝 모델을 훈련하고 최적화
    • 테스트 데이터셋 : 최종 모델을 평가하는 맨 마지막에 사용

2. 예측 모델 훈련과 선택

  • 여러 모델을 비교하기 전에 성능을 측정할 지표를 결정
    • 분류에서 널리 사용되는 지표는 정확도( accuracy )
  • 다양한 교차 검증 기법을 사용
    • 훈련 데이터를 훈련 데이터셋과 검증 데이터셋으로 더 나눠 모델의 일반화 성능을 예측
  • 하이퍼 파라미터 최적화 기법을 통해 하이퍼파라미터 상세 조정
    • 하이퍼파라미터는 데이터에서 학습하는 파라미터가 아니라 모델 성능을 향상하기 위해 사용하는 아이얼로 생각할 수 있다.

3. 모델을 평가하고 본 적 없는 샘플로 예측

  • 훈련 데이터셋에서 최적의 모델을 선택한 후에는 테스트 데이터셋을 사용하여 이전에 본 적이 없는 데이터에서 얼마나 성능을 내는지 예측하여 일반화 오차를 예상

좋은 웹페이지 즐겨찾기