★ 특정 문자가 들어간 쿼리 찾기 ★
SELECT * FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_DEFINITION LIKE '%Admin%'
ORDER BY ROUTINE_NAME;
'프로그래밍 - 서버 > MySql-DB' 카테고리의 다른 글
MySQL 백업하는 방법 (Table + 프로시저) (0) | 2018.10.01 |
---|
★ 특정 문자가 들어간 쿼리 찾기 ★
SELECT * FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_DEFINITION LIKE '%Admin%'
ORDER BY ROUTINE_NAME;
MySQL 백업하는 방법 (Table + 프로시저) (0) | 2018.10.01 |
---|
★ 개요 ★
안드로이드 블루투스 키보드 삽질을 정리하기 위함
★ 내용 ★
-1. Android Keyboard 가 블루투스 한/영 전환을 지원하지 않는다면 영어 입력이 안될수 있다
-2. 디폴트 언어를 영어로 하고 입력하면 블루투스 키보드 입력이 정상 동작한다
-3. 해외 구글에는 내용이 별로 없다. (영어 Keyboard 니까.. 하...)
★ 개요 ★
유니티 ML 모방학습에 관하여 정리하기 위함
관련 내용 : https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Training-Imitation-Learning.md
★ 내용 ★
-1. 선생님 Brain 과 학생 Brain 을 따로 만든다
-2. 선생님 Brain Type : Player, 학생 Brain Type : External 설정
-3. 선생님 Agent, 학생 Agent 를 만들고 각각 Brain 을 설정한다
-4. config/trainer_config.yaml 파일에서 모방학습을 위한 설정을 한다
- Key : Brain 이름
- trainer : imitation(모방 뜻)
- brain_to_imitate : TeacherBrain(모방 할 두뇌 입력)
-5. trainning 을 시작하고 Student Brain 이 원하는 행동을 보이면 ctrl + c 로 교육을 종료한다
Unity ML 기초 5. 유니티 ML 기능 정리, 모범적인 환경 구성, 모니터 로그 (0) | 2018.09.24 |
---|---|
Unity ML 기초 4. 강화학습 직접 만들어보기 (0) | 2018.09.24 |
Unity ML 기초 3. 강화학습 교육학습 예제 (3DBall) (0) | 2018.09.23 |
Unity ML 기초 2. ML 기본 설치부터 예제까지 (0) | 2018.09.18 |
Unity ML 기초 1. ML 개요 - ML(머신러닝) Unity (0) | 2018.09.18 |
★ 개요 ★
유니티 ML 기능을 정리하기 위함
★ 유니티 강화학습 ★
-1. 환경을 관찰하고, 적절한 보상을 통해 옳바른 행동을 하도록 강화 학습 한다
-2. 환경 관찰 : Observation 기능
-3. 보상 : 옳바른 결정을 하면 높은 보상을, 안좋은 행동을 하면 - 보상을 주어서 보상이 높은 행동을 하게 한다
-4. PPO(Proximal Policy Optimization) : ML-Agent 는 PPO 라는 강화 학습을 사용한다
(PPO 기능은 TensorFlow 에서 정의한 알고리즘을 사용하고, 별도의 Python 프로세스에서 실행된다)
★ 유니티 ML-Agent 프로세스 순서 ★
- ML-Acamemy Loop 순서 -
-1. Academy 초기화 : AcademyReset() 함수 호출
-2. Agent 초기화 : AgentReset() 함수 호출
-3. 환경 관찰 정보 수집 : 각각의 Agent의 CollectObservations() 함수 호출
-4. Brain 다음 행동 결정 : 각각의 Brain 들이 Agent 다음 행동으로 무엇을 할 것인지 결정한다
-5. AcademyStep() 함수 호출
-6. Brain 이 결정한 다음 행동 수행 : AgentAction() 함수 호출
-7. Agent 종료 체크 : AgentOnDone() 함수 호출.
(1) Agent 가 MaxStep 에 도달한 경우
(2) Agent 함수 내부에서 Done() 함수를 호출 한 경우
-8. Academy Reset : Academy 가 Max Step 에 도달한 경우 다음 episode 를 수행한다
★ ML-Agent 유니티 Scene 구조도 ★
-1. Academy : Scene 에는 오직 하나의 Academy 가 존재해야 한다
-2. Brain : Academy 자식으로 하나 이상의 Brain 이 존재해야 한다
-3. Agent : 작업을 수행하는 Agent 들이 존재한다
★ Academy ★
-1. Agent 의 의사 결정 프로세스를 조정
-2. InitializeAcademy() : Academy 초기화
-3. AcademyReset() : 다음 Training Episode 를 준비
-4. AcademyStep() : 다음 Simulation Step 을 준비
★ Brain ★
-1. Brain 은 Academy 의 자식으로 있어야 한다
-2. 모든 Agent 는 Brain 을 할당받아야 한다
-3. External : 외부 Tool 을 사용해 강화학습 모델을 만든다
-4. Internal : External 로 만든 모델을 사용하여 ML-Agent 를 수행한다
★ Agent ★
-1. 환경 정보를 수집한다
-2. 모든 Agent 는 Brain 을 할당 받아야 한다
-3. CollectObservations() : 환경 정보를 수집
-4. AgentAction() : Brain 이 결정한 행동을 수행한다
★ 모범적인 환경 구성 - 보상 ★
-1. 옳바른 행동 : 1.0 이상의 보상을 주는것이 좋다
-2. 작은 긍적 행동 보상 : 0.1 정도가 좋다
-3. 빠른 시간에 해결해야하는 문제 : 매 Frame -0.05 의 보상을 주는것이 좋다
-4. 너무 큰 부정적 보상 : 안좋은 행동으로 이어질 수 있다
★ 모범적인 환경 구성 - 벡터 관측 ★
-1. 최적의 결정을 내리는데 필요한 모든 변수를 포함해야 한다
-2. -1 ~ 1 사이의 값으로 변환하여 관찰해야 한다
-3. AgentAction 의 값들은 -1 ~ 1사이의 값들로 들어온다
★ 실시간 모니터 로그 확인 ★
-1. Academy 에 Monitor 초기화
-2. Log 찍기
- value : -1 ~ 1사이의 값으로, 빨간색 : -값, 초록색 : +값으로 표시된다
-3. 결과
Unity ML - 모방 학습 (0) | 2018.09.24 |
---|---|
Unity ML 기초 4. 강화학습 직접 만들어보기 (0) | 2018.09.24 |
Unity ML 기초 3. 강화학습 교육학습 예제 (3DBall) (0) | 2018.09.23 |
Unity ML 기초 2. ML 기본 설치부터 예제까지 (0) | 2018.09.18 |
Unity ML 기초 1. ML 개요 - ML(머신러닝) Unity (0) | 2018.09.18 |
★ 개요 ★
트레이닝 학습 AI(강화 학습 AI) 를 직접 만들어보기 위함
참고 : https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Create-New.md
★ AI 강화학습 기본 환경 세팅 순서 ★
-1. ML-Agents 가 포함된 프로젝트 생성
-2. 새로운 Scene 만들기
-3. 바닥 만들기
-4. 타겟 큐브 만들기
-5. Agent 구 만들기
-6. 빈 오브젝트로 -> Arcademy 와 Brain 만들기
(Brain 은 Arcademy 의 자식으로)
-7. Academy 클래스 상속받아 RollerAcademy GameObject 에 붙이기
(Academy 에 다른 기능은 추가하지 않아도 된다)
-8. Brain 클래스 그냥 Brain Obejct 에 붙이기
-9. RollerAgent : Agent 클래스 상솓받는 클래스 만들기
★ AI 강화학습 함수 만들기 : Agent 초기화 및 Agent Reset ★
★ AI 강화학습 함수 만들기 : 환경 관찰(Observation) ★
- 위의 관찰 Vector 의 수 8개 이므로 Brain 세팅도 8개로 해주어야 함
★ AI 강화학습 함수 만들기 : Agent Action 함수 ★
- Action -
2개의 액션 세팅
Brain Type External Action 값 : Action 함수의 Vector 값은 : -1 ~ 1사이 값으로 넘어온다
Brain Type Player Action 값 : Acton 함수의 값은 키입력에 따라 값이 넘어온다
- 코드 -
- Brain -
- 액션 -
Brain Type : Player
- Reward (보상) -
-1. 떨어질때 -
-2. 시간 지날때 -
-3. 타겟 도착시 +
- Action 총 코드 -
★ AI 테스트 ★
키보드 세팅 : Action 2개 플레이
테스트 해보기
★ AI External 강화 학습 - Brain Type : External ★
Unity ML - 모방 학습 (0) | 2018.09.24 |
---|---|
Unity ML 기초 5. 유니티 ML 기능 정리, 모범적인 환경 구성, 모니터 로그 (0) | 2018.09.24 |
Unity ML 기초 3. 강화학습 교육학습 예제 (3DBall) (0) | 2018.09.23 |
Unity ML 기초 2. ML 기본 설치부터 예제까지 (0) | 2018.09.18 |
Unity ML 기초 1. ML 개요 - ML(머신러닝) Unity (0) | 2018.09.18 |
★ 개요 ★
3DBall Scene 을 이용해 강화 학습을 공부하기 위함
★ Arcademy ★
- Training Configuration -
교육을 하는동안 사용되는 Properties 이다 (External)
- Inference Configuration -
(1) 교육을 진행하지 않을때 사용되는 Properties 이다
(2) 교육된 모델을 사용하거나(Internal), heuristic 을 사용할때
★ Brain - 뇌 ★
(1) Arcademy 의 자식으로 있어야 한다
(2) Brain 은 Agent 에 관한 어떠한 정보도 저장하지 않는다
(3) Agent 가 어떤 Action 을 할지 결정한다
- Brain Type -
External : Agent 를 Training 할때 사용된다
Internal : Training 된 모델을 사용할때 사용된다
Heuristic : 손 코딩
Player : 키보드 커맨드
- Vector Action Space -
Cotinuous
(1) 연속적으로 변할 수 있는 벡터의 수
(2) 벡터의 각 요소는 Agent Logic 에 의해 정의된다 (ex) 강화훈련에 사용된 Rigidbody 의 힘이거나 다른 것을 나타낼 수 있다
(3) Agent Logic : 강화 훈련 프로세스는 다른 값을 시도할 때 받은 보상을 기준으로 특정 상태를 관찰하여. 어떤 값이 더 나은지를 학습한다
Discrete
(1) 테이블과의 작업을 정의
(2) Agent 에 주어진 작업은 테이블에 대한 인덱스 배열이다
★ Agent ★
: 환경에서 관찰하고 행동하는 행위자이다
Brain : 모든 Agent 는 Brain 을 가지고 있어야 한다
Agent Cameras : 환경을 관찰하는 카메라를 세팅 (해당 예제에서는 사용하지 않는다)
Max Step : 에이전트가 완료하기 전까지 수행할 Step 수
Reset On Done : 에이전트가 완료될 때 다시 시작할지 여부를 정의
(ex) 해당 예제에서는 공이 떨어지거나 Agent 가 완료되면 다시 시작
★ Training thr Brain with Reinforcement Learning : 강화 학습을 통한 Brain 학습 ★
순서 1. cmd 창에서 mlagents-learn 입력
순서 2. Unity 트레이닝할 Brain Type External 설정
순서 3. cmd 창에 mlagents-learn 명령어 입력
( mlagents-learn config/trainer_config.yaml --run-id=firstRun --train )
순서 4. Unity Player 버튼 실행
★ 강화 학습 관찰 ★
(1) ml -agents 디렉토리에서 cmd 창에 tensorboard --logdir=summaries 입력
(2) 브라우저 http://DESKTOP-OR3TBRR:6006 으로 이동
Cumulative Reward : 보상 누적, 효율적인 트레이닝이라면 시간이 지날수록 상승해야한다
Entropy : 모델의 결정이 얼마나 무작위적인가. 느리게 감소하는게 좋다
Episode Length : 모든 에이전트의 테스트 길이
Learning Rate : 학습 알고리즘이 최적의 정책을 검색할 때 걸리는 크기. 시간이 지남에 따라 감소해야 한다
Policy Loss : 정책 기능의 평균 손실. 훈련 기간이 지날수록 감소해야 한다
Value Estimate : 가치 추정치로. 모든 상태를 방문한 시간이다. 훈련 기간이 지날수록 증가해야 한다
Value Loss : 값 함수 업데이트의 평균 손실. 훈련 기간이 지날수록 감소해야 한다
Unity ML - 모방 학습 (0) | 2018.09.24 |
---|---|
Unity ML 기초 5. 유니티 ML 기능 정리, 모범적인 환경 구성, 모니터 로그 (0) | 2018.09.24 |
Unity ML 기초 4. 강화학습 직접 만들어보기 (0) | 2018.09.24 |
Unity ML 기초 2. ML 기본 설치부터 예제까지 (0) | 2018.09.18 |
Unity ML 기초 1. ML 개요 - ML(머신러닝) Unity (0) | 2018.09.18 |
★ 1. ML 기본 설치 ★
-1. ML-Agents 프로젝트 다운로드(Git-Hub)
https://github.com/Unity-Technologies/ml-agents
-2. TensorFlowSharp Plugin 다운로드
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md (TensorFlowSharp Plugin)
-3. 파이썬 설치
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation-Windows.md
-4. Anaconda Prompt 에서 -> Pip install . 으로 필요한 나머지 모듈 설치
- Setup.py 파일이 있는 폴더에서 수행
-5. cmd 창에서 mlagents-learn 이 동작하면 잘 설치된 것이다
★ 2. ML Unity 설정 ★
-1. Target Platform 변경
-> PC, Mac, Lunux, IOS, Android
-2. Scripting Runtime Version to Experimatanl
-> .NET4.6 Equivalent or .NET 4.xEquivalent
-3. Dfine Symbole 추가 : ENABLE_ENSORFLOW
★ 3. Brain - Internal 체험 ★
- 미리 트레이닝 된 훈련 모델 활용하여 행동 결정
-1. 3DBall Scene 에서 Brain Type Internal 변경
-2. 트레이닝된 훈련 모델 세팅
★ 4. Brain - External 체험 ★
- 강화 훈련을 통한 트레이닝
-1. Brain Type External 세팅
- Agent 가 결정을할때 외부 트레이닝 프로세스와 통신하여 결정한다
-2. Training(트레이닝) 환경 구축
-(1) 유니티 시작
-(2) Brain Type External 변 : 경3DBall Scene 에서 Brain Type External 변경
-(3) mlagents-learn 명령어 : cmd 창에서 mlagents-learn 명령어 입력
( mlagents-learn config/trainer_config.yaml --run-id=firstRun --train )
-(4) 유니티 플레이 버튼 시작
- 해당 메시지가 나오면
- 테스트 시작
-3. 데이터 수집
중지 : Ctrl+C
-4. 수집된 데이터를 활용하여 Brain Type Internal 사용하기
-(1) 데이터 저장 경로 : models/<run-identifier>/<env_name>_<run-identifier>.bytes
-(2) 데이터 입력 : 데이터 Unity 로 옴긴 후 Internal 값으로 세팅
★ Unity ML 기본 가이드 ★
- https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md
Unity ML - 모방 학습 (0) | 2018.09.24 |
---|---|
Unity ML 기초 5. 유니티 ML 기능 정리, 모범적인 환경 구성, 모니터 로그 (0) | 2018.09.24 |
Unity ML 기초 4. 강화학습 직접 만들어보기 (0) | 2018.09.24 |
Unity ML 기초 3. 강화학습 교육학습 예제 (3DBall) (0) | 2018.09.23 |
Unity ML 기초 1. ML 개요 - ML(머신러닝) Unity (0) | 2018.09.18 |
★ 머신러닝(ML)이란 ★
-1. 기계학습 또는 머신러닝은 인공지능의 한 분야이다
-2. 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
-3. 대량의 데이터나 알고리즘을 통해 '학습' 을 시켜 수행하는 방식이다
(기초 데이터를 주지 않아도 스스로 학습을 통하여 결과를 만들어낸다)
(ex) 예로 이메일이 스팸인지 아닌지를 구분할 수 있다
★ 학습 종류 ★
-1. 강화 학습(PPO)
-2. 모방 학습
-3. 커리큘럼 학습
-4. 관찰학습
★ Unity ML(머신러닝) - 에이전트 훈련 주기 ★
-1. Agent 행동
-2. Environment (환경) 상태 변경
-3. Agent 에게 보상 제공
★ Unity ML(머신러닝) - 에이전트 내부 구조 ★
에이전트(Agent)
-1. 각각의 에이전트는 고유의 상태 및 관측 값을 가지고 있다
-2. 환경 내에서 고유의 행동을 하며 환경에서 일어나는 이벤트에 따라 고유의 보상을 받는다
-3. 각 에이전트의 행동은 에이전트가 연결된 브레인에 의해 결정된다
브레인
-1. 각 브레인은 특정 상태와 행동 공간을 정의한다
-2. 연결된 에이전트가 어떤 행동을 취할지 결정한다
현재버전 행동결정
- External - TensorFlow 를 사용하여 파이썬 API 를 통해 개방형 소켓으로 통신하여 행동을 결정
- Internal(실험 단계) - TensorFLowSharp 을 통해 프로젝트에 탑재된 훈련된 모델을 활용하여 행동을 결정
- Player - 플레이어의 입력을 통해 행동을 결정
- Heuristic - 직접 코딩한 동작을 기반으로 행동을 결정
아카데미
-1. 씬에 포함된 아카데미 오브젝트는 해당 환경에 포함된 모든 브레인을 자식으로 포함한다
-2. 각 환경은 한개의 아카데미만 포함하며 그 정의는 다음과 같다
-엔진 설정 : 훈련 및 추론 모드 상에서 게임 엔진의 속도와 렌더링 품질 설정
- 프레임 스킵 : 각 에이전트가 새로운 결정을 내릴때 생략할 엔진 단계의 개수
- 글로벌 에피소드 길이 : 에피소드가 지속될 길이를 의미, 에피소드가 이 길이에 도달하면 모든 에이전트가 완료 상태로 변경
★ 유니티 머신러닝 ★
소개 페이지 : https://blogs.unity3d.com/kr/2017/09/19/introducing-unity-machine-learning-agents/
깃 허브 : https://github.com/Unity-Technologies/ml-agents
Document : https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Readme.md
Unity ML - 모방 학습 (0) | 2018.09.24 |
---|---|
Unity ML 기초 5. 유니티 ML 기능 정리, 모범적인 환경 구성, 모니터 로그 (0) | 2018.09.24 |
Unity ML 기초 4. 강화학습 직접 만들어보기 (0) | 2018.09.24 |
Unity ML 기초 3. 강화학습 교육학습 예제 (3DBall) (0) | 2018.09.23 |
Unity ML 기초 2. ML 기본 설치부터 예제까지 (0) | 2018.09.18 |
★ 개요 ★
OpenCV Mat 을 Texture 로 바꿀때 효율적으로 사용하기 위함
★ Mat -> Texture 변경하는 부분을 Thread 로 분리 ★
- WaitForEndOfFrame : 모든 카메라 랜더링이 끝난 후 돌아가도록 처리
- 랜더링이 모두 끝난 후 MatToTextureInRenderThread 를 통해 효율적으로 사용
OpenCV 고급 1. 각종 이미지 필터 (1) | 2018.09.15 |
---|---|
OpenCV 기본 3. WebCamTextureToMatHelper (0) | 2018.09.15 |
OpenCV 기본 2. WebCamTexture -> OpenCV.Mat (0) | 2018.09.15 |
OpenCV 기본 1. Texture2D <-> OpenCV.Mat (0) | 2018.09.15 |
OpenCV 개 (0) | 2018.09.15 |