Я не нашел удовлетворительного ответа на этот вопрос от Google .
Конечно, если у меня есть данные порядка нескольких миллионов, то глубокое обучение - это путь.
И я прочитал, что, когда у меня нет больших данных, тогда, возможно, лучше использовать другие методы в машинном обучении. Приведенная причина является чрезмерной. Машинное обучение: то есть просмотр данных, извлечение функций, создание новых функций из собранных данных и т. Д., Например, удаление сильно коррелированных переменных и т. Д. Всего машинного обучения 9 ярдов.
И мне было интересно: почему нейронные сети с одним скрытым слоем не являются панацеей от проблем машинного обучения? Они являются универсальными оценщиками, с переподгонкой можно управлять с помощью отсева, регуляризации l2, регуляризации l1, пакетной нормализации. Скорость обучения, как правило, не проблема, если у нас есть только 50 000 примеров обучения. Они лучше во время испытаний, чем, скажем, случайные леса.
Так почему бы и нет - очистите данные, вменяйте пропущенные значения, как вы это обычно делаете, центрируйте данные, стандартизируйте данные, добавьте их в ансамбль нейронных сетей с одним скрытым слоем и примените регуляризацию до тех пор, пока вы не увидите чрезмерного соответствия, а затем обучите их до конца. Никаких проблем с градиентным взрывом или исчезновением градиента, поскольку это всего лишь двухслойная сеть. Если необходимы глубокие уровни, это означает, что иерархические особенности должны быть изучены, и тогда другие алгоритмы машинного обучения также не годятся. Например, SVM - это нейронная сеть только с потерей шарнира.
Был бы признателен пример, где какой-то другой алгоритм машинного обучения превзошел бы тщательно упорядоченную 2-уровневую (возможно, 3?) Нейронную сеть. Вы можете дать мне ссылку на проблему, и я обучу лучшую нейронную сеть, какую только смогу, и мы увидим, что двухуровневая или трехуровневая нейронная сеть не соответствует любому другому алгоритму машинного обучения.