У нас появился новый номер 1 в нашей таблице лидеров - конкурент, который неожиданно присоединился к платформе всего два года назад. Шубин Дай, более известный своими друзьями как Bestfitting on Kaggle или Bingo, специалист по анализу данных и технический менеджер, живущий в Чанше, Китай. В настоящее время он возглавляет основанную им компанию, которая предоставляет программные решения для банков. Вне работы и за пределами Каггла Дай заядлый велосипедист и любит проводить время на природе. Вот что лучше всего:
Не могли бы вы рассказать нам немного о себе и своем прошлом?
Я специализировался в области информатики и имею более чем 10-летний опыт разработки программного обеспечения. По работе я в настоящее время возглавляю команду, которая предоставляет решения для обработки и анализа данных для банков.
Еще со времен колледжа я интересовался использованием математики для создания программ, решающих задачи. Я постоянно читаю всевозможные книги и статьи по информатике, и мне очень повезло, что я следил за прогрессом, достигнутым в области машинного обучения и глубокого обучения за последнее десятилетие.
Как ты начал с соревнований Kaggle?
Как упоминалось ранее, я читал много книг и статей о машинном обучении и глубоком обучении, но мне всегда было трудно применять алгоритмы, которые я изучил, на небольших наборах данных, которые легко доступны. Так что я нашел Kaggle отличной платформой со всевозможными интересными наборами данных, ядрами и отличными обсуждениями. Мне не терпелось попробовать что-нибудь, и я впервые принял участие в конкурсе «Прогнозирование деловой ценности Red Hat».
Каков ваш первый план действий при работе над новым соревнованием?
В течение первой недели после запуска конкурса я создаю документ решения, за которым следую и обновляю по мере продолжения конкурса. Для этого я должен сначала попытаться понять данные и стоящую перед ними задачу, а затем изучить аналогичные соревнования Kaggle и все связанные с ними статьи.
Как выглядит ваш цикл итераций?
- Внимательно прочтите обзор и описание данных конкурса.
- Найдите похожие соревнования Kaggle. Как относительно новичок, я собрал и провел базовый анализ всех соревнований Kaggle.
- Читайте решения подобных конкурсов.
- Прочтите статьи, чтобы убедиться, что я не упущу никаких успехов в этой области.
- Проанализируйте данные и создайте стабильное резюме.
- Предварительная обработка данных, разработка функций, обучение моделей.
- Анализ результатов, такой как распределение прогнозов, анализ ошибок, сложные примеры.
- Разработайте модели или спроектируйте новую модель на основе анализа.
- Создавайте модели на основе анализа данных и результатов, чтобы добавить разнообразия или решить сложные выборки.
- При необходимости вернитесь к предыдущему шагу.
Какие ваши любимые алгоритмы машинного обучения?
Я выбираю алгоритмы от случая к случаю, но я предпочитаю использовать простые алгоритмы, такие как регрессия гребня при объединении, и мне всегда нравится начинать с resnet-50 или разрабатывать аналогичную структуру в соревнованиях по глубокому обучению.
Какие ваши любимые библиотеки машинного обучения?
Мне очень нравится питорч в соревнованиях по компьютерному зрению. Я использую тензорный поток или керас в НЛП или соревнованиях временных рядов. Я использую seaborn и продукты семейства scipy при проведении анализа. И scikit-learn и XGB - всегда хорошие инструменты.
Как вы относитесь к гипер-настройке параметров?
Я пытаюсь настроить параметры на основе моего понимания данных и теории, лежащей в основе алгоритма, я не буду чувствовать себя в безопасности, если не смогу объяснить, почему результат лучше или хуже.
В соревнованиях по глубокому обучению я часто ищу статьи по теме и пытаюсь узнать, что авторы сделали в аналогичной ситуации.
И я сравню результат до и после внесения изменений параметров, таких как распределение прогнозов, затронутые примеры и т. Д.
Каков ваш подход к твердой перекрестной проверке / окончательному выбору представления и LB-соответствию?
Хорошее резюме - половина успеха. Я не перейду к следующему шагу, если не смогу найти хороший способ оценить мою модель.
Чтобы создать стабильное резюме, вы должны хорошо понимать данные и стоящие перед ним задачи. Я также проверю и удостоверяюсь, что набор для валидации имеет такое же распределение, что и обучающий набор и набор тестов, и я постараюсь убедиться, что мои модели улучшаются как в моем местном резюме, так и в общедоступном LB.
В некоторых соревнованиях временных рядов я откладываю данные на определенный период времени в качестве набора для проверки.
Я часто выбираю свои окончательные предложения консервативным образом, я всегда выбираю средневзвешенный ансамбль моих безопасных моделей и выбираю относительно рискованный (на мой взгляд, чем больше параметров, тем больше рисков). Но я никогда не выбирал материал, который не могу объяснить, даже с высокими публичными оценками LB.
В двух словах, что побеждает в соревнованиях?
Хорошее резюме, обучение на других соревнованиях и чтение статей по теме, дисциплина и психологическая стойкость.
Какое ваше любимое соревнование Kaggle и почему?
Мои любимые соревнования по охране природы и медицине. Я чувствую, что должен и, возможно, могу что-то сделать, чтобы сделать нашу жизнь и нашу планету лучше.
Какая область машинного обучения вам больше всего нравится?
Меня интересуют все виды прогресса в глубоком обучении. Я хочу использовать глубокое обучение для решения задач помимо компьютерного зрения или НЛП, поэтому я стараюсь использовать их в соревнованиях, в которых участвую, и в моей обычной профессии.
Насколько важна для вас экспертиза в предметной области при решении задач науки о данных?
Честно говоря, я не думаю, что мы можем извлечь слишком много пользы из опыта в предметной области, по следующим причинам:
- Kaggle тщательно подготовил данные о соревнованиях, и они справедливы для всех.
- Очень сложно выиграть соревнование, просто используя зрелые методы, особенно в соревнованиях по глубокому обучению, поэтому нам нужны более творческие решения;
- Сами данные более важны, хотя нам может потребоваться прочитать некоторые связанные с ними материалы.
Но есть исключения. Например, в конкурсе «Планета Амазонка» я черпал идеи из своего личного опыта в тропических лесах, но этот опыт технически нельзя назвать экспертизой в предметной области.
Что вы считаете своим самым креативным трюком / находкой / подходом?
Думаю, это в самом начале подготовить документ решения. Я заставляю себя составить список, который включает в себя проблемы, с которыми мы столкнулись, решения и документы, которые я должен прочитать, возможные риски, возможные стратегии CV, возможные дополнения данных и способы добавления разнообразия моделей. И я продолжаю обновлять документ. К счастью, большинство этих документов оказались выигрышными решениями, которые я предоставил организаторам конкурса.
Как вы в настоящее время используете науку о данных на работе и помогает ли в этом соревнование на Kaggle?
Мы стараемся использовать машинное обучение для решения всех видов задач в банковской сфере: для прогнозирования посетителей банковских отделений, для прогнозирования наличных денег, которые мы должны подготовить для банкоматов, рекомендаций по продуктам, контроля операционных рисков и т. Д.
Конкуренция на Kaggle также изменила мой способ работы: когда я хочу найти решение для решения проблемы, я постараюсь найти похожие соревнования Kaggle, поскольку они являются ценными ресурсами, и я также предлагаю своим коллегам изучить похожие, выигрышные решения, чтобы что мы можем почерпнуть из них идеи.
Каково ваше мнение о компромиссе между высокой сложностью модели и временем выполнения обучения / тестирования?
Вот мои мнения:
- Время обучения / тестирования важно только тогда, когда это действительно проблема. Когда точность наиболее важна, сложность модели не должна вызывать особого беспокойства. Когда данные обучения, полученные в результате месяцев напряженной работы, мы должны в полной мере использовать их.
- Сейчас очень сложно выиграть конкурс, используя только ансамбль слабых моделей. Если вы хотите быть номером 1, вам часто нужны очень хорошие одиночные модели. Когда я хотел обеспечить себе первое место в одиночном соревновании, я часто заставлял себя создавать разные модели, которые могли попасть в топ-10 на LB, иногда даже в топ-3. Организаторы могут выбрать любую из них.
- По моему собственному опыту, я могу разрабатывать модели на соревнованиях, чтобы исследовать верхнее ограничение этой проблемы, и не так уж сложно выбрать простую модель, чтобы сделать ее выполнимой в реальной ситуации. Я всегда изо всех сил стараюсь предоставить организаторам простой вариант и обсудить с ними голосование победителя. Я обнаружил, что некоторые организаторы даже используют наши решения и идеи для решения других проблем, с которыми они сталкиваются.
- Мы можем обнаружить, что в Kaggle есть много механизмов для обеспечения производительности, когда важна среда обучения / тестирования: соревнования ядра, ограничение размера команды, добавление дополнительных данных, которые не вычисляются при подсчете очков и т. Д. Я уверен, что Kaggle также улучшится. правила в соответствии с целью задания.
Как ты стал лучше выступать на соревнованиях Kaggle?
Интересные соревнования и отличные конкуренты на Kaggle делают меня лучше.
Здесь так много отличных конкурентов, и выиграть соревнование очень сложно, они довели меня до предела. В прошлом году я пытался закончить свои соревнования соло как можно больше раз, и я должен угадать, что сделали бы все остальные участники. Для этого мне пришлось прочитать много материалов и построить универсальные модели. Все решения других конкурентов я прочитал после конкурса.
Есть ли какие-либо недавние или текущие исследования в области машинного обучения, которые вас вдохновляют?
Я надеюсь, что смогу принять участие в соревновании по глубокому обучению с подкреплением на Kaggle в этом году.
Вы очень быстро поднялись в рейтинге и заняли первое место (всего за 15 месяцев). Как ты сделал это?
Прежде всего, №1 - это показатель того, как много я узнал на Kaggle и насколько мне повезло.
В своих первых нескольких соревнованиях я пытался превратить теории, которые я изучил в последние годы, в навыки и многому научился у других.
После того, как я получил некоторое представление о соревнованиях Kaggle, я начал думать о том, как соревноваться систематически, так как у меня есть многолетний опыт разработки программного обеспечения.
Примерно через полгода я получил свой первый приз и некоторую уверенность. Я думал, что через год смогу стать гроссмейстером. В конкурсе Planet Amazon я пытался получить золотую медаль, поэтому для меня стало сюрпризом, когда я узнал, что нахожусь на первом месте.
Затем я почувствовал, что должен продолжать использовать стратегии и методы, о которых упоминал ранее, и добился большего успеха. После того, как я выиграл соревнование Cdiscount, я поднялся на вершину рейтинга пользователей.
Я думаю, что получил пользу от платформы Kaggle, я многому научился у других, и система рангов Kaggle также играет важную роль в моем прогрессе. Мне также повезло, потому что я никогда не ожидал, что смогу получить 6 призов подряд, мои цели во многих соревнованиях были в топ-10 или в 1%. Не думаю, что смогу повторить это путешествие снова.
Однако я здесь не из-за высокого звания. Я всегда рассматриваю каждое соревнование как возможность учиться, поэтому я стараюсь выбирать соревнования из области, с которой я не так хорошо знаком, что заставило меня прочитать сотни статей в прошлом году.
Вы уже упоминали, что вам нравится читать лучшие решения соревнований из прошлых соревнований. Есть ли что-нибудь, что вы бы особо отметили как проницательные?
Я уважаю всех победителей и замечательных разработчиков решений, я знаю, сколько усилий они приложили для этого. Я всегда читаю решения с восхитительным отношением.
Некоторые из самых запоминающихся идей пришли из Data Science Bowl 2017: pytorch, трехмерная сегментация медицинских изображений, решения из прогнозирования временных рядов веб-трафика, которые используют модель последовательности из НЛП для решения проблемы временных рядов, и прекрасные решения от Тома. (Https://www.Kaggle.com/tvdwiele) и Хенг (https://www.Kaggle.com/hengck23).
Первоначально опубликовано на http://blog.kaggle.com 7 мая 2018 г.