Как начать машинное обучение с нуля до единицы

машинное обучение искусственный интеллект алгоритм Эксплуатация и техническое обслуживание

Эта статья была опубликована Чжан Жун вПубличный аккаунт Tencent Zhiyun

предисловие

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

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

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

Если кто-то хочет знать, какие научные исследования проводит автор, вы можете обратиться к статье Чжиху «Сложная динамическая система (1) --- Набор Фатоу и набор Жюлиа». Что касается машинного обучения, то я в принципе не соприкасался с ним во время учебы и даже не слышал о таком. Тем не менее, из-за профессиональных потребностей во время учебы я все еще могу писать некоторые коды, такие как C++, и я также оставил свой след в UVA OJ.

2015: Попытка трансформации

Дорога трудна, дорога трудна, много расходящихся дорог, где ты сегодня?

После выпуска в 2015 году я случайно попал в Tencent, чтобы заняться работой, связанной с машинным обучением. Однако, когда я впервые пришел, давление было немалым.Оглядываясь назад, я пошел в обход, который не должен был идти. Использование стихов из книги Ли Бая «Трудности в путешествии» для описания настроения в то время — это «Дорога трудна, дорога трудна, много расходящихся дорог, где ты сегодня?"

В октябре 2015 года я впервые столкнулся с небольшим проектом, рекомендованным ХХ. Этот проект был вторым рекомендованным проектом, полученным группой на тот момент.Система рекомендаций на тот момент еще была построена на кластере больших данных, и не было вообще никакой документации или front-end страниц.Вся система и процесс на тот момент время были сложными и громоздкими. Однако в процессе обращения к этой системе я постепенно начал осваивать некоторые простые команды операционной системы Linux и использование SQL.

Если вы понимаете SQL, вы не только проходите систему, но и помогаете бизнес-стороне извлекать данные через дежурную в это время ADS, и еще больше углубляете базовые знания SQL. Для изучения SQL в 2015 году я прочитал два очень хороших вводных учебника «Основной учебник по SQL» и «Руководство по программированию HIVE». Прочитав «Энциклопедию командной строки и сценариев оболочки Linux», вы, вероятно, узнаете о содержании, связанном с Linux. Итак, поработав некоторое время, чтобы обобщить некоторые распространенные алгоритмы SQL, я написал статью «Основное введение в HIVE».

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

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

Наиболее распространенный метод — посмотреть на веса обученной модели.Кроме того, математические инструменты, такие как коэффициент корреляции Пирсона и дивергенция KL, могут использоваться для грубой оценки того, действительна ли функция. Также в этот период написал несколько статей «Перекрестная проверка», «Введение в разработку функций», «Расхождение KL». Что касается фиче-инжиниринга, помимо чтения необходимых книг, самое главное — это практика, только практика может обогатить ваш опыт.

При создании системы рекомендаций вес модели рассчитывался в автономном режиме с помощью алгоритма логистической регрессии, а затем импортировался в онлайн-систему для расчета и оценки в реальном времени. Помимо офлайн-алгоритмов, в декабре 2015 года я узнал об алгоритмах FTRL, которым можно обучаться онлайн. После исследования и обмена в группе в начале 2016 года, и в то же времяzr9558.comЯ поделился своим резюме выше и недавно перенес статью в свой общедоступный аккаунт WeChat «Следуйте за регуляризованным лидером».

В процессе выполнения проекта рекомендаций XX я узнал, что данные являются краеугольным камнем всего проекта машинного обучения.Если качество данных неудовлетворительное, необходимо предварительно обработать данные и даже подтолкнуть разработчиков к решению проблемы. отчетности данных. Вообще говоря, чтобы сделать хороший рекомендательный проект, помимо разработки функций и алгоритмов, самое главное — проверить данные. Опыт того времени заключался в том, что необходимо было проверять данные нескольких сторон, то есть результаты, рассчитанные алгоритмом в автономном режиме, результаты, рассчитанные онлайн, и результаты, отображаемые в реальном продукте.Данные этих трех сторон должны быть полностью непротиворечивыми. Если они несовместимы, их необходимо перепроверить, а не продвигаться вперед по проекту. За этот период я ​​наступил на бесчисленное количество ям с данными, поэтому полученный опыт говорит о том, что данные нужно проверять неоднократно.

2016: От нуля до единицы

Стоя на плечах гигантов можно видеть дальше. --Система рекомендаций по обучению

"Стоя на плечах гигантов можно видеть дальше.«В феврале 2016 года в дополнение к персонализированному алгоритму оптимизации главной страницы рекомендованного XX проекта был запущен еще один небольшой проект, пытающийся открыть вкладку главной страницы, то есть рекомендовать разные элементы для разных пользователей. Этот небольшой проект A более простой подход — использовать ItemCF или алгоритм распространения теплопроводности, чтобы рекомендовать похожие программы пользователям после того, как они прослушали определенную программу.

На самом деле этот сценарий уже давно успешно используется в отрасли, и это не новый сценарий. Это похоже на книгу с пользователем на веб-сайте электронной коммерции, а затем рекомендуются другие связанные книги. Ранее я также написал простой алгоритм рекомендательной системы «Алгоритм диффузии материалов», который рекомендуется для вашего ознакомления. Что касается соответствующего содержания ItemCF и алгоритма теплопроводности, мы продолжим улучшать его в последующих блогах.

"Читать тысячу раз - это своекорыстно." В процессе использования всей системы рекомендаций автор лишь приблизительно знает, как устроена вся система. Чтобы понять соответствующие алгоритмы машинного обучения в целом, далеко не достаточно делать проекты. Выполняя рекомендации, в начале 2016 года г-н Чжоу Чжихуа выпустил учебник «Машинное обучение», поэтому ему потребовалось некоторое время, чтобы прочитать эту книгу. Однако лично я считаю, что эта книга не слишком сложна, просто ее нужно читать в сочетании с другой книгой, чтобы понять тонкости, то есть «Машинное обучение на практике». В «Практике машинного обучения» есть не только принципиальное описание алгоритмов, связанных с машинным обучением, но и подробный исходный код, которого достаточно, чтобы сделать каждого новичка от новичка до начального уровня.

Дорога длинна и длинна, я буду ходить вверх и вниз искать

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

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

Однако реального бизнес-опыта при работе над проектами в области безопасности на тот момент не было, и предварительный план состоял в том, чтобы провести пилотное машинное обучение на базе бизнесов XX1 и XX2. Чтобы хорошо поработать в этом проекте, в начале автор исследовал несколько стартапов, которые утверждают, что занимаются машинным обучением + безопасностью, Среди них наиболее изученной компанией является XX, потому что их семья опубликовала статью, в которой рассказывалось, как применяется машинное обучение.С точки зрения безопасности бизнеса это построение системы противостояния неконтролируемая + контролируемая + ручная маркировка. Автор до сих пор резюмирует алгоритмы обнаружения выбросов, которые я выучил за два-три месяца в то время.Ссылка на статью следующая: "Алгоритм обнаружения выбросов (1)","Алгоритм обнаружения выбросов (2)","Алгоритм обнаружения выбросов (3)","Обзор алгоритмов обнаружения выбросов".

В конце 2016 года тоже было совпадение: некоторые коллеги увидели мою статью, опубликованную в ноябре 2016 года, и пришли к автору, чтобы обсудить, как построить игровой ИИ. На тот момент автор мало что понимал в сценариях применения игрового ИИ, только то, что DeepMind сделала AlphaGo, и использовала глубокие нейронные сети для игры в игры Atari в 2013 году. В декабре я провел некоторое время, изучая обучение с подкреплением и глубокое обучение, а также построил простую сеть DQN для обучения обучению с подкреплением. После нескольких контактов и обменов в январе 2017 года наконец был создан простой игровой ИИ, и самообучение игрового ИИ также может осуществляться с помощью машинного обучения. Хотя и не в игровом отделе, но благодаря этому инциденту автор также проявил большой интерес к игровому ИИ и написал две статьи «Обучение с подкреплением и функциональный анализ», «Глубокое обучение и обучение с подкреплением».

2017: перегруппировка

Выполняя ежедневные проекты, я также увлекся квантовыми вычислениями в 2017 году. В последующие месяцы работы я продолжал изучать базовые знания о квантовых вычислениях, некоторые технические решения для квантового машинного обучения и написал две статьи «Квантовые вычисления (1)» и «Квантовые вычисления (2)», которые представили квантовые вычисления. основные понятия и приемы.

Тридцать славы, пыли и земли, восемь тысяч миль дорожных облаков и луны

Когда дело доходит до перегруппировки, это на самом деле означает выполнение совершенно нового проекта с нуля до одного в 2017 году. В июле 2017 года, когда структура машинного обучения для обеспечения безопасности бизнеса постепенно совершенствовалась, проект XX подходит к концу, поэтому в наших руках новый проект — проект интеллектуальной эксплуатации и обслуживания Zhiyun. Операционный центр все еще находится в стадии разведки и начальной стадии.Интеллектуальная эксплуатация и техническое обслуживание (AIOPS)Предложение также началось постепенно в 2017 году, то есть от ручного управления и обслуживания, автоматического управления и обслуживания и постепенно к этапу эксплуатации и обслуживания искусственного интеллекта, который называется AIOPS. Только таким образом операционный центр может реализовать настоящую стадию эксплуатации и обслуживания кофе.

Официальный контакт с проектом по эксплуатации и техническому обслуживанию состоялся в августе 2017 года. Судя по общению со студентами, изучающими бизнес-эксплуатацию и техническое обслуживание, в то время в бизнесе было несколько болевых точек и трудностей. Например: аномальное обнаружение временных рядов Zhiyun Monitor, анализ первопричины Hubble, анализ первопричин системы Zhiyun ROOT, устранение неполадок, оптимизация затрат и другие проекты. В условиях нехватки персонала AIOPS, а академическое сообщество мало изучает такие технические решения, как проводить машинное обучение в эксплуатации и обслуживании — огромная проблема. Как и в системе Aegis в прошлом, независимо от того, что вы делаете, вы можете легко получить доступ к другим рекомендуемым услугам, а также у вас есть относительно зрелый внутренний опыт.В академических кругах и промышленности есть бесчисленное количество успешных примеров. Однако интеллектуальная эксплуатация и техническое обслуживание стали продвигаться только в 2017 году. До этого все операции и техническое обслуживание выполнялись вручную, а также некоторое содержание DevOps. Поэтому создание интеллектуальной системы эксплуатации и обслуживания, которую можно было бы использовать в отделе как можно скорее, стало огромной проблемой. Проблемы, с которыми приходится сталкиваться, в основном следующие:

  1. тяжелое бремя истории

  2. Нехватка кадров в AIOPS

  3. Нет зрелой системной структуры

В этом случае невозможно внедрить технологию извне, и она может полагаться только на самостоятельные исследования, а коллеги, которые сотрудничают, в основном занимаются бизнес-операциями, обслуживанием и развитием операций. Первым интеллектуальным проектом по эксплуатации и техническому обслуживанию, с которым я связался в то время, был многомерный анализ детализации Хаббла.Его бизнес-сценарий заключается в том, что, как только обнаруживается, что показатель успеха и другие показатели упали, необходимо точно найти отклонения от многомерных -мерные индикаторы, такие как операторы, провинции и т. д., мобильные телефоны и другие индикаторы, чтобы найти причины снижения показателя успешности, что является классическим анализом первопричин. После расследования было установлено, что на основные статьи можно ссылаться.После всестороннего рассмотрения был написан документ, который называется «Изучение первопричинного анализа». PS: В дополнение к многомерной детализации Хаббла, я лично считаю, что в интеллектуальном бизнес-анализе BI этот метод действительно может быть использован для интеллектуального обнаружения таких вопросов, как «почему DAU упал?» «Почему доход не оправдал ожиданий». " и так далее.

В дополнение к многомерному бурению Хаббла алгоритм обнаружения аномалий временных рядов Zhiyun Monitor является более сложным проектом. Предыдущий алгоритм обнаружения аномалий Monitor полагается на то, что разработчики устанавливают три пороговых значения (максимальное, минимальное и волатильность) в соответствии с характеристиками кривой для обнаружения аномалий. В результате точность не точна, охват недостаточен, а трудозатраты огромны. Когда требуется обнаружение аномалий для миллионов кривых, совершенно неразумно вручную настраивать пороги для каждой кривой. В результате получается, что кто-то должен дежурить каждую неделю, а проблемы могут быть обнаружены не вовремя. Что касается алгоритмов временных рядов, люди обычно могут думать об алгоритме ARIMA, алгоритмах глубокого обучения RNN и LSTM, а также о недавнем инструменте Prophet с открытым исходным кодом от Facebook. Автор исследовал эти методы и в будущем напишет соответствующие статьи, чтобы представить использование ARIMA, RNN и Prophet Добро пожаловать на общение.

Фактически, приведенные выше несколько алгоритмов прогнозирования временных рядов и обнаружения аномалий в основном основаны на одном временном ряду и в основном работают с теми временными рядами, которые относительно стабильны и имеют историческую регулярность. Если модель временного ряда строить отдельно для каждой кривой, она ничем не отличается от определения порога, а трудозатраты все равно огромны. Более того, в реальном сценарии Zhiyun Monitor эти модели обнаружения аномалий временных рядов имеют свои собственные недостатки и не могут достичь эффекта «один человек выбирает миллион кривых KPI».

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

Среди различных алгоритмов обнаружения аномалий временных рядов обычные статьи нацелены на определенный тип временных рядов, при использовании определенного типа модели эффект может быть оптимальным. Однако в нашем сценарии применения кривые, которые мы видели, очень странные, и автор не может сказать, сколько существует форм кривых, поэтому совершенно не рекомендуется использовать только определенный тип модели временного ряда. Однако в процессе обучения машинному обучению существует интегрированный метод обучения, то есть в качестве признаков используются результаты нескольких моделей, и эти признаки используются для обучения более общей модели, так что все временные ряды Zhiyun Monitor ненормальное обнаружение. Автор обобщил этот тип метода, то есть «Введение во временные ряды (1)», и, наконец, мы получили «миллион кривых» и успешно устранили бизнес-эффект от установки порогов.

в будущем

Это также хорошо для того, что у меня на сердце, хотя я умер девять раз, я до сих пор не сожалею.

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

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

Поэт Лу Ю когда-то учил свое молодое поколение: "Ругуо хочет научиться поэзии, но кунг-фу не может быть поэзией.Это означает, что если вы хотите действительно писать хорошие стихи, вы должны упорно трудиться в жизни, чтобы испытать взлеты и падения жизни, вместо того, чтобы многократно читать ее с книгой стихов и песен.

Любой, кто видел Восемь Частей Небесных Драконов, знает, что Куможи отправился в храм Шаолинь, чтобы бросить вызов и продемонстрировал семьдесят два шаолиньских навыка, которым он научился, перед шаолиньскими монахами.Многие шаолиньские монахи были шокированы. В то время Сюй Чжу наблюдал за битвой и сказал шаолиньским монахам: «Хотя трюки, которые выполняет Куможжи, являются шаолиньскими трюками, они по существу мотивированы использованием Сяо Усян Гун. Хотя трюки одинаковы, они разные. Он использует внутреннюю силу даосизма». Почему шаолиньские монахи не видели ключевой момент боевых искусств Куможи? Это потому, что когда шаолиньские монахи практиковали, они всегда практиковали секреты боевых искусств, и в конечном итоге они практиковали все их жизни Всего 13 трюков.

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

Автор работает в отделе эксплуатации социальной сети SNG более двух лет.Я использовал рекомендованные проекты, делал проекты по безопасности, работаю над проектами по эксплуатации и сопровождению.Также я единственный человек в отделе (не знаю, если это точно) который сделал три вида проектов.Используя систему рекомендаций, я построил две системы с нуля до единицы. В настоящее время личный интерес автора сосредоточен на сценарии AIOPS, поскольку автор считает, что в традиционной сфере эксплуатации и обслуживания бизнеса машинное обучение должно найти свое применение. Считается, что в ближайшем будущем AIOPS будет реализован в различных сценариях эксплуатации и обслуживания, и он действительно будет двигаться в сторону кофейной эксплуатации и обслуживания.

Авторские сводные статьи, упомянутые в статье, могут ссылаться на личный публичный аккаунт автора:математическая жизнь

об авторе

Чжан Жун: Исследователь машинного обучения Tencent, окончил Национальный университет Сингапура со степенью доктора математических наук. В настоящее время он занимается исследованием применения искусственного интеллекта в рекомендательных системах, системах безопасности бизнеса и интеллектуальных системах эксплуатации и обслуживания, таких как интеллектуальная система мониторинга Zhiyun Monitor.

Приглашаем всех обратить внимание на общедоступную учетную запись Tencent Zhiyun WeChat (TencentCOC) и как можно скорее получить более практичные галантерейные товары для эксплуатации и технического обслуживания ~