Как я могу применить многопоточность к обучению нейронной сети обратной связи?

Я всегда использовал структуру, когда я хотел группироваться несколько значений для того, чтобы пасовать назад вещи от вызова метода, но я не должен буду использовать его ни для чего после того, как я считал те значения. Так же, как способ содержать вещи в чистоте. Я склонен просматривать вещи в структуре, столь же "холостой" и вещи в классе как более полезный и "функциональный"

9
задан Miley 2 December 2009 в 02:44
поделиться

2 ответа

Прежде всего, не используйте обратное распространение. Есть много других вариантов. Я бы посоветовал попробовать RPROP (устойчивое распространение). Это не будет такой большой модификацией вашего алгоритма обратного распространения ошибки. Вам не нужно указывать скорость обучения или импульс. На самом деле это почти как если бы у вас была индивидуальная переменная скорость обучения для каждого соединения в нейронной сети.

Что касается применения многопоточности к обратному распространению. Я только что написал статью по этой теме.

http://www.heatonresearch.com/encog/mprop/compare.html

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

Когда у вас значительно больше обучающих выборок, чем весов, код тратит гораздо больше времени на вычисление многопоточного градиента, чем на обновление веса критической секции.

Я предоставляю некоторые результаты производительности по указанной выше ссылке. Это действительно ускоряет работу!

10
ответ дан 4 December 2019 в 21:10
поделиться

Для использования большего количества ядер ЦП с Java вы можете просто попробовать дополнительные параметры для JVM, не меняя код:

  • -server
  • -d64
  • -XX: -UseParallelGC

и другие параметры на http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

0
ответ дан 4 December 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: