Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Комп’ютерний практикум №3

Марківські процеси прийняття рішень. Навчання з підкріпленням.

ПІБ: Дзюба Анатолій Анатолійович


Група: ІК-02

Мета роботи: ознайомитись з методами пошуку в умовах невідомості та


навчання з підкріпленням в моделях на основі станів; дослідити їх
використання для інтелектуального агента в типовому середовищі.

Завдання: обрати середовище моделювання та задачу, що містить агента,


який може бути навчений методом «з підкріпленнями». В обраному
середовищі вирішити задачу знаходження найкращої стратегії поведінки,
реалізувавши один з методів. Виконати дослідження реалізованого методу.

Номер варіанту: 18

Завдання для варіанту:

приміщення з Влив значення


18 окремими винагороди та Value iteration
перешкодами вартості руху

Середовище: Grid World  це класичне середовище з планування в агенту з


підкріпленням. Grid World складається з сітки квадратних клітинок, де кожна
клітинка може бути або безпечною ділянкою, або червоною ділянкою, або
стіною, або цільовою ділянкою (кінцевим станом). В даній роботі
використовується середовище розміром 10х10.
Агент може здійснювати певні дії в кожному стані. Дії включають рух вгору,
вниз, вліво або вправо. Агент може здійснювати дію «рух» тільки в безпечних
ділянках і не може проходити через стіни.
В даному випадку середовище є детермінованим, оскільки усі переходи між
станами є чітко визначеними та статичними, тобто що при виборі певної дії в
певному стані, наступний стан є визначеним
Але, середовище Grid World може бути розглянуте як недетерміноване або
стохастичне, якщо вводяться елементи випадковості або невизначеності в
переходах між станами. Тобто, якщо агент може здійснювати рух вгору, вниз,
вліво або вправо, але при спробі руху в певному напрямку агент може
помилитися і перейти в інший напрямок з певною ймовірністю.
В даній роботі перехід з одного стану в інший здійснюється з використанням
деяких ймовірностей. Було введено елемент випадковості: агент може
помилитися із вірогіднісю 20%. Тому в даному випадку середовище також
може розглядається як дещо стохастичне.
У середовищі Grid World передбачені наступні винагороди:
 Стіна: Стіни є недосяжними місцями, і агент не може пройти через них.
 Червона ділянка: має велику негативну винагороду, що вказує на
небажане місце для агента.
 Безпечна ділянка: Присвоєна від’ємна винагорода, яка менша за
винагороду у червоній ділянці, тобто є невеликий «штраф» за
переміщення між ділянками.
 Цільова ділянка: Агент отримує велику позитивну винагороду, коли
досягає цільової ділянки, означаючи успішне завершення.

Метод вирішення задачі: Метод навчання з підкріпленням Value Iteration є


одним із підходів до розв'язання задач планування в контексті reinforcement
learning. Його основна мета полягає в тому, щоб агент навчився приймати
оптимальні рішення в середовищі, враховуючи винагороди, які він отримує за
свої дії.
Основна ідея методу Value Iteration полягає у тому, що агент оцінює цінність
(або очікувану винагороду) кожного стану в середовищі та використовує ці
оцінки для вибору оптимальних дій. У процесі навчання Value Iteration агент
здійснює декілька ітерацій, оновлюючи значення цінності станів до збіжності,
тобто до моменту, коли зміни цінностей станів стають малими або
незначними. Коли значення цінностей збіжні, агент вважає, що досягнуто
оптимальної стратегії.
Метод навчання з підкріпленням Value Iteration є офлайн стратегією, оскільки
він вимагає заздалегідь відомої моделі середовища. Це означає, що агент має
повний доступ до інформації про можливі стани, дії та перехідні ймовірності
між станами.
Перш ніж почати процес навчання з використанням Value Iteration, зазвичай
потрібно дослідити середовище, тобто отримати інформацію про стани, дії та
винагороди. Спочатку визначаються усі можливі стани (агент повинен
визначити всі можливі стани, в яких він може перебувати в середовищі). Потім
визначаються усі можливі дії (рух у певному напрямку, взаємодія з об'єктами,
прийняття рішень тощо). Далі агент повинен визначити, які винагороди він
отримує за перебування в певних станах або здійснення певних дій. Ці
винагороди можуть бути позитивними, негативними або навіть нульовими,
залежно від цілей агента та характеристик середовища. Також агент має
визначити перехідні ймовірності: стохастичні або детерміновані перехідні
ймовірності, які вказують на ймовірності переходу з одного стану в інший
після здійснення певних дій

Реалізація методу: програмна реалізація методу наведена нижче:

class ValueIteration:
def __init__(self, reward_function, transition_model, gamma):
self.num_states = transition_model.shape[0]
self.num_actions = transition_model.shape[1]
self.reward_function = np.nan_to_num(reward_function)
self.transition_model = transition_model
self.gamma = gamma
self.values = np.zeros(self.num_states)
self.policy = None

def one_iteration(self):
delta = 0
for s in range(self.num_states):
temp = self.values[s]
v_list = np.zeros(self.num_actions)
for a in range(self.num_actions):
p = self.transition_model[s, a]
v_list[a] = self.reward_function[s] + self.gamma * np.sum(p
* self.values)

self.values[s] = max(v_list)
delta = max(delta, abs(temp - self.values[s]))
return delta

def get_policy(self):
pi = np.ones(self.num_states) * -1
for s in range(self.num_states):
v_list = np.zeros(self.num_actions)
for a in range(self.num_actions):
p = self.transition_model[s, a]
v_list[a] = self.reward_function[s] + self.gamma * np.sum(p
* self.values)

max_index = []
max_val = np.max(v_list)
for a in range(self.num_actions):
if v_list[a] == max_val:
max_index.append(a)
pi[s] = np.random.choice(max_index)
return pi.astype(int)

def train(self, tol=1e-3, plot=True):


epoch = 0
delta = self.one_iteration()
delta_history = [delta]
while delta > tol:
epoch += 1
delta = self.one_iteration()
delta_history.append(delta)
if delta < tol:
break
self.policy = self.get_policy()

if plot is True:
fig, ax = plt.subplots(1, 1, figsize=(3, 2), dpi=200)
ax.plot(np.arange(len(delta_history)) + 1, delta_history,
marker='o', markersize=4,
alpha=0.7, color='#2ca02c', label=r'$\gamma= $' +
f'{self.gamma}')
ax.set_xlabel('Iteration')
ax.set_ylabel('Delta')
#ax.legend()
plt.tight_layout()
plt.title(Максимальна зміна значення через ітерації ')
plt.show()

Результати застосування розробленого методу:


Динаміку навчання зображено у вигляді кривої навчання, яка показує зміну
максимального значення на кожній ітерації:

Були отримані наступні значення корисностей:


Отримана оптимальна стратегія розв’язку:

Оцінка результатів: Отримана стратегія розв’язку є однією з оптимальних.

Як видно з рисунку, за знайденою стратегією, агент дістається за 14 кроків (13


кроків + крок для переходу на клітинку з винагородою). Це найменше
значення кроків, необхідних, щоб дістатися винагороди.

Value Iteration є ефективним методом для вирішення задачі Grid World. Такий
висновок можна зробити тому, що, як видно з динаміки навчання, вже з
приблизно 20-ї ітерації різниця максимального значення почала спадати, а
починаючи з приблизно 65-ї ітерації була наближена до 0. Тобто стратегія
оптимального рішення була знайдена точно знайдена вже на 70-й ітерації
(досить швидко.)

Задача дослідження впливу параметра алгоритму:

Результати, описані в попередньому пункту, були отримані за наступних


значень винагород:
 «Штраф переходу» -50
 Черврна ділянка -100
 Цільова ділянка

Для другого експерименту було зменшено значення штрафу переходу до -25 та


отримані наступні результати:
Значення корисностей:
Оптимальна стратегія розв’язку:
В даній стратегії необхідно 14 кроків, що дістатися до цілі. Тому, можна
зробити висновок, що отримана «оптимальна» стратегія є оптимальною.
Тобто, при зменшення вартості переходу між станами («штрафу» за перехід)
ми «дозволяємо» агенту робити більше переміщень і він вже не шукає
найкоротший шлях до цілі.
Було проведено ще декілька експериментів з різними значеннями винагород.
Результати неведені в таблиці нижче.

Чи була
К-ть кроків, знайдена
«Штраф Червона Цільова
№ необхідних, щоб оптимальна
переходу» ділянка ділянка
дістатися цілі стратегія дійсно
оптимальною
1 -50 -100 +100 14 Yes
2 -25 -50 +100 14 Yes
3 -10 -100 +100 No solution
4 0 -100 +100 No solution
5 0 -50 +100 No solution
6 0 -25 +100 14 Yes
7 0 0 +100 14 Yes
8 -100 -100 +100 14 Yes
9 -50 -25 +100 14 Yes
10 -50 0 +100 No solution
Результат навчання від значень винагород впливає на здатність алгоритму
знайти оптимальну стратегію і досягти кінцевого стану. З аналізу наведених
результатів можна зробити наступні спостереження:
Експеримент 1: Значення винагород забезпечують знайдення оптимальної
стратегії і досягнення кінцевого стану. Штрафи за перехід та червону ділянку
великі, що забезпечує покарання агента за недоречні дії і стимулює його
швидко досягти цілі.
Експерименти 2, 3 і 4: Значення винагород не дозволяють знайти оптимальну
стратегію і досягнути кінцевого стану. Штраф за перехід та червону ділянку
недостатні, щоб відлякати агента від неправильних дій, або нагорода за
досягнення цілі недостатньо висока для мотивації до швидкого досягнення
цілі. Це призводить до зациклювання агента або до знаходження неефективної
стратегії.
Експерименти 5, 6 і 7: Значення винагород забезпечують знайдення
оптимальної стратегії і досягнення кінцевого стану. В цих випадках штрафи за
перехід відсутні, а за перехід на червону ділянку  відсутні або мінімальні, що
дозволяє агенту ефективно рухатися до цілі.
Експеримент 8: «штраф» за переміщення було встановлено рівним штрафу за
потрапляння на червону ділянку (досить високими), але агент все одно
знайшов оптимальний шлях до винагороди. Взагалі, великі штрафи за перехід і
червону ділянку можуть заважати знайти оптимальну стратегію, особливо
якщо нагорода за досягнення цілі не висока. Агент може уникати ризикованих
дій через великі штрафи, але не знаходити найкоротший шлях до цілі.
Експеримент 9: Штраф за перехід більший, а штраф за червону ділянку
менший, але, оскільки від’ємний штраф за потрапляння на червону ділянку
додоються до штрафу за перехід, це відлякує агента від потрапляння на
червоні ділянки, і він знаходить оптимальну стратегію.
Експеримент 10: У цьому випадку, при відсутності штрафу за перехід і
червону ділянку, агент може зациклюватися або обирати недоречні дії, що не
дає змоги знайти оптимальну стратегію та досягти кінцевого стану.

Таким чином, значення винагород мають важливе значення для успішного


навчання в задачі Grid World. Вони повинні бути налаштовані таким чином,
щоб нагороджувати бажані дії та достатньо карати небажані, стимулюючи
агента до ефективного руху та досягнення цілі.

You might also like