[머신러닝 프로젝트의 기본 형태]
· 데이터를 분석한다.
· 모델을 선택한다.
· 훈련 데이터로 모델을 훈련시킨다.
· 새로운 데이터에 모델을 적용해 결과를 예측 한다.
1. 학습하는 동안의 감독 형태나 정보량에 따른 분류
a. 지도 학습
§ 알고리즘에 주입하는 훈련 데이터에 레이블(정답)이 포함되는 학습
§ 지도 학습의 전형
· 분류 (ex. 스팸 필터)
· 예측 : 예측 변수(특성, feature)를 사용해 타깃 변수 예측 (ex. 중고차 가격)
· 속성(attribute) : 데이터 타입 (ex. 주행거리)
· 특성(feature) : 속성 + 값 (ex. 주행거리=15000)
· 분류 예측 : 특정 클래스에 속할 확률을 예측(ex. 로지스틱회귀)
· 지도 학습 알고리즘
· k-최근접 이웃(KNN) : 특정 공간 내에서 입력과 제일 근접한 k개의 요소를 찾아 더 많은 갯수가 일치하는 것으로 분류하는 알고리즘
· 선형회귀 : 독립 변수와 종속 변수 간의 관계를 찾는 것
ex : 통화량(독립변수1)과 실업률(독립변수2)이 물가(종속변수)에 미치는 영향 예측
· 로지스틱 회귀 : 특정 클래스에 속할 확률을 추정
· 서포트 벡터 머신 : 공간을 결정 경계로 어떻게 나누는가?
· 결정 트리와 랜덤 포레스트
· 결정트리 : 다양한 의사결정 경로와 결과를 나타내는 트리구조(ex. 스무고개)
· 랜덤포레스트 : 결정트리로 만들어진 예측 알고리즘
· 신경망
b. 비지도 학습
· 레이블이 없는 훈련 데이터로 학습하는 방법
· 비지도 학습 알고리즘
- 군집
· k-평균 : 주어진 데이터를 k개의 클러스터로 묶는 알고리즘
· 계층군집분석 : 각 그룹을 작은 그룹으로 세분화 하면서 분류
· 기댓값 최대화(EM 알고리즘) : 예상과 최대화를 반복해 개체 분류
· 무작위로 군집의 평균, 분산, 혼합 계수를 정한다
· 각 점이 군집에 속할 확률을 구한다(예측단계)
· 가능도가능도(likelihood)를 최대화 하도록 분포를 업데이트 한다(최대화단계)
· 더 이상 분포가 바뀌지 않을 때 까지 예측단계-최대화단계를 반복한다
· 시각화와 차원 축소
· 시각화 : 고차원 데이터를 도식화하는 것. 데이터 자체만으로 볼 수 없었던 데이터의 조직과 패턴을 파악할 수 있음.
· 차원 축소 : 너무 많은 정보를 잃지 않으면서 데이터를 간소화 하는 방법. 실행 속도가 빨라지고 모델의 성능이 좋아지는 것을 기대할 수 있음.
· 주성분 분석(PCA) : 데이터 하나 하나에 대한 성분을 분석하는 것이 아니라, 여러 데이터들이 모여 하나의 분포를 이룰 때 분포의 주 성분을 분석해 주는 방법(쉽게 말해 여러 개 모아놓고 한개로 퉁치는 방법인가?)
· 특성 추출 : 밀접한 상관관계가 있는 여러 특성을 한 특성으로 취급하는 것
ex) 차의 특성 중에 '주행거리' 특성과 '연식' 특성은 두개가 밀접한 관계(연식이 오래 됐을 수록 주행거리가 길다)가 있다는 것을 고려해서, 두 특성을 묶어 하나의 특성('주행거리-연식')으로 취급하는 것.
· 이상치 탐지 : 입력 된 데이터가 정상 데이터인지 이상치인지 판단
ex) 이상한 신용카드 거래 감지, 제조 결함 감지
· 연관 규칙 학습커널
· 지역적 선형 임베딩
· t-SNE
· 연관규칙학습 : 여러 특성 간의 연관 관계를 찾는 것
ex) 연식과 주행거리는 비례한다/바비큐 소스를 많이 산 사람은 스테이크도 많이 구매한다.
· 어프라이어리
· 이클렛
c. 준지도 학습 : 레이블이 일부만 있는 데이터를 학습
· 지도 학습과 비지도 학습의 조합으로 구성됨.
ex) 심층 신뢰 신경망 : 세부 비지도 학습을 수행 한 후 그 결과를 전체 시스템에 지도 학습 방식으로 적용 및 조정함.
ex) 구글 포토 호스팅
· 비지도학습 : 각 사진으로부터 같은 인물로 추정되는 이미지 군집
· 지도 학습 : 한 인물 이미지로부터 '이름' 특성이 있는 데이터
d. 강화학습 : 에이전트(학습을 수행하는 시스템)가 환경을 관찰, 행동하고 결과로 보상과 벌점을 받는 것을 반복하면서 에이전트의 정책이 최상의 전략이 되도록 학습하는 것.
2. 실시간 학습 여부
a. 배치 학습(=오프라인 학습)
· 시스템 훈련을 먼저 수행하고 학습 적용 (학습 먼저 하고 나중에는 적용만 한다)
· 시스템이 점진적으로 학습할 수 없음. (한번 학습하면 끝임)
· 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행된다.
· 가용한 데이터를 모두 사용해 훈련시켜야 한다.
· 새로운 데이터에 대해 학습하려면 이전 데이터를 포함해서 시스템의 새로운 버전을 처음부터 학습시켜야 한다.
b. 온라인 학습
· 데이터를 순차적으로 한 개씩 또는 미니배치라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다.
· 학습 단계가 빠르다. (데이터를 받는 족족 학습시킨다)
· 빠른 변화에 적응해야 하는 시스템에 적합하다.
· 컴퓨터 자원이 한정적인 경우 적합하다.
· 학습률 : 변화하는 데이터에 얼마나 빠르게 적응할 것인지 결정하는 파라미터
· 학습률이 높으면 시스템이 데이터에 빠르게 적응하지만 예전 데이터를 금방 잊는다.
· 학습률이 낮으면 시스템의 관성이 더 커져서 더 느리게 학습되지만 새로운 데이터가 오류가 있을 경우 영향을 덜 받는다.
· 나쁜 데이터가 주입되었을 때 시스템 성능이 점진적으로 감소한다는 특징이 있다.
3. 학습 기반 별 분류
a. 사례 기반 학습
· 시스템이 사례를 기억함으로써 학습한다
ex) 사용자가 스팸메일이라고 지정하면 그 것을 기억한다.
· 새로운 데이터는 입력 된 사례들과의 유사도를 통해 예측을 적용한다.
b. 모델 기반 학습
· 데이터로 모델을 만들어서 모델을 써서 예측하는 방법.
· 모델 선택 : 예측 결과를 반환 할 모델을 선택하는 것.
ex) 월급 액수와 행복도 간의 상관관계를 예측 모델로 선택한다.
(행복도) = w * (월급) + b
-> w, b를 모델 파라미터라 한다.
· 효용 함수(utility function) : 모델의 성능이 얼마나 좋은지 측정하는 함수
· 비용 함수(cost function) : 모델의 성능이 얼마나 나쁜지 측정하는 함수
· 모델 훈련 : 선택한 모델이 높은 효용 함수 결과, 혹은 낮은 비용 함수 결과를 나타내도록 모델 파라미터(w, b) 값을 찾는 것.
'숨 log > STUDY' 카테고리의 다른 글
[STUDY] 5월 3주차 - 이진분류, 성능분석, 오차행렬, 정밀도, 재현율 (0) | 2019.05.13 |
---|---|
K-Fold 교차 검증이란 뭔가 (1) | 2019.05.11 |
[STUDY] 5월 1주차 - 선형대수/파이썬(+Numpy) (1) | 2019.05.01 |