본문 바로가기

유니티 ML Agents

(40)
1. 개발환경 설치 아나콘다는 데이터 사이언스와 머신러닝에 필요한 다양한 파이썬과 R 관련 모듈을 모아 놓은 무료 배포 패키지이다. 파이썬을 사용해서 머신러닝을 할 때 pandas, numpy, tensorflow 등 다양한 패키지가 필요하다. 하지만 아나콘다만 설치하면 이 모든 패키지들이 기본적으로 설치되어 있기 때문이 다른 프로그램을 추가로 설치할 필요가 없다. 아나콘다 설치 아나콘다 리파지토리 페이지에 가면 다양한 아나콘다 버전을 다운로드할 수 있다. ML 에이전트를 실행하기 위해서는 호환되는 버전을 설치해야 하는데 ML 에이전트 0.5 버전과는 아나콘다 3 5.1 버전이 적합하다. 다음 사이트에서 https://repo.anaconda.com/archive/ 윈도우 64bits용 아나콘다 5.1 버전을 받아서 설치하..
5. 강화학습 강화학습이란 강화학습은 에이전트가 주어진 환경에서 누적 보상이 최대화 되도록 행동하게 하는 정책이 무엇이지 알아내는 머신 러닝의 분야이다. 강화학습에서 에이전트란 환경에서 행동하는 주체이다. 아기가 걸음마하는 문제를 풀어야 하는 환경에서는 아기가 에이전트가 된다. 보상(Reword)이란 에이전트가 좋은 행동을 했는지 나쁜 행동을 했는지 알려주는 정보이다. 강화학습에서 에이전트가 좋은 행동을 한다면 플러스 보상이 주어지고 나쁜 행동을 한다면 마이너스 보상이 주어진다. 좋은 행동이란 목표에 도달하는데 도움을 주는 행동이고 나쁜 행동이란 반대로 목표에 도달하는데 방해가 되는 행동이다. 강화학습에서 정책(Policy)이란 행동을 결정하는 기준이다. 좋은 정책을 만들어야 좋은 행동을 하고 보상을 많이 받을 수 있..
4. 딥러닝 뉴런(신경 세포)은 신경계를 구성하는 세포이다. 신경 세포는 전기적인 신호를 다른 신경 세포와 주고 받으며 정보를 유통하고 저장하는 역할을 한다. 인간의 뇌는 수천억 개의 뉴런으로 구성되어 있으며 뉴런을 통해 기억하고 판단하고 감정을 느끼게 된다. 뉴런은 다양한 요소로 구성되어 있지만 인공신경망을 구성하기 위해 필요한 요소에 대해서만 알아보도록 하자. 뉴런(출처 : https://ko.wikipedia.org/wiki/신경_세포) 인공신경망 관점에서 뉴런은 가지돌기, 축삭, 축삭말단으로 구성된다. 가지돌기는 다른 뉴런으로부터 정보를 받아들여 축삭으로 정보를 전달하는 역할을 한다. 축삭은 여러 개가 체인처럼 연결되어 있다. 가지돌기에서 받아들인 정보는 여러 개의 축삭을 거치면서 신호가 작아지거나 커지고 때..
3. 분류(Classification) 분석 두 종류의 데이터를 분류하는 이진 분류 분석에 대해 알아보자. 분류 분석 또한 지도학습의 한 종류이며 가장 간단한 이차원 (X, Y) 데이터를 살펴보자. 그래프 상단에는 X가 여러 개 있고 하단에는 여러 개의 O가 있다. 알려진 X와 O를 학습해서 알려지지 않은 데이터가 왔을 때 어디에 속하는지 아는 것이 이진 분류의 목적이다. 먼저 X와 O의 경계를 구분 짓는 1차 선형 함수를 알아내야 한다. Y = W*X + b를 만족하는 W와 b를 찾아내는 것이다. 앞에서 공부한 선형 회귀 개념과 유사한 기법을 적용하면 된다. 1차 선형 함수를 알아 내는 것은 어려운 일이 아니다. 분류분석 문제는 1차 선형 함수를 어떻게 이진 분류에 적용 하나냐 이다. 여기에 새롭게 등장하는 개념이 활성 함수(Activation ..
2. 선형 회귀(Linear Regression) 분석 머신 러닝의 개념을 이해하기 위해 가장 간단한 1차원 선형 회귀 분석에 대해 알아보자. 선형 회귀 분석은 지도 학습의 일종으로 예측 모델을 만들어 알려지지 않은 데이터가 들어왔을 때 결과를 예측하는 기술이다. 선형회귀분석 그림에서 학습 데이터는 2차원(x, y) 데이터로 구성되어 있다. 목적은 학습 데이터에 없는 x 값이 들어왔을 때 y 값을 예측하는 모델을 만드는 것이다. 데이터가 완전한 일차원 선형 분포를 가지고 있지는 않지만 1차 방정식을 알아내면 오차는 있지만 대략적인 y 값을 알 수 있다. 비용함수 그림에서 알 수 있듯이 모델은 1차 방정식이 되며 계수 W와 b값이 무엇인지 만 알면 된다. 머신 러닝에서는 W를 가중치(Weight) b를 편향(bias)라 부른다. 1차원 선형 회귀분석의 목적은 ..
1. 머신러닝 머신 러닝(Machine Learning)은 명시적인 프로그래밍 없이 스스로 학습하고 성능을 지속적으로 개선하는 인공지능 기술이다. 머신 러닝 알고리즘은 특정 분야에 대해 수학 모델을 수립하고 데이터를 학습함으로써 수학 모델을 완성하여 결과를 예측하거나 의사결정을 한다. 머신러닝 개념 머신 러닝 기술은 비지도 학습, 지도 학습 그리고 강화 학습으로 구성된다. 비지도 학습은 데이터의 특성을 중심으로 유사한 특성끼리 데이터를 묶는 기술이다. 비지도 학습에서는 학습 목표에 대해 기준이 되는 데이터가 없다. 예를 들어 고객 구매 데이터를 바탕으로 고객 등급을 분류할 때 비지도 학습을 사용하면 유사한 구매 패턴을 가진 고객 등급을 찾아낼 수 있다. 어떤 고객이 우량 고객이고 어떤 고객이 비우량 고객인 지에 대한 ..
13. ML Agents 기본 예제 - Ball3D 스크립트 호출구조 분석 Ball3D 호출 구조 ML 에이전트의 이해를 돕기 위해 스크립트 호출 구조를 분석해 보자. 주요 스크립트는 ML 에이전트에 내장된 클래스에 모두 코딩되어 있다. Academy, Agent, Brain 클래스를 살펴보는 것이 좋다. Ball3DAcademy 클래스는 Academy 클래스를 상속받아 구현되는데 Academy를 선택하고 F12 버튼을 누르면 클래스를 스크립트 에디터에서 살펴볼 수 있다. 앞에서 언급했듯이 아카데미는 에이전트와 브레인을 제어하는 역할을 한다. 이 것을 Academy 클래스의 EnvironmentStep 함수 내부에서 Agent와 Brain 클래스에 선언된 함수를 차례대로 호출하면서 동작을 제어한다. (1) AgentSetStatus 함수는 Agent 클래스의 SetStatus ..
12. ML Agents 기본 예제 - Ball3DAgent 분석 Ball3DAgent 3DBalls에서는 에이전트로 Platform을 사용했다. 계층 뷰에서 Gamexx 오브젝트 아래에 묶여있는 것을 볼 수 있다. 에이전트 에서 가장 유심히 봐야할 것은 Agent 컴포넌트이다. Brain속성은 은 에이전트에서 사용하는 브레인을 지정한다. 현재 Ball3DBrain 객체를 사용하도록 지정되어 있다. Agent Cameras 속성은 에이전트에 카메라를 설치해서 이미지를 입력으로 처리할 수 있는 기능을 지원한다. 현재는 Vector Observation을 사용하기 때문에 카메라를 추가하지 않는다. Max Step은 학습을 진행할 횟수를 지정한다. 5000이 지정되어 있어 5000회 학습을 진행해야 하지만 Academy에서 Max Step이 0으로 지정되어 있기 때문에 상위..