RL Researcher

Background-Machine_Learning 본문

Reinfrocement Learning/Unity-ML

Background-Machine_Learning

Lass_os 2021. 2. 13. 20:12

Website : github.com/Unity-Technologies

1. Background : Machine Learning


ML-Agents Toolkit의 많은 사용자가 공식적인 기곗 학습 배경이 없을 수 있다는 점을 감안할 때 이 페이지에서는 ML-Agents Toolkit을 쉽게 이해할 수 있도록 개요를 제공합니다. 그러나 온라인에 환상적인 리소스가 있으므로 기계 학습에 대한 철저한 처리를 제공하지 않을 것입니다.

인공지능의 한 분야인 ML은 데이터에서 학습 패턴에 중점을 둡니다. ML Algorithm의 세가지 주요 클래스는 Unsupervised Learning, Supervised Learning, Reinforcement Learning입니다. Algorithm의 각 클래스는 다른 유형의 데이터에서 학습합니다.

2. Unsupervised Learning


Unsupervised Learning의 목표 데이터 세트에서 유사한 항목을 그룹화하거나 클러스터링하는 것입니다. 예를 들어, 게임의 플레이어를 고려하십시오. 게임에 참여하는 정도에 따라 플레이어를 그룹화 할 수 있습니다. 이를 통해 다양한 그룹을 타겟팅 할 수 있습니다 (예 : 참여도가 높은 플레이어의 경우 새로운 기능에 대한 베타 테스터로 초대 할 수 있고 참여하지 않은 플레이어의 경우 유용한 자습서를 이메일로 보낼 수 있음). 플레이어를 두 그룹으로 나누고 싶다고 가정 해 보겠습니다. 먼저 플레이 시간, 인앱 구매에 지출 한 총 돈, 완료 한 레벨 수와 같은 플레이어의 기본 속성을 정의합니다. 그런 다음이 데이터 세트 (모든 플레이어에 대한 세 가지 속성)를 그룹 수를 2로 지정하는 비지도 학습 알고리즘에 제공 할 수 있습니다. 그런 다음 알고리즘은 플레이어 데이터 세트를 두 그룹으로 분할하여 각 그룹 내의 플레이어가 서로 유사합니다. 이 경우 각 플레이어를 설명하는 데 사용한 속성이 주어지면 출력은 모든 플레이어를 두 그룹으로 분할하는 것입니다. 여기서 한 그룹은 참여한 플레이어를 의미 론적으로 나타내고 두 번째 그룹은 참여하지 않은 플레이어를 의미론적으로 나타냅니다.

Unsupervised Learning을 통해 우리는 어떤 플레이어가 참여한 것으로 간주되고 참여하지 않은 것으로 간주되는 구체적인 예를 제공하지 않았습니다. 우리는 적절한 속성을 정의하고 알고리즘에 의존하여 자체적으로 두 그룹을 발견했습니다. 이러한 유형의 데이터 세트는 이러한 직접 레이블이 없기 때문에 일반적으로 레이블이없는 데이터 세트라고합니다. 결과적으로 비지도 학습은 이러한 라벨이 비싸거나 생산하기 어려울 수있는 상황에서 유용 할 수 있습니다. 다음 단락에서는 속성 외에도 입력 레이블을 허용하는지도 학습 알고리즘을 개괄합니다.

3. Supervised Learning


Supervised Learning에서는 유사한 항목을 그룹화하는 것이 아니라 각 항목에서 해당 항목이 속한 그룹 (또는 클래스)으로의 매핑을 직접 학습합니다. 플레이어 클러스터링의 이전 예제로 돌아가서, 이제 우리 플레이어 중 누가 이탈 할 것인지 예측하려고한다고 가정 해 보겠습니다 (즉, 향후 30 일 동안 게임 플레이를 중지 함). 우리는 과거 기록을 조사하고 플레이어가 이탈했는지 여부를 나타내는 레이블 외에도 플레이어의 속성을 포함하는 데이터 세트를 만들 수 있습니다. 이탈 예측 작업에 사용하는 플레이어 속성은 이전 클러스터링 작업에 사용한 속성과 다를 수 있습니다. 그런 다음이 데이터 세트 (속성각 플레이어에 대한 레이블)을 플레이어 속성에서 해당 플레이어가 이탈할지 여부를 나타내는 레이블로 매핑하는지도 학습 알고리즘으로 변환합니다. 직관은지도 학습 알고리즘이 이러한 속성의 어떤 값이 일반적으로 이탈 한 플레이어와 이탈하지 않은 플레이어에 해당하는지 학습한다는 것입니다 (예를 들어, 아주 적게 지출하고 매우 짧은 기간 동안 플레이하는 플레이어는 이탈 가능성이 가장 높다는 것을 학습 할 수 있음). 이제이 학습 된 모델이 주어지면 새 플레이어 (최근에 게임을 시작한 플레이어)의 속성을 제공 할 수 있으며 예측 된해당 플레이어의 레이블입니다. 이 예측은 플레이어가 이탈할지 여부에 대한 알고리즘 예상입니다. 이제 이러한 예측을 사용하여 이탈 할 것으로 예상되는 플레이어를 타겟팅하고 게임을 계속하도록 유도 할 수 있습니다.

아시다시피지도 학습과 비지도 학습 모두에 대해 수행해야 할 두 가지 작업이 있습니다. 속성 선택과 모델 선택입니다. 속성 선택 (기능 선택이라고도 함)은 관심있는 엔티티 (이 경우 플레이어)를 표현하는 방법을 선택하는 것과 관련이 있습니다. 반면 모델 선택은 작업을 잘 수행하는 알고리즘 (및 해당 매개 변수)을 선택하는 것과 관련이 있습니다. 이 두 작업은 모두 기계 학습 연구의 활성 영역이며 실제로 우수한 성능을 달성하려면 여러 번의 반복이 필요합니다.

4. Reinforcement Learning


Reinforcement Learning은 일반적으로 로봇 제어와 관련된 순차적 의사 결정을위한 학습의 한 형태로 볼 수 있습니다 (실제로는 훨씬 더 일반적 임). 지역을 탐색하고 화재를 발견하고 무력화하는 임무를 맡은 자율 소방 로봇을 생각해보십시오. 주어진 순간에 로봇은 센서 (예 : 카메라, 열, 터치)를 통해 환경을 인식하고이 정보를 처리하고 동작을 생성합니다 (예 : 왼쪽으로 이동, 물 호스 회전, 물 켜기). 즉, 세계관 (예 : 센서 입력)과 객관적 (예 : 화재 중화)을 고려하여이 환경에서 상호 작용하는 방법에 대해 지속적으로 결정을 내립니다. 로봇을 성공적인 소방 기계로 가르치는 것은 강화 학습이 수행하도록 설계된 것입니다.

보다 구체적으로, 강화 학습의 목표 는 본질적으로 Observation 에서 Action 으로의 매핑 인 Policy를 학습하는 것 입니다. 관찰은 로봇   Environment(이 경우 모든 감각 입력)에서 측정 할 수 있는 것이며, 가장 원시적 인 형태의 동작은 로봇의 구성 (예 :베이스 위치, 위치 위치)의 변경입니다. 물 호스 및 호스가 켜져 있는지 여부).

강화 학습 과제의 마지막 남은 부분은 Reward Signal입니다. 로봇은 전반적인 보상을 극대화하는 정책을 배우도록 훈련되었습니다. 로봇을 비열한 소방 기계로 훈련 할 때 우리는 로봇이 작업을 완료하는 데 얼마나 잘하고 있는지를 나타내는 보상 (긍정적 및 부정적)을 제공합니다. 로봇은 알지 못합니다.훈련을 받기 전에 어떻게 불을 끄는 지. 불을 끌 때 큰 긍정적 인 보상을 받고 매 초마다 작은 부정적인 보상을 받기 때문에 목표를 학습합니다. 보상이 드물다는 사실 (즉, 모든 단계에서 제공되는 것은 아니지만 로봇이 성공 또는 실패 상황에 도달 할 때만 제공됨)은 강화 학습의 특징이며, 좋은 정책을 배우는 것이 어려운 이유 (및 / 또는 복잡한 환경에서는 시간이 많이 걸립니다.)

정책을 학습(blogs.unity3d.com/2017/08/22/unity-ai-reinforcement-learning-with-q-learning/)하려면 일반적으로 많은 시도와 반복적 인 정책 업데이트가 필요합니다. 보다 구체적으로 로봇은 여러 화재 상황에 배치되고 시간이 지남에 따라보다 효과적으로 화재를 진압 할 수있는 최적의 정책을 학습합니다. 분명히, 우리는 특히 화재가 관련 될 때 현실 세계에서 로봇을 반복적으로 훈련시킬 것으로 기대할 수 없습니다. 이것이 바로 Unity를 시뮬레이터로(blogs.unity3d.com/2018/01/23/designing-safer-cities-through-simulations/) 사용하는 이유입니다. 그러한 행동을 배우기위한 완벽한 훈련장 역할을합니다. 강화 학습에 대한 논의는 로봇을 중심으로 이루어졌지만 게임에서 로봇과 캐릭터 사이에는 강력한 유사점이 있습니다. 사실, 여러면에서 플레이어는 재생 불가능한 캐릭터 (NPC)를 가상 로봇으로 볼 수 있으며, 환경, 자체 행동 세트 및 특정 목표에 대한 자체 관찰이 있습니다. 따라서 강화 학습을 사용하여 Unity 내에서 행동을 훈련 할 수있는 방법을 탐색하는 것은 당연합니다. 이것이 바로 ML-Agents Toolkit이 제공하는 것입니다. 아래 링크 된 비디오에는 ML-Agents Toolkit을 사용하여 훈련 캐릭터 동작을 보여주는 강화 학습 데모가 포함되어 있습니다.

비지도 학습과지도 학습과 마찬가지로 강화 학습에는 속성 선택과 모델 선택이라는 두 가지 작업이 포함됩니다. 속성 선택은 로봇이 목표를 완료하는 데 가장 도움이되는 일련의 관찰을 정의하는 반면, 모델 선택은 정책의 형태 (관찰에서 행동으로의 매핑) 및 매개 변수를 정의합니다. 실제로 훈련 행동은 속성과 모델 선택을 변경해야 할 수있는 반복적 인 프로세스입니다.

5. Training and Inference


세 가지 기계 학습 분야의 공통적 인 측면 중 하나는 모두 학습 단계  추론 단계를 포함한다는 것 입니다. 학습 및 추론 단계의 세부 사항은 세 단계 각각에 따라 다르지만 높은 수준에서 학습 단계에는 제공된 데이터를 사용하여 모델을 구축하는 것이 포함되며 추론 단계에서는이 모델을 이전에 보지 못한 새로운 데이터에 적용하는 것이 포함됩니다. . 더 구체적으로:

  • 비지도 학습 예제의 경우, 훈련 단계는 기존 플레이어를 설명하는 데이터를 기반으로 최적의 두 클러스터를 학습하는 반면, 추론 단계에서는이 두 클러스터 중 하나에 새 플레이어를 할당합니다.
  • 지도 학습 예제의 경우 훈련 단계는 플레이어 속성에서 플레이어 라벨 (이탈 여부에 관계없이)로 매핑을 학습하고 추론 단계에서는 학습 된 매핑을 기반으로 새 플레이어가 이탈할지 여부를 예측합니다.
  • 강화 학습 예제의 경우 훈련 단계는 안내 된 시도를 통해 최적의 정책을 학습하고 추론 단계에서는 에이전트가 학습 된 정책을 사용하여 야생에서 행동을 관찰하고 이야기합니다.

간단히 요약하면 세 가지 알고리즘 클래스 모두 속성 및 모델 선택 외에도 학습 및 추론 단계가 포함됩니다. 궁극적으로 이들을 구분하는 것은 학습 할 수있는 데이터 유형입니다. 비지도 학습에서 데이터 세트는 속성 모음이었고,지도 학습에서는 데이터 세트가 속성-라벨 쌍의 모음이었고, 마지막으로 강화 학습에서 데이터 세트는 관찰-행동-보상 튜플 모음이었습니다.

6. Deep Learning


Deep Learning은 위에서 소개 한 문제를 해결하는 데 사용할 수있는 알고리즘 제품군입니다. 보다 구체적으로, 속성 및 모델 선택 작업을 모두 해결하는 데 사용할 수 있습니다. 딥 러닝은 몇 가지 까다로운 기계 학습 작업에서 뛰어난 성능을 발휘하여 최근 몇 년 동안 인기를 얻었습니다. 한 가지 예는 딥 러닝을 활용 하는 Computer Go, Program Alphago, 이세돌 (바둑 세계 챔피언)을 이길 수있었습니다.

딥 러닝 알고리즘의 주요 특징은 많은 양의 훈련 데이터에서 매우 복잡한 기능을 학습하는 능력입니다. 따라서 시뮬레이터 또는 Unity와 같은 엔진을 사용하여 대량의 데이터를 생성 할 수있는 경우 강화 학습 작업에 자연스럽게 선택됩니다. Unity 내에서 수십만 개의 환경 시뮬레이션을 생성하여 매우 복잡한 환경에 대한 정책을 학습 할 수 있습니다 (복잡한 환경은 에이전트가 감지하는 관찰 수와 취할 수있는 조치 수가 많은 환경입니다). ML-Agent에서 제공하는 많은 알고리즘은 오픈 소스 라이브러리 인 Pytorch위에 구축 된 일종의 딥 러닝을 사용 합니다.

'Reinfrocement Learning > Unity-ML' 카테고리의 다른 글

Unity ML 기초  (0) 2021.02.07
Comments