Нейронные сети против всего остального

15

Я не нашел удовлетворительного ответа на этот вопрос от Google .

Конечно, если у меня есть данные порядка нескольких миллионов, то глубокое обучение - это путь.

И я прочитал, что, когда у меня нет больших данных, тогда, возможно, лучше использовать другие методы в машинном обучении. Приведенная причина является чрезмерной. Машинное обучение: то есть просмотр данных, извлечение функций, создание новых функций из собранных данных и т. Д., Например, удаление сильно коррелированных переменных и т. Д. Всего машинного обучения 9 ярдов.

И мне было интересно: почему нейронные сети с одним скрытым слоем не являются панацеей от проблем машинного обучения? Они являются универсальными оценщиками, с переподгонкой можно управлять с помощью отсева, регуляризации l2, регуляризации l1, пакетной нормализации. Скорость обучения, как правило, не проблема, если у нас есть только 50 000 примеров обучения. Они лучше во время испытаний, чем, скажем, случайные леса.

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

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

MiloMinderbinder
источник
14
Нейронные сети являются алгоритмом машинного обучения ...
Мэтью Друри
6
Конечно, есть некоторые области, в которых глубокое обучение имеет первостепенное значение, например распознавание изображений, но в большинстве других областей, как правило, преобладает повышение градиента, что видно из результатов соревнований Kaggle.
Джейк Уэстфолл,
1
@ MatthewDrury - это действительно так! извиняюсь за паршивость в терминологии. Я надеюсь, что сообщение было передано, хотя. изменяя вопрос, тем не менее, чтобы быть более надежным. Спасибо за указание
MiloMinderbinder
1
Что касается глубины сети, обязательно проверьте это: stats.stackexchange.com/questions/182734
JDD

Ответы:

31

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

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

применять регуляризацию до тех пор, пока вы не увидите переутомление

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

они универсальные оценщики

Это верно только в случае неограниченного количества единиц, что нереально.

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

Примерная проблема, которую, как я ожидаю, никогда не сможет решить нейронная сеть: по целому числу классифицировать как простое или не простое.

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


Может ли регуляризация взять модель от той, которая подходит к той, которая имеет свою репрезентативную силу, серьезно ограниченную регуляризацией? Разве не всегда будет то сладкое место между ними?

Да, есть сладкое пятно, но обычно до того, как вы перестаете переоснащаться. Смотрите этот рисунок:

http://gluon.mxnet.io/_images/regularization-overfitting.png

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

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

θЧАС(θ)θ


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

Да. Вот уродливая, но, надеюсь, эффективная фигура, иллюстрирующая мою точку зрения. https://i.imgur.com/nM3aI2l.png

но это не имеет смысла. глубокая сеть может просто выучить отображение 1-1 над мелким

Вопрос не в «может ли это», а в «будет ли это», и если вы тренируетесь обратное распространение, ответ, вероятно, нет.

Мы обсуждали тот факт, что большие сети всегда будут работать лучше, чем маленькие сети

Без дальнейшей квалификации, это утверждение просто неправильно.

Симао
источник
Спасибо за ответ! Может ли регуляризация взять модель от той, которая подходит к той, которая имеет свою репрезентативную силу, серьезно ограниченную регуляризацией? Разве не всегда будет то сладкое место между ними?
MiloMinderbinder
Относительно вашей игрушечной проблемы. Каков «простой алгоритм, который перебирает все действительные программы по возрастанию длины и находит самую короткую программу, которая правильно определяет простые числа». алгоритм, который учится?
MiloMinderbinder
Пожалуйста, обратите внимание на примечания к лекции cs231n: «Мы обсуждали тот факт, что более крупные сети всегда будут работать лучше, чем более мелкие сети, но их более высокая пропускная способность должна быть надлежащим образом решена с более сильной регуляризацией (такой как затухание с более высоким весом), иначе они могут перегрузиться. Мы увидим больше форм регуляризации (особенно отсева) в следующих разделах. ' cs231n.github.io/neural-networks-1
MiloMinderbinder,
@ user46478 Я ответил на твои вопросы, отредактировав ответ
shimao
«Нет гарантии, что вы сможете применить достаточную регуляризацию, чтобы предотвратить переоснащение без полного разрушения способности сети чему-либо научиться». - Извините, но я все еще не понимаю это утверждение. Я беру обучающие данные, {train, val} split, создаю самую большую сеть, которую разрешает моя машина, увеличиваю вероятность отсева, пока не увижу, что ошибка валидации минимизирована среди ошибок валидации, которые я получаю при различных вероятностях отсева. Может ли этот процесс привести к бесполезности из-за чрезмерно подогнанной модели без прохождения хорошей модели?
MiloMinderbinder
11

Я бы добавил, что нет такой вещи как панацея от машинного обучения:

По теореме об отсутствии бесплатного обеда :

Если алгоритм хорошо справляется с определенным классом проблем, то он обязательно платит за это с ухудшением производительности на множестве всех оставшихся проблем.

user3684792
источник
Это очень удручает (но не волнуйтесь, я не буду спорить с последствиями) 1. Читая это, я понимаю, что речь идет об алгоритмах с одинаковым распределением по функциям, которые они могут изучать (что также означало бы одинаковую совместную работу). Таким образом, нейронные сети могут быть противопоставлены только универсальным оценщикам. 2. Это не говорит о том, как быстро выполняется поиск функционального пространства. Можно ли сказать, что нейронная сеть с 2 скрытыми слоями обязательно эквивалентна или превосходит нейронную сеть с одним скрытым слоем на каждую проблему? я думаю, что предположение о преемственности должно многое сделать здесь
MiloMinderbinder
при правильной настройке гиперпараметра две скрытые многослойные нейронные сети перепрыгивают через функции, которые имеют схожие домены быстрее, чем одна скрытая многослойная нейронная сеть. ваши входы?
MiloMinderbinder
1
«Можно ли сказать, что нейронная сеть с 2 скрытыми слоями обязательно эквивалентна или превосходит нейронную сеть с одним скрытым слоем на каждую проблему». Нет, к сожалению нет. В качестве встречного примера представьте логистическую регрессию (nn с нулевыми скрытыми слоями) по сравнению с 1-слойной нейронной сетью с числом скрытых единиц, равным количеству точек данных для полностью разделяемого набора данных. Нет информации о границе принятия решения, которую lr не может охватить, и nn высокой сложности, вероятно, перегонит
user3684792
3
Согласитесь с утверждением здесь, но я хотел добавить стандартную оговорку к НФЛ, также взятую со страницы википедии: «Обратите внимание, что НФЛ применяется, только если целевая функция выбрана из равномерного распределения всех возможных функций».
mkt - Восстановить Монику
1
@ user46478 Я согласен с актуальностью теоремы НФЛ в ответ на ваш вопрос: «Почему нейронные сети с одним скрытым слоем не являются панацеей от проблем машинного обучения?»
mkt - Восстановить Монику