[Hands-On Machine Learning] 1장 한눈에 보는 머신러닝 🕒

아현·2025년 3월 21일
1

AI

목록 보기
29/29

출처

1.1 머신러닝이란?


  • 머신러닝은 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 과학(또는 예술)입니다.

  • 일반적인 정의

    • 머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다. - Arthur Samuel, 1959
  • 공학적인 정의

    • 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 E로 학습한 것이다. - Tom Mitchell, 1997

    즉, 경험으로 학습한다는 것을 의미하기도 한다.

    1. 훈련세트 (Training Set)

      • 훈련세트는 머신러닝 모델을 학습시키기 위해 사용하는 데이터의 집합입니다.

      • 이 데이터는 입력(feature)정답(label)으로 구성되어 있으며, 모델이 패턴을 학습하고 일반화할 수 있도록 돕습니다.

      • 훈련세트는 전체 데이터의 일부로, 나머지 데이터는 일반적으로 검증(validation) 및 테스트(test) 목적으로 사용됩니다.

    2. 훈련사례 (Training Example)

      • 훈련사례는 훈련세트에 포함된 개별 데이터 포인트를 의미합니다.

      • 각 훈련사례는 입력(feature)과 그에 상응하는 정답(label)로 구성됩니다.

      • 예를 들어, 이미지 분류 문제에서 하나의 훈련사례는 특정 이미지와 그 이미지에 대한 올바른 레이블(예: '고양이' 또는 '개')로 이루어질 수 있습니다.

    3. 모델 (Model)

      • 모델은 데이터를 기반으로 예측이나 결정을 내리기 위해 설계된 수학적 구조입니다.

      • 머신러닝 모델은 훈련 데이터를 통해 학습하며, 새로운 데이터에 대해 예측을 수행할 수 있도록 조정됩니다.

      • 모델의 종류에는 선형 회귀, 의사결정 나무, 신경망 등 다양한 유형이 있습니다.

    4. 훈련데이터 (Training Data)

      • 훈련데이터는 훈련세트와 같은 의미로 사용되며, 모델을 학습시키기 위해 사용되는 데이터입니다.

      • 이 데이터는 모델이 입력과 출력 간의 관계를 학습할 수 있도록 충분한 정보를 제공해야 합니다.

  • Tom Mitchell의 머신러닝 정의와 스팸메일 예시

    • 이 사례는 스팸메일 분류라는 구체적인 예를 통해 머신러닝의 원리를 설명한 것입니다. Tom Mitchell의 정의는 이미지 분류, 음성 인식 등 다양한 사례에도 적용될 수 있습니다.

    • 작업 (T): 주어진 이메일이 스팸인지 아닌지를 분류하는 작업.

    • 성능 측정 (P): 알고리즘이 이메일을 정확히 분류한 비율(성능).

      • 성능 지표에는 정확도, 정밀도(Precision), 재현율(Recall) 등이 포함될 수 있다.

      • 예를 들어: 알고리즘이 100개의 이메일 중 95개를 정확히 분류하면, 정확도는 95%.

    • 경험 (E): 스팸 분류에서 사용하는 라벨링된 이메일 데이터.

      • 라벨링된 데이터는 이메일과 각 이메일이 "스팸"인지 "비스팸"인지를 나타내는 정보가 포함된 데이터이다.

      • 예:

        • "지금 바로 크레딧 점수를 확인하세요!" → 스팸

        • "회의가 3시에 열립니다." → 비스팸

  • Tom Mitchell 정의 적용

    • 어떤 컴퓨터 프로그램이 이메일을 스팸/비스팸으로 분류하는 "작업 T"를 수행하고,

    • 학습 데이터(라벨링된 이메일 데이터)를 통해 "경험 E"를 얻으며,

    • 테스트 데이터에서의 분류 정확도(성능 P)가 향상된다면,

    • 이 컴퓨터 프로그램은 "작업 T와 성능 P"에 대해 "경험 E"로 학습했다고 할 수 있다.



1.2 왜 머신러닝을 사용하나요?


  1. 전통적인 접근 방식

    • 발견한 패턴을 감지하는 알고리즘을 작성하여 프로그램이 이런 패턴을 발견했을 때 그 메일을 스팸으로 분류

      • 전통적인 프로그래밍 방식의 스팸 필터는 'For U' 메일을 구분하기 위해 수정이 필요
  2. 머신러닝 접근 방법

    • 스팸에 자주 나타나는 패턴을 감지하여 어떤 단어와 구절이 스팸 메일을 판단하는 데 좋은 기준인지 자동으로 학습

      • 머신러닝 기반의 스팸 필터는 사용자가 스팸으로 지정한 메일에 유독 'For U'가 자주 나타나는 것을 자동으로 인식하고 별도의 작업을 하지 않아도 이 단어를 스팸으로 분류
    • 머신러닝이 유용한 또 다른 분야는 전통적인 방식으로는 너무 복잡하거나 알려진 알고리즘이 없는 문제


데이터 마이닝(Data Mining)


  • 데이터 마이닝(Data Mining)대량의 데이터 속에서 유용한 정보를 추출하고 패턴을 발견하는 과정입니다.

    • 이는 다양한 분야에서 의사결정을 지원하고, 비즈니스 인사이트를 제공하며, 데이터 기반의 전략을 수립하는 데 중요한 역할을 합니다.

    • 데이터 마이닝은 여러 가지 기술과 방법론을 사용하여 데이터를 분석하고 해석합니다.

  • 주요 특징과 과정

    1. 데이터 준비

      • 데이터 마이닝의 첫 단계는 데이터를 수집하고 준비하는 것입니다.

      • 이는 데이터 정제, 통합, 변환 등의 과정을 포함하며, 분석에 적합한 형태로 데이터를 준비합니다.

    2. 패턴 발견

      • 데이터 마이닝의 핵심은 데이터에서 유의미한 패턴이나 규칙을 발견하는 것입니다.

      • 이는 연관 규칙 학습, 군집화, 분류, 회귀 분석 등의 기법을 통해 이루어집니다.

    3. 모델링

      • 데이터를 기반으로 예측 모델을 구축합니다.

      • 이는 머신러닝 알고리즘을 사용하여 데이터를 학습하고, 새로운 데이터에 대한 예측을 수행할 수 있는 모델을 만드는 과정입니다.

    4. 평가

      • 발견된 패턴이나 모델의 유효성을 평가합니다.

      • 이는 모델의 정확도, 신뢰성, 일반화 능력을 검증하는 과정으로, 교차 검증이나 테스트 세트를 사용하여 수행됩니다.

    5. 지식 표현

      • 최종적으로 발견된 패턴이나 모델을 이해하기 쉽게 표현하고, 이를 통해 의사결정에 활용할 수 있도록 합니다.

      • 이는 시각화 도구나 보고서를 통해 이루어질 수 있습니다.

  • 데이터 마이닝은 다양한 분야에서 활용됩니다.

    • 예를 들어, 마케팅에서는 고객 세분화와 타겟 마케팅에, 금융에서는 사기 탐지와 리스크 관리에, 의료 분야에서는 질병 예측과 환자 관리에 사용됩니다.

  • 요약하면 머신러닝은 다음 분야에 뛰어납니다.

    • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제

      • 하나의 머신러닝 모델이 코드를 간단하고 더 잘 수행되도록 할 수 있습니다.
    • 전통적인 방식으로는 전혀 해결 방법이 없는 복잡한 문제

      • 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾을 수 있습니다.
    • 유동적인 환경

      • 머신러닝 시스템은 새로운 데이터에 적응할 수 있습니다.
    • 복잡한 문제와 대량의 데이터에서 통찰 얻기



1.3 애플리케이션 사례


  1. CNN (Convolutional Neural Network)

    • 제품 이미지 자동 분류: 생산 라인에서 제품 이미지를 분석하여 자동으로 분류.

    • 뇌 스캔 이미지 분석: 뇌를 스캔하여 중요 부위를 판단하는 작업.

  2. NLP (Natural Language Processing)

    • 뉴스 기사 자동 분류: 자연어 처리 기법을 이용하여 뉴스 기사를 자동으로 분류.

    • 부정적 댓글 자동 감지: 토론 포럼에서 부정적인 코멘트를 자동으로 감지하는 작업.

    • 문서 요약: 긴 문서를 자동으로 요약하는 작업.

    • 챗봇 또는 개인 비서: 자연어 이해를 통해 챗봇이나 개인 비서를 개발하는 작업.

  3. Regression (회귀 분석)

    • 수익 예측: 과거 데이터를 바탕으로 회사의 내년도 수익을 예측.
  4. Clustering (군집 분석)

    • 고객 분류 및 타겟 마케팅: 고객을 다양한 그룹으로 나누고, 그에 맞춘 마케팅 전략을 세우는 작업.
  5. 기타

    • 음성 명령 인식 앱 개발: 음성 명령을 인식하여 반응하는 애플리케이션 개발.

    • 신용카드 부정 거래 감지: 부정 거래를 감지하는 이상치 탐지 작업.

    • 추천 시스템: 고객 구매 이력을 바탕으로 관심 상품을 추천하는 시스템 개발.



1.4 머신러닝 시스템의 종류

출처


  • 다음을 기준으로 넓은 범주에서 분류하면 도움이 됩니다.

    • 사람의 감독 하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화 학습)

    • 실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습과 배치 학습)

    • 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 아니면 훈련 데이터셋에서 과학자들처럼 패턴을 발견하여 예측 모델을 만드는지(사례 기반 학습과 모델 기반 학습)

  • 이 범주들은 서로 배타적이지 않으며 원하는 대로 연결할 수 있습니다.

    • 예를 들어 최첨단 스팸 필터가 심층 신경망 모델을 사용해 스팸과 스팸이 아닌 메일로부터 실시간으로 학습할 지도 모릅니다.

      • 그렇다면 이 시스템은 온라인이고 모델 기반이며 지도 학습 시스템입니다.



1.4.1 훈련 지도 방식


지도 학습 (Supervised Learning)

  • 지도 학습(supervised learning)에는 알고리즘에 주입하는 훈련 데이터에 레이블(label)이라는 원하는 답이 포함됩니다.
  • 분류(classification)가 전형적인 지도 학습 작업이며, 스팸 필터가 좋은 예입니다.

    • 스팸 필터는 많은 메일 샘플과 소속 정보(스팸인지 아닌지)로 훈련되어야 하며 어떻게 새 메일을 분류할지 학습해야 합니다.

  • 또 다른 전형적인 작업은 예측 변수(predictor variable)라 부르는 특성(feature) (주행거리, 연식, 브랜드 등)을 사용해 중고차 가격 같은 타깃 수치를 예측하는 것입니다.

    • 이런 종류의 작업을 회귀(regression)라고 부릅니다.

      • 시스템을 훈련시키려면 예측 변수와 레이블(중고차 가격)이 포함된 중고차 데이터가 많이 필요합니다.
  • 속성(attribute)
    • 데이터 타입(예를 들면 주행거리)을 말합니다.
  • 특성
    • 문맥에 따라 여러 의미를 갖지만 일반적으로 속성과 값이 합쳐진 것을 의미합니다(예를 들면 주행거리=15,000).
  • 하지만 많은 사람이 속성과 특성을 구분하지 않고 사용합니다.
  • 일부 회귀 알고리즘은 분류에 사용할 수도 있고 또 반대의 경우도 있습니다.

    • 예를 들어 분류에 널리 쓰이는 로지스틱 회귀는 클래스에 속할 확률을 출력합니다(예를 들면 스팸일 가능성 20 %).
  • 주요 지도 학습 알고리즘

    • k-최근접 이웃(k-Nearest Neighbors)

    • 선형 회귀(Linear Regression)

    • 로지스틱 회귀(Logistic Regression)

    • 서포트 벡터 머신(Support Vector Machines , SVM)

    • 결정 트리(Decision Tree)랜덤 포레스트(Random Forests)

    • 신경망(Neural networks)



비지도 학습 (Unsupervised Learning)


  • 비지도 학습(unsupervised learning)에는 말 그대로 훈련 데이터에 레이블이 없습니다. 시스템이 아무런 도움 없이 학습해야 합니다.
  • 주요 지도 학습 알고리즘

    • 군집(clustering) : 데이터를 비슷한 특성을 가진 그룹으로 묶는 비지도 학습 기법.

      • k-평균(k-Means): 데이터를 k개의 군집으로 분류하며, 중심점(centroid)과의 거리 차이를 최소화하는 알고리즘.

      • 계층 군집 분석(Hierarchical Cluster Analysis, HCA): 데이터를 계층적 트리 구조(Dendrogram) 형태로 군집화하여 분석.

      • 기댓값 최대화(Expectation Maximization): 군집에 속할 확률을 계산해 데이터를 할당하는 알고리즘. 혼합 모델 기반(예: 가우시안 혼합).

    • 시각화(visualization)와 차원 축소(dimensionality reduction) : 고차원 데이터를 저차원으로 축소해 이해와 시각화를 돕는 기술.

      • 주성분 분석(Principal Component Analysis, PCA) : 데이터의 주요 변동성을 보존하는 선형 변환으로 차원 축소.

      • 커널(kernel) PCA : 비선형 데이터에 PCA를 확장 적용해 차원을 줄이는 방법.

      • 지역적 선형 임베딩(Locally-Linear Embedding, LLE) : 데이터의 지역적 선형 관계를 보존하며 저차원으로 변환.

      • t-SNE(t-distributed Stochastic Neighbor Embedding) : 데이터의 고차원 밀집 구조를 저차원 공간에서 효과적으로 시각화. 군집 구조 파악에 유리.

    • 연관 규칙 학습(Association rule learning) : 데이터 항목 간의 연관성과 규칙을 발견하는 기법.

      • 어프라이어리(Apriori) : 빈도가 높은 항목 집합을 기반으로 연관 규칙을 도출.

      • 이클렛(Eclat): 빈도 계산을 집합 간 교집합 방식으로 수행하여 효율성을 높인 알고리즘.


  • 군집 알고리즘의 활용 예: 블로그 방문자 분석

    • 문제-상황

      • 블로그 방문자 데이터를 기반으로, 비슷한 성향을 가진 방문자들을 그룹으로 분류하고자 함.

      • 방문자들이 어떤 그룹에 속하는지 기본적인 정보를 제공할 수 없기 때문에 비지도-학습을 적용.

    • 군집-알고리즘의-역할

      • 알고리즘이 방문자들의 데이터에서 스스로 유사성을 찾아 그룹화 수행.

      • 예시

        • 40%: 만화책을 좋아하며 저녁에 블로그를 방문하는 남성 그룹.

        • 20%: 공상 과학을 좋아하며 주말에 주로 방문하는 젊은 그룹.

    • 계층-군집(Hierarchical-Clustering)의-적용

      • 계층-군집-알고리즘을 사용하여 그룹을 더 작은 하위-그룹으로 세분화 가능.

        • 큰 그룹 내에서 방문자들의 성향을 구체적으로 분석.
      • 그룹별 방문자 성향을 바탕으로 맞춤형 컨텐츠 제공 가능.

    • 활용-예시

      • 만화책 남성 그룹: 저녁 시간에 만화 관련 글 게시.

      • 공상 과학 젊은 그룹: 주말에 공상 과학 관련 트렌드 소개.

    • 결과

      • 그룹별 관심사 맞춤형 컨텐츠 제공을 통해 방문자 만족도 상승.
      • 블로그 트래픽 증가 및 사용자 유지율 향상 가능.

  • 시각화(Visualization) 알고리즘

    • 비지도 학습의 좋은 예로, 레이블이 없는 고차원 데이터를 2D나 3D로 도식화 가능.

    • 장점

      • 입력 공간의 구조를 최대한 보존

        • 예: 클러스터(cluster)가 입력 공간에서 멀리 떨어져 있을 경우, 시각화된 그래프에서도 겹치지 않음.
      • 데이터가 어떻게 조직되어 있는지 이해할 수 있음.

      • 예상하지 못한 패턴 발견 가능.

  • 차원 축소(Dimensionality Reduction)

    • 데이터의 특성을 간소화하면서 중요한 정보는 그대로 유지.

    • 활용 방법

      • 특성 간 통합

        • 예: 자동차의 주행거리와 연식 등 상관관계가 높은 두 특성을 하나로 합침.

        • 결과: 두 특성을 "차량 마모 정도"라는 하나의 특성으로 표현.

      • 이를 "특성 추출(Feature Extraction)"이라 부름.

  • 차원 축소의 실용적 이점

    • 머신러닝 알고리즘에 활용 가능

      • 차원 축소를 통해 훈련 데이터의 차원을 줄이면 다음과 같은 효과를 얻음.

        1. 실행 속도 향상: 연산 및 학습 시간 단축.

        2. 공간 효율성: 디스크와 메모리 사용량 감소.

        3. 성능 향상: 과적합 방지 및 알고리즘 성능이 개선될 가능성.

  • TIP: 지도 학습 알고리즘을 사용하기 전 차원 축소 알고리즘을 적용해 데이터 전처리 시 유용.

  • 이상치 탐지(Anomaly Detection)

    • 정상 샘플과 다른 특성을 가진 데이터를 찾아냄.

    • 활용 사례

      • 신용카드 부정 거래 탐지: 이상한 거래를 감지하여 부정 행위를 방지.

      • 제조 결함 탐지: 생산 과정에서 발생하는 결함을 식별.

      • 데이터 정제: 학습 알고리즘에 주입하기 전, 데이터셋에서 이상치 값 제거.

    • 작동 방식

      • 시스템은 정상 샘플로 학습한 뒤, 새로운 샘플의 정상 여부를 판단.
  • 연관 규칙 학습(Association Rule Learning)

    • 데이터셋 내에서 특성 간의 흥미로운 관계를 찾아내는 기법.

    • 활용 사례

      • 대량의 데이터에서 특성 간 관계를 분석해 유용한 패턴 발견.

      • 예: 슈퍼마켓 판매 분석.

        • 분석 결과: 바비큐 소스와 감자를 구매한 사람은 스테이크를 구매하는 경향이 있음.
    • 의의: 사용자의 행동 패턴을 이해하여 맞춤형 마케팅 전략 개발 가능.



준지도 학습 (Semi-supervised Learning)


  • 준지도 학습레이블이 일부만 있는 데이터로 학습하는 알고리즘입니다.

  • 일반적으로 레이블이 없는 데이터가 많고, 레이블이 있는 데이터는 적습니다.

  • 지도 학습과 비지도 학습의 조합으로 이루어져 있습니다.

  • 예시

    • 구글 포토

      1. 가족사진을 업로드하면 서비스가 클러스터링(군집화)하여 사진 속 인물들을 분류합니다. (비지도 학습)

      2. 시스템에 사람들의 이름(레이블)을 제공하면 나머지 사진에서 모든 사람의 이름을 알아내고 사진을 분류합니다. (지도 학습 활용)

  • 알고리즘

    • 심층 신뢰 신경망 (Deep Belief Network, DBN)

      • 여러 층으로 쌓은 제한된 볼츠만 머신 (Restricted Boltzmann Machine, RBM)으로 구성.

      • RBM은 비지도 학습 방식으로 순차적으로 학습.

      • 이후 전체 모델은 지도 학습 방식으로 세밀하게 조정합니다.



강화 학습 (Reinforcement Learning)


  • 강화 학습에이전트(Agent)가 환경(Environment)을 관찰하고 행동(Action)을 실행하며 보상(Reward) 또는 벌점(Penalty)을 받습니다.

  • 최종 목표는 가장 큰 보상을 얻기 위한 최적의 정책(Policy)을 학습하는 것입니다.

  • 정책(Policy)은 주어진 상황에서 에이전트가 어떤 행동을 해야 할지 정의합니다.

  • 예시

    • 보행 로봇

      • 로봇이 스스로 보행을 학습하며, 시행착오를 통해 보상(성공적인 동작)을 최적화합니다.
    • 딥마인드(DeepMind)의 알파고(AlphaGo)

      1. 수백만 개의 게임을 분석하며 승리를 위한 전략을 학습.

      2. 자기 자신과 대결하며 경험을 축적.

      3. 실제 경기에서는 학습을 중단하고 학습된 전략만 적용.

        (예: 2017년 바둑 세계 챔피언 커제 선수와의 경기에서 승리한 사례.)



1.4.2 배치 학습과 온라인 학습


배치 학습




온라인 학습




1.4.3 사례 기반 학습과 모델 기반 학습


사례 기반 학습




모델 기반 학습




1.5 머신러닝의 주요 도전 과제




1.5.1 충분하지 않은 양의 훈련 데이터




1.5.2 대표성 없는 훈련 데이터




1.5.3 낮은 품질의 데이터




1.5.4 관련없는 특성




1.5.5 훈련 데이터 과대적합




1.5.6 훈련 데이터 과소적합




1.5.7 핵심 요약




1.6 테스트와 검증




1.6.1 하이퍼파라미터 튜닝과 모델 선택




1.6.2 데이터 불일치




연습문제




profile
For the sake of someone who studies computer science

0개의 댓글

관련 채용 정보