빅데이터 & 인공지능

기계학습, 머신러닝이란?

헬로월드! 2020. 10. 19. 15:45

기계 학습

컴퓨터는 스스로 학습할 수 없으니까 우리가 컴퓨터한테 일을 시키려면 반드시 프로그래밍 (=코딩) 을 해서 작업지시를 해야한다.

그러나 컴퓨터가 스스로 학습할 수 있다면? 프로그래밍을 안 하더라도 컴퓨터 스스로 여러가지 일을 할 수 있다!

따라서 주어진 입력을 점차적으로 개선하는 방향으로 해석하도록 컴퓨터에게 지능을 부여하는 것 이것이 바로 기계학습이다

기계 학습을 통해 새로운 데이터와 답을 주고 데이터의 패턴을 분석하여 규칙을 찾도록 프로그래밍하여 결과값을 예측하는 것이다. 

 

그렇다면 이러한 기계학습은 어디에 이용될까? 예를들면, 넷플릭스에서 비디오를 추천해주는 것도 모두 기계학습을 이용한 예이다. 

그외에도 자율주행 시스템, 상품 추천 시스템, 광고시스템, 안면인식, 음성인식, 영상인식 등등 다양한 분야에서 사용된다. 

 

예를들면, 먼저 예측하고 싶은 데이터가 있다고 가정하자. 이 데이터를 테스트 데이터 라고 한다.

학습된 모델을 통해 테스트 데이터를 예측할 수 있는데,

학습된 모델을 만들기 위해서는 학습데이터가 필요하다. 학습데이터가 좋을수록 좋은 모델을 만들 수 있고 , 이러한 학습데이터를 입력 데이터로 이용하여 머신러닝 알고리즘에 적용하여 머신러닝 모델을 만든다.  

 

기계학습은 입력을 받아 출력을 내는 함수 y=f(x) 를 학습한다고 생각할 수 있다. 즉, 학습 모델이 함수형태로 표현이 된다. 

 

* 기계학습에서 자주 사용되는 용어

- 특징 (feature) : 학습 모델에게 입력하는 데이터  ( 함수에서 x )

- 레이블 (label) : y = f(x) 에서 y 값 

- 학습 데이터 : 학습을 하는데 필요한 데이터 ( 모델을 만들 때 필요한 데이터)

- 테스트 데이터 : 학습이 잘 이루어졌는지 테스트하는 데이터 ( 학습 데이터와 겹치면 안됨 , 새로운 데이터여야함

- 샘플: 샘플은 기계학습에 주어지는 특정한 예이다. 레이블이 있는 샘플이 있고 없는 샘플이 있는데,

레이블이 있는 샘플은 (= y값이 있는 샘플) 지도학습, 레이블이 없는 샘플은 (= y 값이 없는 샘플) 비지도 학습으로 분류할 수 있다. 

지도학습을 시키려면 y값까지 줘야한다!  ( 샘플 집합 -> 학습데이터 , 테스트 데이터) 

- 모델 : 특성과 라벨과의 관계 정의 ( =함수)

- 학습: 모델을 만들거나 배우는 것 (= 기계학습, 모델학습)

- 예측: 학습된 모델을 레이블이 없는 샘플에 적용하는 것 

- 배치학습: 주어진 데이터를 한꺼번에 적용하는 것 (1번 학습 , 1epoch)

- 미니배치 학습: 데이터 세트를 batch 사이즈로 나누어 한 번 일부 데이터만 최적화하면서 학습 ( 여러번 학습, 1epoch)

- 에포크 (epoch): 모든 데이터 세트를 다 학습할 때 마다 1번의 epoch 

 

* 기계학습의 종류 : 지도학습, 비지도학습, 강화학습 

- 지도 학습 , 비지도 학습

: 입력/출력 쌍으로 된 훈련 데이터로 부터 입출력 간의 함수를 학습하는 것

입력에 x,y 값을 다 알려준다고 하여 지도학습

x,y 를 가지고 함수적 모델을 찾아 유형을 구분짓는 속성을 갖지 않은 새로운 데이터의 유형을 구분하는 기술

 

- 지도학습 ) 회귀 : 선형회귀분석, 다중선형회귀 분석이 있고, 회귀에서는 입력과 출력이 모두 실수이다. 

회귀는 특징 (=feature= x ) ,레이블 (=label= y) 이 주어질 때, 매핑함수 y= f(X) 를 학습하는 것 

 

- 지도학습) 분류 : 입력을 두 개 이상의 레이블으로 분할하는 것이다. 해당 모델을 학습시킬 때 레이블을 제공해야한다. 

y = f(X) 가 이산적 ( 0과 1 ) 로 나오는 경우의 이것을 분류 문제라고 한다. 분류에서는 입력을 2개 이상의 클래스로 나눈다. 

회귀와 비교해보자면, 회귀는 연속된 함수라면 분류는 이산적인 함수가 특징이다. 

신경망, kNN, SVM, 의사결정 트리 등이 있다. 

 

- 비지도학습)  클러스터링 y=f(X) 에서 y가 주어지지 않는 것,데이터간의 거리를 계산하여 입력을 몇 개의 그룹으로 나누는 방법이다.

 

-강화학습) 컴퓨터가 어떤 행동을 할 때마다 외부에서 처벌이나 보상이 주어진다. ex. 알파고 최종버전 , 게임 등