본문 바로가기

유니티 ML Agents/머신러닝과 강화학습 기초

3. 분류(Classification) 분석

두 종류의 데이터를 분류하는 이진 분류 분석에 대해 알아보자. 분류 분석 또한 지도학습의 한 종류이며 가장 간단한 이차원 (X, Y) 데이터를 살펴보자. 그래프 상단에는 X가 여러 개 있고 하단에는 여러 개의 O가 있다. 알려진 X O를 학습해서 알려지지 않은 데이터가 왔을 때 어디에 속하는지 아는 것이 이진 분류의 목적이다.


먼저 X O의 경계를 구분 짓는 1차 선형 함수를 알아내야 한다. Y = W*X + b를 만족하는 W b를 찾아내는 것이다. 앞에서 공부한 선형 회귀 개념과 유사한 기법을 적용하면 된다. 1차 선형 함수를 알아 내는 것은 어려운 일이 아니다.


분류분석


문제는 1차 선형 함수를 어떻게 이진 분류에 적용 하나냐 이다. 여기에 새롭게 등장하는 개념이 활성 함수(Activation Function)이다. 대표적인 활성 함수가 시그모이드(Sigmoid) 함수이다. 시그모이드 함수는 어려운 개념이 아니라 입력된 데이터를 일정 기준에 따라 0 1로 표현해주는 단순한 함수이다. 선형 데이터를 비선형 데이터를 만들어주는 특성이 있기 때문에 머신 러닝에서 다양한 방식으로 많이 사용된다. 여기에서는 y(알고 있는) 값이 x값을 1차 선형 함수에 넣어 계산된 y^ 보다 크면 1로 작으면 0으로 변환하는 역할을 한다.


선형(Linear)과 비선형(Non Linear)의 차이

데이터가 선형적이란 얘기는 직선에 가까운 분포를 가지고 있다는 의미이다. 선형 데이터는 상대적으로 예측하기 쉽다. 데이터가 비선형일 때는 데이터의 분포가 직선의 형태가 아니다. 곡선이거나 극단적 값에 수렴하는 형태를 가지고 있다. 비선형 데이터는 선형 데이터와 다르게 예측하기 힘들다. 머신 러닝에서 다루는 대부분의 데이터는 비선형적이다. 따라서 1차적으로 선형 함수로 계산하고 데이터의 특징을 보다 구체적으로 표현하기 위해 활성 함수를 사용해 비선형 성을 추가한다.


머신러닝을 처음 접할 때 다양한 수학식을 마주하고 당황하게 된다. 하지만 프로그래머 입장에서 머신러닝을 통해 알고자 하는 것은 기본적인 동작 원리와 사용법이다. 프로그래머에게 필요한 지식은 사칙 연산, 로그 그리고 행렬 연산 정도만 알면 기본적 개념을 이해하는 데는 무리가 없다. 지금은 수학 식을 보지 말고 수학 식이 표현하는 그래프의 형태를 살펴보는 것이 좋다


이진 분류 함수


따라서 이진 분류 함수를 수학적으로 표현하면 위와 같다. 활성 함수로는 시그모이드 함수 외에 렐루(ReLU), 쌍곡탄젠트(tanh) 함수가 사용된다. 분류 분석에 나온 개념들은 앞으로 나올 인공신경망을 이해하는데 기본이 된다. 머신러닝과 딥러닝을 너무 어렵게 접근하지 말고 쉬운 개념부터 차근차근 공부하면 쉽게 정복할 수 있다.


'유니티 ML Agents > 머신러닝과 강화학습 기초' 카테고리의 다른 글

5. 강화학습  (0) 2019.02.26
4. 딥러닝  (0) 2019.02.26
3. 분류(Classification) 분석  (0) 2019.02.26
2. 선형 회귀(Linear Regression) 분석  (0) 2019.02.26
1. 머신러닝  (0) 2019.02.26