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

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

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

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

1. Есть ли у вас бюджет для необходимой стоимости инфраструктуры?

Обучение моделей глубокого обучения предполагает обработку огромного количества данных. А большие данные требуют других инструментов и инфраструктуры по сравнению с небольшими данными. Возможно, вы сможете создать прототип своей модели на своем ПК или на одном сервере с ЦП, но когда дело доходит до готовых к производству моделей, в отличие от традиционных моделей машинного обучения, вам потребуются графические процессоры, TPU и миллионы или миллиарды записей. данных для параллельной обработки. Если у вас нет надлежащей инфраструктуры, обучение вашей модели и эксперименты будут очень медленными и/или не будут построены с максимальной эффективностью.

2. Достаточно ли у вас данных?

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

Просто отметим, что трансферное обучение очень помогло уменьшить потребность в большом количестве размеченных данных. Например, вы видите героический! истории людей, которые использовали BERT (или аналогичный), настроили его и получили хорошие результаты. ОДНАКО люди обычно делятся своими успехами и молчат, когда дело доходит до неудач. Мой опыт показывает, что трансферное обучение сопряжено с огромной ответственностью за то, чтобы вы не вводили непреднамеренную предвзятость или слепые пятна в свою модель. Я напишу статью о том, как трансферное обучение может быть опасным, если вы не знаете, что делаете!

3. Есть ли у вас доступ к знанию предметной области?

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

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

Я пытаюсь сказать здесь, что вы не должны использовать машинное обучение, когда проблема может быть решена путем установки некоторых правил if-else. То же самое относится и к глубокому обучению: снизьте затраты, когда проблема решается разработкой функций + традиционное машинное обучение.

4. Нужна ли вам прозрачность

Модели глубокого обучения известны как черные ящики. Были проведены такие исследования, как LIME, SHAP и DeepLIFT, чтобы сделать их более объяснимыми. Но на данный момент, на мой взгляд, недостаточно, чтобы использовать их в продуктах, ориентированных на клиента.

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

5. Вам нужны быстрые обновления модели

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

Бонусный совет. Вы хотите делать только классные вещи?

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

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

Перед тем, как ты уйдешь

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