들어가기 전
들어가기 전 머신러닝에 대해 제일 기초적인 이론에 대해 우선적으로 짚고 넘어가보자.
머신러닝이란 무엇일까 ?
단어를 통해 유추 할 수 있듯이, "데이터를 이용하여 Machine(기계)를 Learning(학습)시키는 기법" 이라 정의할 수 있다.
즉 어떤 데이터를 주고 컴퓨터가 스스로 규칙이나 패턴을 찾아내도록 하는 것이고, 이 때 포인트는 "스스로" 찾는다는 점이다.

그럼 어떻게 학습을 시켜야 하는가?
학습 방법에는 3가지로 나눠지게 되는데, 지도 학습, 비지도 학습, 강화학습으로 나눠진다.
이 3가지 학습 방법에 대해 알아보자.
지도 학습
지도학습은 머신러닝에서 가장 전통적인 기법으로 입력(문제)와 출력(정답)을 쌍으로 묶은 데이터가 주어진다.

다음 그림을 볼 때 Input Image로 포도를 넣어주고 이에 대한 정답으로 "포도"라는 답을 쌍으로 넣어주고 있다.
컴퓨터는 이에 대하여 포도 이미지에 대한 입력을 "포도" 라는 글자로 변환하는 방법을 학습하는 기법이다.
비지도 학습
비지도 학습은 지도 학습과 다르게 정답이 따로 주어지지 않고 입력(문제)만 주어지게 된다.

그래서 다음 예시와 같이 사과의 이미지를 보고 "사과"라는 결과를 출력하는 것이 불가능하다. (정답을 모르기 때문에)
그럼, 이러한 비지도 학습은 어디에 사용할 수 있을까?
비지도 학습은 주로 데이터 속에 숨어 있는 구조나 패턴을 파악하는데 용도로 사용되며, 클러스터링, 특성 추출, 차원 축소 등을 예로 들 수 있다.
강화 학습
"책의 메인이다" 라고 할 정도로 중요한 강화학습에 대해 알아보자.
강화 학습의 목표는 에이전트가 얻는 보상의 총합을 극대화 하는 행동 패턴을 익히는 것이다. 이를 인지하고 강화학습의 흐름에 대해 알아보자.

강화학습은 위의 그림과 같이 에이전트와 환경이 서로 상호작용한다.
쉽게 생각하면 위의 그림과 같이 에이전트는 마리오, 환경은 플레이 할 때의 맵이라고 생각하면 이해하기 쉽다.
에이전트는 어떤 환경의 놓여져, 환경의 상태(State)를 관찰하고, 상태에 적합한 행동(Action)을 취하고, 행동을 취한 결과로 환경의 상태가 변화한다. 그리고 에이전트는 환경으로부터 보상(Reward)을 받음과 동시에 변화 된 새로운 상태를 관찰하게 된다.
예를 들어 설명한다면, 로봇이 존재하고, 인간과 유사한 보행에 대해 강화학습을 하고자 한다.
로봇은 앞으로 나아가야 한다는 사실을 인지하고 있으며, 이에 대하여 로봇은 앞으로 나아갈 것이다.
이 때 팔을 안흔들며 걸을 수도, 보폭을 심하게 넓게 혹은, 좁게 걷는 등의 경험을 하고 이에 대한 피드백(Reward)를 통해 점진적으로 어떻게 하면 넘어지지 않고 자연스럽게 걸을 수 있는가에 대해 학습하게 된다.
즉, 스스로 시행착오를 겪으며 데이터를 수집하고, 수빚된 데이터를 바탕으로 더 나은 행동의 패턴을 익혀나가는 것이다.
마무리
머신러닝을 배울 떄 제일 기초적인 부분인 세가지 학습방법(지도 학습, 비지도 학습, 강화 학습)에 대해 배워봤다.
본 전공(기계공학)을 준비하면서 로봇에 대한 분야에도 관심이 많았기 때문에 여기까진 읽기가 매우 수월 했다.
사실 뒤의 내용에서 밴디트(슬롯 머신) 문제와 강화 학습에 대해 내용이 나오지만, 포스팅으로 정리하기엔 너무 많은 양과, 저작권으로 인해.. 쉽게 구할 수 있는 부분만 따로 포스팅한다
