В этой заметке постараюсь раскрыть мысли по поводу необходимых шагов для старта проекта в области Machine Learning.
Необходимые данные
- Набор данных для обучения
- Исторические данные — для обучения предсказательных моделей
- Обучающая выборка — образцы того, что мы хотим найти/предсказать — для обучения модели
- Достаточной глубины (с учетом сезонности и т. п. до нескольких лет)
- Достаточного объема, репрезентативная выборка
- Набор данных для тестирования
- Исторические данные — для тестирования предсказательных моделей
- Тестовая выборка — для проверки качества модели
- Достаточного объема, репрезентативная выборка
- Актуальные данные — материал для работы модели
Источники данных
- «Сырые» данные — логи разного рода, фотографии, аудиозаписи
- Структурированные данные — корпоративные системы, комплексные хранилища данных (КХД), системы управления контентом (ECM) в том числе метаданные
- Внешние данные
- Открытые источники (соцсети , интернет)
- Приобретаемые данные
Проблема с которой вы можете столкнуться, это чувствительность данных. Решается следующими методами:
- Деперсонализация — замена персональных идентификаторов на условные (хэширование, кодирование и т. п.)
- Снижает категорию персональных данных
- Облегчает обмен данными со сторонними организациями
- Не решает проблему полностью
- Обфускация — искажение данных таким образом, чтобы снизить чувствительность, но сохранить полезность
- Существенно снижает риски утечки или злоупотребления
- Требует предварительного согласования в зависимости от использования данных
Теперь перейдем непосредственно к старту проекта. Для начала необходима стратегия работы, которую нужно определить заранее.
- Обеспечение наличия и доступности данных для произвольных задач
- Сбор собственных данных
- Сбор открытых данных
- Приобретение чужих данных
- Экспериментальный подход к бизнесу (A/B тестирования и эксперименты как таковые)
- Использование своих и внешних ресурсов и инструментов
Обеспечение сбора и доступности данных — собственные данные
- Постулирование ценности данных, независимо от возможности их немедленного использования
- Переоценка полезности данных с учетом применения технологий BD/ML
- Структрированные транзакционные
- Неструктурированные
- Логи и т. п.
- Инвентаризация потоков данных, с учетом переоценки, пересмотр подхода к хранению данных
Обеспечение сбора и доступности данных — внешние данные
- Поиск внешних источников и поставщиков данных
- Создание и развитие механизмов сбора и «интеграции» внешних и внутренних данных
- Последовательная работа по оценке полезности внешних данных, включению их в повседневную деятельность
Экспериментальный подход к бизнесу
- Постепенный переход от субъективных экспертных оценок к объективным экспериментальным
- Формирование культуры эксперимента
- Постоянное проведение экспериментов
- Значительное внимание к дизайну экспериментов
- Требование измеримых результатов
Необходимо помнить, что проекты в области Machine Learning, обладают рядом особенностей:
- Внимание на данные, а не на функции. Функционально решение крайне бедное, в общем случае реализуется одна функция
- Ограниченная применимость отработанных подходов внедрения, ориентированных на функции
- Вместо функционального ТЗ — требования к качеству модели
- Вместо опытной эксплуатации — эксперимент
- Во время промышленной эксплуатации необходима постоянная оценка и подстройка модели
Теперь переходим к самой главной части статьи. Жизненный цикл проекта в области Machine Learning:
- Определение целей, ограничений, критериев успеха — инициирование
- Определение требований к данным, доступности данных, получение образцов данных
- Определение формата результатов и способов использования результатов, детальное описание эксперимента, фиксация рамок проекта
- Передача и прием данных, препроцессинг, мэтчинг
- Построение, обучение, тестирование модели
- Экспериментальная проверка модели, опытная эксплуатация
- Интеграция модели в ИТ-инфраструктуру
- Эксплуатация решения, завершение проекта, промышленная эксплуатация и поддержка
Этап первый — Инициирование проекта
- Определение цели и критериев успеха в терминах бизнеса
- Оценка доступности данных
- Оценка реалистичности задачи
- Определение возможности и формы экспериментальной проверки
- Предварительное планирование
Этап второй- Определение требований к данным
- Инвентаризация доступных данных
- Номенклатура
- Образцы
- Объем
- Глубина
- Наличие обучающей выборки (при необходимости)
Оценка достаточности данных и возможности получения дополнительных данных. Определение чувствительности данных, возможности и формы их передачи, методов защиты и снижения чувствительности данных.
Этап третий- Определение формата результатов, фиксация рамок проектам
- Определение формата и способа использования результатов проекта
- Данные — выгрузка / загрузка
- Сервис по обработке данных
- Результаты анализа данных
- Модель как таковая (вместе со средой исполнения или отдельно)
- Детальное описание эксперимента
- Планирование проекта
- Фиксация рамок проекта, включающих все аспекты проекта
Этап четвертый- Передача и прием данных, препроцессинг, мэтчинг
- Определение способа передачи данных
- По каналам связи
- На носителях
- Препроцессинг
- Обфускация
- Деперсонализация
- Прием данных
- Оценка соответствия соглашениям
- Проверка полноты
- При необходимости мэтчинг данных из разных источников
- Чем меньше обработаны и обфусцированы данные, тем проще мэтчинг
- Определение технологий мэтчинга
Этап пятый- Построение, обучение, тестирование модели
С точки зрения управления этот этап «черный ящик». Что видно снаружи:
- Успешность приема данных, согласие с их достаточностью
- Определенность внутренних метрик качества
- Появление первой версии модели измеримого качества
- Повышение качества модели от версии к версии
- Соблюдение графика / отставание от графика
Этап шестой- Экспериментальная проверка модели
- Практическая реализация эксперимента
- Сбор данных в ходе эксперимента
- Расчет итогов
- Оценка результатов
- Решение о продолжении проекта / запуске сервиса
Этап седьмой- Интеграция модели в ИТ инфраструктуру
- Выбор способа интеграции
- Определение места размещения runtime части модели
Этап восьмой- Эксплуатация и поддержка модели
Определение Service Level Agreement (SLA)
Вот и все. Надеюсь эта информация поможет вам при запуске проектов в области Machine Learning.
Разговоры о Data Science – закрытый канал для общения на тему карьеры, развития профессиональных навыков и применения навыков на работе.