본문 바로가기

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

1. 머신러닝

머신 러닝(Machine Learning)은 명시적인 프로그래밍 없이 스스로 학습하고 성능을 지속적으로 개선하는 인공지능 기술이다. 머신 러닝 알고리즘은 특정 분야에 대해 수학 모델을 수립하고 데이터를 학습함으로써 수학 모델을 완성하여 결과를 예측하거나 의사결정을 한다.


머신러닝 개념


머신 러닝 기술은 비지도 학습, 지도 학습 그리고 강화 학습으로 구성된다.


비지도 학습은 데이터의 특성을 중심으로 유사한 특성끼리 데이터를 묶는 기술이다. 비지도 학습에서는 학습 목표에 대해 기준이 되는 데이터가 없다. 예를 들어 고객 구매 데이터를 바탕으로 고객 등급을 분류할 때 비지도 학습을 사용하면 유사한 구매 패턴을 가진 고객 등급을 찾아낼 수 있다. 어떤 고객이 우량 고객이고 어떤 고객이 비우량 고객인 지에 대한 데이터는 없으므로 분류된 고객 특성을 다시 분석해서 우량 고객 군과 비우량 고객 군으로 분류해야 한다. 즉 비지도 학습으로 1차 분류하고 비즈니스 전문가가 분류에 대해 2차 평가를 한다.


비지도 학습에 사용되는 대표적인 알고리즘으로 케이 평균(k-means) 알고리즘이 있다. k는 분류할 그룹의 개수이며 k 5일 경우 고객을 5등급으로 분류한다. 임의로 설정한 그룹의 중심(k)과 각 구성원과의 평균 거리가 가장 가까워질 때까지 그룹의 중심을 이동하고 구성원을 지속적으로 변경하면서 그룹을 분류한다.


지도 학습은 결과(목표)가 명확한 데이터를 학습해서 수학 모델을 완성하고 새로운 데이터가 들어올 때 결과를 예측하는 기술이다. 예를 들어 주가를 예측하는 모델을 만든다고 가정하다. 학습에 필요한 데이터는 일자 별로 주가에 영향을 미치는 요소와 일자 별 주가이다. 여기에서 학습의 목표는 주가에 영향을 미치는 요소가 주어졌을 때 알려지지 않는 날짜의 주가를 예측하는 것이다. 학습에 대한 명확한 목표(일자 별 주가)가 주어졌기 때문에 지도 학습이라 한다. 데이터를 학습해서 예측 모델을 완성했다면 기본 데이터를 입력해서 다음 날 주가를 예측할 수 있다.


그림을 보고 개인지 고양인지 알아 맞추는 모델을 만들고자 한다면 학습할 때 개인지 고양이인지 표시된 수 백만 장의 사진을 입력해야 한다. 그리고 모델이 완성되면 임의의 사진을 입력했을 때 개인지 고양이인지 스스로 분류할 수 있다.

강화 학습은 지도 학습이나 비지도 학습과는 개념이 조금 다르다. 강화 학습은 에이전트의 행동과 상태에 따른 보상을 가지고 학습한다.


아기가 걸음마를 배우는 것을 살펴보자. 아기는 어떻게 하면 잘 걸을 수 있는지 누구한테 배우지 않는다. 왼쪽 다리에 힘을 주고 오른쪽으로 일어섰을 때 넘어져서 많이 아팠다면 다음에는 오른쪽 다리에 힘을 주고 왼쪽으로 일어나려고 할 것이다. 일어서서 두 발로 섰을 때 부모님이 칭찬도 해 주고 자신이 보는 시야도 넓어 진다. 이것이 제대로 일어섰을 때 받을 수 있는 보상이다. 다시 일어나려고 했을 때 한 번에 쉽게 일어날 수 없지만 일어났을 때의 성취감을 생각하면서 처음보다는 조금 더 쉽게 일어날 수 있다.


그리고 걸을 때도 마찬가지이다. 왼쪽 발을 들고 오른쪽 다리에 힘을 뺐을 때 넘어져서 아팠다면 다음에는 왼쪽 발을 들었을 때 오른쪽 다름에 힘을 줄 것이다. 아기가 원하는 것은 아프지 않고 목적지까지 빨리 가는 것이다. 아기는 넘어지고 아프고 깨지고 칭찬받으면서 걸음마를 배운다.


강화 학습은 이 과정을 수학적으로 모델링한 것이다. 가장 기본적인 개념이 MDP(Markov Decision Process)이다. 강화 학습은 MDP에 기초하여 이론이 발전했으며 강화 학습을 이해하기 위해서는 MDP를 반드시 이해해야 한다. 강화 학습과 MDP에 대해서는 조금 뒤에서 자세히 다루도록 한다.


이 책이 목적은 강화학습에 대해 이해하는 것이므로 강화학습과 관련이 있는 지도학습에 대해 중점적으로 다루고 비지도 학습에 대한 설명은 생략하도록 한다


'유니티 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

태그