본문 바로가기

분류 전체보기

(90)
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)은 명시적인 프로그래밍 없이 스스로 학습하고 성능을 지속적으로 개선하는 인공지능 기술이다. 머신 러닝 알고리즘은 특정 분야에 대해 수학 모델을 수립하고 데이터를 학습함으로써 수학 모델을 완성하여 결과를 예측하거나 의사결정을 한다. 머신러닝 개념 머신 러닝 기술은 비지도 학습, 지도 학습 그리고 강화 학습으로 구성된다. 비지도 학습은 데이터의 특성을 중심으로 유사한 특성끼리 데이터를 묶는 기술이다. 비지도 학습에서는 학습 목표에 대해 기준이 되는 데이터가 없다. 예를 들어 고객 구매 데이터를 바탕으로 고객 등급을 분류할 때 비지도 학습을 사용하면 유사한 구매 패턴을 가진 고객 등급을 찾아낼 수 있다. 어떤 고객이 우량 고객이고 어떤 고객이 비우량 고객인 지에 대한 ..
더 괜찮은 개발자가 되기 위한 프로젝트 더보기 그 동안 블로그에 연재했던 글들이 책으로 출판됐습니다.책 이름은 "더 괜찮은 개발자가 되기 위한 프로젝트 더보기" 입니다.부제는 "내 기술에 깊이를 더하는 프로젝트의 생성과 소멸"로 지었습니다. 몇 개월 동안 출판사 분들과의 협업을 통해 내용과 구성 그리고 디자인을 많이 개선했습니다.역시 전문가의 도움과 팀웍이 혼자 하는 것보다 훨씬 좋은 결과물을 만드는 것 같습니다. 최선의 노력을 기울였지만 아직 부족한 부분이 많이 있습니다.독자 여러분의 지적과 관심부탁드리겠습니다. 감사합니다. 문의사항: multicore7419@gmail.com
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으로 지정되어 있기 때문에 상위..