Свойства для создания многослойной нейронной сети персептрона с использованием керас?

datascience.stackexchange https://datascience.stackexchange.com/questions/9502

  •  16-10-2019
  •  | 
  •  

Вопрос

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

Общая численность населения средний возраст % BachelorsDeg или более высокий уровень безработицы на душу населения Общая доходы Средний размер домохозяйства % владелец владелец жилищ

Это 14 столбцов обучающих данных, а 15 -й столбец - это выход.

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

  1. Функция активации

Я знаю, что мой первый шаг - придумать функцию активации. Я всегда изучал нейронные сети, использовавшиеся функции активации сигмоида. Является ли сигмоидальная функция активации лучшей? Как узнать, какой из них использовать? Керас дополнительно дает варианты использования функции активации SoftMax, SoftPlus, Relu, TANH, Line или Hard_sigmoid. Я в порядке с использованием чего -либо, но я просто хочу понять, почему и плюсы и минусы.

  1. Вероятность инициализации

Я знаю, что инициализации определяют распределение вероятностей, используемое для установки начальных случайных весов слоев кераса. Параметры, которые дают Keras, являются равномерным Lecun_Uniform, Normal, Identity, Orthogonal, Zero, Glorot_normal, Glorot_Uniform, He_Normal и He_Uniform. Как мой выбор здесь влияет на мой конечный результат или модель? Разве это не должно быть не иметь значения, потому что мы «тренируем» любую случайную модель, с которой мы начинаем, и в любом случае придумывать более оптимальное взвешивание слоев?

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top