본문 바로가기

728x90
반응형

LAB

강화학습(6) 강화학습에 대한 모든 것 : 총 정리ing 1. 강화학습 (1) 강화학습이란? 강화학습은 기계학습의 한 분야다. 보상을 통해 학습하는 알고리즘이다. 다른 기계학습과 다르게 경우의 수가 많고, 정답이 하나가 아니다. 또한 강화학습에서 '보상'이란 행동의 좋고 나쁜 정도를 나타내는 지표다. [1] 환경 : 강화학습을 통해 해결하고자 하는 문제, [2] 에이전트 : 행동을 결정하는 주체, [3] 상태 : 환경을 표현하는 정보, [4] 행동 : 에이전트와 환경 사이의 상호작용, [5] 보상 : 행동의 가치를 나타내는 값이다. 강화학습의 학습 과정은 다음과 같다. 에이전트가 상태를 입력받는다. 에이전트가 상태에 따라 특정 행동을 수행한다. 그 행동에 따라 환경이 변한다. 에이전트가 행동 가치에 따라 보상을 받는다. 보상을 보고 행동이 좋은지, 나쁜지를 배.. 더보기
ROS(4) Turtlebot machine learning(DQN) https://emanual.robotis.com/docs/en/platform/turtlebot3/machine_learning/#set-state 0. 초기 세팅 robotic emanual의 melodic, machine learning tutorial을 따라서 필요한 세팅을 완료한다. 1. first terminal if we have error ---------> cuda 12.1 install --------> pip3 install torch torchvision torchaudio ----------> sudo apt install python3-pip --------> sb ----------> catkin_make -----------> roslaunch turtlebot3_gazebo.. 더보기
ROS(3) simple driving code 보호되어 있는 글입니다. 더보기
강화학습(8) GAIL 실행하기 (LINUX) 출처 링크 : https://github.com/hcnoh/gail-pytorch 1. Install dependencies (2023.07 ver) (1) Python3을 설치한다. (2) requirements.txt 안에 Python package를 설치한다. -> requirements.txt가 없는 경우, 아래의 코드 두 줄을 각각 입력한다. pip freeze > requirements.txt pip install -r requirements.txt (3) OpenAI Gym 환경을 실행하기 위해 다른 패키지들을 설치한다. python -m pip install jupyter --user pip install gym==0.21 cd .local/lib/python3.8/site-packages.. 더보기
강화학습(5) PPO, DDPG, TD3, and so on.. DQN(2013) -> A2C, A3C(2016) -> DDPG(2015) -> PPO(2017) -> TD3, SAC(2018) 순서. 1. PPO (1) TRPO (on-policy 알고리즘) 주어진 데이터를 가지고 현재 policy를 최대한 큰 step만큼 빠르게 향상시키면서도, 너무 큰 step으로 업데이트하는 것을 억제하고자 한다. 아래는 PPO과 TRPO의 최적화식이다. TRPO에서는 전자 항을 최대화하면서 후자 항을 최소화하는 것을 목표로 한다. [1] 목적식을 통해 policy의 improvement step을 최대화한다. [2] 이와 동시에 KL divergence를 통해 기존 정책과 새 정책 간의 거리를 제한한다. step size가 많다고 해서 무작정 좋은 것이 아니다. TRPO는 성.. 더보기
강화학습(4) Actor-critic, A2C, A3C, SAC DQN(2013) -> DDPG(2015) -> A2C, A3C(2016) -> PPO(2017) -> TD3, SAC(2018) 순서. 1. Actor-Critic (1) Actor-Critic, A2C Acotr 네트워크, Critic 네트워크. 2개의 네트워크를 이용한다. Actor는 상태가 주어졌을 때 행동을 결정하고, Critic은 상태의 가치를 평가한다. 행동과 가치를 분리한다는 점에서 Dueling DQN과 유사하지만, Actor-critic은 마지막에 값을 합치지 않는다. 물론 Actor-critic은 replay buffer를 사용하지 않는다. Actor-critic은 입력을 해석하는 파라미터(decoder)를 공유하느냐 그렇지 않느냐에 따라 2가지로 나뉜다. 그리고 Actor-criti.. 더보기
강화학습(3) 코드 실습 : Q-learning, DQN 1. Q-learning in grid world 파이참의 가상 환경에서 실행한다. 새로운 프로젝트를 생성하여 'pip install numpy', 'pip install padas', 'pip install matplotlib'을 터미널 창에 입력한 후 설치를 완료한다. Run시키면 아래 코드가 수행된다. (1) 코드 설명 코드를 간단히 설명하겠다. 1차원으로 총 20개의 상태를 가지는 20x1 그리드 월드에서 에이전트는 'left' 혹은 'right', 2가지 행동을 취할 수 있다. 목표는 최적의 행동을 학습하여 'T'라는 종료 상태에 도달하는 것이다. 종료 상태에 도달하면, 다시 처음으로 돌아가 최적의 행동을 학습한다. 이러한 시행착오를 200번 겪은 후 코드는 종료된다. 전체 루프를 200번 반복.. 더보기
강화학습(2) DQN, Double DQN, Deuling DQN DQN(2013) -> A2C, A3C(2016) -> DDPG(2015) -> PPO(2017) -> TD3, SAC(2018) 순서. 1. DQN (1) Deep Q-Learning 기존의 Q-learning은 state-action(s,a)에 해당하는 Q값을 테이블 형식으로 저장하여 학습한다. 상태 공간, 행동 공간이 커지게 되면 모든 Q값을 저장하기 어려워진다. (메모리 문제, 긴 탐험 시간 문제). Deep Q-Learning은 이를 딥러닝으로 해결한 알고리즘이다. Q-table에 해당하는 Q함수를 비선형 함수로 근사시키며, Q함수의 가중치 파라미터들을 θ로 표시하였다. 1. 파라미터를 초기화, 매 스텝마다 2~5를 반복한다. 2. Action at를 e-greedy 방식에 따라 선택한다. 3... 더보기

728x90
반응형