Передумови:
Я використовую наближення значення нейронної мережі у своєму навчальному завданні з посиленням. Підхід точно такий, як описаний у цьому питанні , однак сам питання інший.
У цьому підході кількість результатів - це кількість дій, які ми можемо вжити. Простими словами, алгоритм наступний: виконайте дію A, досліджуйте нагороду, попросіть NN передбачити значення Q для всіх можливих дій, виберіть максимальне значення Q, обчисліть Q для конкретної дії A як R + max(new_state_Q)
. Встановити модель на передбачувані значення Q лише з одним із них замінено на R + max(new_state_Q)
.
Питання: Наскільки ефективний такий підхід, якщо кількість результатів велика?
Спроба: Скажімо, ми можемо вжити 10 дій. На кожному кроці ми просимо модель передбачити 10 значень, в ранньому віці моделі це прогнозування є загальним безладом. Потім ми модифікуємо 1 значення виводу і підходимо модель до цих значень.
У мене є дві протилежні думки щодо того, наскільки хороший \ поганий такий підхід, і я не можу визначити, який з них правильний:
- З однієї точки зору, ми тренуємо кожен нейрон 9 разів на випадкових даних і лише один раз на даних, близьких до реального значення. Якщо NN передбачив 5 для дії A у стані S, але реальне значення дорівнює -100, ми підходимо NN 9 разів зі значенням 5, а потім один раз зі значенням -100. Звучить божевільно.
- З іншого погляду, вивчення нейронної мережі реалізується як зворотне поширення помилки , тому коли модель передбачила 5, а ми навчаємо її на 5, вона не дізнається нічого нового, оскільки помилка 0. Ваги не торкаються . І лише коли ми порахуємо -100 і прилаштуємо його до моделі, це зробить перерахунок ваги.
Який варіант підходить? Можливо, є ще щось, чого я не беру до уваги?
ОНОВЛЕННЯ: Під "наскільки ефективно" я маю на увазі порівняння підходу з одним результатом - передбачувана винагорода. Звичайно, дія буде частиною входу в цьому випадку. Таким чином, підхід №1 передбачає передбачення для всіх дій, заснованих на певному стані, підхід №2 передбачає конкретні дії, вжиті в певному стані.