Алгоритми навчання з підкріпленням
Reading time: 7 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Навчання з підкріпленням
Навчання з підкріпленням (RL) — це тип машинного навчання, де агент навчається приймати рішення, взаємодіючи з середовищем. Агент отримує зворотний зв'язок у формі винагород або покарань на основі своїх дій, що дозволяє йому з часом навчитися оптимальної поведінки. RL особливо корисний для задач, де рішення передбачає послідовне прийняття рішень, таких як робототехніка, ігри та автономні системи.
Q-Навчання
Q-Навчання — це алгоритм навчання з підкріпленням без моделі, який навчається оцінювати цінність дій у даному стані. Він використовує Q-таблицю для зберігання очікуваної корисності виконання конкретної дії в конкретному стані. Алгоритм оновлює Q-значення на основі отриманих винагород і максимальних очікуваних майбутніх винагород.
- Ініціалізація: Ініціалізуйте Q-таблицю з довільними значеннями (часто нулями).
- Вибір дії: Виберіть дію, використовуючи стратегію дослідження (наприклад, ε-жадібну, де з ймовірністю ε вибирається випадкова дія, а з ймовірністю 1-ε вибирається дія з найвищим Q-значенням).
- Зверніть увагу, що алгоритм завжди може вибрати відому найкращу дію, враховуючи стан, але це не дозволить агенту досліджувати нові дії, які можуть принести кращі винагороди. Саме тому використовується змінна ε-жадібна для балансування дослідження та експлуатації.
- Взаємодія з середовищем: Виконайте вибрану дію в середовищі, спостерігайте наступний стан і винагороду.
- Зверніть увагу, що в цьому випадку, залежно від ймовірності ε-жадібної, наступний крок може бути випадковою дією (для дослідження) або найкращою відомою дією (для експлуатації).
- Оновлення Q-значення: Оновіть Q-значення для пари стан-дія, використовуючи рівняння Беллмана:
Q(s, a) = Q(s, a) + α * (r + γ * max(Q(s', a')) - Q(s, a))
де:
Q(s, a)
— це поточне Q-значення для стануs
і діїa
.α
— це швидкість навчання (0 < α ≤ 1), яка визначає, наскільки нова інформація переважає над старою.r
— це винагорода, отримана після виконання діїa
у станіs
.γ
— це коефіцієнт дисконтування (0 ≤ γ < 1), який визначає важливість майбутніх винагород.s'
— це наступний стан після виконання діїa
.max(Q(s', a'))
— це максимальне Q-значення для наступного стануs'
серед усіх можливих дійa'
.
- Ітерація: Повторюйте кроки 2-4, поки Q-значення не зійдуться або не буде досягнуто критерію зупинки.
Зверніть увагу, що з кожною новою вибраною дією таблиця оновлюється, що дозволяє агенту навчатися на своїх досвідах з часом, намагаючись знайти оптимальну політику (найкращу дію для виконання в кожному стані). Однак Q-таблиця може стати великою для середовищ з багатьма станами та діями, що робить її непрактичною для складних задач. У таких випадках можна використовувати методи апроксимації функцій (наприклад, нейронні мережі) для оцінки Q-значень.
tip
Значення ε-жадібної зазвичай оновлюється з часом, щоб зменшити дослідження, оскільки агент дізнається більше про середовище. Наприклад, воно може починатися з високого значення (наприклад, ε = 1) і знижуватися до нижчого значення (наприклад, ε = 0.1) у міру прогресу навчання.
tip
Швидкість навчання α
і коефіцієнт дисконтування γ
є гіперпараметрами, які потрібно налаштувати на основі конкретної задачі та середовища. Вища швидкість навчання дозволяє агенту навчатися швидше, але може призвести до нестабільності, тоді як нижча швидкість навчання забезпечує більш стабільне навчання, але повільніше зближення. Коефіцієнт дисконтування визначає, наскільки агент цінує майбутні винагороди (γ
ближче до 1) у порівнянні з негайними винагородами.
SARSA (Стан-Дія-Винагорода-Стан-Дія)
SARSA — це ще один алгоритм навчання з підкріпленням без моделі, який схожий на Q-Навчання, але відрізняється тим, як оновлює Q-значення. SARSA означає Стан-Дія-Винагорода-Стан-Дія, і він оновлює Q-значення на основі дії, виконаної в наступному стані, а не максимального Q-значення.
- Ініціалізація: Ініціалізуйте Q-таблицю з довільними значеннями (часто нулями).
- Вибір дії: Виберіть дію, використовуючи стратегію дослідження (наприклад, ε-жадібну).
- Взаємодія з середовищем: Виконайте вибрану дію в середовищі, спостерігайте наступний стан і винагороду.
- Зверніть увагу, що в цьому випадку, залежно від ймовірності ε-жадібної, наступний крок може бути випадковою дією (для дослідження) або найкращою відомою дією (для експлуатації).
- Оновлення Q-значення: Оновіть Q-значення для пари стан-дія, використовуючи правило оновлення SARSA. Зверніть увагу, що правило оновлення схоже на Q-Навчання, але воно використовує дію, яка буде виконана в наступному стані
s'
, а не максимальне Q-значення для цього стану:
Q(s, a) = Q(s, a) + α * (r + γ * Q(s', a') - Q(s, a))
де:
Q(s, a)
— це поточне Q-значення для стануs
і діїa
.α
— це швидкість навчання.r
— це винагорода, отримана після виконання діїa
у станіs
.γ
— це коефіцієнт дисконтування.s'
— це наступний стан після виконання діїa
.a'
— це дія, виконана в наступному станіs'
.
- Ітерація: Повторюйте кроки 2-4, поки Q-значення не зійдуться або не буде досягнуто критерію зупинки.
Softmax проти ε-жадібного вибору дій
На додаток до ε-жадібного вибору дій, SARSA також може використовувати стратегію вибору дій softmax. У виборі дій softmax ймовірність вибору дії є пропорційною її Q-значенню, що дозволяє більш тонко досліджувати простір дій. Ймовірність вибору дії a
у стані s
визначається так:
P(a|s) = exp(Q(s, a) / τ) / Σ(exp(Q(s, a') / τ))
де:
P(a|s)
- ймовірність вибору діїa
у станіs
.Q(s, a)
- Q-значення для стануs
та діїa
.τ
(тау) - параметр температури, який контролює рівень дослідження. Вища температура призводить до більшого дослідження (більш рівномірні ймовірності), тоді як нижча температура призводить до більшого використання (вищі ймовірності для дій з вищими Q-значеннями).
tip
Це допомагає збалансувати дослідження та використання більш безперервним чином у порівнянні з вибором дій ε-жадібним способом.
Навчання на основі політики vs Навчання поза політикою
SARSA є методом навчання на основі політики, що означає, що він оновлює Q-значення на основі дій, виконаних поточною політикою (ε-жадібною або софтмакс політикою). На відміну від цього, Q-Learning є методом навчання поза політикою, оскільки він оновлює Q-значення на основі максимального Q-значення для наступного стану, незалежно від дії, виконаної поточною політикою. Це розрізнення впливає на те, як алгоритми навчаються та адаптуються до середовища.
Методи на основі політики, такі як SARSA, можуть бути більш стабільними в певних середовищах, оскільки вони навчаються на основі дій, які фактично виконуються. Однак вони можуть сходитися повільніше в порівнянні з методами поза політикою, такими як Q-Learning, які можуть навчатися з більшого діапазону досвіду.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.