Data Scientist/Machine Learning

[ML] 머신러닝 기본 개념과 학습 방법

아리멤모장 2021. 7. 30. 12:59

머신러닝이란?

데이터에 모델을 맞추는 것!(fitting) 모델은 데이터의 특징과 성향에 따라 기법을 적용시켜 최적화시킨다.

어떤 조건에 대해 예측을 할때, 다음과 같은 방법으로 할 수 있다. 

 

지도 학습과 비지도 학습

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

 

지도학습

1. 레이블이 있다.

2. 분류(classification)

3. 회귀(regression): 예측 변수라는 특성(feature)을 사용해 타깃 수치를 예측하는 것

4. 지도학습 알고리즘: K-최근접 이웃(k-nearest neighbors), 선형회귀(Linear Regression), 로지스틱 회귀(Logistic regression), 서포트 벡터 머신(Support Vector Machine), 결정트리와 랜덤 포레스트(Decision tree, Random Forest), 신경망(neural networks)

 

비지도 학습

1. 레이블이 없다. 

2. 비지도 학습 알고리즘:

군집(clustering) - k-평균(k-means) DBSCAN, 계층 군집분석(hierarchical cluster analysis)(HCA), 이상치 탐지와 특이치 탐지(outlier detection, novelty detection), 원-클래스(one-class SVM), 아이솔레이션 포레스트(isolation forest)

시각화와 차원축소(visualization, dimensionality reduction) - 주성분 분석(principal component analysis)(PCA), 커널PCA(kernel), 지역적 선형 임베딩(locally-linear embedding)(LLE), t-SNE(t-distributed stochastic neighbor embedding)

연관 규칙 학습(association rule learning) - 어프라이어리(Apriori), 이클렛(Eclat)


준지도 학습

1. 일부만 레이블이 있는 데이터

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

3. ex)구글 포토 호스팅 서비스

 

강화 학습

1. 에이전트: 학습하는 시스템

2. 환경을 관찰해서 행동을 실행하고 그 결과로 보상을 받는 것. 최상의 보상을 받기 위해 스스로 학습, 에이전트가 상황별로 어떻게 행동해야할지 결정.


배치 학습과 온라인 학습

- 입력 데이터의 스트림으로부터 점진적으로 학습할 수 있는지에 대한 여부에 따라 분류

 

배치 학습 

1. 시스템이 점진적으로 학습할 수 없음. 가용한 데이터를 모두 사용해 훈련

2. 오프라인 학습이라고도 함.

3. 시스템을 훈련시키고 제품 시스템에 적용하면 더 이상의 학습 없이 실행됨.

4. 이 시스템이 새로운 데이터에 학습하려면 시간과 비용 많이 소요, 새롭게 다시 훈련시켜야함.

 

온라인 학습

1. 데이터를 순차적으로 한개씩이나 미니배치라 부르는 작은 묶음 단위로 주입하여 시스템 훈련

2. 학습단계가 빠르고 비용이 적게듦 

3. 학습해야하는 데이터가 방대할 때, 그리고 학습에 사용되는 데이터가 꾸준히 입력될때 사용


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

- 어떻게 일반화(generalize)되는가에 따라 분류. 일반화란 주어진 훈련 데이터로 학습하고 훈련 데이터는 본 적 없는 새로운 데이터에서 좋은 예측을 만들어야한다는 뜻

 

사례 기반 학습

1. 시스템이 훈련 샘플을 기억함으로써 학습

2. 비슷한 것 끼리 유사도 측정해 새로운 데이터와 학습한 데이터 샘플을 비교하는 식으로 일반화함

 

모델 기반 학습

1. 샘플들의 모델을 만들어 예측에 사용하며 일반화 시키기


 

머신러닝 프로젝트 형태를 요약하자면,

 

1. 데이터를 분석한다. 

2. 모델을 선택한다.

3. 훈련 데이터로 모델을 훈련시킨다. (비용함수 최소화하는 파라미터 찾기)

4. 테스트 데이터나 새로운 데이터에 모델을 적용해 예측한다. 

 

 

여기서, 머신러닝 데이터를 테스트셋과 트레이닝 셋으로 나누는 이유

training dataset은 학습시킬 파라미터들을 결정하는데 사용, 학습할 데이터

test dataset은 실제 학습된 모델을 평가하는데 사용되는 데이터. 이 데이터를 통해 머신러닝 알고리즘이 얼마나 잘 학습되었는지 평가함.