[AI] Q-Learning

2024. 10. 4. 18:01· 프로그래밍 이론/AI
목차
  1. Step 1: Q-Learning 개념
  2. Step 2: Q-값 정의
  3. Step 3: Bellman 방정식
  4. Step 4: 탐험 vs 활용 (Exploration vs Exploitation)
  5. Step 5: Q-테이블
  6. Step 6: 알고리즘 절차
  7. Step 7: 학습 종료 조건
  8. Step 8: 장점과 단점
  9. Step 9: 확장

Step 1: Q-Learning 개념

Q-Learning은 강화학습 알고리즘 중 하나로, Off-policy 방식입니다. 에이전트가 환경에서 최적의 행동을 찾기 위해 Q-값을 학습합니다.


Step 2: Q-값 정의

Q-값은 상태-행동 쌍에서 얻을 수 있는 누적 보상의 기대치를 의미합니다. Q(s, a)로 표현됩니다.


Step 3: Bellman 방정식

Q-Learning은 Bellman 방정식을 기반으로 Q-값을 업데이트합니다.

$Q(s,a) = Q(s,a) + \alpha \left( R + \gamma \max_{a'} Q(s', a') - Q(s, a) \right)$

  • $\alpha$: 학습률
  • $\gamma$: 할인율
  • $R$: 즉각적인 보상
  • $\max_{a'} Q(s', a')$: 다음 상태에서 예상되는 최대 보상

Step 4: 탐험 vs 활용 (Exploration vs Exploitation)

  • 탐험(Exploration): 새로운 상태-행동을 시도
  • 활용(Exploitation): 현재까지 학습한 정보를 바탕으로 최대 보상을 얻는 행동을 선택

대표적인 방법: $ε-greedy$


Step 5: Q-테이블

Q-값은 상태와 행동에 따라 Q-테이블에 저장됩니다. 상태와 행동의 조합이 커질수록 테이블 크기도 커지므로, 대규모 문제에서는 **심층 Q-네트워크(DQN)**로 확장할 수 있습니다.


Step 6: 알고리즘 절차

    1. 초기화: Q-테이블을 임의의 값으로 초기화.
    2. 상태 $s$ 선택.
    3. 행동 $a$ 선택 ($ε-greedy$).
    4. 보상 $R$ 받기, 새로운 상태 $s'$ 관찰.
    5. Q-테이블 업데이트

$Q(s,a) = Q(s,a) + \alpha \left( R + \gamma \max_{a'} Q(s', a') - Q(s, a) \right)$

  1. 상태 $s'$로 이동, 반복.

Step 7: 학습 종료 조건

일정 에포크(epoch) 동안 Q-값이 더 이상 변화하지 않으면 학습을 종료합니다.


Step 8: 장점과 단점

  • 장점: 간단하고 구현이 쉬우며, 이론적으로 수렴이 보장됩니다.
  • 단점: 상태 공간이 크면 Q-테이블 관리는 어려워지며, 연속적인 상태나 행동에서는 한계가 있습니다.

Step 9: 확장

  • DQN: 신경망을 이용해 Q-값을 근사합니다.
  • SARSA: Q-Learning과 달리 실제로 선택한 행동을 바탕으로 학습합니다.
저작자표시 (새창열림)

'프로그래밍 이론 > AI' 카테고리의 다른 글

[AI] DQN  (0) 2024.10.04
[AI] 강화학습  (1) 2024.10.04
  1. Step 1: Q-Learning 개념
  2. Step 2: Q-값 정의
  3. Step 3: Bellman 방정식
  4. Step 4: 탐험 vs 활용 (Exploration vs Exploitation)
  5. Step 5: Q-테이블
  6. Step 6: 알고리즘 절차
  7. Step 7: 학습 종료 조건
  8. Step 8: 장점과 단점
  9. Step 9: 확장
'프로그래밍 이론/AI' 카테고리의 다른 글
  • [AI] DQN
  • [AI] 강화학습
NewtronVania
NewtronVania
개발 내용과 지식을 정리한 블로그입니다.
NewtronVania
Newtron의 프로그래밍 블로그
NewtronVania
전체
오늘
어제
  • 분류 전체보기 (74)
    • 언리얼 (7)
      • 포트폴리오 (1)
    • 유니티 (2)
    • 코딩테스트 (27)
    • 프로그래밍 이론 (38)
      • 디자인 패턴 (25)
      • 알고리즘 (5)
      • 컴퓨터 그래픽스 (2)
      • AI (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 언리얼 엔진
  • DP
  • Templet Method
  • 디자인 패턴
  • 단어 검색
  • 코딩테스트
  • Algorithm
  • A* 알고리즘
  • 다이나믹 프로그래밍
  • q-learing
  • behaviour tree
  • 루트 모션
  • AI
  • 백준
  • 비트마스킹
  • 알고리즘
  • 유한 상태 머신
  • 언리얼 오브젝트
  • UObject
  • 게임 역사
  • daijkstra
  • 강화학습
  • 모션 워핑
  • Strategy
  • 행동 트리
  • 전략 패턴
  • Unreal
  • 게임 구현
  • CS
  • q-learning

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
NewtronVania
[AI] Q-Learning
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.