Salesforce: открытие Эйнштейна
В последнем выступлении Salesforce Einstein Analytics Keynote компания Salesforce продемонстрировала новый поиск очень интересных новых функций, не связанных с искусственным интеллектом. Большинство из этих функций связано с их предложениями Advanced Analytics, такими как Data Manager, Analytics Studio и Einstein Discovery. Самым интересным является обновленный рабочий процесс Открытие Эйнштейна. Вот краткое описание того, как работает этот рабочий процесс: (подробное видео здесь: https://www.youtube.com/watch?v=vE5RLPzbihU
- Любыми данными, внутренними или внешними по отношению к Salesforce, можно управлять / планировать / отслеживать / преобразовывать с помощью рабочего процесса «Потоки данных» + «Рецепты данных» в Диспетчере данных в Salesforce. Рецепты данных обрабатывают проверку качества отдельного набора данных, заполняя отсутствующие данные или создавая новые поля, в то время как поток данных обрабатывает несколько различных источников данных и масштабирует преобразования данных.
- Обработанные выходные данные из потоков данных и рецептов данных можно использовать для создания визуализаций данных (или линз), информационных панелей (состоящих из линз) и приложений (состоящих из данных, линз, информационных панелей).
- В качестве альтернативы, выходные данные из потоков данных и рецептов можно передать через рабочие процессы обнаружения Эйнштейна, где для данных создаются истории. Истории в основном отвечают на следующие вопросы о данных:
- Что произошло в данных (описательный анализ)
- Что произошло с течением времени (описательный анализ)
- Почему это произошло (некоторое моделирование для объяснения взаимосвязи между целевыми переменными и входными переменными)
- Что может случиться (некоторые прогнозы на основе предполагаемой модели)
- Как улучшить (на основе понимания того, почему, некоторые рекомендации / предложения по оптимизации целевых переменных)
Это очень важно, чтобы все эти анализы были автоматически сгенерированы без какого-либо кода. Это вызвало у меня интерес. Что может происходить на сервере? Оказывается, одна из основных составляющих этого автоматического анализа - это AutoML-библиотека Salesforce с открытым исходным кодом, которая называется «Transmorgrfai».
Зачем нужен Трансморгрифай?
Шубха Набар, старший директор Salesforce Einstein, упомянул следующие проблемы, связанные с существующими рабочими процессами машинного обучения, в обоснование необходимости Transmorgrifai.
- Специалисты по обработке данных сосредотачиваются на нескольких хорошо изученных сценариях использования и наборах данных в потребительских приложениях.
- Корпоративным приложениям требуются более разнообразные данные и варианты использования, например: отток, прогнозы продаж, беседы с потенциальными клиентами, переходы по ссылкам, покупки в Интернете.
- Глобальные модели, применимые в разных сценариях использования / отраслях / наборах данных, не имеют смысла. Требуются модели машинного обучения для конкретных клиентов. Этого можно добиться только с помощью растворов auto ml.
- Большинство современных решений auto ml сосредоточены на небольшой части рабочего процесса машинного обучения или применимы только к неструктурированным, однородным данным для изображений, голоса и языка.
- Сегодняшнее автоматическое решение не удовлетворяет этому требованию, поскольку сегодняшнее решение не может создавать эффективные модели для разнородных структурированных данных в массовом масштабе.
Рабочие процессы Transmorgrifai
Основные факты о трансморгрифай:
- Построен на Scala и SparkML
- Он может автоматизировать очистку данных, разработку функций и выбор модели с помощью пяти основных компонентов:
- Вывод функции: релевантные данные, а также сглаживание, объединение и агрегирование различных источников данных. Проблемы здесь, в рабочем процессе машинного обучения, заключаются в том, что специалисты по данным могут иметь неверные предположения о типах данных и значениях NULL в данных. Эта библиотека может обслуживать более тонкие типы данных, такие как географическое положение, почтовые индексы и т. Д., И автоматически извлекать необработанные предикторы и ответные сигналы.
- Автоматизированная разработка функций (трансморгрификация). Разработка функций определяется как преобразование функций в числовое представление, которое раскрывает закономерности / шаблоны данных, которые упрощают использование алогами машинного обучения. Transmorgrifai преобразует эти функции и оптимизирует преобразования, чтобы облегчить обучение машинному обучению на основе данных.
- Автоматическая проверка функций. При разработке функций может появиться большое количество функций, что может привести к утечке данных. (эта утечка данных отличается от общепринятой номенклатуры. Это конкретно относится к эффекту, который ошибочно рассматривается как причина. Подробности здесь: https://machinelearningmaster.com/data-leakage-machine-learning/) Эта библиотека автоматически удаляет функции с практически отсутствует предсказательная сила (функции, использование которых менялось со временем, функции с нулевой дисперсией, функции, распределение которых при обучении значительно отличается от распределения во время прогнозирования.
- Автоматический выбор модели. Поиск подходящего алгоритма и настроек параметров требует времени и усилий. Селектор модели transmorgrifai запускает соревнование нескольких алгоритмов машинного обучения на данных и использует среднюю ошибку проверки для автоматического выбора лучшего из них.
- Оптимизация гиперпараметров: в основе всех этапов рабочего процесса машинного обучения лежит слой оптимизации гиперпараметров. Например, при проектировании, настройка размера выборки, частоты дискретизации для несбалансированных данных - все это требует настройки.
Варианты дизайна Transmorgrifai:
Apache Spark: этот вариант выбирается для учета больших различий в размере данных. Во-вторых, модели машинного обучения должны обслуживаться как в пакетном, так и в потоковом режиме. Наконец, библиотека с открытым исходным кодом поддерживает постоянное улучшение со стороны сообщества.
Абстракция для функций. В дополнение к преобразователям и оценкам SparkML для преобразования фреймов данных Transmorgrifai вводит такие абстракции, как трансморгрификация, проверка функций, выбор модели и абстракция функций. В Transmorgrifai функция представляет собой типобезопасный указатель на столбец во фрейме данных и содержит всю информацию о столбце (имя, тип, информацию о происхождении о том, как он был получен).
Безопасность типов: функции строго типизированы. это позволяет библиотеке выполнять проверку типов для всего рабочего процесса машинного обучения. Это гарантирует, что ошибки будут обнаружены как можно раньше. Это увеличивает прозрачность ожидаемых входов и выходов.
Настраиваемость и расширяемость. Все стандартные средства оценки параметризованы и могут быть установлены и настроены непосредственно специалистом по анализу данных.
Масштаб и производительность: рабочие процессы Transmorgrifai решают эту проблему, выводя весь DAG преобразований, необходимых для материализации функций, и оптимизируя выполнение этого тега, свертывая все преобразования.
Другие библиотеки AutoML с открытым исходным кодом
Transmorgrifai - не единственная библиотека AutoML с открытым исходным кодом. Вот список:
- Auto-sklearn (python): байесовская оптимизация над фиксированным 3-х шаговым конвейером ml
- Auto-Weka (Java): аналогично автосклеарну, но построено на основе Weka.
- Tpot (python): генетическое программирование через настраиваемый конвейер машинного обучения.
- H2o.ai AutoML (базовая подготовка данных с сочетанием сеточного / случайного поиска)
- Devol (python): поиск архитектуры глубокого обучения с помощью генетического программирования
- Авто-Керас
Коммерческие инструменты AutoML:
- Робот данных: исправлен поиск по конвейерам 1000 ML
- H2O.ai ИИ без водителя
- Google AutoML
- SAS Facotry Miner
- IBM SPSS Modeler
Будущее AutoML:
- AutoML также будет обрабатывать большую часть процесса очистки данных (неразрезанные данные будут легко преобразованы в табличные данные, готовые для анализа. Записывайте человеческие подходы к очистке данных)
- AutoML значительно улучшит глубокое обучение, при котором сетевая структура DNN будет генерироваться автоматически.
- AutoML будет масштабироваться до больших наборов данных (сейчас это очень медленно для больших данных)
- AutoML станет конкурентоспособным для человека.
Вот оригинальный доклад с конференции Scipy о перспективах автоматического машинного обучения: https://www.youtube.com/watch?v=QrJlj0VCHys