본문 바로가기
Programming

강화학습_3_0802

by WelcomeBro 2023. 8. 2.
반응형

스스로 돈을 벌때 까지 강화학습 할 예정!

이제는 관망하지 말고 행동할때!

 

복습도 할겸 누적식으로 글을 작성한다.

 

당구 큐대를 손바닥위에 세우고 안 넘어뜨리는 것을 강화학습 할때!

 

1. 그 행위를 하는 나 --> 에이전트(agent)

 

2. 큐대, 주위 당구대 위치, 친구의 목소리, 바닥의 재질, 그날의 나의 컨디션, 조명 --> 환경(environment)

 

목적(objective)는 에이전트가 받는 보상의 총합이다.

    2.1 목적 : 1분 동안 큐대 안넘어뜨리기

          상태 : [손바닥 위치, 손바닥 속도, 큐대 각도, 큐대 각속도]의 배열

          행동 : (x,y,z) 손바닥 중심을 기준으로 벡터값

          보상 : 큐대가 안 넘어지는 시간동안 +1

          종료 : 큐대가 넘어지거나, 손바닥이 당구장 벽에 부딫이거나 최대 시간 1분에 도달 했을 때

 

3. 강화학습 문제는 에이전트와 환경으로 구성되는 하나의 시스템으로 표현

 

4. 환경은 시스템의 상태를 나타내는 정보를 만들어냄 --> 이것을 상태(state)

 

5. 에이전트는 상태를 관측하고 그로부터 얻은 정보를 활용하여 행동(action) 함

 

6. 행동을 통해 환경은 다음 상태로 전이(transition)를 겪음

 

7. 행동 --> 전이 --> 다음 상태와 보상(reward)가 에이전트로 이동

 

8. 상태 --> 행동 --> 보상

이렇게 3개가 순환주기이며 하나의 순환주기를 step 이라 부름

 

9. 에이전트의 행동 생성 함수를 정책(policy)라고 부름

 

10. 강화학습에서 주고받는 신호는(s,a, r) --> 이걸 경험(experience)라고 칭함

s : 상태 state

a : 행동 action

r : 보상 reward

 

11. 시작부터 종료(시간 혹은 조건 종료)의 구간을 에피소드(episode) 라고 부름

 

12. 궤적은(trajectory)는 한 에피소드에 걸친 경험의 연속을 의미함

(s0,a0,r0) (s1,a1,r1) (s2,a2,r2) ... (s78,a78,r78) (s79,a79,r79)

 

13. 보통 좋은 정책을 학습하기 위해서는 일반적으로 수백 개에서 수백만개에의 에피소드가 필요함

 

14. 환경이 한 상태에서 다음 상태로 전이할 때 전이 함수(transition function)을 이용함

        강화학습에서는 MDP(마르코프 결정 과정 Markov Decision Property)으로 전이 함수를 표현

        정확한 내부 state를 알 수 없기 때문에 Partially Observable MDP, POMDP로 표현

                --> 보이는게 전부가 아니기 때문에

 

15. MDP는 4개의 튜플로 정의 됨

State 상태 집합

Action 행동 집합

Policy 환경의 상태 전이 함수

Reward 보상 집합

 

16. 에이전트(행동 주체)는 Policy나 Reward에 대해서 모른다는 가정을 함

        에이전트(행동 주체)는 전이함수와 보상함수를 (s,a,r)을 통해서만 간접적으로 확인 가능 함

 

17. 궤적은(trajectory) --> 한 에피소드 상의 총 (s,a,r)

       이득 Return --> Reward의 총합임

        각 경험 앞에는 0~1사이의 discount factor를 경험 회차 만큼 승한 것을 곱한다.

 

18. 목적은 많은 궤적의 이득에 대한 기댓값임 --> 많은 에피소드에 대한 이득의 평균값임

        목적을 최대로 만드는 것은 이득을 최대로 만드는 것과 같음

 

19. 심층강화학습 알고리즘에는 3개의 주요 부류가 있음

        1. 정책 기반(policy based)

                P 정책을 학습하며 목적을 최대로 만드는 궤적을 생성함

                정책 함수는 상태 s를 입력으로 행동을 도출한다.

                단점 : 정책의 분산이 크고 훈련 과정이 표본 비효율적이라는 것이다.

        2. 가치 기반(value based)

                에이전트가 V 또는 Q를 학습함 --> 아직 V와 Q가 무엇인지 이해하지 못함

                가치함수 V는 상태의 좋고 나쁨을 나타냄

                Q는 상태와 행동의 쌍을 이용하여 계산됨

                가치 기반은 정책 기반 알고리즘 보다 표본 효율적이다. 

                        가치 기반이 분산도 더 작고 환경으로 부터 수집한 데이터도 더 잘 활용하기 때문에

        3. 모델 기반(model based)

                체스 게임 같은 승패와 같은 목표 상태를 갖는 게임이나

                목표 상태를 갖는 길찾기 문제에 가장 많이 적용됨

 

20. 표본 비효율적이라고 함은

        어떤 정보를 얻기 위해 많은 표본이 필요할수록 표본 비효율적이 된다.

 

21. 심층강화학습 알고리즘을 구분하는 마지막 기준은 활성정책과 바힐성정책으로 구분하는 것이다.

        활성정책

                알고리즘이 정책(P)에 대해 학습한다면 그 알고리즘은 활성정책 알고리즘이다. 

                        정책에 대해 학습한다는 것은 현재 정책으로부터 생성된 데이터만을 이용할 수 있다는 의미

                        훈련이 끝난뒤 모든 데이터는 폐기됨

                        따라서 표본 비효율적임

        비활성정책

                수집된 모든 데이터는 훈련을 위해 재사용될 수 있음.

                대신 메모리가 훨씬 많이 요구됨

 

22. Reinforce 알고리즘의 세가지 요소

        1. 파라미터로 표현된 정책

                좋은 정책은 할인된 보상의 누적값을 최대로 만드는 정책

                좋은 정책을 학습한다는 것은 함수 근사를 한다는 것

                정책은 결과적으로 에이전트가 어떻게 행동해야 하는지를 알려주고

        2. 최대한 달성하고자 하는 목적

                궤적 : s 상태, a 행동, r 보상의 나열

                궤적의 이득 : 궤적이 끝날 때까지 보상의 할인값을 더한 것

                목적 : 에이전트가 생성하는 모든 완전한 궤적에 대한 이득의 기댓값

                목적은 결과적으로 최대로 달성해야할 것이 무엇인지를 알려준다

        3. 정책 파라미터를 업데이트하는 방법

 

23. 몬테카를로 표본추출 --> 일부만 비율로 계산해도 그 비율의 값은 전체 값과 비슷하다

        많은 궤적에 대해 평균을 계산하게 되면 그 값이 정책 경사의 참값에 근접한다

        하나의 표본만을 추출해 근사할 수 있음

 

24. Reinforce 알고리즘은 몬테카를로 표본추출로 생성된 하나의 궤적을 이용하여 정책 경사를 추정한다.

        단점 : 추정값이 큰 분산을 갖는다

                        이유1 : 행동이 확률분포로부터 추출되어서 무작위성을 갖기 때문에

                        이유2 : 시작상태가 에피소드마다 다를 수 있어서

                        이유3 : 환경 전이 함수가 확률론적 함수일 수 있어서

        단점 해결방안 행동에 영향을 받지 않는 적절한 기준값을 이득에서 빼기(이득 조정)

 

25. 강화학습은 생각보다 어렵다.

 

Be positive!!!

Be rich!!!

Live your life!!!

반응형

'Programming' 카테고리의 다른 글

백준_2667_단지번호 붙이기_dfs_bfs_파이썬  (0) 2023.08.04
백준_1260_DFS와 BFS_0803  (0) 2023.08.03
백준_2559_수열_파이썬  (0) 2023.08.01
현대_Softeer_level2_전광판_파이썬  (0) 2023.08.01
강화학습_2_0731  (0) 2023.07.31