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

14

Предположим, что я хочу решить проблему с нейронной сетью, которая либо не подходит для уже существующих топологий (персептрон, Конохен и т. Д.), Либо я просто не знаю о существовании этих или я не могу понять их механика и я полагаюсь на себя вместо этого.

Как я могу автоматизировать выбор топологии (то есть количества слоев, типа активаций, типа и направления соединений и т. Д.) Нейронной сети для произвольной задачи?

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

Золтан Шмидт
источник

Ответы:

11

Я думаю, что в этом случае вы, вероятно, захотите использовать генетический алгоритм для создания топологии, а не работать самостоятельно. Мне лично нравится NEAT (NeuroEvolution of Augmenting Topologies) .

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

DanTheMan
источник
5

В другом ответе упоминается NEAT для создания весов или топологий сети. В статье NeuroEvolution: Важность эволюции передаточной функции и гетерогенных сетей , в которой также дается краткое описание методов нейроэволюции, представлен альтернативный подход к NEAT. Он использует декартово генетическое программирование для развития нескольких функций активации.

NietzscheanAI
источник