본문 바로가기
AI

(2) 머신러닝

by doongjun 2020. 10. 13.

머신러닝은 사전적인 의미로 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야로서 표현과 일반화에 중점을 두고 있으며, 기본적으로 알고리즘을 이용해 데이터를 분석하고, 분석을 통한 학습, 학습을 기반으로 한 판단이나 예측이라고 할 수 있다.

 

머신러닝의 모델별 분류

 

머신러닝은 3가지 접근법으로 연구가 진행되어왔다.

1. 신경모형 패러다임(신경 모형은 퍼셉트론에서 출발해서 지금의 딥러닝으로 이어짐)

2. 심볼 개념의 학습 패러다임(숫자나 통계이론 대신 논리학이나 그래프 구조를 사용)

3. 현대지식의 집약적 패러다임(백지상태에서 학습을 시작하는 신경모영은 지양, 이미 학습된 지식 재활용)

 

톰 미첼의 PET

만약 컴퓨터 프로그램이 특정한 Task를 수행할 때 성능(Performance)만큼 개선되는 경험(Experience)을 보이면, 그 컴퓨터 프로그램은 T와 P에 대해 E를 학습했다고 할 수 있다.

예를 들어, 컴퓨터에 글자를 인식하는 학습을 시킨다고 했을 때, 컴퓨터가 새롭게 입력된 글자를 분류하는 것(T), 미리 만들어진 데이터 세트로 학습한 경험을 하는 것(E), 정의된 수준으로 글자를 인식하는 것(P)을 컴퓨터는 '학습을 했다'라고 말하는 것이다.

 

머신러닝과 데이터 마이닝

머신러닝은 종종 데이터 마이닝과 혼용되기도 한다. 그 이유는 아마도 머신러닝에서 사용하는 분류나 군집 같은 방법을 데이터 마이닝에서도 똑같이 사용하기 때문일 것이다.

  머신러닝 데이터 마이닝
공통점 분류, 예측, 알고리즘을 통해 문제해결을 한다.
차이점 문제해결을 컴퓨터 과학의 관점에서 본다. 훈련데이터를 통해 알려진 속성을 기반으로 예측에 집중한다. 문제해결을 통계학관점에서 본다. 가지고 있는 데이터에서 속성을 발견하는 것이 주 목적이다.

지도학습과 비지도학습

지도학습은 데이터에 레이블이 주어진 상태에서 컴퓨터를 학습시키고 레이블이 있는 학습데이터 세트를 가지고 갖가지 알고리즘을 통해 데이터를 구별해내는 판별식을 만든 후 새로운 데이터가 어떤 결과값을 갖는지를 알아내는 학습모델이다.


지도학습은 크게 분류와 회귀로 나뉜다.

가지고 있는 데이터에 독립변수와 종속변수가 있고, 종속변수가 이름일 때 분류를 이용하면 된다.

가지고 있는 데이터에 독립변수와 종속변수가 있고, 종속변수가 숫자일 때 회귀를 이용하면 된다.

 

분류 : 레이블된 학습데이터를 학습한 후 새로 입력된 데이터가 속한 그룹을 찾아내는 것이 목적이어서 결과값은 반드시 학습데이터의 레이블 중 하나이다.

 

1) K-NN = K-Nearest Neighbor

K-NN의 기본적인 개념은 레이블이 있는 데이터를 사용하여 분류하는 알고리즘이다. K-NN모델은 머신러닝 모델 가운데 가장 직관적이고 간단한 지도학습 모델 중 하나다. 주어진 데이터에서 직접 확률을 계산하여 통계학적으로 검정하는 분석법으로 인스턴스 기반의 러닝 또는 메모리 기반의 러닝이라고도 한다. 그 이유는 학습을 사전에 하지 않고 미뤄두고 학습에 필요한 데이터를 메모리에 기억만 하고 있다가 인스턴스가 발생될 때 비로소 일반화 하는 일을 시작한다.

K-NN에서 K는 새로운 데이터가 속한 그룹을 알아내기 위해 인접 데이터를 K개만큼 찾는 것이다. 

※ K를 선정하기 전에 거리척도에 대해 선행해야 한다. 가깝다는 개념은 표준에 의한 것이어야 하고 유클리드 거리로 정의한다.

 

2) SVM = Support Vector Machine

SVM은 데이터를 선형 또는 비선형으로 분리하는 최적의 선형 결정 경계를 찾는 알고리즘으로 분류와 회귀에 응용할 수 있는 지도학습이다. 

장점 : 분류에서 발생하는 문제를 해결하기 위해 최적의 초평면(분리경계)을 제공함으로써 학습해야 할 데이터의 양이 적어도 결과해석이 용이하고 구조적 위험 최소화의 원칙에 기반하기 때문에 경험적 위험도 역시 최소화할 수 있다. 

결국 SVM의 최종 목표는 두 개의 그룹을 분리하는 직선을 찾는 것이다. 두 그룹을 구별하는 초평면을 구분하되, 초평면을 사이에 두고 가능하면 두 그룹이 멀리 떨어져 있도록 직선식을 구하는 것이다. 왜냐하면 두 그룹이 멀리 떨어질수록 나중에 추가로 입력된 데이터를 판별하는 데 더 높은 신뢰도로 예측할 수 있기 때문이다.

 

 

SVM

 

출처: bioinformaticsandme.tistory.com/304

초평면은 데이터를 분류하는 선으로 서포트 벡터와 마진을 통해 두 클래스 사이를 분류하는 최적의 초평면을 구한다. 초평면을 구하는 방법은 하드마진 방법과 소프트마진 방법 두가지가 있다. 하드마진은 매우 엄격하게 두 개의 그룹을 분리하는 방법으로 명확하게 구분되지 않은 경우 노이즈로 판단하기 때문에 노이즈가 있으면 사용하기 힘들다. 소프트 마진 방법은 서포트 벡터가 위치한 경계선에 약간의 여유를 두는 방식이다.

 

3) 의사결정트리

의사결정트리는 어떤 항목에 대한 관측값과 목표값을 연결해주는 예측 모델로서 데이터를 분석하여 이들 사이에 존재하는 패턴을 예측 가능한 규칙의 조합으로 나타내며, 그 모양이 '나무'와 같다고 해서 의사결정트리라 불린다.

의사결정트리 역시 분류나 회귀에 사용가능하다. 의사결정트리는 비슷한 특성을 갖는 몇 개의 그룹으로 분할한다. 그룹별 특성을 발견해서 데이터가 어떤 집단에 속하는지를 파악하고자 하는 경우, 규칙을 찾아내고 이를 이용해 미래의 사건을 예측할 때 사용 가능하다.

 

회귀 : 레이블된 학습 데이터를 가지고 특성과 레이블의 관계를 함수식으로 표현하는 것이 목적이다(예측모델).

 

1) 선형 회귀

종속변수 y와 한 개 이상의 독립변수 x와의 선형상관관계를 모델링하는 회귀분석기법이다. 종속변수, 독립변수는 항상 정량화 되어 있어야 한다.

 

선형회귀모델 예시

 

출처 : medium.com/@Aaron__Kim/%EC%84%A0%ED%98%95-%ED%9A%8C%EA%B7%80%EC%9D%98-%EA%B2%B0%EC%A0%95%EA%B3%84%EC%88%98-linear-regression-r-squared-determination-coefficient-a66e4a32a9d6

2) 로지스틱 회귀

범주형의 경우에 사용. 선형회귀분석과는 다르게 종속변수가 범주형(예/아니요) 데이터가 대상이고, 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분위로 나눠지기 때문에 일종의 분류 기법으로 볼 수 있다.


  분류 회귀
공통점 지도학습모델, 레이블이 있는 입력데이터로 학습
차이점 결과값 고정 결과값이 데이터 세트의 범위 내 어떠한 값도 가능

 

 

분류와 회귀 비교

 

  분류(Classification) 회귀(Regression)
결과 학습데이터의 레이블 중 하나를 예측(Discrete) 연속된 값을 예측(Continuous)
예제 학습 데이터가 A, B, C 라면 A, B, C 가 나온다.
ex) 스팸메일 필터
결과값이 어떠한 값도 나올 수 있다.
방법 K-NN모델, SVM, 의사결정트리 선형, 로지스틱회귀

강화학습(Reinforcement Learning)

일종의 동적인 상태에서의 데이터를 수집하는 과정까지 포함되어 있는 알고리즘이다.

강화학습은 에이전트가 주어진 환경에 대해 어떤 행동을 취하고 어떤 보상을 얻으면서 학습을 한다. 

관측 - 행동 - 보상의 상호작용을 반복하면서 환경으로부터 얻는 보상을 최대화하는 태스크를 수행하기 위한 일련의 과정이다.

ex) 시행착오


비지도학습은 데이터에 레이블이 주어지지 않은 상태에서 컴퓨터를 학습시키는 방법이다. 데이터의 숨겨진 특징이나 구조를 발견하는 것이다. 비지도학습은 레이블이 없는 데이터를 분류하는 것이기 때문에 현재 데이터 세트를 같은 특성을 가진 그룹으로 묶는데 그 목적을 두고 있다.


비지도학습의 대표적인 모델로 군집이 있다.

군집모델은 학습데이터가 레이블을 가지지 않는 경우이므로 입력된 데이터들이 어떤 형태로 그룹을 형성하는지가 중요하다. 즉, 레이블이 없이 확보된 데이터의 특성을 분석해서 서로 유사한 특성을 가진 데이터끼리 그룹화하는 것이 군집모델의 기본이다. 군집과 분류가 어떤 것인지에 대해 혼동이 있을 수 있는데 구분하는 방법은 아래 그림과 같다.

  분류(Classification) 군집(Clustering)
공통점 입력된 데이터들이 어떤 형태로 그룹을 형성하는지가 관심사
차이점 레이블O 레이블X

예를 들어,

각각의 도형들을 정리한다고 할때, 모아서 적당한 그룹을 만드는 것이 군집화

그룹을 만든 후에 각각의 물건을 적당한 그룹에 위치시키는 것이 분류

 

분류와 군집화

 

 

 군집 모델은 군집화 알고리즘 관점에서 크게 2가지 모델로 나눌 수 있다. 첫 번째가 평할 또는 분할 기반의 군집기법이고 두 번째가 계층적 군집 모델 방법이다.

분할 기반 군집 모델에는 K-Means, K-medoids, DBSCAN이 대표적이다.

계층적 군집은 병합적 군집, 분할적 군집으로 구별된다.

 

K-Means Clustering

K-Means Clustering 알고리즘은 주어진 데이터를 k개의 클러스터로 묶는 알고리즘으로, 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 K-Means는 레이블이 없는 데이터를 군집화하는 가장 간단한 비지도학습 중 하나이다. 주어진 데이터를 k개의 클러스터로 묶는 것으로 분류할 클러스터의 수를 미리 정한다. 이때 k가 클러스터의 개수이다. 분류할 클러스터의 수가 정해지면 각 클러스터마다 초기 중심을 정한다. K-Means에서 사용되는 중심의 의미는 클러스터를 대표하는 가상의 그룹이며 각 학습데이터가 자신이 속한 클러스터를 결정하는 데 기준점이 된다. 초기 중심은 임의로 정해지며, 학습이 진행되면서 각 클러스터마다 최적의 중심으로 이동한다.

 

 

K-Means Clustering 수행 절차

 

출처 : pbj0812.tistory.com/153

 1) 초기 (군집의) 중심으로 k개의 객체를 임의로 선택한다.

 2) 각 자료를 가장 가까운 군집 중심에 할당한다.

 3) 각 군집 내의 자료들의 평균을 계산하여 군집의 중심을 갱신(update)한다.

 4) 군집 중심의 변화가 거의 없을 때(또는 최대 반복수)까지 2) 와 3) 을 반복한다.

※ 군집의 수(k)는 미리 정해 주어야 하나, 서로 멀리 떨어져 있는 것이 바람직하다.

 

DBSCAN

K-Means 방법과 같이 비지도학습 모델이며 노이즈 및 아웃라이어 데이터 식별에 강한 군집 모델이다. 밀도 기반의 클러스터링 알고리즘이다. 일정한 밀도를 가지는 데이터의 무리가 거리의 개념과는 관계없이 같은 클러스터로 간주한다.

 

밀도 기반 클러스터 알고리즘

 

출처 : bcho.tistory.com/1205


지도학습과 비지도학습의 가장 큰 차이점은 레이블을 제공하는 것인데, 레이블을 제공하는 방법이 지도학습이고, 제공하지 않는 방법이 비지도학습이다. 레이블이란 실물이나 사진 속 사물을 미리 정의한 것을 말하는데 레이블은 사람이 사물이나 사진을 보고 정의한 것이기 때문에 레이블된 사진을 읽어서 학습하는 컴퓨터 입장에서는 사람으로부터 지도를 받은 것이 된다. 반면 입력데이터에 레이블이 없다면 컴퓨터가 사람으로부터 지도 받은 것이 없기 때문에 비지도학습이라 한다. 지도학습에는 분류, 회귀, 강화 모델이 있고, 비지도학습에는 군집모델이 있다.

 

 

참고문헌

-Microsoft Azure Machine Learning Studio를 활용한 머신러닝 시작하기

'AI' 카테고리의 다른 글

(4) 인공신경망의 종류  (0) 2020.10.13
(3) 딥러닝  (0) 2020.10.13
(1) 인공지능  (2) 2020.10.12

댓글