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

Имея это в виду, можно использовать NN для выполнения традиционного вывода (регрессии или классификации), учитывая, что вы можете правильно спроектировать сеть. Чтобы правильно спроектировать сетевую сеть, следует помнить о нескольких моментах:

  • Редкость ввода
  • Среднее и стандартное отклонение входных данных
  • Тип выхода

Разреженность

Одна из проблем работы с сетевыми сетями заключается в том, что они не очень хорошо работают с разреженными данными. Например, когда вы расширяете категориальные данные с помощью однократного горячего кодирования, вы можете получить 100 и, возможно, 1000 функций, большинство из которых пусты (нули). В таком случае вам нужно уменьшить длину входных объектов. Есть несколько подходов для решения этой проблемы: вы можете, например, применить уменьшение признаков уменьшение размерности или анализ главных компонентов, или вы можете применить биннинг, чтобы заменить категориальные признаки их вкладом в целевую переменную. Например, если у вас есть 30 видов мороженого и вы пытаетесь спрогнозировать объем продаж, вместо 30 новых функций вы можете заменить категориальную переменную мороженого числовой переменной, где каждый тип мороженого заменяется на средняя сумма продаж.

Среднее и стандартное отклонение

Это не всегда проблема, но исследования часто рекомендуют нормализовать ввод в сеть. Проблема возникает, в частности, в функциях активации сигмовидной и tanh на первом слое; поскольку эти две функции имеют ограниченный выход (0,1 и -1,1), большие отклонения во входных данных могут не фиксироваться должным образом, поэтому часто бывает полезна нормализация. Я часто использую пакетную нормализацию, которая изучает лучшие параметры нормализации (среднее и стандартное отклонение) для входных данных, даже несмотря на то, что это более затратно в вычислительном отношении.

Тип выхода

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

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