AWSKRUG Meetup (4/1/2020)
무엇이 바뀌었는가!
일시 및 장소
매월 첫 주 수요일 저녁 7시
두 세션으로 진행
스터디 발표
자유 발표
교재
Hands-On Machine Learning with Scikit-Learn & TensorFLow
1장 한눈에 보는 머신러닝
Table of Contents
머신러닝이란?
왜 머신러닝을 사용하는가?
머신러닝 시스템의 종류
머신러닝의 주요 도전 과제
테스트와 검증
연습문제
머신러닝이란?
: 머신러닝
은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다
좀 더 공학적인 정의
어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다.
T (작업)
: 새로운 메일이 스팸인지 구분하는 것
E (경험)
: 훈련 데이터 (스팸 메일이 포함된 메일 데이터)
P (성능 측정)
: 정확도 (accuracy)
왜 머신러닝을 사용하는가?
사람이 (내가) 직접 작업을 한다면?
(사람이) 먼저 스팸에 어떤 단어들이 주로 나타나는지 살펴본다
(사람이) 발견한 각 패턴을 감지하고 패턴이 발견되면 스팸으로 분류하는 프로그램을 작성
프로그램을 테스트하고 충분한 성능이 나올 때까지 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