강화학습이란?

강화학습의 기본 개념, 동작원리, 뭘하고 싶은건지 등등

--2017.02.18(토) 정리

참고문서 출처 :

https://ko.wikipedia.org/wiki/강화\_학습

www.slideshare.net/JinwonLee9/ss-70446412?qid=c9912c12-808f-4400-93f1-51bac6059a5a&v=&b=&from_search=1

먼저 강화학습이란 인간의 학습능력을 컴퓨터에 구현하고자 하는 시도인 기계학습(Machime Learning) 의 구현 방식중 하나이다.

Machine Learning을 구현하는 방법은 신경망(Neural Network), 데이터 마이닝(Data Mining), 의사결정 트리(Decision Tree), 유전알고리즘(Genetic Algorithm), 사례기반 추론(Case Based Reasoning), 패턴 인식(Pattern Recognition), 강화 학습(Reinforcement learning) 등이 포함된다. Machine learning은 경험을 통해서 자동적으로 컴퓨터 알고리즘을 발전시키는 것에 관한 연구로서, 엄청난 데이터에서 일반적인 규칙을 발견하는 데이터마이닝 프로그램에서부터, 자동적으로 사용자의 관심사항을 배우게 되는 정보 filtering system까지 그 응용은 광범위하다.

[네이버 지식백과] Machine Learning - 기계 학습 (지형 공간정보체계 용어사전, 2016. 1. 3., 구미서관)

이 기계학습의 방법은 다시 3가지로 나뉘어진다.

  • 지도 학습(Supervised Learning) : 사람이교사로써 각각의 입력(x)에 대해 레이블(y)을 달아놓은 데이터를 컴퓨터한테 주면 컴퓨터가 그것을 학습하는 것이다. 사람이 직접 개입하므로 정확도가 높은 데이터를 사용할 수 있다는 장점이 있다. 대신에 사람이 직접 레이블을 달아야 하므로 인건비 문제가 있고, 구할 수 있는 데이터양도 적다는 문제가 있다. 크게 분류(Classification)과 회귀(Regression) 으로 나눌 수 있다.

    • 분류(Classification): 레이블 y가 이산적(Discrete) 인 경우 즉, y가 가질 수 있는 값이 [0,1,2 ..]와 같이 유한한 경우 분류, 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며, 연구가 많이 되어있고, 기업들이 가장 관심을 가지는 문제 중 하나다. 아래와 같은 예시가 있다.
      • 주차게이트에서 번호판 인식: 요새 주차장들은 티켓을 뽑지 않고, 차량 번호판을 찍어서 글자를 인식한다. x가 이미지 픽셀 값들이고, y가 글자인 경우.
      • 페이스북이나 구글 포토의 얼굴 인식: 페이스북에 사진을 올리면 친구 얼굴 위에 이름이 자동으로 달리고는 하는데, 이것 역시 기계학습을 이용한 것. x가 이미지 픽셀, y가 사람 이름인 경우.
      • 음성 인식: 음성 wav 파일에 대해서 해당 wav 부분이 어떤 음절인지를 인식하는 것. 애플 시리, 구글 보이스 등에서 사용된다(질문에 대해서 답해주는 부분 말고, 인식 부분만). x가 음성 파형, y가 음절.
    • 회귀(Regression): 레이블 y가 실수인 경우 회귀문제라고 부른다. 보통 엑셀에서 그래프 그릴 때 많이 접하는 바로 그것이다. 데이터들을 쭉 뿌려놓고 이것을 가장 잘 설명하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀기능을 사용한다. 잘 생각해보면 데이터는 입력(x)와 실수 레이블(y)의 짝으로 이루어져있고, 새로운 임의의 입력(x)에 대해 y를 맞추는 것이 바로 직선 혹은 곡선이므로 기계학습 문제가 맞다.
  • 비지도 학습(Unsupervised Learning) : 사람 없이 컴퓨터가 스스로 레이블 되어 있지 않은 데이터에 대해 학습하는 것. 즉 y없이 x만 이용해서 학습하는 것이다. 정답이 없는 문제를 푸는 것이므로 학습이 맞게 됐는지 확인할 길은 없지만, 인터넷에 있는 거의 모든 데이터가 레이블이 없는 형태로 있으므로 앞으로 기계학습이 나아갈 방향으로 설정되어 있기도 하다. 군집화(Clustering)이 대표적인 예다.

    • 군집화(Clustering): 데이터가 쭉 뿌려져 있을 때 레이블이 없다고 해도 데이터간 거리에 따라 대충 두 세개의 군집으로 나눌 수 있다. 이렇게 x만 가지고 군집을 학습하는 것이 군집화이다.
    • 분포 추정(Underlying Probability Density Estimation): 군집화에서 더 나아가서, 데이터들이 쭉 뿌려져 있을 때 얘네들이 어떤 확률 분포에서 나온 샘플들인지 추정하는 문제이다.
  • 강화 학습(Reinforcement Learning) : 위의 두 문제의 분류는 지도의 여부에 따른 것이었는데, 강화학습은 조금 다르다. 강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다. 그리고 이러한 보상은 행동을 취한 즉시 주어지지 않을 수도 있다(지연된 보상). 이 때문에 문제의 난이도가 앞의 두개에 비해 대폭 상승한다. 대표적으로 게임 인공지능을 만드는 것을 생각해볼 수 있다. 체스에서 현재 나와 적의 말의 배치가 State가 되고 여기서 어떤 말을 어떻게 움직일지가 Action이 된다. 상대 말을 잡게 되면 보상이 주어지는데, 상대 말이 멀리 떨어져 이동할 때 까지의 시간이 필요할 수 있으므로, 상대 말을 잡는 보상은 당장 주어지지 않는 경우도 생길 수 있다 (지연된 보상). 따라서 강화학습에서는 당장의 보상값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상값의 총 합이 최대화되도록 Action을 선택해야 하며, 게다가 행동하는 플레이어는 어떤 행동을 해야 저 보상값의 합이 최대화되는지 모르기 때문에, 미래를 고려하면서 가장 좋은 선택이 뭔지 Action을 여러 방식으로 수행하며 고민해야 한다. 좋은 선택이 뭔지 Action을 찾는 것을 탐색, 지금까지 나온 지식을 기반으로 가장 좋은 Action을 찾아 그것을 수행하는 것을 활용한다고 하여, 강화학습을 푸는 알고리즘은 이 둘 사이의 균형을 어떻게 잡아야 할지에 초점을 맞춘다. 위 방법들과는 다르게 실시간으로 학습을 진행하는게 일반적이다.

인공지능의 한방법인 기계학습을 크게 보면 3가지 종류로 나뉘어지고 그 중 하나가 강화학습(Reinforcement Learning)이다.

기계학습의 학습방법으로는 1. 지도학습(Supervised Learning) 2. 비지도학습(Unsupervised Learning) 3. 강화학습(Reinforcement Learning) 이 있다.

강화학습과의 차이점을 비교하기 위해 지도학습과 비지도학습에 대해서도 간략히 기술하자면 ,

지도학습은 어떤 데이터를 분류하기 위해 사람이 분류를 해주는것에 따라

results matching ""

    No results matching ""