Я часто встречаю студентов, которые начинают свой путь к науке о данных с Keras, Tensorflow и, вообще говоря, Deep Learning. Они строят тонны нейронных сетей как сумасшедшие, но в конце концов они терпят неудачу со своими моделями, потому что они недостаточно знают машинное обучение и не могут применить необходимые методы предварительной обработки, необходимые для работы нейронных сетей.

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

Не начинайте с модели

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

Нейронные сети сложно обучить

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

Моделей больше, чем нейронных сетей

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

Нейронные сети - это черные ящики

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

Когда полезны нейронные сети?

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

Выводы

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

Первоначально опубликовано на https://www.yourdatateacher.com 24 мая 2021 г.