Как работает обучение нейронной сети с использованием метаэвристики c, такой как PSO? - PullRequest
0 голосов
/ 31 марта 2020

Я хочу узнать немного больше о других подходах к обучению нейронных сетей, и я могу найти немало литературы по обучению сети GA, но не так много по обучению PSO. Как это работает?

У меня есть общая идея: вы создаете рой из множества частиц и используете функцию потери сети (например, MSE) в качестве heuristi c. Частицы будут перемещаться в области, где MSE является наименьшим, и тогда у вас есть вес для сети.

Я понимаю, что для онлайновой сети обратного распространения ванили, вот общая идея для обучения:

for each epoch:
  for each training example d:
    feed-forward d through layers 0..n
    find error e as a function of expected vs. actual output
    back-propagate e through layers n..0
    update weights w as a function of w, e, learning and momentum rates
  endfor
endfor

Я просто не могу найти много информации об использовании PSO для обучения нейронных сетей или о том, где оно вписывается в алгоритм. Помимо моего изношенного (и, возможно, неверного) предположения, я не знаю, предназначено ли оно для онлайн или пакетного обучения, как найти ошибку для внутренних слоев без BP, заменяет ли PSO или сопровождает BP, et c.

Мне бы хотелось, чтобы pu sh был в правильном направлении, но не обязательно кодировал, поскольку мне больше интересно узнать об этом сначала перед реализацией.

1 Ответ

0 голосов
/ 01 апреля 2020

Только для потомков и на тот случай, если кто-то еще столкнется с этим вопросом: PSO интегрируется в нейронные сети, заменяя BP для обучения. Используя функцию ошибки MSE вместе с набором обучающих примеров, вы получаете непрерывное и ограниченное пространство поиска и функцию пригодности, именно то, что нужно PSO.

initialize a set of random particles in n-dimensions (n = # of weights in network)
perform PSO using swarm of particles
PSO fitness function is network MSE function
MSE function should (always?) uses feed forward to generate sum of errors of found vs target
over time, particles (as an encoding of weights) will find a minimum of MSE
return the best particle after so many iterations, initialize network weights as position

Существуют другие приложения, которые вы можете использовать PSO совместно с нейронными сетями, такими как выбор гиперпараметра или выбор структуры модели. Однако меня больше всего интересовало обучение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...