본문 바로가기

분류 전체보기139

CUDA 2. Programming Model 원글 : https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#programming-model 2.1. Kernel (CUDA에서의 함수, N개의 thread에서 독립적으로 한번씩 실행되는 함수)Kernel이란 1회 호출 시, 복수개의 CUDA 쓰레드에서 동시에 실행되는 C++ 형식의 함수를 의미한다. Kernel은 CUDA C++에 포함되어 있다.  일반 C++ 함수는 1회 호철 시 1번 실행되는 것과 달리 Kernel은 1회 호출하더라도 복수번 실행되는 것이 특징이다. Kernel은 '__global__' 이라는 선언자를 통해 정의된다. Kernel 호출 시 실행되는 복수개의 Thread는 각각 ID가 부여된다. 실행될 Thread의 개수.. 2022. 4. 24.
곡률 (Curvature) 경로 생성 알고리즘을 개발하다 보면, 곡률은 정말 많이 사용하게 되는 개념이다. 경로가 부드럽기 위해서는 곡률이 연속돼야 하고, Non-holonomic 모빌리티의 경우 Kinematic Constraint 상 곡률 제한이 존재하기 때문이다. 그런데 경로 포인트에 Noise가 조금이라도 있으면 곡률값의 정확도가 떨어진다. 그래서 거리가 먼 포인트를 선정해 곡률을 계산하기도 하고, 이동 평균을 내기도 한다. 어쨌든 곡률을 계산하는 방법을 정리해보자. 1. 원을 사용한 곡률 계산 3개의 포인트가 입력되면, 이 점들을 지나는 원의 반지름과 원의 중심을 결정할 수 있다. 이렇게 계산한 원의 반지름은 3개 포인트 중 두번재 포인트의 곡률 반지름이 된다. 그리고 이 값을 역수로 취하면 곡률 값이 된다. 이 방법은 .. 2022. 2. 10.
강화학습 8 <Continuous Action Space에 적용가능한 DDPG> 최근에 공부한 강화학습 방법은 DQN와 Actor-Critic이 었다. 이 두 방법은 각각 Q함수와 정책 경사를 선택한 방법이다. 그리고 이 두 방법 이후 제시된 방법은 DDPG이다. DDPG는 Deep Deterministic Policy Gradient의 약자이다. 이 방법은 두개의 특징을 가지고 있다. 1. Continuous Action Space (real-value) 에 적용 가능하다. 2. Deterministic Policy를 사용한다. 지금까지 적용한 강화학습 예제는 그리드월드와 같이 Action이 Discrete한 경우였다. 그런데 실제로 Action은 실수단위의 Continuous할 수 있다. 이 경우 Q함수나 Value Function을 학습시킬 수가 없다. Dimension이 거의.. 2022. 1. 10.
Apache 2.0 License (작성 중) https://www.apache.org/licenses/LICENSE-2.0 회사에서 Quadratic Programming 최적화를 푸는 오픈 소스 QP Solver인 OSQP를 사용하게 되었다. 해당 오픈 소스는 Apache 2.0 License를 따르고 있다. Apache 2.0 License 원본은 아래와 같고, 최대한 직역해서 한번 살펴보자. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for.. 2021. 12. 31.
강화학습 7 <REINFORCE 방식을 개선한 PG 방법인 Actor - Critic> 지지난 공부부터 인공신경망을 적용한 강화학습 기반 MDP 풀이법을 공부하고 있다. 강화학습에 인공신경망을 사용하는 이유는 State 및 dimension이 굉장히 많은 MDP 문제를 해결하기 위해서다. 현실의 문제들이 대부분 state가 굉장히 많기 때문에 (state가 float형으로 표현돼야 하거나, 이미지 상태이거나) 인공신경망을 적용하는 방법을 잘 알아두어야 한다. 인공신경망은 Q함수나 정책을 근사하는 함수로 사용된다. 인공신경망은 에피소드에서 Agent가 환경과 상호작용하며 얻은 데이터로부터 가중치를 학습한다. 이떄 Q함수를 근사하는 방식으론 가장 기본인 Deep SARSA 그리고 Experience Replay 및 Target Network로 성능을 개선한 방식인 DQN이 있었다. 정책을 근사.. 2021. 12. 31.
강화학습6 <Q함수를 인공신경망으로 근사한 DQN> 특정 문제를 완벽히 풀어내는 해답이 생기면 연구는 중단된다. 하지만 문제를 제한적으로 풀어내는 해답이 지속 제시된다면, 개선된 방법이 지속적으로 연구된다. MDP 문제를 푸는 강화학습도 문제의 성격에 따라, 기존 답안 보다 더 좋은 방법들이 지속적으로 연구되어 왔다. MDP 문제 중 환경을 알 때 적용 가능한 Dynamic Programming, 환경을 모를 때 적용 가능한 Monte Carlo, Temporal Difference, SARSA, Q-Learning 등.. 그리고 현실의 많은 문제들이 state를 Table 형태로 표현이 불가능하기 때문에 (너무 많아서), 인공 신경망을 접목하는 방법들이 연구되어 왔다. 이전 글에서는 정책을 인공신경망으로 근사하는 REINFORCE 알고리즘을 정리했다. .. 2021. 12. 29.