Snoopy [ML] 1. 머신러닝과 딥러닝, 지도학습과 비지도학습, EIL, 사이킷런, 딥러닝 라이브러리 종류
머신러닝과 딥러닝/ML 개념정리

[ML] 1. 머신러닝과 딥러닝, 지도학습과 비지도학습, EIL, 사이킷런, 딥러닝 라이브러리 종류

Sooyoon Jeong 2022. 10. 26.

멋쟁이 사자처럼 AI스쿨 7기 오늘코드 박조은 강사님의 수업내용 및 자료를 바탕으로 포스팅하였습니다.


1. 머신러닝과 딥러닝

머신러닝이란?

인공지능의 연구 분야 중 하나로 기계학습이라고도 한다.

인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법

 

딥러닝이란?

기계학습(머신러닝)의 한 분야로 컴퓨터가 사람처럼 생각하고 배울 수 있도록 하는 기술

신경망학습 등을 주로 다룬다.

 

즉 머신러닝과 딥러닝의 차이는 신경망 사용 여부라고 할 수 있다.

인공지능의 범주

2. 지도학습과 비지도 학습

지도학습과 비지도학습, 출처: 생활코딩

 

지도학습?

정답이 있는 학습

 

비지도학습?

정답이 없는 학습

 

즉 지도학습과 비지도학습을 구분하는 가장 큰 기준은 정답 유무이다.

정답은 target, label이라고도 하며, Nan 혹은 Null이면 정답이 없는 것이다.

 

3. 설명가능한 인공지능

모델을 어떻게 하면 잘 설명할지 연구하는 분야

 

Yellow brick

결과를 시각화해서 보여주는 도구

 

ELI 5

Explain like I'm 5

 

대리모형

전역적 대리모형

LIME

SHAP

Tree Interpreter

 

4. 사이킷 런

머신러닝에서 가장 많이 사용되는 라이브러리로

이전에 배운 판다스와는 비교할 수도 없이 훨씬 방대한 라이브러리이다.

[공식문서] https://scikit-learn.org/stable/index.html

[Cheat sheet] https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html

Start!

1) 50개보다 크면 범주형 데이터로 분류

2) 50개 보다 작으면 데이터를 더 모아와라

3) 레이블링 여부 판별

4) 레이블링이 되어있으면 분류, 안되어 있으면 군집화

 

- 분류: 범주형 / 지도학습(정답 존재)

- 회귀: 수치형 / 지도학습(정답 존재)

- 군집화: 범주형 / 비지도학습

- 차원축소: 수치형 / 비지도학습

 

사이킷 런에는 위 4개가 핵심이라고 할 수 있고 그 외에도 총 6가지의 기능이 존재한다.

 

기본적인 구조

Estimator: 기본적인 분류와 회귀 알고리즘을 합쳐놓은 것

fit(): 학습시키는 메서드

predict(): 학습된 모델에 예측(분류나 회귀_을 시키는 메서드

 

Estimator 알고리즘

<Classifier>

DecistionTree

RandomForest

GradientBoosting

GaussianNB

SVC

 

<Regressor>

Linear

Ridge

Lasso

RandomForest

GradientBoosting

 

주요 모듈

sklearn.datasets: 예제로 제공하는 데이터 세트

sklearn.preprocessing: 데이터 전처리에 필요한 기능 모음 (인코딩, 정규화, 스케일링)

sklearn.feature_selection: 특성을 우선 순위대로 선택하는 작업을 수행하는 기능 모음

sklearn.feature_extraction: 벡터화된 특성을 추출하는 기능 모음

sklearn.decomposition: 차원 축소 기능 모음

sklearn.model_selection: 교차 검증, 데이터 분리, 하이퍼파라미터 튜닝과 관련된 기능 모음

sklearn.metrics: 성능 측정 방식 모음

 

머신러닝 알고리즘

sklearn.ensemble: 앙상블 알고리즘 모음

sklearn.linear_model: 선형 회귀 알고리즘 모음

sklearn.naive_bayes: 나이브 베이즈 기반 알고리즘 모음

sklearn.neighbors: 최근접 이웃 알고리즘 모음

sklearn.svm: 서포트 백터 머신 알고리즘 모음

sklearn.tree: 트리 기반 알고리즘 모음

sklearn.cluster: 클러스터링 알고리즘 모음

 

5. 사이킷 런 주요 6가지 기능

1) 분류(classification):주어진 데이터가 어느 클래스에 속하는지 판별

 

2) 회귀(regression): 기존에 있는 데이터를 바탕으로 예측

 

3) 군집화(clustering): 입력된 데이터를 어떤 기준에 따라 나누는 것

 

* 분류와 군집화의 차이

  - 분류는 지도학습, 군집화는 비지도학습

  - 분류는 이미 분류되어 있는 것(정답이 있는 것)을 학습하고 군집화는 비지도 학습을 한다.

 

4) 차원축소(dimesionality reduction): 고차원 데이터의 경우 차원을 축소하여 효율(속도 개선 등)을 강화한다.

  - 예시: 사진을 텍스트로 변경

 

5) 모델선정(model selection): 어떤 파라미터 값들이 좋은 성능을 내는지 선정해준다.

 

6) 전처리(processing): 표준화, 정규화 등

  - 머신러닝 알고리즘을 사용하기 위해서는 텍스트를 수치형으로 바꿔주어야 한다.

 

* pandas에서 normalize 옵션을 사용했던 경우는? value counts(), 크로스탭

* pandas에서 normalize 옵션을 사용했을 때 결과가 어떻게 나오는가? 값을 0~1사이로 만들어주고, 각 값들의 합을 1로 한다.

 

사이킷 런에는 굉장히 많은 알고리즘이 있다.

Supervised learning(17개 알고리즘, 각각마다 또 세부적으로 알고리즘 존재)과 Unsupervised learning(9개 알고리즘)이 핵심이며 이처럼 핵심적인 알고리즘에 대해 배우고 기본적인 API 활용 방법에 대해 익히는 것이 효율적이다.

 

즉, 핵심 알고리즘의 동작원리와 결과 등을 익히고 어떻게 활용할 것인가를 위주로 학습하자.

 

6. 사이킷 런 단점

딥러닝 및 강화학습을 지원하지 않음(뉴터럴 네트워킹이 있기는 하다.)

딥러닝은 파이토치, 텐서플로우 등 딥러닝을 중점적으로 다루는 라이브러리 추천

 

7. 딥러닝 라이브러리

양대산맥은 텐서플로우와 파이토치이다.

이미지출처: 파이토치가 텐서플로우를 이겼다, 2020 AI현황보고서 8대 전망 < 기술 < 기사본문 - AI타임스 (aitimes.com)

 

1) 케라스

텐서플로우를 사용하기 쉽게 감싸놓은 것(추상화 해놓은 것)

 

2) Fast ai

파이토치를 사용하기 쉽게 엄청 감싸놓은 것

 seaborn도 matplotly를 사용하기 쉽게 감싸놓은 것이다.

 

3) 그 외 딥러닝 라이브러리

  - 텐서플로우 

  - 케라스

  - 파이토치

  - DL4J

  - 카페

  - MXNest

 

출처: 멋쟁이 사자처럼 AI 스쿨 7기 박조은 강사님 강의자료


🔗 참고자료

오늘코드 박조은 강사님 강의자료

생활코딩

http://www.aitimes.com/news/articleView.html?idxno=132756

scikit-learn: machine learning in Python — scikit-learn 1.1.3 documentation

 

 

 

댓글