AWSKRUG Meetup (4/1/2020)

무엇이 바뀌었는가!

  • 일시 및 장소

    • 매월 첫 주 수요일 저녁 7시

  • 두 세션으로 진행

    1. 스터디 발표

    2. 자유 발표

  • 교재

    • Hands-On Machine Learning with Scikit-Learn & TensorFLow

1장 한눈에 보는 머신러닝

Table of Contents

  1. 머신러닝이란?

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

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

  4. 머신러닝의 주요 도전 과제

  5. 테스트와 검증

  6. 연습문제

머신러닝이란?

: 머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다

좀 더 공학적인 정의

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

  • T (작업)

    : 새로운 메일이 스팸인지 구분하는 것

  • E (경험)

    : 훈련 데이터 (스팸 메일이 포함된 메일 데이터)

  • P (성능 측정)

    : 정확도 (accuracy)

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

사람이 (내가) 직접 작업을 한다면?

  1. (사람이) 먼저 스팸에 어떤 단어들이 주로 나타나는지 살펴본다

  2. (사람이) 발견한 각 패턴을 감지하고 패턴이 발견되면 스팸으로 분류하는 프로그램을 작성

  3. 프로그램을 테스트하고 충분한 성능이 나올 때까지 1단계와 2단계를 반복

    -> 노가다...

기계가 학습을 한다면?

  1. 머신러닝은 스팸으로부터 자주 나오는 패턴을 스스로 찾는다

  2. 이를 이용해서 스팸을 판단하는 데 좋은 기준이 되는 단어들을 학습

    • 프로그램은 간결해지고 유지 보수하기 쉬우며 대부분 정확도가 더 높음!

Abuser와 변하는 환경

  • 스팸 메일을 작성하는 사람이 무료, 공짜, 100% 와 같은 단어가 스팸으로 걸린다고 판단하고 다른 단어를 사용함

  • 사용하는 단서가 많이 변함

사람이 이해하기 어려운 데이터

  • 음향 분석 등

머신러닝은 이런 문제들에 좋다

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

    • 하나의 머신러닝 모델이 코드를 간단하고 더 잘 수행되게 할 수 있다!

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

  • 유동적인 환경

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

머신러닝 시스템의 분류

  • 사람의 감독 하에 훈련 or not

    • 지도

    • 비지도

    • 준지도

    • 강화 학습

  • 실시간으로 점진적 학습을 하는 것 or not

    • 온라인 학습

    • 배치 학습

  • 단순하게 알고 있는 data point와 새 data point를 비교하는 것 or 훈련 data set에서 과학자들 처럼 패턴을 발견하여 예측 모델을 만드는지

    • 사례기반 학습

    • 모델 기반 학습

지도 학습

사람이 원하는 방향으로 학습

지도 학습에는 알고리즘에 주입하는 훈련 데이터에 레이블이라는 원하는 답이 포함됨.

지도학습에는 분류회귀 문제 가 있다.

종류

  • K-최근 이웃 (KNN)

  • 선형 회귀

  • 로지스틱 회귀

  • 서포트 벡터 머신

  • 결정 트리와 랜덤 포레스트

  • 신경망

비 지도 학습

비지도 학습에는 말 그대로 훈련 데이터에 레이블이 없다.

시스템이 아무런 도움 없이 학습해야 함!

종류

  • 군집

    • K-평균

    • 계층 군집 분석 (HCA)

    • 기대값 최대화 (EM)

  • 시각화와 차원 축소

    • 주성분 분석

    • 커널 PCA

  • 연관 규칙 학습

준지도 학습

어떤 알고리즘은 레이블이 일부만 있는 데이터도 다를 수 있음.

보통은 레이블이 없는 데이터가 많고 레이블이 있는 데이터는 아주 조금임.

​ -> 이를 준지도 학습 이라고 함!

강화 학습

학습하는 시스템을 agent 라고 부르며 환경을 관찰하여 행동을 실행하고,

그 결과로 보상(혹은 벌점)을 받음.

시간이 지나면서 가장 큰 보상을 얻기 위한 정책이라고 부르는 최상의 전략을 스스로 학습함!

대표성 없는 훈련데이터

  • 대부분의 기계학습 문제는 예측 이다.

    • 즉, 학습하지 않은 새로운 데이터에 대해 좋은 성능을 보여야 한다!

  • 이를 위해서는 학습한 데이터를 일반화 하는것을 잘 해야한다.

  • 일반화라 잘되려면 일반화 되기 원하는 새로운 사례를 훈련 데이터가 잘 대표하는 것이 중요하다

훈련 데이터의 과대적합

과대적합은 훈련 데이터에 있는 잡음의 양에 비해 모델이 너무 복잡할 때 일어남

해결방법

  • Parameter 수가 적은 모델을 선택하거나 (ex. 고차원 다항 모델보다 선형 모델), 훈련 데이터에 있는 특정 수를 줄이거나, 모델에 제약을 가하여 단순화 시키기

  • 훈련 데이터를 더 많이 모으기

  • 훈련 데이터의 잡음을 줄이기

Wrap-up

  • 머신러닝은 명시적인 규칙을 코딩하지 않고 기계가 데이터로부터 학습하여 어떤 작업을 더 잘하도록 만드는 것

  • 여러 종류의 머신러닝 시스템이 있음

    • 지도 학습

    • 배치 학습

    • 온라인 학습

    • 사례 기반 학습

    • 모델 기반 학습

Last updated