일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- box-sizing
- grid
- float
- 수학
- REM
- Codility
- 미디어 쿼리
- c++
- 강화학습
- 소수
- Javascript
- 확률
- transform
- 백준
- JSX
- pandas
- SK바이오사이언스
- spring
- CSS
- stl
- 포토샵
- 통신사할인
- c
- Gap
- skt membership
- 알고리즘
- 반응형 웹
- 상태
- react
- Photoshop
Archives
- Today
- Total
sliver__
바닥부터 배우는 강화학습 : 강화학습이란 (1장) 본문
728x90
안녕하세요~
디벨로퍼가 돌아왔습니다~~~

오늘은 제가 개인적으로 공부하고 싶어하는
강화학습에 대해서 써볼려고해요.
저는 현업에서 C/C++(14/17)을 사용한
시스템 소프트웨어를 개발하고 있어요.
이 분야도 다양한 분야가 있고
폭 넓게 공부해야 할 부분이 꽤 많이있어요.
그런데 예전부터 인공지능에 관심을 가지고 있었고
꼭 한번쯤은 해보고 싶었어요.
그리고 이제서야 시작하게 되었습니다~~

제가 가볍게 시작할 수 있는 책들을 찾아보는 도중에
바닥부터 배우는 강화학습
위 책이 눈에 들어오더라구요.
그래서 도서관에서 바로 빌리고 공부를 하기로 다짐했어요.
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788931463170
바닥부터 배우는 강화 학습 - 교보문고
강화 학습 기초에 대한 쉽고 정확한 개념 설명 | [구성 소개]Chapter 1. 강화 학습이란바둑에서 시작하여 게임, 금융, 로봇까지 수많은 분야에서 강화학습을 통해 전례 없는 수준의 AI가 만들어졌습
www.kyobobook.co.kr
****
궁금하신 분들을 위해 링크 걸어두었습니다.
****
지금부터는 1장(강화학습이란) 내용 포스트 해볼께요~
1장 : 강화학습이란
지도 학습과 강화학습
=======================================================================================
어떤 사람이 자전거 타는법을 배우는데
A는 C라는 강사분(지도자 : supervisor)이 자전거는 어떻게 타는지에 대해 알려줍니다.
A는 배운 내용 그때로 따라하며 학습(Learning)도 합니다.
이에 반해, B는 좀 다른 방법으로 자전거를 타는 방법을 배웁니다.
바로 독학입니다.
혼자 타보며 자전거를 타는 방법을 터득하죠.
B는 시행착오(trial and error)를 거치며 자전거를 점점 잘 타게 됩니다.
A는 지도학습(suprvised training)
B는 강화학습(reinforcement learning)
에 해당합니다
=======================================================================================
지도 학습
=======================================================================================
예를 들어보겠습니다.
사진을 통해 성별을 맞추는 모델을 학습한다고 가정하겠습니다.
이 때, 학습에 사용되는 데이터는 학습 데이터(traning data)라고 합니다.
성별을 구분하기 위해서는 특징(feature)가 필요합니다.
판별하기 위한 기준이죠.
이 기준 설정에 따라 사진을 보고 판단할 때 영향을 미치게 됩니다.
학습된 모델을 통해 새로운 사진을 넣어봅니다.
이 때 얼마나 잘 맞히는 정도가 잘 학습되었는지를 판별할 수 있는 기준입니다.
주의 해야할 점은 기존 학습에 사용된 사진은 사용하면 안됩니다.
왜냐하면 이미 정답을 알고 있기 때문이죠.
=======================================================================================
강화 학습
=======================================================================================
두 가지 버전이 있습니다.
(1) 시행착오를 통해 발전해나가는 과정
(2) 순차적 의사결정 문제에서 누적 보상을 최대화 하기 위해 시행착오를 통해 행동을 교정하는 학습 과정
=======================================================================================
순차적 의사결정 문제
=======================================================================================
우리는 항상 연속된 결정을 통해 살아갑니다.
순간의 선택에 따라 새로운 상황을 맞닥뜨리고
새로운 상황에서는 다시 새로운 결정을 해야합니다.
선택과 새로운 상황의 반복이죠.
=======================================================================================
보상
=======================================================================================
보상이란 의사결정을 얼마나 잘하고 있는지 알려주는 신호입니다.
강화학습의 목적은 누적보상을 최대화하는 것입니다.
보상의 특징 3가지
1) 어떻게 X, 얼마나 O
어떻게 하면 보상을 최대화 할 수 있는지 알려주진 않습니다.
어떤 행동을 했을 때, 얼마나 보상을 주는지 알려줌으로써
다음 행동에 더 나은 보상을 주는 행동을 하게끔 만듭니다.
2) 스칼라
x,y,z 값에 대해 강화학습을 사용하여 큰 값을 얻으려고 합니다.
각 x,y,z는 (x,y,z)라는 벡터로 표현될 수 있습니다.
하지만 강화학습의 보상은 스칼라로 두어야 하기 때문에
각 변수에 가중치를 두어 스칼라로 만들 수 있습니다.
Ex) Reward = 0.5x + 0.25y + 0.25z
3)희소하고 지연된 보상
보상은 선택했던 행동의 빈도에 비해 가끔 주어지거나,
행동이 발생한 후 한참 뒤에 나올 수 있습니다.
이로 인해 어떤 행동이 보상에 영향을 미쳤는지가 불분명할 수 있습니다.
예는 아래와 같습니다.
Ex) 바둑 1게임 당 평균 수 : 250수
250 수 후 1번의 보상 제공
=======================================================================================
에이전트와 환경
=======================================================================================
에이전트가 액션을 하고 상황이 변하는 것을 하나의 루프라 했을 때
끊임없이 반복되는 것을 순차적 의사결정 문제라 합니다
루프의 3단계
1) 현재 상황 St 에서 어떤 액션을 해야 할지 at를 결정
2) 결정된 행동 at를 환경으로 보냄
3) 환경으로부터 그에 따른 보상과 다음 상태의 정보를 받음
에이전트는 행동을 하는 주체이고
환경은 에이전트를 제외한 모든 요소입니다.
상태는 현재 상태에 대한 모든 정보입니다.
환경은 결국 상태 변화를 일으킵니다.
환경이 하는 일 4단계
1) 에이전트로부터 받은 액션 at를 통해서 상태변화를 일으킴
2) 그 결과 상태는 st->st+1로 변화
3) 에이전트에게 줄 보상 rt+1 계산
4) st+1과 rt+1을 에이전트에게 전달
=======================================================================================
강화학습의 위력
=======================================================================================
병렬성의 힘
강화 학습의 경험을 쌓는 부분을 시뮬레이터라고 합니다.
시뮬레이터는 각 GPU, CPU Core들이 계산 값들을 공유하여
병렬적으로 강화학습을 진행할 수 있습니다.
오래걸리는 학습의 시간을 줄일 수 있는거죠.
=======================================================================================
이로써
1장 : 강화학습이란
리뷰를 마치도록 하겠습니다.
강화학습 매력적이야 너~~

출처 : 바닥부터 배우는 강화학습, 영진닷컴, 저자 노승은님
728x90
'CS > 강화학습' 카테고리의 다른 글
근사함수 (0) | 2021.10.11 |
---|---|
살사(SARSA) / 큐러닝(Q-Learning) (0) | 2021.10.10 |
다이내믹 프로그래밍 (0) | 2021.10.09 |
MDP / 벨만방정식 (0) | 2021.10.08 |
강화학습 - 강화학습 문제 (0) | 2021.10.04 |
Comments