본문 바로가기
Data Analytics with python/[Theory]

[Machine Learning] 머신 러닝 개괄

by 보끔밥0130 2023. 1. 30.
728x90

1. 머신러닝이란

머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야이다.
- Arthur Samuel (아서 새뮤얼), 1959

training set (훈련 세트) : 시스템이 학습하는 데 사용하는 샘플입니다.

training instance(훈련 사례) or Sample(샘플) : 각 훈련 데이터를 칭합니다.

 

2. 머신러닝 작업의 사례

● 제품 이미지 분석하여 자동으로 분류 -  CNN(합성곱 신경망)

  폐암 진단하기 : CNN을 사용해 픽셀을 분류

  자동으로 뉴스 기사를 분류 : 텍스트 분류로 RNN(순환 신경망), CNN, Transformer

  회사의 내년도 수익을 예측 : Regression (linear or polynomial), 회귀 SVM, 회귀 Random Forest 

더 나아가 지난 성능 지표의 영향을 고려한다면 RNN, CNN, Transformer

신용 카드 부정 거래 감지 : 이상치 탐색

구매 이력을 기반으로 고객 세분화 : Clustering (군집)

고차원의 복잡한 데이터셋을 그래화 : dimensionality reduction (차원 축소)

 

등 많은 분야에서 머신러닝으로 작업 가능합니다. 

 

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

넓은 범위에서 머신러닝의 3가지 범주가 있습니다.

 

이 범주들은 서로 배타적이지 않기에 연결하여 작업할 수 있습니다.

 

1) 지도학습, 비지도 학습, 준지도 학습, 강화 학습 - 사람의 감독 하에 훈력하는 것인지 그렇지 않은 지

"Label" 여부 중요

 

2) 온라인 학습과 배치 - 실시간으로 점진적인 학습을 하는지 아닌지

"learning rate" 중요

 

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

- 훈련 데이터 셋에서 패턴을 발견하여 예측 모델을 만들거나 원 데이터 포인트와 새 데이터 포이트를 비교하는지

"generalize" 중요

 

  Supervised learning
(지도 학습)
unsupervised learning
(비지도 학습)
semisupervised learning
(준지도 학습)
reinforcement learning
(강화 학습)
훈련 데이터 Label을 포함합니다.
(원하는 답)
Label이 없습니다. 일부만 label이 있습니다. 환경을 관찰하여 행동을 실행시키고 그 결과로 보상 or 벌점을 부여
범주 classification - 샘플과 소속 정보로 훈련
regression - 특성(feature)을 사용해 target  수치를 예측
군집, 차원 축소, 연관 규칙 지도 학습과 비지도 학습의 조합으로 구성 스스로 학습
주요 알고리즘 ● k-최근접 이웃
● 선형 회귀
● 로지스틱 회귀
● 서포트 벡터 머신
● 결정 트리 와 랜덤 포레스트
● 신경망
● clustering
- k-means
- DBSCAN
- HCA (계층 군집 분석)
- Oulier detection & novelty detection
- one-class SVM
- isolation forest
● visualization & dimensionality reduction
- PCA (주성분 분석)
- kernel PCA
- LLE (지역 선형 임베딩)
- t-SNE (비선형 차원 축소 기법)
 association rule learning
- apriori
- Eclat
● DBN :
비지도 학습 방식 훈련 후 지도 학습 방식으로 조정
● AlphaGo 프로그램

cf)

* 차원 축소 알고리즘의 경우 지도 학습 알고리즘에 데이터를 주입하기 전에 사용하여 데이터의 차원을 줄여주어 성능을 개선시키는데 사용하기도 합니다.

* 연관 규칙은 rule-based(규칙 기반) 학습의 한 종류로 사이킷런에서는 제공되지 않습니다.

 

4. 머신러닌의 전형적인 프로젝트 형태

① 데이터를 분석합니다

② 모델을 선택합니다

③ 훈련 데이터로 모델을 훈련 시킵니다. ( 비용 함수를 최소화하는 모델 파리미터를 찾는 과정입니다)

④ 모델을 적용하여 새로운 데이터를 예측해 봅니다.

 

모델이 잘 일반화 되기 위해서 더 많은 특성을 사용하거나 좋은 훈련 데이터를 수집하거나 더 강력한 모델을 선택해야 합니다.

하지만 현실적으로 작거나 중간 규모의 데이터셋이 매우 흔하며, 훈련 데이터를 추가로 모으는 것이 항상 쉽거나 저렴하지 않기에 알고리즘 개발에 힘쓰는 상황입니다.

 

5. 머신러닝의 도전 과제

1) 나쁜 데이터 사례

● 훈련 데이터의 양이 충분하지 않는 경우

● 훈련 데이터가 새로운 사례를 훈련하기에 대표성이 없는 경우

● 훈련 데이터가 에러, 이상치, 잡음으로 가득한 경우

→ 무시할지 평균으로 채울지 수동으로 잘못된 부분을 수정할지 결정 필요함

 

정리하면 엉터리가 들어가면 엉터리를 내놓습니다.

 

2) 나쁜 알고리즘의 사례

● 훈련 데이터 과대적합

모델이 훈련 데이터에 너무 잘 맞지만 일반성이 떨어집니다.

훈련 데이터에 있는 잡음(이상치)의 양에 비해 모델이 너무 복잡할 때 발생합니다.

 

과대적합을 해결하기 

① 모델을 단순화 시킵니다.

- 파라미터 수가 적은 모델을 선택하거나, 훈련 데이터에 있는 특성 수를 줄이거나, 모델에 제약을 가합니다.

② 훈련 데이터를 더 많이 모읍니다.

③ 훈련 데이터의 잡음을 줄입니다. 

- 오류 데이터 수정 및 이상치 제거 과정이 필요합니다.

 

● 훈련 데이터 과소적합

모델이 훈련 샘플에서 조차도 부정확한 예측을 내립니다.

모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못하는 경우입니다.

 

과소적합을 해결하기 

① 모델을 개선합니다.

파라미터가 더 많은 모델을 선택합니다.

② 학습 알고리즘에 더 좋은 특성을 제공합니다.

③ 모델의 제약을 줄입니다.

 

정리하자면 모델이 너무 단순하거나 너무 복잡하지 않아야 합니다.

 

6. 머신러닝의 일반화

1) 테스트와 검증 과정을 거칩니다.

훈련세트에서 모델의 오차(훈련 오차)와 테스트 세트에서 모델의 오차(일반화 오차)를 비교하여 과대적합 또는 과소적합을 판단하여 모델을 개선해야 합니다.

 

2) 모델의 선택 방법

홀드아웃 검증 : 훈련 세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나를 선택하는 방법

교차 검증 : 작은 검증 세트를 여러 개를 사용해 반복적인 검증을 수행하는 방법

728x90

댓글