카테고리 없음

머신러닝 개념 및 설명 [왜 머신러닝인가?]

컴벗 2020. 2. 6. 15:24

머신러닝 추세

1. 로지스틱 회귀: 회귀 알고리즘이 아니라 분류 알고리즘이다!

분류 알고리즘: 커널 방법 대표적: SVM(서포트 벡터 머신)

 

2. 결정 트리: 랜덤 포레스트, 그래디언트 부스팅 머신 

 

3. 딥러닝: 신경망

층을 거치면서 점진적으로 복잡한 표현이 만들어짐. 이런 중간 표현이 공동으로 학습 되어짐.

 

*** 첫번째와 두번째는 얕은 학습 방식

Q. 그렇다면 첫번째와 두번째 방법을 여러번 반복하면 되지 않을까?

A. No!!! 오히려 연속적으로 적용하면 효과가 줄어든다. 3개의 층을 가진 모델에서 최적의 첫번째 층과 달라야 한다.

초기 입력 데이터를 여러 방식으로 변환해야 한다.

 

즉, 앞으로 우리한테 필요한 것은....

그래디언트 부스팅 - 구조적 데이터 : XGBoost

딥러닝 - 이미지 분류 : 케라스

----------------------------------------------------------------------------------------------

왜 지금 딥러닝?

1. 하드웨어 : NVIDIA - GPU 개발 : CUDA를 사용한 신경망 구현

2. 데이터셋

3. 알고리즘 발달: 활성화 함수, 가중치 초기화, 최적화 방법

본래 딥러닝은 C++, CUDA -> 현재 씨아노와 텐서플로 덕분에 파이썬으로도 개발 가능

 

--------------------------------------------------------------------------------------------------

 

텐서 : 테이터를 위한 컨테이너, 차원 = 축, 축 개수= 랭크( ndim )

스칼라( 0D 텐서)

백터( 1D 텐서)

행렬 (2D 텐서)

고차원텐서......

 

ndim 축 개수, shape 배열 크기, dtype  데이터 타입( float32, uint8, float64 등)

슬라이싱 : 배열에서 특정 원소들을 선택하는 것

 

데이터 전체를 처리하기 보단 작은 배치로 나눈다.

배치 데이터: 데이터를 소량으로 묶음, 2의 거듭제곱으로 하는 경우가 많다.

 

백터 테이터(백터의 배열): 2D 텐서 - 밀집 연결층

시퀀스 데이터 : 3D 텐서 - LSTM 순환층

이미지 : 4D - 2D 합성곱층

동영상 : 5D

 

브로드캐스팅 : 크기가 다른 두개의 텐서, 작은 축이 큰축에 맞추는 것

행렬의 전치: 행과 열을 바꾸는 것(전치 = 크기 변환)

 

그래디언트 : 텐서 변화율, 기울기

최적화 방법 ,옵티마이저 : 확률적 경사 하강법 (SGD), 확률적 = 무작위

모멘텀 = SGD에서 전역 최솟값에 향하지 못하고 지역 최솟값에 갇히는 현상을 방지

 

케라스 -> 백엔드 엔진( 텐서플로, 씨아노, 코그니티브 툴킷 CNTK) -> CPU, GPU 작동 가능

 

활성화 함수

-relu : 음수를 0으로

-시그모이드 : 0과 1사이

-소프트맥스

 

plt 그래프

-'bo' 파란색 점

-'b' 파란색 실선

 

원-핫 인코딩 : 레이블을 벡터로 변환 = to_categorical 내장 함수

 

--------------------------------------------------------------------------------------------------------

분류문제

N개의 클래스로 데이터를 분류하려면 마지막 Dense층의 크기는 N

softmax 활성화 함수를 이용

이런 문제는 크로스엔트로피(손실함수) 사용, 레이블은 원핫 인코딩

 

-----------------------------------------------------------------------------------------------------------

회귀문제

평균제곱오차 mse 손실함수 주로 사용,

*** 데이터가 적다면,    k-겹 검증하자! 은닉층을 줄이자! => 과대적합 방지

스칼라 회귀: 타깃이 연속적인 값, 대표적: 주택 가격 예측

벡터 회귀: 타깃이 연속적인 값의 집합

-----------------------------------------------------------------------------------------------------

 

1. 지도학습

2. 비지도 학습: 입력데이터에 대한 변환 찾기, 데이터 분석

3. 자기 지도 학습 : 시간에 따른 지도 학습, 대표적 : 오토인코더

4. 강화학습 : 환경 입력을 받고 보상을 최대화, 대표적: 게임에서 사용

----------------------------------------------------------------------------------------------------