Сегодня почти каждый может «заниматься» машинным обучением…

Модель машинного обучения, шаг за шагом:

  1. Загрузите свой любимый популярный язык с открытым исходным кодом, Python или R справятся с задачей (необходимы минимальные навыки программирования, кроме импорта данных, милооооооо)
  2. Зайдите в Google и установите пакет машинного обучения (например, импортируйте pytorch как ptch или библиотеку(neuralnet))
  3. Импортируйте свой любимый набор данных (круто, правда? Вам даже не нужно указывать какую-то реальную проблему для решения!)
  4. Запустите свои model.fit() и model.predict()(Не знаете, как работает ваша нейронная сеть? Расслабьтесь, чувак, Адам Пашке, Сэм Гросс, Сумит Чинтала и Грегори Чанан из pytorch, а также Стефан Фрич и Фрауке Гюнте из нейронной сети уже определили минимальный интерфейс, чтобы вы могли повеселиться)
  5. Сообщите о своих выводах своему руководителю и обновите свои навыки в LinkedIn

К сожалению, этот [не очень сатирический] список из 5 пунктов тревожно близок к реальности, близок к большому количеству новичков в области машинного обучения и науки о данных, близок к большому количеству учебных лагерей ML / DS и близок к тому, что на самом деле ожидают работодатели. от вас как от профессионала.

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

Одним из самых больших преимуществ [и, в конечном счете, самым большим недостатком] демократизации науки (в частности, в связи с ростом доступности компьютерных мощностей и инструментов с открытым исходным кодом) в статистике и информатике является то, насколько легко кто-нибудь, чтобы соответствовать какой-то смехотворно сложной модели. И Comprehensive R Archive Network (CRAN), и Python Package Index (PyPI) проделали бесспорно аккуратную работу, устанавливая одни из самых строгих требований к документации и процедурам обслуживания для разработки пакетов в отрасли (например, серьезно существуют банки и правительства). с более мягкими требованиями). Несмотря на то, что речь идет о проектах с открытым исходным кодом, использование такого рода инструментов растет в геометрической прогрессии, потому что эти жесткие требования внушают доверие. Разработчики также соответствуют этому стандарту, придерживаясь этих правил. Однако эта история успешной [этической] ответственности для большинства пользователей этих инструментов совсем другая.

Возьмем эти две [реальные] ситуации:

  1. Ведущий специалист по аналитике данных в XYZ Inc., крупнейшем рекламном сервисе в мире, удаляет выбросы, чтобы улучшить свою линейную модель r-квадрата с ~ 0,7 до ~ 0,9, анализ продается как информация для третьей стороны. Ведущий специалист по аналитике данных сопоставляет нейронную сеть с ценой акций XYZ, используя рабочий процесс model.fit(), он/она, по-видимому, игнорирует механику модели, лежащую в основе модели, и численный метод.
  2. Bank ABC реализует некоторую селекторную функцию для выбора из некоторого пула распределений, чтобы смоделировать доходность для измерения риска. Эта функция не указывает, какой критерий используется для выбора модели, и не детализирует алгоритм, который она использует, однако менеджер инструктирует младших аналитиков использовать такие функции, даже если они не были разработаны внутри компании.

Ребята, вы видите, что общего у 1 и 2? Видите ли, в настоящее время быть «специалистом по данным / инженером по машинному обучению» стало своего рода дворянским титулом, неким статусным пунктом в резюме многих людей, маркетинговым ходом, который поддерживается только этим рабочим процессом model.fit(), как бы то ни было мне кажется, что очень немногие действительно понимают, что на самом деле поставлено на карту во всех этих аналитических позициях. 1 и 2 не являются лабораторными примерами из вашего класса ML, они не являются окончательным проектом для вашего курса. Первый имеет реальную экономическую ценность, поскольку XYZ взимает плату за эту аналитику, а второй напрямую влияет на благосостояние клиентов банка посредством политики управления рисками. Существование модели не ограничивается куском кремния внутри вашего ПК (перефразируя Ричарда МакЭлрита в его книге Статистическое переосмысление), модели оказывают ощутимое влияние на реальный мир.

Как аналитики, мы не можем забывать, что в конечном итоге наши результаты будут использоваться для принятия решений. Что я имею в виду? Я имею в виду, что ваш объект model.fit() будет использоваться для оценки кредитоспособности, на основе которой будут рассчитываться проценты и суммы по кредиту, будет доставлен в качестве информации клиенту (признается доходом вашей фирмы) или высшее руководство (которое будет составлять бюджет капиталовложений), его можно использовать даже для разработки государственной политики. Модели реальны, они влияют на реальных людей через решения, которые мы принимаем с их помощью. Из-за этого инженеры по машинному обучению, аналитики данных, специалисты по обработке и анализу данных и т. д. несут ответственность за любой недостаток, к которому может привести реализация/дизайн нашей модели.

Некоторые из вас могут возразить, что не так просто развернуть какую-то модель на корпоративном уровне, с чем я могу согласиться. Есть тесты, которые необходимо пройти, несколько сдержек и противовесов, которые необходимо очистить, некоторый управленческий обзор (в зависимости от случая) и, очевидно, отдел соответствия (например, в случае финансовых учреждений, которые непосредственно контролируются государственными органами). Тем не менее, какой менеджер на самом деле проверяет обработку выбросов от своих аналитиков? Достаточно ли понимания ML/AI руководством для тщательной оценки моделей ML/AI? И, наконец, возьмем, к примеру, пример № 2, из которого плохая практика исходит непосредственно от менеджера.

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

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

В конце концов, все сводится к профессиональной этике. Если вы не можете назвать основные допущения вашей модели и не можете хотя бы в общих чертах описать, как работает алгоритм, возможно, вы не так квалифицированы, как думаете. У женихов есть поговорка, которая гласит: «Не вкладывайся в то, чего не понимаешь». Думаю, в DS/ML можно было бы сказать что-то подобное: «Не делай $%&#?! подходите к какой-то модели, которую вы не понимаете!». Впечатлить своего менеджера, принимая во внимание общую картину, просто не стоит.

Однако, если мы действительно хотим что-то улучшить, эта статья (как заметил Артуро Гонсалес) не может быть посвящена только жалобам. Итак, в духе предоставления (а не просто критики) я отвечу на вопрос, который на данный момент остается: с чего мне начать?

Следующий список, по моему личному мнению, содержит полезные ресурсы, из которых можно получить качественную информацию. Однако нет никого более находчивого, чем сообщество ML/DS, поэтому любое дополнение к этому списку будет оценено по достоинству. Этот список не претендует на то, чтобы быть окончательным, а просто является отправной точкой.

(1/4) Теоретические ресурсы:

  1. Машинное обучение с вероятностной точки зрения, Кевин П. Мерфи. На мой взгляд, одна из лучших книг, когда-либо написанных. Здесь вы можете найти от введения в вероятность, через байесовскую и частотную статистику до точного математического представления почти всей модели ML.
  2. Документация по пакетам от каждого разработчика пакетов. Читайте документацию пакета! Первые сведения о том, что делают модели, обычно описываются с большим количеством деталей вместе с основными теоретическими ссылками в документации пакета.
  3. Введение в численные методы Стивена Дж. Джонсона. Через MIT Open Courseware вы можете получить доступ к курсам, разработанным MIT, в частности, этот (доступный здесь) знакомит с тем, как выполняются вычисления с точки зрения компьютера.

(2/4)Ресурсы по программированию

*Как однажды сказал один хороший друг (Карлос Альберто Аро): «Выбери свой яд». Я бы только добавил, раз уж выбрали, пейте хорошенько.

  1. R4DS от Хэдли Уикхэма. Я осмелюсь заявить, что в настоящее время R полностью посвящен рабочему процессу и синтаксису Tidyverse (и Tidymodels). Эта книга абсолютно необходима, если вы являетесь пользователем R, и это инициатива с полностью открытым исходным кодом (доступна здесь).
  2. Python для анализа данных, автор Уэс Маккинни. Точно так же, как R — это Tidyverse, Python — это Pandas и SciKit Learn. Как и предыдущая книга, эта книга обязательна для пользователей Python.
  3. Руководство по науке о данных в Python Джейка Вандерплааса. Еще один отличный ресурс с открытым исходным кодом (доступен здесь) для пользователей Python (предложен Карлосом Альберто Аро).
  4. SQL Zoo (доступно здесь), SQL Bolt (доступно здесь) или w3schools. Хотя программирование на SQL является частью более широкой темы баз данных, то, что вам нужно для манипулирования ими, вы можете узнать на этих платформах, которые очень хороши.

(3/4)Инфраструктурные ресурсы

*Как мы упоминали ранее, DS/ML — это комплексные решения. В этом разделе мы попытаемся показать некоторые основные инструменты для развертывания модели.

  1. Блестящее руководство от RStudio, Flask Quickstart от Pallets Project или Streamlit (опять же предложено Карлосом Альберто Аро). Хотя Shiny (для пользователей R) и Flask/Streamlit (для пользователей Python) могут не подходить для моделей с высокой пропускной способностью и интенсивным использованием компьютеров, они обеспечивают некоторый первый подход к развертыванию моделей в приложениях или на информационных панелях.
  2. Проектирование баз данных и реляционная теория: нормальные формы и все такое прочее, Крис Дж. Дейт. Файлы Excel и CSV не являются базами данных. Реальные проекты обычно не статичны, что является атрибутом, унаследованным от самих данных. База данных касается хранения и доступности данных, однако структура, проектирование и обслуживание базы данных не так просты, как вы думаете.
  3. Облачные вычисления с AWS/Azure. Хотя сертификаты имеют стоимость, материалы на самом деле бесплатны. Переход к облачной инфраструктуре — очевидная тенденция. Ресурсы доступны даже для сертификатов администратора баз данных.
  4. Контроль версий с помощью Git. Возможно, это один из самых сложных навыков для развития, и в основном это делается на бегу. Однако на Github есть отличная документация для изучения рабочего процесса управления версиями.

(4/4)Информационные ресурсы

*Прозрачность должна быть одной из основных характеристик каждого информационного продукта, однако здесь может возникнуть реальная проблема из-за сложности анализа.

  1. Ggplot2: элегантная грамматика для анализа данных, Хэдли Уикхэм. Изображения — один из наших самых мощных инструментов. Хотя ggplot представляет собой пакет на основе R, в этой книге рассматривается философия, лежащая в основе конструкции пакета, которая в целом может быть применена к хорошим и эффективным методам визуализации.
  2. Интерпретируемое машинное обучение: руководство по созданию моделей черного ящика с объяснениями, Кристоф Молнар. В этой книге (еще одно предложение Артуро Гонсалеса) конкретно рассматривается, как добавить прозрачности в модели машинного обучения, и представлено несколько инструментов для достижения этой цели.

…конец темы

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

Как однажды сказал дядя Бен… «С большой силой приходит большая ответственность». Мы действительно должны помнить об этом.