머신러닝은 데이터를 주어지면 학습을 한다고 했는데, 이 학습의 종류에 따라 다시 3가지로 나눠진다
정답이 있는 입력 데이터(라벨링된 데이터)들을 주고 학습을 시켜 원하는 답을 추론하도록하는 방식을 말한다
그럼 왜 지도(Supervisor)라고 할까?
자, A에 대한 정답은 B야. 그럼 A'는 뭘까? 라는 식으로 정답을 가르쳐주고(지도) 학습을 시키기에 지도 학습이라고 한다
지도학습의 종류에는 다음과 같이 2가지가 있다
지도 학습과는 반대로, 정답이 없는 데이터들을 주고 학습시키는 방식을 말한다
즉, 그냥 데이터들을 주고 알아서 결과값을 내라는 방식인 것이다
이는 위의 두 경우처럼 입력이 있고 결과가 나오는 것과는 달리,
임의의 주어진 환경속에서 행동의 결과 보상이 높은 쪽으로 고쳐나가며 학습하는 방법이다
이 경우는 예시를 보면서 알아보자
대표 예시로는 한창 떠들썩했던 알파고가 있겠다. 학습방법은 이러하다
방법 숙지 -> 환경 관찰 -> 행동 -> 보상이 주어짐 -> 보상을 토대로 학습
먼저 컴퓨터가 어떻게 바둑을 두는지 모르기에 이를 그간의 바둑 대결 기보를 알려주고 학습시킨다
바둑의 규칙과 기술 등 다양한 부분을 익히게 된다
이 과정은 그저 방법을 알려주는 것으로 "강화 학습"은 아니다
방법을 모두 숙지했다면 주어진 환경이 어떤지를 파악한다
바둑판의 현재 상태를 분석한다고 보면 될 것 같다
파악한 환경을 바탕으로 가장 최적이라고 생각하는 행동을 한다
이 행동을 통해 바둑판이라는 환경은 다시 변하게 된다
행동을 통해 새로운 환경으로 바뀌었고, 이것이 가치가 있는 행동이었는지를 보상을 준다
지금 상황은 환경 E에서 A라는 행동을 하고 환경 E'로 바뀐 셈이다. 그리고 보상 R이 주어졌다
이것을 하나의 데이터로 보고 이를 토대로 학습을 한다
이 과정을 계속 반복하며 스스로 학습을 해나간다
나머지는 모두 대략 아는 내용이었으나 강화학습은 조금 생소한 부분이었다
나중에 따로 다뤄보기로 하고, 과연 머신러닝 개발은 어떻게 진행되는지에 대해 알아보자
강의
코드잇(https://www.codeit.kr)
지도 / 비지도 학습
https://velog.io/@abrahamkim98/Machine-Learning
https://modulabs.co.kr/blog/machine-learning/
https://thebook.io/080260/0093/
https://m.blog.naver.com/skyjjw79/222477980322
https://www.appier.com/ko-kr/blog/a-simple-guide-to-unsupervised-learning
강화학습
https://brunch.co.kr/@namujini/22
https://m.blog.naver.com/cslee_official/222237836302
https://hiddenbeginner.github.io/rl/others/2022/09/02/what_should_i_do_with_RL.html