프로그래밍 공부

전체 글 700

카테고리 설명
프로그래밍 공부하는 블로그
  • 강화 학습 알고리즘은 학습을 위한 데이터가 에이전트가 어떤 행동을 하느냐에 따라 달라진다. 따라서 강화학습 알고리즘은 데이터를 잘 수집하는 문제와 알고리즘을 잘 업데이트 하는 문제를 모두 고려해야 한다. 이때 Exploration and Expoitation Trade-off문제가 발생한다. Exploration : 학습을 위해 수집하는 Sample의 다양성을 위해 모험적인 Action을 취하는것 = 미래의 이익을 최대화Exploitaiton : 최적의 Action을 취하는것 = 현재의 이익을 최대

  • Q-Learning 및 강화학습을 적용할 때 보통 $ \epsilon - Greedy $ 라는 기법을 함께 적용한다. 에이전트가 항상 최대 Q값으로 행동하게 되면 데이터 수집과정에서 다양성이 감소하고 이로인해 최대 학습 결과가 Local Optima에 빠질 확률이 높아진다. 따라서 $ \epsilon - Greedy $ 기법은 에이전트가 $ \epsilon  $ 확률로 최적의 행동이 아닌 랜덤한 행동을 하게 하고, 다시 $ ( 1 - \epsilon ) $ 확률로 최적의 행동을 하게 함으로써 에이전트가 다양한 상태를 경험하고 수집할 수 있게 한다. 결과적으로 학습이 끝난 후에 더 좋은 성능을 발휘할 수 있다. 하지만 계속해서 랜덤한 행동을 하도록 할 수는 없음으로 학습 초반에는 $ \epsilon  $ ..

  • ImageAiCon PP진행중Unreal의 ImageAI공부하기알고리즘 관련 강의 학습사전지식더보기https://inradestrt.tistory.com/691 행동가치함수 추정하기내가 어떠한 상태에서 취할 수 있는 행동의 확률을 구하는 것을 행동가치 라고 하는데, 이걸 구하는 함수를 추정하는 방식을 알아보자. 행동가치함수 는 어떤 상태에서 취한 행동의 좋고 나쁨inradestrt.tistory.comhttps://inradestrt.tistory.com/692 On-Policy & Off-PolicyOn-Policy 지금 수집한 경험을 이용해서 갱신목표로 하는 정책을 개선하는 학습 방법론. 즉, 수집한 경험만을 이용해서 학습 Off-Policy 지금 수집한 경험과 과거 혹은 다른 데이터에서 수집한 경험..

  • Discrete Action Space 에이전트가 취할 수 있는 행동이 n개의 행동중에 한개로 나누어 떨어지는 문제정의이다. 예를들어, 왼쪽 오른쪽 위 아래로 이동한다는 행동 4가지가 있을 때, 행동을 무조건 1개 선택해서 진행해야 한다고 하면. 위 또는 아래 오른쪽 왼쪽으로 이동하는 결과 한개가 나타나는걸 말한다. A = [ 왼쪽, 위, 오른쪽, 아래 ]Continuous Action Space 에이전트가 취할 수 있는 행동이 연속된 값을 선택하는 문제 정의 이다. 예를 들어, 로봇의 팔 관절이 몇도의 각도로 움직여야 할 지를 결정하는 문제는 Continuous Action Space이다. A = 0 ~ 360(팔각도)

  • On-Policy 지금 수집한 경험을 이용해서 갱신목표로 하는 정책을 개선하는 학습 방법론. 즉, 수집한 경험만을 이용해서 학습 Off-Policy 지금 수집한 경험과 과거 혹은 다른 데이터에서 수집한 경험을 모두 이용해서 갱신 목표로 하는 정책을 개선하는 학습 방법론, 즉 과거에 수집한 경험도 재활용할 수 있다.Off-Policy방법으로 학습할경우 한번 수집한 경험을 여러번 활용할 수 있어서 더효율적으로 학습이 가능하다. SARSA는 On-Policy Q-Learning 은 Off-Policy

  • 내가 어떠한 상태에서 취할 수 있는 행동의 확률을 구하는 것을 행동가치 라고 하는데, 이걸 구하는 함수를 추정하는 방식을 알아보자. 행동가치함수 는 어떤 상태에서 취한 행동의 좋고 나쁨을 평가한다. 상태가치 함수를 추정하는 대표적인 알고리즘은 다음과 같다. MC(Monte-Carlo) MethodSARSAQ-Learning MC(Monte-Carlo) Method MC알고리즘은 실제 에피소드가 끝날 때 까지 한번의 경험을 수집한 뒤 해당 값으로 Q값을 갱신하는 추정 알고리즘이다. $ Q_{\pi}(s, a) = R_{t+1} + \gamma R_{t+2} + \gamma ^{2}R_{t+3} + ... $ MC Method알고리즘의 단점은 한번의 Q값을 갱신하기 위해 에피소드가 끝날 때 까지 기다려야한다..

카테고리
작성일
2024. 6. 27. 23:25
작성자
WDmil
728x90

강화 학습 알고리즘은 학습을 위한 데이터가 에이전트가 어떤 행동을 하느냐에 따라 달라진다.

 

따라서 강화학습 알고리즘은 데이터를 잘 수집하는 문제와 알고리즘을 잘 업데이트 하는 문제를 모두 고려해야 한다.

 

이때 Exploration and Expoitation Trade-off문제가 발생한다.

 

Exploration : 학습을 위해 수집하는 Sample의 다양성을 위해 모험적인 Action을 취하는것 = 미래의 이익을 최대화

Exploitaiton : 최적의 Action을 취하는것 = 현재의 이익을 최대

728x90

'알고리즘' 카테고리의 다른 글

TensorFlow DQN Agent 구현  (0) 2024.06.28
DQN(Deep - Q - Networks)  (0) 2024.06.28
$ \epsilon - Greedy $  (0) 2024.06.27
Discrete Action Space & Continuous Action Space  (0) 2024.06.26
On-Policy & Off-Policy  (0) 2024.06.26
카테고리
작성일
2024. 6. 27. 22:38
작성자
WDmil
728x90

Q-Learning 및 강화학습을 적용할 때 보통 $ \epsilon - Greedy $ 라는 기법을 함께 적용한다.

 

에이전트가 항상 최대 Q값으로 행동하게 되면 데이터 수집과정에서 다양성이 감소하고 이로인해 최대 학습 결과가 Local Optima에 빠질 확률이 높아진다.

 

따라서 $ \epsilon - Greedy $ 기법은 에이전트가 $ \epsilon  $ 확률로 최적의 행동이 아닌 랜덤한 행동을 하게 하고, 다시 $ ( 1 - \epsilon ) $ 확률로 최적의 행동을 하게 함으로써 에이전트가 다양한 상태를 경험하고 수집할 수 있게 한다.

 

결과적으로 학습이 끝난 후에 더 좋은 성능을 발휘할 수 있다. 하지만 계속해서 랜덤한 행동을 하도록 할 수는 없음으로 학습 초반에는 $ \epsilon  $ 값을 크게 설정했다가 학습이 진행될 수록 점차 $ \epsilon  $ 값을 감소시켜 준다.

 

$ \pi(a|s) = \left\{\begin{matrix}
1 - \epsilon  & ifa^{*} = \underset{a\epsilon A}{argmaxA(s, a)} \\
 &  \epsilon \\
\end{matrix}\right. $

728x90

'알고리즘' 카테고리의 다른 글

DQN(Deep - Q - Networks)  (0) 2024.06.28
Exploration & Exploitation Trade-Off  (0) 2024.06.27
Discrete Action Space & Continuous Action Space  (0) 2024.06.26
On-Policy & Off-Policy  (0) 2024.06.26
행동가치함수 추정하기  (0) 2024.06.26
작성일
2024. 6. 26. 03:04
작성자
WDmil
728x90

ImageAiCon PP

진행중

  1. Unreal의 ImageAI공부하기
    1. 알고리즘 관련 강의 학습

사전지식

더보기

결과물

https://colab.research.google.com/drive/1kbbZ5c92PIIkLJem3qV0TTZ1HZFSE9fr?usp=sharing

 

Q-Table_FrozenLake_example.ipynb의 사본

Colab notebook

colab.research.google.com

 

https://colab.research.google.com/drive/1ofsEEher7XGYaZzFB7AwTjNm-OIhreSG?usp=share_link#scrollTo=tFdRlHeb5nYR

 

openai_gym_example_cartpole.ipynb

Colaboratory notebook

colab.research.google.com

 

 


 

진행 예정 작업

  1. Unreal ImageRetargeting 코드제작
    1. 언리얼 함수 상으로 지정된 카메라의 타겟뷰를 이미지값으로 저장 반환하는 방식이 존재함.
    2. TCP방식으로 데이터 통신처리를 진행
    3. TensorFlow를 사용하여 전달받은 이미지로 학습 알고리즘 연산.
    4. 연산결과를 다시 언리얼로 전달하여 학습된 데이터를 갱신.
    5. 4번과 3번을 반복
  2. 학습결과확인 후 재학습
  3.  5와 6을 원하는 AI행동패턴이 나타날때까지 반복

목표

  1. TensorFlow를 사용하여 알고리즘이 동작하는지 직접적인 확인을 진행.
  2. TensorFlow 를 사용하지 않고, 스스로의 C++코드로 알고리즘 함수 구현부를 직접 제작하여 사용하는것
    (파이썬만으로 k means clustering를 구현하였을 때, 구현객체가 C++의 연산처리속도를 따라잡지 못하는 상황이 있었음)
  3. UI관련 제작방식은 C#으로, 함수부는 DLL파일로 포팅하여 언리얼 엔진에 집어넣기.

완료된 작업

 

Unreal의 ImageAI공부하기

  1. CNN알고리즘 다시 복기하기
  2. 알고리즘 선별(DQN)

 

728x90

'작업사항 정리 > UnrealC++' 카테고리의 다른 글

UnrealC++ PP 20240701_11  (1) 2024.07.01
UnrealC++ PP 20240628_10  (0) 2024.06.28
UnrealC++ PP 20240624_8  (0) 2024.06.24
UnrealC++ PP 20240621_7  (0) 2024.06.21
UnrealC++ PP 20240618_6  (0) 2024.06.18
카테고리
작성일
2024. 6. 26. 02:29
작성자
WDmil
728x90

Discrete Action Space

 

에이전트가 취할 수 있는 행동이 n개의 행동중에 한개로 나누어 떨어지는 문제정의이다.

 

예를들어, 왼쪽 오른쪽 위 아래로 이동한다는 행동 4가지가 있을 때, 행동을 무조건 1개 선택해서 진행해야 한다고 하면.

 

위 또는 아래 오른쪽 왼쪽으로 이동하는 결과 한개가 나타나는걸 말한다.

 

A = [ 왼쪽, 위, 오른쪽, 아래 ]


Continuous Action Space

 

에이전트가 취할 수 있는 행동이 연속된 값을 선택하는 문제 정의 이다.

 

예를 들어, 로봇의 팔 관절이 몇도의 각도로 움직여야 할 지를 결정하는 문제는 Continuous Action Space이다.

 

A = 0 ~ 360(팔각도)

 

728x90

'알고리즘' 카테고리의 다른 글

Exploration & Exploitation Trade-Off  (0) 2024.06.27
$ \epsilon - Greedy $  (0) 2024.06.27
On-Policy & Off-Policy  (0) 2024.06.26
행동가치함수 추정하기  (0) 2024.06.26
Grid-World  (0) 2024.06.24
카테고리
작성일
2024. 6. 26. 02:23
작성자
WDmil
728x90

On-Policy

 

지금 수집한 경험을 이용해서 갱신목표로 하는 정책을 개선하는 학습 방법론. 즉, 수집한 경험만을 이용해서 학습

 

Off-Policy

 

지금 수집한 경험과 과거 혹은 다른 데이터에서 수집한 경험을 모두 이용해서 갱신 목표로 하는 정책을 개선하는 학습 방법론, 즉 과거에 수집한 경험도 재활용할 수 있다.


Off-Policy방법으로 학습할경우 한번 수집한 경험을 여러번 활용할 수 있어서 더효율적으로 학습이 가능하다.

 

SARSA는 On-Policy

 

Q-Learning 은 Off-Policy

728x90

'알고리즘' 카테고리의 다른 글

$ \epsilon - Greedy $  (0) 2024.06.27
Discrete Action Space & Continuous Action Space  (0) 2024.06.26
행동가치함수 추정하기  (0) 2024.06.26
Grid-World  (0) 2024.06.24
MRP(Markov Reward Process) & MDP(Markov Decision Process)  (0) 2024.06.24
카테고리
작성일
2024. 6. 26. 02:19
작성자
WDmil
728x90

내가 어떠한 상태에서 취할 수 있는 행동의 확률을 구하는 것을 행동가치 라고 하는데, 이걸 구하는 함수를 추정하는 방식을 알아보자.

 

행동가치함수 는 어떤 상태에서 취한 행동의 좋고 나쁨을 평가한다.

 

상태가치 함수를 추정하는 대표적인 알고리즘은 다음과 같다.

 

  1. MC(Monte-Carlo) Method
  2. SARSA
  3. Q-Learning

 


MC(Monte-Carlo) Method

 

MC알고리즘은 실제 에피소드가 끝날 때 까지 한번의 경험을 수집한 뒤 해당 값으로 Q값을 갱신하는 추정 알고리즘이다.

 

$ Q_{\pi}(s, a) = R_{t+1} + \gamma R_{t+2} + \gamma ^{2}R_{t+3} + ... $

 

MC Method알고리즘의 단점은 한번의 Q값을 갱신하기 위해 에피소드가 끝날 때 까지 기다려야한다는 점이다.

 


SARSA

 

SARSA (State-Action-Reward-State-Action) 알고리즘은 행동으로 인한 리워드와 다음 상태의 추정 Q값을 이용해서 행동가치함수 $ Q(s_{t}, a_{t}) $ 을 개선하는 알고리즘이다.

 

$ Q(s_{t}, a_{t}) = R_{t+1} + \gamma Q(S_{t+1}, a_{t+1}) $

 

현재 State에서 한번의 Action을 취하고 그로 인해 얻은 다음 state에서 취한 action의 Q값을 이용해서 학습을 진행한다.

$ < s_{t}, a_{t}, R_{t+1}, s_{t1}, a_{t+1} > $ 따라서 갱신에 사용하는 데이터의 형상을 따라서 SARSA알고리즘 이라고 부른다.

 

한번의 경험만으로 갱신이 된다. 모든 갱신을 하지 않아도 되기 때문에, MC보다 더 효율적이다.


Q-Learning

 

Q-Learning은 적절한 행동 가치 함수값을 알아내기위한 알고리즘이다. Q-Learning에서 $ Q(s_{t}, a_{t}) $ 는 현재 상태에서 취한 행동에 대한 행동 가치 함수값을 나타낸다.

 

Q-Learning은 $ Q(s_{t}, a_{t}) $ 를 임의의 값으로 초기화 한 후, 학습이 진행됨에 따라 아래수식 으로 값이 반복해서 업데이트되어 나간다.

 

$ Q(s_{t}, a_{t}) = R_{t+1} + \gamma \underset{a + 1}{ max } Q(S_{t+1}, a_{t+1}) $

 

여기서 $ R_{t+1} $ 은 현재 상태에서 다음 상태로 넘어갈 때 얻은 보상, $ \gamma $ 은 Discount Factor, $ \underset{a+1}{max} Q(S_{t+1}, a_{t+1}) $ 은 다음 상태에서 얻을 수 있는 행동 가치 함수들 중에서 가장 큰 값을 의미한다.

 

위 수식을 통해 반복적으로 $ Q(s_{t}, a_{t}) $ 를 업데이트 할 경우 $ Q(s_{t}, a_{t}) $ 가 최적의 행동 가치 함수에 수렴한다는 사실이 수학적으로 증명되었다.

 

최적의 값 Q를 구하는 알고리즘(Q-Learning)은 위 수식을 최적의 상태값을 구할 때 까지 반복적으로 업데이트 해주면된다.

 

상태와 행동에 대한 Q-Table을 만들고 이 테이블을 지속적으로 업데이트 하는 방식을 사용한다.

728x90

'알고리즘' 카테고리의 다른 글

Discrete Action Space & Continuous Action Space  (0) 2024.06.26
On-Policy & Off-Policy  (0) 2024.06.26
Grid-World  (0) 2024.06.24
MRP(Markov Reward Process) & MDP(Markov Decision Process)  (0) 2024.06.24
강화학습 알고리즘 기초개요  (0) 2024.06.24