Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Вы считаете задачу обучить машину играть в игры для Атари имея на входе только скриншоты "совсем несложной системой"? На этой задаче предложенный алгоритм работает наравне с reinforced learning, в каких-то играх побеждает, в других немного отстает.
Ну вот Вам понятно, а этим господам непонятно: Andrej Karpathy, Tim Salimans, Jonathan Ho, Peter Chen, Ilya Sutskever, John Schulman, Greg Brockman & Szymon Sidor.
Спасибо за комплимент
import numpy as np
from matplotlib import pyplot as plt
def f(w): return -np.sum((w - solution)**2)
npop = 50 # population size
sigma = 0.1 # noise standard deviation
alpha = 0.001 # learning rate
N = 1000 # iterations number
SIZE = 10 # task size (times 3)
w = np.random.randn(SIZE *3) # initial guess
solution = np.array([0.5, 0.1, -0.3] * SIZE).flatten()
graph = np.zeros(N)
for i in range(N):
N = np.random.randn(npop, SIZE * 3)
R = np.zeros(npop)
for j in range(npop):
w_try = w + sigma*N[j]
R[j] = f(w_try)
A = (R - np.mean(R)) / np.std(R)
w = w + alpha/(npop*sigma) * np.dot(N.T, A)
graph[i]= f(w)
plt.figure()
plt.plot(np.log(-graph))
plt.show()
Размерность w Число итераций Погрешность (f(w))
3 250 10E-12
30 1000 10E-7
300 2500 10E-3
3000 7000 10E0
30000 >20000 Не доучилась за полчаса, см. график




Уровень сложности задачи определяется только размерностью вектора параметров w— это неплохое заблуждение, даже для тех же игр Атари. Даже статья написана так, что кажется что это действительно так)
Эволюционные стратегии как масштабируемая альтернатива обучению с подкреплением