Нейронная сеть Оптимизирует w/Генетический алгоритм

Чтобы сделать ваш сервис глобально доступным в приложении Angular, добавьте providedIn: 'root' к метаданным вашего сервиса:

@Injectable({
  providedIn: 'root'
})
export class AppSettingsService {
  ...
}

или добавьте этот сервис в массив providers вашего AppModule:

@NgModule({
  providers: [AppSettingsService ]
  ...
})
export class AppModule {}
11
задан josliber 7 May 2014 в 17:07
поделиться

6 ответов

На самом деле, есть несколько вещей, которые вы можете оптимизировать с помощью GA относительно NN. Вы можете оптимизировать структуру (количество узлов, слоев, функцию активации и т. Д.). Вы также можете тренироваться с помощью GA, что означает установку весов.

Генетические алгоритмы никогда не будут наиболее эффективными, но они обычно используются, когда вы мало знаете, какие числа использовать.

Для обучения вы можете использовать другие алгоритмы, включая обратное распространение, nelder-mead и т. д.

Вы сказали, что хотите оптимизировать количество скрытых узлов, для этого может быть достаточно генетического алгоритма, хотя он далек от "оптимального". Пространство, которое вы ищете, вероятно, слишком мало для использования генетических алгоритмов, но они все еще могут работать и, черт возьми, они уже реализованы в Matlab, так что ничего страшного.

Что вы имеете в виду под оптимизацией количества выполненного обучения? Если вы имеете в виду количество эпох, то это нормально, просто помните, что тренировка так или иначе зависит от начальных весов, и они обычно случайны,

11
ответ дан 3 December 2019 в 06:47
поделиться

Я бы сказал, что генетические алгоритмы - это хорошая идея, так как вы можете начать с минимального решения и увеличить количество нейронов. Весьма вероятно, что «функция качества», для которой вы хотите найти оптимальную точку, является гладкой и имеет всего несколько выпуклостей.

Если вам часто приходится находить эту оптимальную NN, я бы рекомендовал использовать алгоритмы оптимизации, а в вашем случае - квази Ньютон, как описано в числовых рецептах, который является оптимальным для задач, где функция дорогая для оценки.

0
ответ дан 3 December 2019 в 06:47
поделиться

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

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

В большинстве случаев эти параметры NN не влияют на производительность очень сложным образом. Как правило, их увеличение на некоторое время увеличивает производительность, но затем начинает проявляться уменьшение отдачи. На самом деле GA не является необходимым, чтобы найти хорошее значение на такой простой кривой; если количество скрытых узлов (или обучающих итераций) действительно вызывает сложные колебания производительности, тогда метаэвристика вроде GA может быть подходящей. Но попробуйте применить метод грубой силы, прежде чем идти этим путем.

если количество скрытых узлов (или обучающих итераций) действительно вызывает сложные колебания производительности, тогда метаэвристика вроде GA может быть подходящей. Но попробуйте применить метод грубой силы, прежде чем идти этим путем.

если количество скрытых узлов (или обучающих итераций) действительно вызывает сложные колебания производительности, тогда метаэвристика вроде GA может быть подходящей. Но попробуйте применить метод грубой силы, прежде чем идти этим путем.

0
ответ дан 3 December 2019 в 06:47
поделиться

Я не уверен, следует ли вам использовать для этого генетический алгоритм.

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

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

Итак, если вы запустите это, вы получите обучающий набор, который обеспечил лучший результат с точки зрения качества нейронной сети (= время обучения, количество скрытых узлов, возможности решения проблем сети).

0
ответ дан 3 December 2019 в 06:47
поделиться

Genetic algorithms can be usefully applied to optimising neural networks, but you have to think a little about what you want to do.

Most "classic" NN training algorithms, such as Back-Propagation, only optimise the weights of the neurons. Genetic algorithms can optimise the weights, but this will typically be inefficient. However, as you were asking, they can optimise the topology of the network and also the parameters for your training algorithm. You'll have to be especially wary of creating networks that are "over-trained" though.

One further technique with a modified genetic algorithms can be useful for overcoming a problem with Back-Propagation. Back-Propagation usually finds local minima, but it finds them accurately and rapidly. Combining a Genetic Algorithm with Back-Propagation, e.g., in a Lamarckian GA, gives the advantages of both. This technique is briefly described during the GAUL tutorial

2
ответ дан 3 December 2019 в 06:47
поделиться

Хорошим примером нейронных сетей и генетического программирования является архитектура NEAT (нейроэволюция дополняющих топологий). Это генетический алгоритм, который находит оптимальную топологию. Также известно, что он хорош в уменьшении количества скрытых узлов.

Они также сделали игру, используя это, под названием Nero. Совершенно уникальные и очень удивительные осязаемые результаты.

Dr. Домашняя страница Стэнли:

http://www.cs.ucf.edu/~kstanley/

Здесь вы найдете практически все, что связано с NEAT, так как это он изобрел это.

4
ответ дан 3 December 2019 в 06:47
поделиться
Другие вопросы по тегам:

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