핸즈온 머신러닝 1장 한눈에 보는 머신러닝 - 1.2 왜 머신러닝을 사용하는가?

'데이터분석 관련 책 `핸즈온 머신러닝 2판`의 1장 1.2절 왜 머신러닝을 사용하는가? 요약 및 정리

정민호정민호

1. 한눈에 보는 머신러닝


1.2. 왜 머신러닝을 사용하는가?

  • 기존의 솔루션이 많은 수동 조정과 규칙이 필요한 문제를 해결하고자 할 때

  • 전통적인 방식으로는 해결 방법이 없는 복잡한 문제를 해결하고자 할 때

  • 대용량의 데이터에서 통찰을 얻고자 할 때

  1. 사례 - 스팸 필터

    1. 전통적인 접근 방법

      • 스팸에 어떤 단어들이 주로 나타나는지 연구하여 규칙을 작성함

      • 규칙을 이용해 스팸메일의 패턴을 감지하는 알고리즘을 작성하여 메일 분류

      • 프로그램을 테스트하고 스팸 단어가 변경될 경우 위 방법을 반복

    2. 문제점

      • 문제가 어렵기 때문에 규칙이 점점길고 복잡해지므로 유지보수하기 매우 힘들어짐

    3. 머신러닝 접근 방법

      • 스팸에 어떤 단어들이 주로 나타나는지 연구하여 규칙을 작성함

      • 규칙을 이용해 프로그램이 자동으로 인식하고 별도의 작업하지 않아도 자동으로 스팸메일의 패턴을 감지하여 메일 분류

  2. 데이터 마이닝

    • 대용량의 데이터를 분석하면 겉으로 보이지 않던 패턴 발견

  3. 머신러닝 사용 분야

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

      • 하나의 머신러닝 모델이 코드를 간단한게 만들고 전통적인 방법보다 더 잘 수행되도록 할수 있음

    • 전통적인 방식으로는 해결 방법이 없는 복잡한 문제

      • 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾을 수 있음

    • 유동적인 환경

      • 머신러닝 시스템은 새로운 데이터에 적응할 수 있음

    • 복잡한 문제와 대량의 데이터에서 통찰 얻기


핸즈온 머신러닝 1장 한눈에 보는 머신러닝 - 1.3 애플리케이션 사례

'데이터분석 관련 책 `핸즈온 머신러닝 2판`의 1장 1.3절 애플리케이션 사례 요약 및 정리

정민호정민호

1. 한눈에 보는 머신러닝


1.3. 애플리케이션 사례

  • 분류, 구분

  • 진단, 예측, 감지, 추천

  1. 텍스트

    • 자동으로 뉴스 기사를 분류

      • 텍스트 분류 작업, 자연어 처리(natural language processing; NLP) 작업

      • 순환 신경망(recurrent neural network; RNN), 합성곱 신경망(convolutional neural network; CNN), 트랜스포머(Transformer)를 사용해 해결

    • 토론 포럼에서 부정적인 코멘트를 자동 구분하기

      • 텍스트 분류 작업

      • 자연어 처리(natural language processing; NLP) 도구 사용

    • 긴 문서를 자동 요약

      • 텍스트 요약

      • 자연어 처리(natural language processing; NLP) 도구 사용

    • 챗봇 또는 개인 비서 만들기

      • 자연어 이해(natural language understanding; NLU)와 질문-대답(question-answering) 모듈을 포함해 여러가지 자연어 처리(natural language processing; NLP) 컴포넌트 필요

  2. 음성/영상

    • 생산라인에서 제품 이미지를 분석해 자동 분류

      • 이미지 분류 작업

      • 일반적으로 합성곱 신경망(convolutional neural network; CNN)을 사용하여 수행

    • 뇌를 스캔하여 종양 진단

      • 시맨틱 분할 작업

      • 일반적으로 합성곱 신경망(convolutional neural network; CNN)을 사용하여 이미지의 각 픽셀을 분류

    • 음성 명령에 반응하는 앱 만들기

      • 음성 인식 작업

      • 순환 신경망(recurrent neural network; RNN), 합성곱 신경망(convolutional neural network; CNN), 트랜스포머(Transformer)를 사용

  3. 기타

    • 다양한 성능 지표를 기반으로 회사의 내년도 수익 예측

      • 회귀 작업(숫자로 값을 예측)

      • 선형 회귀(linear regression)나 다항 회귀(polynomial regression) 모델, 회귀 SVM(support vector machine), 회귀 랜덤 포레스트(random forest), 인공신경망(artificial neural network)과 같은 회귀 모델을 사용해서 해결

      • 지난 성능 지표의 시퀀스를 고려한다면 한다면 순환 신경망(recurrent neural network; RNN), 합성곱 신경망(convolutional neural network; CNN), 트랜스포머(Transformer)를 사용

    • 신용 카드 부정 거래 감지

      • 이상치 탐지 작업

    • 구매 이력을 기반으로 고객을 나누고 각 집합마다 다른 마케팅 전략 계획하기

      • 군집(clustering)

    • 고차원의 복잡한 데이터셋을 명확하고 의미 있는 그래프로 표현

      • 데이터 시각화 작업

      • 차원축소(dimensionality reduction) 기법 많이 사용

    • 과거 구매 이력을 기반으로 고객이 관심을 가질 수 있는 상품 추천

      • 추천 시스템

      • 데이터를 인공 신경망에 주입하고 그 결과물로 상품 추천

    • 지능형 게임 봇 만들기

      • 보통 강화 학습(reinforcement learning; RL)으로 해결


핸즈온 머신러닝 1장 한눈에 보는 머신러닝 - 1.4 머신러닝 시스템의 종류

'데이터분석 관련 책 `핸즈온 머신러닝 2판`의 1장 1.4절 머신러닝 시스템의 종류 요약 및 정리

정민호정민호

1. 한눈에 보는 머신러닝


1.4. 머신러닝 시스템의 종류

  • 지도, 비지도, 준지도, 강화 학습

    • 사람의 감독하에 훈련 여부

  • 배치 학습, 온라인 학습, 외부 메모리 학습

    • 실시간으로 점진적으로 학습 여부

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

    • 데이터를 비교하는지 아니며 패턴을 발견하여 예측 모델을 만드는 것인지

  1. 지도 학습, 비지도 학습, 준지도 학습, 강화 학습

    • 학습하는 동안의 감독 형태나 정보량에 따라 분류

      1. 지도 학습(supervised learning)

    • 알고리즘을 주입하는 훈련 데이터에 레이블(label)이라는 원하는 답이 포함

    • 분류(classification)와 회귀(regression) 사용하며, 분류와 회귀를

      • 분류의 예로 스팸 필터

      • 회귀의 예로 예측 변수(predictor variable)라 부르는 특성(feature)을 사용해 타깃(target) 중고차 가격 수치 예측

        1. 지도 학습 알고리즘

    • k-최근접 이웃(k-nearest neighbors)

    • 선형 회귀(linear regression)

    • 로지스틱 회귀(logistic regression)

    • 서포트 벡터 머신(support vector machine; SVM)

    • 결정 트리(decision tree)와 랜덤 포레스트(random forest)

    • 신경망(neural networks)

      • 일부 신경망 구조는 비지도/준지도 학습일 수 있음

        1. 비지도 학습(unsupervised learning)

    • 알고리즘을 주입하는 훈련 데이터에 레이블(label)이 없음

      1. 비지도 학습 알고리즘

    • 군집(clustering)

      • 비슷한 유형끼리 그룹으로 묶는 알고리즘

      • k-평균(k-means)

      • DBSCAN

      • 계층 군집 분석(hierarchical cluster analysis; HCA)

      • 이상치 탐지(outlier detection)

      • 특이치 탐치(novelty detection)

      • 원-클래스(one-class SVM)

      • 아이솔레이션 포레스트(isolation forest)

    • 시각화(Visualization)와 차원 축소(dimensionality reduction)

      • 시각화는 도식화가 가능한 2D/3D 표현을 만들어주며, 차원 축소는 너무 많은 정보를 잃지 않으면서 데이터를 간소화

      • 주성분 분석(principal component analysis; PCA)

      • 커널(kernel) PCA

      • 지역적 선형 임베딩(locally-linear embedding; LLE)

      • t-SNE(t-distributed stochastic neighbor embedding)

    • 연관 규칙 학습(association rule learning)

      • 대량의 데이터에서 특성 간의 흥미로운 관계를 찾음

      • 어프라이어리(Apriori)

      • 이클렛(Eclat)

        1. 준지도 학습(semisupervised learning)

    • 레이블이 일부만 있는 학습으로 지도 학습과 비지도 학습의 조합으로 이루어짐

      1. 강화 학습(reinforcement learning)

    • 학습하는 시스템을 에이전트라고 부르며 환경(environment)을 관찰해서 행동(action)을 실행하고 그 결과로 보상(reward)/벌점(penalty)을 받음

    • 따라서 보상을 얻기 위해 정책(policy)라고 불리는 최상의 전략을 스스로 학습

      • 정책은 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의

  2. 배치 학습, 온라인 학습, 외부 메모리 학습

    • 입력 데이터의 스트림(stream)부터 점진적 학습 여부

      1. 배치 학습(batch learning)

    • 오프라인 학습(offline learning)이라고도 함

    • 배치 작업이기에 시스템이 점진적으로 학습할 수 없으며, 학습한 것을 적용만 할 수 있음

      1. 온라인 학습(online learning)

    • 빠른 변화에 스스로 적응해야 하는 시스템에 적합

    • 모델을 훈련하고 제품에 론칭한 뒤에도 새로운 데이터가 들어오면 계속 학습

    • 데이터를 순차적으로 한 개씩 또는 미니배치(mini-batch)라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킴

      1. 학습률(learning rate)

    • 변화하는 데이터에 얼마나 빠르게 적응할 것인지

    • 학습률을 높이면 빠르게 적응하지만, 예전 데이터는 잊혀짐

    • 학습률을 낮추면 더디게 적응하지만, 새로운 데이터에 있는 데이터 잡음이나 대표선 없는 데이터 포인트에 덜 민감

      1. 외부 메모리 학습(out-of-core learning)

    • 보통 오프라인으로 실행되나 온라인에서 사용될 수 있음

    • 점진적 학습(incremental learning) 사용

  3. 사례 기반 학습과 모델 기반 학습

    • 일반화 방법에 따라 분류

      1. 사례 기반 학습(instance-based learning)

    • 기존의 A 데이터와 새로운 B 데이터의 유사도(similarity)를 측정하여 데이터 학습하고 데이터를 비교하는 식으로 일반화

      1. 모델 기반 학습(model-based learning)

    • 샘플들의 모델을 만들어 예측(prediction)

    • 모델(model)은 모델의 종류나 완전히 정의된 모델 구조나 예측에 사용하기 위해 훈련된 최종 모델을 의미

    • 모델 선택(model selection)은 모델의 종류나 완전히 정의된 모델 구조를 선택하는 것

    • 모델 훈련(model training)은 훈련 데이터에 가장 잘 맞는 모델 파라미터를 찾기 위해 알고리즘을 실행하는 것

      1. 작업 순서

    • 데이터 분석

    • 모델 선택

    • 훈련 데이터로 모델 훈련

    • 새로운 데이터에 모델을 적용해 예측/추론(inference)

      1. 모델 기반 학습 상세

    • 모델은 두 개의 모델 파라미터(model parameter) \$theta_(0)\$과 \$theta_(1)\$을 가짐

    • 모델이 좋은지 측정하는 효용 함수(utility function) 또는 적합도 함소(fitness function)를 정의

    • 모델이 나쁜지 측정하는 비용 함수(cost function) 정의