Есть ли способ обновить нейронную сеть в R с помощью отдельных наблюдений для эпизодического обучения?
Для проекта в области обучения с подкреплением для небольшого примера gridworld с большим количеством смоделированных эпизодов я хочу сделать в R следующее:
- 0а. Я моделирую 1000 эпизодов со случайной стратегией.
- 0b. Для каждого возможного действия я обучаю модель на уже смоделированных запусках с состоянием в качестве моих функций.
- Я моделирую новый эпизод, выбирая эпсилон-жадные действия в эпизоде с текущим состоянием в качестве функций.
- Я оцениваю модель до сих пор, раздавая вознаграждение в зависимости от производительности
- В новом изученном эпизоде я хочу обновить модели, а затем для следующего эпизода начать с шага 1. пока у меня не будет достаточно эпизодов в целом, и производительность не улучшится значительно.
Для этого я сначала подумал об использовании дерева решений для моделирования ожидаемого состояния вознаграждения, но затем после каждого шага модель должна быть обучена совершенно новой, потому что в ней нет концепции "обновления".
Поскольку нейронные сети обучаются последовательно наблюдение за наблюдением со стохастическим градиентным спуском, теперь я хочу обучить нейронную сеть с помощью наблюдений выгорания, а затем оценивать и обновлять ее после каждого эпизода (каждый эпизод может создавать несколько наблюдений для каждого действия, поэтому он может быть, необходимо выполнить несколько шагов обновления).
Теперь вопрос в том, есть ли способ легко обновлять объекты нейронной сети в R, как результаты neuralnet
-функция neuralnet
пакет или есть лучший способ сделать это?
Вот небольшой пример радужной оболочки:
library(neuralnet)
set.seed(13012020)
nn <- neuralnet(Species == "setosa" ~ Petal.Length + Petal.Width, iris[1:149,], linear.output = FALSE)
new_observation <- iris[150,]
## How to update the neuralnet with the new observation?
Однажды я сам написал нейронную сеть на R, но это не самая быстрая программа, и я почти уверен, что должны существовать более быстрые и лучшие реализации.
Большое спасибо за твою помощь!