В машинном обучении есть несколько направлений, в которых людям интересно и комфортно жить и развиваться. С одной стороны, можно делить всё по области применения ML (обработка текстов на естественном языке, компьютерное зрение, и так далее). Другой вариант - делить по целям. Например, у индустриального анализа данных, науки и «хайповых» применений машинного обучения цели заметно различаются. Ближайшие несколько постов будут как раз на эту тему.
Итак, сначала об индустриальном машинном обучении. Здесь речь идет не о ML на заводах (хотя этот случай тоже сюда входит), а о применении ML на пользу компаниям. Внутри индустриального ML тоже бывают разные предпочтения: одни предпочитают улучшать алгоритмы в массовом продукте (например, повышать качество ранжирования выдачи в поисковике), а других больше вдохновляет создавать новые модели, которые сэкономят или заработают много денег компании. Например: научиться прогнозировать эффект рекламной кампании и начать подбирать параметры кампании так, чтобы эффект проседал не больше чем на 2-3%, а денег на кампанию тратилось на 10% меньше (что при миллиардном бюджете будет регулярно экономить сотни миллионов - намного больше, чем потребуется на разработку модели). Или, стандартный пример - разработать для магазина рекомендательную систему, которая на несколько процентов увеличит доход с продаж (кстати, обязательно напишу в другой раз, в чем проблемы таких проектов).
Мне всегда больше всего нравились проекты именно про сэкономить/заработать денег с помощью машинного обучения. В основном потому, что при разработке продукта на основе ML играешь «в долгую» и год за годом делаешь улучшения, реальная польза которых не всегда очевидна, а когда у тебя есть понятный проект на полгода-год с понятно спланированным экспериментом для оценки качества в конце - все-таки сроки чуть поменьше и быстрее видишь результат работы. Впрочем, не все так радужно - проекты затягиваются, задачи изначально ставятся неверно, так что получить два года вместо 5 месяцев и не достигнуть результата - вполне возможная ситуация и переживается гораздо тяжелее, чем год за годом копаться в продукте и верить, что улучшение каких-то побочных метрик качества принесет пользу компании.
Еще одна вещь, которую важно понимать об индустриальном ML - это не единственное, что существует на свете. К сожалению, мы часто легко судим и оцениваем других людей, поэтому эксперты из индустрии иногда смотрят на ученых как на людей без конкретных прикладных результатов, тратящих время непонятно на что (я и сам высказывал такое мнение, когда меньше разбирался в вопросе). А ученые смотрят на специалистов из индустрии как на тех, кто не создает ничего нового (ведь индустриальный ML скорее про прикладное применение уже придуманного, чем про разработку новых алгоритмов)
Итак, сначала об индустриальном машинном обучении. Здесь речь идет не о ML на заводах (хотя этот случай тоже сюда входит), а о применении ML на пользу компаниям. Внутри индустриального ML тоже бывают разные предпочтения: одни предпочитают улучшать алгоритмы в массовом продукте (например, повышать качество ранжирования выдачи в поисковике), а других больше вдохновляет создавать новые модели, которые сэкономят или заработают много денег компании. Например: научиться прогнозировать эффект рекламной кампании и начать подбирать параметры кампании так, чтобы эффект проседал не больше чем на 2-3%, а денег на кампанию тратилось на 10% меньше (что при миллиардном бюджете будет регулярно экономить сотни миллионов - намного больше, чем потребуется на разработку модели). Или, стандартный пример - разработать для магазина рекомендательную систему, которая на несколько процентов увеличит доход с продаж (кстати, обязательно напишу в другой раз, в чем проблемы таких проектов).
Мне всегда больше всего нравились проекты именно про сэкономить/заработать денег с помощью машинного обучения. В основном потому, что при разработке продукта на основе ML играешь «в долгую» и год за годом делаешь улучшения, реальная польза которых не всегда очевидна, а когда у тебя есть понятный проект на полгода-год с понятно спланированным экспериментом для оценки качества в конце - все-таки сроки чуть поменьше и быстрее видишь результат работы. Впрочем, не все так радужно - проекты затягиваются, задачи изначально ставятся неверно, так что получить два года вместо 5 месяцев и не достигнуть результата - вполне возможная ситуация и переживается гораздо тяжелее, чем год за годом копаться в продукте и верить, что улучшение каких-то побочных метрик качества принесет пользу компании.
Еще одна вещь, которую важно понимать об индустриальном ML - это не единственное, что существует на свете. К сожалению, мы часто легко судим и оцениваем других людей, поэтому эксперты из индустрии иногда смотрят на ученых как на людей без конкретных прикладных результатов, тратящих время непонятно на что (я и сам высказывал такое мнение, когда меньше разбирался в вопросе). А ученые смотрят на специалистов из индустрии как на тех, кто не создает ничего нового (ведь индустриальный ML скорее про прикладное применение уже придуманного, чем про разработку новых алгоритмов)
👍10
В продолжение прошлого поста, поговорим теперь о научной части мира машинного обучения. Прежде всего замечу, что специалисты из индустрии тоже могут разрабатывать новые алгоритмы. Говорю обтекаемо «специалисты» (хоть за это слово и ругает glvrd.ru :), т.к. с одной стороны есть часто употребляемое "Data Scientist", а с другой стороны бывают и Data Engineer, и Data Analyst, и другие загадочные названия (при случае поговорим о том, какой смысл в это вкладывают). Кроме того, не стоит забывать и олдскульных разработчиков, знающих машинное обучение. Такие могут и высоконагруженный сервис разрабатывать, и модели строить, и в продакшн алгоритмы внедрять, а на новомодных «Дата саентистов» небезосновательно смотреть как на избалованных детишек, которые даже программировать нормально не умеют. Так что буду и дальше расплывчато говорить «специалисты», чтобы объединить всех этих людей одним словом. Так вот, специалисты из индустрии могут разработать новый алгоритм или создать новый инструмент для машинного обучения, но их поделки будут заточены под практическое применение уже сегодня.
А вот исследователь может себе позволить более смелые вещи. Например, постоянно используемые для работы с изображениями свёрточные нейронные сети впервые предложены Яном Лекунном в 1988 году. А популярность эти методы приобрели в середине 2000-х годов, причем далеко не сразу начали использоваться в индустрии. Только подумайте: прошло чуть меньше 20 лет! Конечно, для коммерческой компании редко интересно разрабатывать то, что будет полезно через 20 лет. Но Лекунн - тоже нетипичный пример. Дело в том, что на одного Лекунна или Хинтона приходятся десятки тысяч исследователей, которые пишут статьи, выступают на конференциях, но не придумывают алгоритмы, которые потом включают в курсы машинного обучения и используют в каждой первой компании, занимающейся ML.
Когда я работал в ABBYY, от одного из технических руководителей департаментов я услышал поучительные слова: работа в R&D (на всякий случай, т.к. среди подписчиков есть люди из разных сфер, R&D = Research & Development) требует готовности очень долго получать негативный результат и не терять мотивации. Так вот, в науке это чувствуется особенно остро.
Стоит заметить, что не всё это безумное количество исследователей придумывает новые алгоритмы. В общем-то и цели-то такой нет: есть цель завтра уметь делать то, что человечество не могло делать вчера или делало хуже, чем можно теперь. На этом пути возникает много вопросов: и как алгоритмы настраивать, и как использовать, и как развить идею так, чтобы получать более высокое качество в прикладных задачах. И про все это люди пишут статьи. Отличие от индустрии здесь в том, что статьи не обязаны преследовать интересы каких-то коммерческих компаний, но обязаны создавать что-то новое и расширять границы наших возможностей. С индустриальным ML наоборот: главное - принести пользу компании, а вот придумали ли вы что-то новое или применили давно известное - не так важно. Последнее даже лучше, т.к. проще использовать готовые инструменты, чем разрабатывать их и только потом использовать.
А вот исследователь может себе позволить более смелые вещи. Например, постоянно используемые для работы с изображениями свёрточные нейронные сети впервые предложены Яном Лекунном в 1988 году. А популярность эти методы приобрели в середине 2000-х годов, причем далеко не сразу начали использоваться в индустрии. Только подумайте: прошло чуть меньше 20 лет! Конечно, для коммерческой компании редко интересно разрабатывать то, что будет полезно через 20 лет. Но Лекунн - тоже нетипичный пример. Дело в том, что на одного Лекунна или Хинтона приходятся десятки тысяч исследователей, которые пишут статьи, выступают на конференциях, но не придумывают алгоритмы, которые потом включают в курсы машинного обучения и используют в каждой первой компании, занимающейся ML.
Когда я работал в ABBYY, от одного из технических руководителей департаментов я услышал поучительные слова: работа в R&D (на всякий случай, т.к. среди подписчиков есть люди из разных сфер, R&D = Research & Development) требует готовности очень долго получать негативный результат и не терять мотивации. Так вот, в науке это чувствуется особенно остро.
Стоит заметить, что не всё это безумное количество исследователей придумывает новые алгоритмы. В общем-то и цели-то такой нет: есть цель завтра уметь делать то, что человечество не могло делать вчера или делало хуже, чем можно теперь. На этом пути возникает много вопросов: и как алгоритмы настраивать, и как использовать, и как развить идею так, чтобы получать более высокое качество в прикладных задачах. И про все это люди пишут статьи. Отличие от индустрии здесь в том, что статьи не обязаны преследовать интересы каких-то коммерческих компаний, но обязаны создавать что-то новое и расширять границы наших возможностей. С индустриальным ML наоборот: главное - принести пользу компании, а вот придумали ли вы что-то новое или применили давно известное - не так важно. Последнее даже лучше, т.к. проще использовать готовые инструменты, чем разрабатывать их и только потом использовать.
👍6
Сегодня небольшое отступление от серии постов, т.к. есть любопытная новость. Спасибо Роме Халкечеву (Chief DS Яндекс.Такси) за наводку. Кстати, наводка была в рабочем чатике для мемов, если кто-то в курсе недавней новости про увольнения из Тинькова (если нет - ещё напишу об этом).
Так вот, новость. Amazon попробовал продвигать свою систему распознавания лиц для поиска преступников на улицах в видеопотоке с камер наблюдения (вот это уже совсем киберпанк :).
Продолжение у истории вышло забавное (цитата из статьи):
«Американский союз гражданских свобод (American Civil Liberties Union, ACLU) продолжает кампанию против использования систем распознавания лиц федеральными агентствами и полицией. ACLU настаивает, что качество этих систем слишком низкое для реального использования. В результате будет много ложных срабатываний, из-за чего пострадают невинные люди. Пытаясь убедить Конгресс США запретить использование этих систем, правозащитники предприняли дерзкую, но эффективную акцию: они прогнали через систему распознавания лиц Amazon Rekognition всех американских конгрессменов. Результат оказался немного предсказуем: система распознала 28 конгрессменов как преступников.»
Если что - с точки зрения ML это ок. Конгрессменов достаточно много, чтобы пару десятков случайно распознать неверно. С точки зрения эмоционального восприятия - не ок, этим ACLU и пользуется. Но это не делает для меня их позицию менее обоснованной - ложные срабатывания классификатора и правда неприятная вещь, и нужно понимать, готовы ли мы ими расплачиваться за возможность таким образом бороться с преступностью, да и будет ли это вообще эффективно.
Статья на Хабрахабре: https://m.habr.com/post/418509/
Так вот, новость. Amazon попробовал продвигать свою систему распознавания лиц для поиска преступников на улицах в видеопотоке с камер наблюдения (вот это уже совсем киберпанк :).
Продолжение у истории вышло забавное (цитата из статьи):
«Американский союз гражданских свобод (American Civil Liberties Union, ACLU) продолжает кампанию против использования систем распознавания лиц федеральными агентствами и полицией. ACLU настаивает, что качество этих систем слишком низкое для реального использования. В результате будет много ложных срабатываний, из-за чего пострадают невинные люди. Пытаясь убедить Конгресс США запретить использование этих систем, правозащитники предприняли дерзкую, но эффективную акцию: они прогнали через систему распознавания лиц Amazon Rekognition всех американских конгрессменов. Результат оказался немного предсказуем: система распознала 28 конгрессменов как преступников.»
Если что - с точки зрения ML это ок. Конгрессменов достаточно много, чтобы пару десятков случайно распознать неверно. С точки зрения эмоционального восприятия - не ок, этим ACLU и пользуется. Но это не делает для меня их позицию менее обоснованной - ложные срабатывания классификатора и правда неприятная вещь, и нужно понимать, готовы ли мы ими расплачиваться за возможность таким образом бороться с преступностью, да и будет ли это вообще эффективно.
Статья на Хабрахабре: https://m.habr.com/post/418509/
Habr
Система распознавания лиц Amazon Rekognition приняла 28 конгрессменов США за преступников
Американский союз гражданских свобод (American Civil Liberties Union, ACLU) продолжает кампанию против использования систем распознавания лиц федеральными агентствами и полицией. ACLU...
👍3
Когда я анонсировал темы постов в канале, среди них была в том числе такая: "Какие есть нюансы в обучении DS’ов: в какой момент стратегия "просто начитать каких-то лекций» перестала быть крутой». Об этом, о том, зачем нужны теоретические занятия и какими могут быть практические, об исследователях и инженерах в Data Science, а также о том, как быть с тем, что многие люди могут остаться «без работы» из-за развития технологий, пост в канал я все еще не подготовил 🙂
Но зато рассказал в интервью Виктору Рогуленко на его youtube-канале: youtube.com/watch?v=ymSqI0hVj-Q
Виктор работал консультантом в McKinsey, затем начал вести свои курсы и канал на YouTube ( https://on.fless.pro/subscribe ), на котором можно найти весьма любопытные интервью и рассказ о том, как поступить в Стэнфорд и в ШАД (кстати, в том же канале Виктор рассказывает, почему решение бросить Стэнфорд было одним из лучших в его жизни).
В этом Telegram-канале я обязательно еще вернусь к обещанным темам, но интервью можно посмотреть уже сейчас. Рекомендуемая скорость воспроизведения - х1,5 (на ней просмотр займет примерно полчаса).
Но зато рассказал в интервью Виктору Рогуленко на его youtube-канале: youtube.com/watch?v=ymSqI0hVj-Q
Виктор работал консультантом в McKinsey, затем начал вести свои курсы и канал на YouTube ( https://on.fless.pro/subscribe ), на котором можно найти весьма любопытные интервью и рассказ о том, как поступить в Стэнфорд и в ШАД (кстати, в том же канале Виктор рассказывает, почему решение бросить Стэнфорд было одним из лучших в его жизни).
В этом Telegram-канале я обязательно еще вернусь к обещанным темам, но интервью можно посмотреть уже сейчас. Рекомендуемая скорость воспроизведения - х1,5 (на ней просмотр займет примерно полчаса).
YouTube
Data Scientist: кто нужен бизнесу и как их обучить | Виктор Кантор, Data Mining in Action
Подпишись: https://on.fless.pro/subscribe
Беседуем с Виктором Кантором об образовании и карьерах в Data Science. Виктор, обучивший не одну сотню специалистов по DS в рамках Data Mining in Action, делится своими взглядами на потребности рынка, карьерные возможности…
Беседуем с Виктором Кантором об образовании и карьерах в Data Science. Виктор, обучивший не одну сотню специалистов по DS в рамках Data Mining in Action, делится своими взглядами на потребности рынка, карьерные возможности…
👍1
Так выходит, что одним людям приходится сначала на экзаменах, а потом на собеседованиях «доказывать, что не верблюд», а других априори воспринимают как «шарящих».
Один мой друг давно занимается машинным обучением, но до сих пор избегал обстоятельной оценки знаний по ML. Не специально, так получалось. Когда еще учился в МФТИ и сдавал мне экзамен по ML, мы быстро пообщались, мне сразу стало все ясно, и он ушел со своим «отлом». Потом вместе с ним и его однокурсниками мы делали проект по машинному обучению, после статьи о котором на vc.ru с нами связались ребята из крутого ML стартапа. Так друг без собеседований попал в эту команду. Проработав там с год, друг перешел уже в большую, но тоже крутую компанию, причём на работу его зазывали, а после отказа позвали поговорить на тему «мы не поняли, тебе что не так?» и всё же уговорили пойти к ним. Жизнь в большой компании складывалась уже сложнее, но в итоге очень удачно, пусть и не сразу.
Примечательно в этой истории то, что его, специалиста по машинному обучению, ни разу толком не экзаменовали и не собеседовали по его предмету.
Вы спросите: «как же так получилось?». Ответ прост и ожидаем. Те вопросы, которые он задавал экзаменатору или работодателю, и те темы, которые он обсуждал, сразу выдавали уровень экспертизы. Причём это не об умничании и сыпании терминами, а просто о действительно важных вещах, касающихся рабочих задач, не все из которых придет в голову обсудить новичку. Лучший способ для эксперта «продать» себя другому эксперту — поговорить по делу. Говоря «продать» я конечно лукавлю: не продать, а представить, ведь нужно правда «шарить». Но пытаться показать себя лучше, чем на самом деле, в принципе опасная затея — потом же еще и работать будет нужно 🙂
Один мой друг давно занимается машинным обучением, но до сих пор избегал обстоятельной оценки знаний по ML. Не специально, так получалось. Когда еще учился в МФТИ и сдавал мне экзамен по ML, мы быстро пообщались, мне сразу стало все ясно, и он ушел со своим «отлом». Потом вместе с ним и его однокурсниками мы делали проект по машинному обучению, после статьи о котором на vc.ru с нами связались ребята из крутого ML стартапа. Так друг без собеседований попал в эту команду. Проработав там с год, друг перешел уже в большую, но тоже крутую компанию, причём на работу его зазывали, а после отказа позвали поговорить на тему «мы не поняли, тебе что не так?» и всё же уговорили пойти к ним. Жизнь в большой компании складывалась уже сложнее, но в итоге очень удачно, пусть и не сразу.
Примечательно в этой истории то, что его, специалиста по машинному обучению, ни разу толком не экзаменовали и не собеседовали по его предмету.
Вы спросите: «как же так получилось?». Ответ прост и ожидаем. Те вопросы, которые он задавал экзаменатору или работодателю, и те темы, которые он обсуждал, сразу выдавали уровень экспертизы. Причём это не об умничании и сыпании терминами, а просто о действительно важных вещах, касающихся рабочих задач, не все из которых придет в голову обсудить новичку. Лучший способ для эксперта «продать» себя другому эксперту — поговорить по делу. Говоря «продать» я конечно лукавлю: не продать, а представить, ведь нужно правда «шарить». Но пытаться показать себя лучше, чем на самом деле, в принципе опасная затея — потом же еще и работать будет нужно 🙂
👍1
Многие заметили, что в канале давно не было новых постов. На самом деле за это время был миллион тем, чтобы о них написать, но все происходило так быстро, что даже дыхание не перевести. Только за последнюю неделю: выступления на разных конференциях по ML, подготовка к защите диссера (последнего, наверно к счастью, до нового года не будет), подготовка запуска Data Mining in Action со срочным переездом в МИСиС. Кстати насчёт DMIA - запуск сегодня, через два часа уже буду на площадке, через пять часов начнётся первая лекция.
Все перечисленные вещи связаны с какими-то интересными историями или наблюдениями про машинное обучение и образование, и на этой неделе обязательно будет несколько таких рассказов.
Все перечисленные вещи связаны с какими-то интересными историями или наблюдениями про машинное обучение и образование, и на этой неделе обязательно будет несколько таких рассказов.
Как уже писал выше, за сентябрь и октябрь мне посчастливилось рассказывать про Data Science на ряде конференций, делюсь наблюдениями. Я выступал на конфе Открытых Систем, РИФ Воронеж (на РИФе в Москве уже выступал в этом году), DataStart и RAIF (Russian Artificial Intelligence Forum). Общее замечание - везде много заинтересованных людей от бизнеса. Это очень приятно и не всегда было ожидаемо. Например, т.к. на DataStart много различных туториалов, я ожидал увидеть в основном технарей, начинающих свой путь в анализе данных, но аудитория была гораздо шире. На DataStart хотел попробовать выступить ближе к формату стендапа, но, мне кажется, как-то не сложилось. Увидел адекватных людей в аудитории и как-то не захотелось кривляться, начал серьёзничать. Хотя несколько забавных случаев рассказал. Кстати, очень понравилась площадка - проводилось в Azimut Hotel на Смоленской, помещения довольно эстетичные, а в перерыве вкусно покормили 🙂 Я был уверен, что меня такими студенческими фишками как еда и нормальные помещения уже давно не проймешь, а вот нет. Все-таки важны такие простые вещи.
Одно печально - засилье однотипных названий всего, что связано с анализом данных. Так, знакомые меня просили ответить на приглашение конференции DataStart, а я перепутал названия и согласился выступить на SmartData. Разница только в одну букву и последовательность слов! Оказалось оба мероприятия стоят внимания, но в этом году SmartData отменили 😞 Но вот эти Что-то-тамData вокруг - просто ужас. SmartData, DataStart, TrainMyData, DoubleData, DataFest - вроде все хорошие ребята, но фантазией в отношении нейминга никто не блещет.
В итоге на конфе Открытых Систем и на РИФе рассказывал про look-alike модели для персонализации пуш-уведомлений в Яндекс.Такси и других похожих применений, на DataStart - про то, как и зачем объяснять другим людям вещи, связанные с машинным обучением, а на RAIF - когда, кого и в каком порядке нанимать в команду для DS (и нужно ли вообще). А после выступления на RAIF модерировал там же техническую сессию с замечательными докладчиками 🙂 (можно посмотреть новость здесь: https://finance.rambler.ru/other/41154272-v-moskve-proshel-raif-hackathon-2018-s-prizovym-fondom-bolee-1-000-000-rubley/ ). Опыт с модерацией на мероприятии такого уровня у меня был почти впервые, и это оказалось довольно увлекательной задачей, особенно если вовлекаться в происходящее, слушать докладчиков, и помогать вопросами (и слушателям и аудитории), когда аудитория не готова начать задавать вопросы сама. RAIF проходил тоже на отличной площадке прямо напротив гостиницы «Украина», и там наверно было больше всего бизнесовой аудитории (да и размах мероприятия большой). Очень крутая конфа с очень крутыми организаторами, с удовольствием не только выступил на пленарной секции, но и послушал другие доклады.
Одно печально - засилье однотипных названий всего, что связано с анализом данных. Так, знакомые меня просили ответить на приглашение конференции DataStart, а я перепутал названия и согласился выступить на SmartData. Разница только в одну букву и последовательность слов! Оказалось оба мероприятия стоят внимания, но в этом году SmartData отменили 😞 Но вот эти Что-то-тамData вокруг - просто ужас. SmartData, DataStart, TrainMyData, DoubleData, DataFest - вроде все хорошие ребята, но фантазией в отношении нейминга никто не блещет.
В итоге на конфе Открытых Систем и на РИФе рассказывал про look-alike модели для персонализации пуш-уведомлений в Яндекс.Такси и других похожих применений, на DataStart - про то, как и зачем объяснять другим людям вещи, связанные с машинным обучением, а на RAIF - когда, кого и в каком порядке нанимать в команду для DS (и нужно ли вообще). А после выступления на RAIF модерировал там же техническую сессию с замечательными докладчиками 🙂 (можно посмотреть новость здесь: https://finance.rambler.ru/other/41154272-v-moskve-proshel-raif-hackathon-2018-s-prizovym-fondom-bolee-1-000-000-rubley/ ). Опыт с модерацией на мероприятии такого уровня у меня был почти впервые, и это оказалось довольно увлекательной задачей, особенно если вовлекаться в происходящее, слушать докладчиков, и помогать вопросами (и слушателям и аудитории), когда аудитория не готова начать задавать вопросы сама. RAIF проходил тоже на отличной площадке прямо напротив гостиницы «Украина», и там наверно было больше всего бизнесовой аудитории (да и размах мероприятия большой). Очень крутая конфа с очень крутыми организаторами, с удовольствием не только выступил на пленарной секции, но и послушал другие доклады.
Рамблер/личные финансы
В Москве прошел RAIF Hackathon 2018 с призовым фондом более 1 000 000 рублей
29 октября, 2018, Москва —23 октября в рамках масштабного делового форума RAIF (TheRussianArtificialIntelligenceForum) состоялся финал RAIF Hackathon 2018....
Про запуск Data Mining in Action. Восемь лет назад достаточно было прийти в семинарскую аудиторию, обнаружить там несколько заинтересованных студентов, пришедших на курс, и начать рассказывать. Сейчас даже после сокращения с трех направлений до одного (только на этот семестр) и организации отбора слушателей - у нас все равно 300 человек (в прошлый раз было 1000, но с онлайн-потоком, в позапрошлый - 700 без онлайна). Это означает, что нужно искать место проведения, придумывать как с учетом принятого пропускного режима провести всех через охрану таким образом, чтобы не было очередей и толпы, и чтобы всем было понятно, как пройти в аудиторию. Знаете же как сейчас модно рассуждать - давайте поставим всех встречать только одного и не очень расторопного человека, чтобы люди восхитились, какая к нам выстроилась очередь и как наше мероприятие популярно 🙂 Мы пока стараемся так не делать, хотя иногда особенно сложно все сделать гладко из-за серьезной ограниченности ресурсов (проект некоммерческий, курс совершенно бесплатен для слушателей, длится 8-10 недель по две пары на каждой (раньше было по 4), и заканчивается торжественным выпускным).
В этот запуск не обошлось без неожиданностей. У нас было несколько возможных мест проведения, в одном из них была аудитория на 350 человек, в другом - максимум на 220. Это был МИСиС, где и проводим сейчас. Т.к. мы собрали очень много хороших анкет от слушателей (в отборе были и тесты и мотивационные письма), хотелось оставить побольше людей и мы отказались от варианта проводить в МИСиСе из-за вместимости аудитории. В другом месте мы проводили занятия уже не в первый раз, но за пару дней до старта курса стало известно, что провести занятия там мы не можем. Нужно было срочно найти другой вариант. Сказать, что я рад, что коллеги из МИСиС были снова готовы принять наш курс у себя - это ничего не сказать. Нам удалось договориться буквально за день и даже не сорвать первое занятие! Чтобы поместить всех, пришлось начать вести курс в два одинаковых потока в соседних лекционных аудиториях.
Вчера в МИСиСе прошли уже вторая лекция и второй семинар DMIA. Они были посвящены знакомству с математикой, используемой в анализе данных, и с простыми методами машинного обучения (kNN, наивный Байес, деревья и пни). Мы с Эмели Драль довольно долго готовили эту лекцию, т.к. подумали, что нужно идти дальше в преподавании Data Science и не просто напоминать или обзорно рассказывать слушателям основные вещи из высшей математики, нужные для курса (так мы уже сделали в 2016 году в курсе «Математика и python для анализа данных» на Coursera), а сразу показывать этот аппарат в приложениях. Кстати, даже уже в том курсе были пассажи вроде «как можно применить матричные разложения? например, можно с их помощью строить рекомендательные системы, давайте посмотрим как», т.е. уже тогда было очевидно, что конкретные прикладные примеры сильно мотивируют вникать в математику. В очередной лекции DMIA мы попробовали развить этот подход. Лекция была эксклюзивной - видеосъемка не велась, записи не будут выкладываться, но в будущем появится статья по ее мотивам (ее уже начали готовить). Особенно приятно было то, что несмотря на ноябрьские праздники, на занятие сново пришло много слушателей. Есть конечно и небольшой минус - мы пока не можем всех уместить в одну аудиторию и читать в один поток, слишком маленький для этого отток слушателей 🙂 Но мы решили поступить так: сделать второй отбор по первому вводному домашнему заданию курса и продолжить дальше работать с теми, кто его выполнит. Пока надеемся, что так сможем сконцентрироваться на самых мотивированных из слушателей.
В этот запуск не обошлось без неожиданностей. У нас было несколько возможных мест проведения, в одном из них была аудитория на 350 человек, в другом - максимум на 220. Это был МИСиС, где и проводим сейчас. Т.к. мы собрали очень много хороших анкет от слушателей (в отборе были и тесты и мотивационные письма), хотелось оставить побольше людей и мы отказались от варианта проводить в МИСиСе из-за вместимости аудитории. В другом месте мы проводили занятия уже не в первый раз, но за пару дней до старта курса стало известно, что провести занятия там мы не можем. Нужно было срочно найти другой вариант. Сказать, что я рад, что коллеги из МИСиС были снова готовы принять наш курс у себя - это ничего не сказать. Нам удалось договориться буквально за день и даже не сорвать первое занятие! Чтобы поместить всех, пришлось начать вести курс в два одинаковых потока в соседних лекционных аудиториях.
Вчера в МИСиСе прошли уже вторая лекция и второй семинар DMIA. Они были посвящены знакомству с математикой, используемой в анализе данных, и с простыми методами машинного обучения (kNN, наивный Байес, деревья и пни). Мы с Эмели Драль довольно долго готовили эту лекцию, т.к. подумали, что нужно идти дальше в преподавании Data Science и не просто напоминать или обзорно рассказывать слушателям основные вещи из высшей математики, нужные для курса (так мы уже сделали в 2016 году в курсе «Математика и python для анализа данных» на Coursera), а сразу показывать этот аппарат в приложениях. Кстати, даже уже в том курсе были пассажи вроде «как можно применить матричные разложения? например, можно с их помощью строить рекомендательные системы, давайте посмотрим как», т.е. уже тогда было очевидно, что конкретные прикладные примеры сильно мотивируют вникать в математику. В очередной лекции DMIA мы попробовали развить этот подход. Лекция была эксклюзивной - видеосъемка не велась, записи не будут выкладываться, но в будущем появится статья по ее мотивам (ее уже начали готовить). Особенно приятно было то, что несмотря на ноябрьские праздники, на занятие сново пришло много слушателей. Есть конечно и небольшой минус - мы пока не можем всех уместить в одну аудиторию и читать в один поток, слишком маленький для этого отток слушателей 🙂 Но мы решили поступить так: сделать второй отбор по первому вводному домашнему заданию курса и продолжить дальше работать с теми, кто его выполнит. Пока надеемся, что так сможем сконцентрироваться на самых мотивированных из слушателей.
Итак, пора бы уже завершить рассказ про индустрию, науку и хайп в машинном обучении. Настало время поговорить про хайп. Недавно выступал на Матемаркетинге (конференция про аналитику в маркетинге) в секции Яндекс.Метрики, с рассказом про одну из Таксишных задач. И в кулуарах организаторы поделились тем, что при составлении программы очень внимательно смотрели на все выступления, связанные с ML, т.к. последнее время все чаще ML трактуют как «соберите табличку с признаками и отправьте в XGBoost/LightGBM/CatBoost - вот и всё, ваша модель готова». И я испытал то самое чувство радости, которое приходит, когда вы ощущаете, что кто-то вас понимает. Эта тенденция и похожие на нее меня очень беспокоят, и я убежден, что репутация профессии Data Scientist сейчас в огромной опасности.
Для начала - напомню, что машинное обучение в индустрии - это не про вызов методов fit и predict у готового классификатора, а про улучшение бизнес-процессов, сервиса или продукта и, в конечном итоге, заработок или экономию денег компании. 90% работы в постановке и приоритезации задач, планировании и выстраивании процесса работы над проектом, оценки качества и внедрения. И в какой-то степени к этому имеют отношение все участники проекта. Начинающие свой путь в Data Science говорят «ой, это менеджмент какой-то, а мне технические вещи интересны». Ну конечно, спланирует за них менеджер процедуру A/B тестирования в условиях дефицита примеров и невозможности хорошо разбить выборку (как вполне бывает в жизни). Да еще и так, чтобы и статзначимость достигалась за разумное время и результат был понятен и полезен бизнесу. И заодно метрики качества, отображаемые в экономический эффект выберет, и, например, recall@k вместо ROC-AUC предложит для классификатора замерить, чтобы полгода не настраивать модель не на то, что нужно. Дело в том, что есть много «как бы организационных» вопросов, которые требуют hard skills в data science, и бросать эти вопросы на коллег с другим бэкграундом, как мне кажется, очень странная затея.
Но желание обучать модели, выбирать архитектуру нейросетки, экспериментировать с добавлением предобученных эмбеддингов и так далее часто перебарывает здравый смысл. И тогда правильные ответы на действительно важные вопросы появляются несвоевременно или не появляются совсем. Не стоит думать, что модели обучать или, особенно, данные предобрабатывать - не важно. Очень важно! Но всему свое время и не нужно жестко ошибаться с расстановкой приоритетов.
Пример из практики, который я уже много раз приводил: в одной команде с помощью машинного обучения автоматизировали определение пригодности некоторого продукта к использованию людьми по ряду замеров и построили для этого некоторую нейросетку. Аналитики были очень довольны проделанной работой, но, увы, при валидации модели поступали так: пригодные продукты обозначали единичкой, непригодные ноликом, от нейросети получали прогноз пригодности продукта в виде вероятности (например, «пригоден на 0.9 - т.е. 90%») и качество оценивали по модулю отклонения этой вероятности от правильного ответа (0 или 1). Если бы аналитик, который это делал, хоть немного мог думать о постановке задачи, знал матчасть и умел ей пользоваться, он бы знал, что при такой оценки качества модель, выдающая честные вероятности, будет считаться хуже, чем модель, округляющая вероятность до 0 или 100%. А теперь представьте, если от качества продукта зависят жизни людей. Если это лекарство, еда, строительные материалы. А модель вместо пригодности на 51% выдает 100%-ную пригодность потому что кто-то не любит разбираться с метриками качества, а вместо этого сразу бежит обучать модель. Это просто катастрофа. Ситуацию усугубляет то, что сейчас этот пример приводится на любом приличном курсе машинного обучения и спрашивается на собеседованиях во многих хороших компаниях, но откуда-то в индустрию все равно просачиваются те, кто продолжают допускать ту же ошибку.
Для начала - напомню, что машинное обучение в индустрии - это не про вызов методов fit и predict у готового классификатора, а про улучшение бизнес-процессов, сервиса или продукта и, в конечном итоге, заработок или экономию денег компании. 90% работы в постановке и приоритезации задач, планировании и выстраивании процесса работы над проектом, оценки качества и внедрения. И в какой-то степени к этому имеют отношение все участники проекта. Начинающие свой путь в Data Science говорят «ой, это менеджмент какой-то, а мне технические вещи интересны». Ну конечно, спланирует за них менеджер процедуру A/B тестирования в условиях дефицита примеров и невозможности хорошо разбить выборку (как вполне бывает в жизни). Да еще и так, чтобы и статзначимость достигалась за разумное время и результат был понятен и полезен бизнесу. И заодно метрики качества, отображаемые в экономический эффект выберет, и, например, recall@k вместо ROC-AUC предложит для классификатора замерить, чтобы полгода не настраивать модель не на то, что нужно. Дело в том, что есть много «как бы организационных» вопросов, которые требуют hard skills в data science, и бросать эти вопросы на коллег с другим бэкграундом, как мне кажется, очень странная затея.
Но желание обучать модели, выбирать архитектуру нейросетки, экспериментировать с добавлением предобученных эмбеддингов и так далее часто перебарывает здравый смысл. И тогда правильные ответы на действительно важные вопросы появляются несвоевременно или не появляются совсем. Не стоит думать, что модели обучать или, особенно, данные предобрабатывать - не важно. Очень важно! Но всему свое время и не нужно жестко ошибаться с расстановкой приоритетов.
Пример из практики, который я уже много раз приводил: в одной команде с помощью машинного обучения автоматизировали определение пригодности некоторого продукта к использованию людьми по ряду замеров и построили для этого некоторую нейросетку. Аналитики были очень довольны проделанной работой, но, увы, при валидации модели поступали так: пригодные продукты обозначали единичкой, непригодные ноликом, от нейросети получали прогноз пригодности продукта в виде вероятности (например, «пригоден на 0.9 - т.е. 90%») и качество оценивали по модулю отклонения этой вероятности от правильного ответа (0 или 1). Если бы аналитик, который это делал, хоть немного мог думать о постановке задачи, знал матчасть и умел ей пользоваться, он бы знал, что при такой оценки качества модель, выдающая честные вероятности, будет считаться хуже, чем модель, округляющая вероятность до 0 или 100%. А теперь представьте, если от качества продукта зависят жизни людей. Если это лекарство, еда, строительные материалы. А модель вместо пригодности на 51% выдает 100%-ную пригодность потому что кто-то не любит разбираться с метриками качества, а вместо этого сразу бежит обучать модель. Это просто катастрофа. Ситуацию усугубляет то, что сейчас этот пример приводится на любом приличном курсе машинного обучения и спрашивается на собеседованиях во многих хороших компаниях, но откуда-то в индустрию все равно просачиваются те, кто продолжают допускать ту же ошибку.
Из-за таких историй машинное обучение гораздо реже действительно помогает бизнесу, а это в свою очередь может постепенно окончательно дискредетировать профессию Data Scientist. Это огромная опасность, которую несет в себе хайповый подход и решение задач «лишь бы было круто и модно».
Хайп вокруг ML, конечно, имеет и позитивные стороны - в конце-концов интерес большого количества людей к области все-таки способствует распространению технологий, получению каких-то полезных результатов и многим другим хорошим вещам. И, конечно, люди так устроены, что зачастую мода на что-то может протащить полезные технологии туда, куда их не смог протащить здравый смысл. Поэтому хайп - это не всегда прямо-таки очень плохо. Иногда бывает так: сначала становится модно пытаться сделать на Reinforcement Learning хоть что-нибудь, а завтра эти же алгоритмы помогают в реальной прикладной задаче. Но нужно быть очень аккуратным, вовлекаясь в хайповые темы, и уметь нести ответственность за то, что делаешь. Как-никак репутация профессии Data Scientist тоже играет очень большую роль в распространении и разумном применении машинного обучения.
Хайп вокруг ML, конечно, имеет и позитивные стороны - в конце-концов интерес большого количества людей к области все-таки способствует распространению технологий, получению каких-то полезных результатов и многим другим хорошим вещам. И, конечно, люди так устроены, что зачастую мода на что-то может протащить полезные технологии туда, куда их не смог протащить здравый смысл. Поэтому хайп - это не всегда прямо-таки очень плохо. Иногда бывает так: сначала становится модно пытаться сделать на Reinforcement Learning хоть что-нибудь, а завтра эти же алгоритмы помогают в реальной прикладной задаче. Но нужно быть очень аккуратным, вовлекаясь в хайповые темы, и уметь нести ответственность за то, что делаешь. Как-никак репутация профессии Data Scientist тоже играет очень большую роль в распространении и разумном применении машинного обучения.
👍1
Некоторое время назад я писал про новость об Амазоновской системе распознавания лиц преступников, которая в эксперименте активистов опознала преступников в 28 конгрессменах США: https://m.habr.com/post/418509
Настало время рассказать о том, в чем был подвох. Дело в том, что Amazon рекомендовал в качестве порога классификации брать 95% вероятности, а активисты использовали порог 80%. Разумеется, когда для отнесения человека к преступникам достаточно уверенности классификатора на 80%, ложных срабатываний становится больше, поэтому эксперимент на самом деле был подтасован, чтобы выглядеть более убедительно для общественности. О том, сколько конгрессменов останется преступниками с порогом 95%, история умалчивает, но все это хороший повод обсудить, как нужно внедрять машинное обучение в подобных ситуациях.
Если вам нужно детектировать какие-то нежелательные примеры - драки или пожары по данным камер видеонаблюдения, мошенников среди клиентов банка, нежелательный контент в сервисе - внедрять ML следует аккуратно. Любая модель, которую вы построите, на разных примерах будет в разной степени уверена, что пример нежелательный, и полезно смотреть на оцененную ей вероятность принадлежности к классу «драка», «мошенник», «нежелательный контент» и т.д. (в зависимости от того, какую вы решаете задачу). Выбирая порог по вероятности, начиная с которого вы автоматически принимаете меры (например, временно баните контент и его автора в вашем сервисе, или вызываете полицию к месту драки), вы решаете, для какого топа случаев (если отсортировать их по убыванию вероятности) вы автоматически принимаете меры. Разумеется, там, где прогноз вероятности меньше, «нежелательные» примеры будут реже встречаться. Так что чем ниже порог по вероятности - тем менее точная ваша модель. Поэтому, возвращаясь к примеру с преступниками, при внедрении модели сначала имеет смысл ставить порог по вероятности очень высоким - например, 95% или 99%, чтобы модель срабатывала пусть и раз в сто лет, но когда очень уверена, и постепенно дорабатывать модель и понижать порог.
При этом, даже если пока у вас есть только несложный бейзлайн модели, это не значит, что его совсем нельзя использовать - возможно, он уже может быть полезен при применении с высоким порогом. По мере улучшения модели вы сможете опускать порог и автоматизировать большее количество решений, делая разработку и поддержку модели более оправданной экономически. Продолжать наращивать качество становится не интересно, когда выигрыш в количестве автоматизированных решений уже не окупает затраты на доработку. И нужно иметь ввиду, что этот момент может настать уже с самого начала проекта.
Настало время рассказать о том, в чем был подвох. Дело в том, что Amazon рекомендовал в качестве порога классификации брать 95% вероятности, а активисты использовали порог 80%. Разумеется, когда для отнесения человека к преступникам достаточно уверенности классификатора на 80%, ложных срабатываний становится больше, поэтому эксперимент на самом деле был подтасован, чтобы выглядеть более убедительно для общественности. О том, сколько конгрессменов останется преступниками с порогом 95%, история умалчивает, но все это хороший повод обсудить, как нужно внедрять машинное обучение в подобных ситуациях.
Если вам нужно детектировать какие-то нежелательные примеры - драки или пожары по данным камер видеонаблюдения, мошенников среди клиентов банка, нежелательный контент в сервисе - внедрять ML следует аккуратно. Любая модель, которую вы построите, на разных примерах будет в разной степени уверена, что пример нежелательный, и полезно смотреть на оцененную ей вероятность принадлежности к классу «драка», «мошенник», «нежелательный контент» и т.д. (в зависимости от того, какую вы решаете задачу). Выбирая порог по вероятности, начиная с которого вы автоматически принимаете меры (например, временно баните контент и его автора в вашем сервисе, или вызываете полицию к месту драки), вы решаете, для какого топа случаев (если отсортировать их по убыванию вероятности) вы автоматически принимаете меры. Разумеется, там, где прогноз вероятности меньше, «нежелательные» примеры будут реже встречаться. Так что чем ниже порог по вероятности - тем менее точная ваша модель. Поэтому, возвращаясь к примеру с преступниками, при внедрении модели сначала имеет смысл ставить порог по вероятности очень высоким - например, 95% или 99%, чтобы модель срабатывала пусть и раз в сто лет, но когда очень уверена, и постепенно дорабатывать модель и понижать порог.
При этом, даже если пока у вас есть только несложный бейзлайн модели, это не значит, что его совсем нельзя использовать - возможно, он уже может быть полезен при применении с высоким порогом. По мере улучшения модели вы сможете опускать порог и автоматизировать большее количество решений, делая разработку и поддержку модели более оправданной экономически. Продолжать наращивать качество становится не интересно, когда выигрыш в количестве автоматизированных решений уже не окупает затраты на доработку. И нужно иметь ввиду, что этот момент может настать уже с самого начала проекта.
Habr
Система распознавания лиц Amazon Rekognition приняла 28 конгрессменов США за преступников
Американский союз гражданских свобод (American Civil Liberties Union, ACLU) продолжает кампанию против использования систем распознавания лиц федеральными агентствами и полицией. ACLU...
👍1
#interview
Одна из тем, которые я обещал осветить - собеседования и найм в Data Science. Тема бесконечная и неисчерпаемая, так что одним постом все не ограничится, а пока начнем обсуждать самый болезненный вопрос - деньги, и как про них говорить комфортно. Вопрос, конечно, касается как переговоров при работе в компании, так и при найме.
Зарплаты в Data Science шокируют всех: и работодателей, и самих специалистов в Data Science, и смежников. Причина тому - огромный разброс. Оцененный на один и тот же уровень специалист может в одной компании зарабатывать 50 тысяч в месяц, а в другой - 130. Первые, услышав про зарплату вторых, очень расстраиваются, а вторые, услышав про зарплату первых - очень удивляются. С ростом уровня разброс (по субъективным ощущениям) не меньше, а усугубляется ситуация еще и тем, что тот, кого не возьмут Junior DS в одну компанию, в другой компании может замечательно устроиться как Senior. Поэтому когда на собеседование приходит специалист, которому в компании могут предложить максимум постажироваться за 50 тысяч, и просит зарплату, например, 200, это несложно понять. Но такой опыт все равно оказывается травматичным для всех: и для HR, и для собеседующих, и для кандидата.
Часто здесь начинаются рассуждения о «рыночной зарплате», но мне кажется, что при таком разбросе как в оценке навыков, так и в оплате труда, очень тяжело говорить о ЗП «по рынку». Мне кажется, что главное - не воспринимать деньги как что-то личное или, тем более, как оценку профессиональных качеств, не зависящую от контекста - компании, задач, потребности в этом специалисте, имеющегося бюджета и так далее. Если продолжать этот полет мысли, то кандидат, в общем-то, может называть зарплату хоть 100500 миллионов долларов в месяц, а работодатель - хоть просить сотрудника еще доплачивать компании за работу (ладно-ладно, последнее по ТК наверно не очень возможно, но вы поняли идею). В этом нет чего-то личного, это просто предложения, которые могут приводить к выходу человека на работу или не приводить. И каждая сторона сама решает, какое предложение выставить.
Одна из тем, которые я обещал осветить - собеседования и найм в Data Science. Тема бесконечная и неисчерпаемая, так что одним постом все не ограничится, а пока начнем обсуждать самый болезненный вопрос - деньги, и как про них говорить комфортно. Вопрос, конечно, касается как переговоров при работе в компании, так и при найме.
Зарплаты в Data Science шокируют всех: и работодателей, и самих специалистов в Data Science, и смежников. Причина тому - огромный разброс. Оцененный на один и тот же уровень специалист может в одной компании зарабатывать 50 тысяч в месяц, а в другой - 130. Первые, услышав про зарплату вторых, очень расстраиваются, а вторые, услышав про зарплату первых - очень удивляются. С ростом уровня разброс (по субъективным ощущениям) не меньше, а усугубляется ситуация еще и тем, что тот, кого не возьмут Junior DS в одну компанию, в другой компании может замечательно устроиться как Senior. Поэтому когда на собеседование приходит специалист, которому в компании могут предложить максимум постажироваться за 50 тысяч, и просит зарплату, например, 200, это несложно понять. Но такой опыт все равно оказывается травматичным для всех: и для HR, и для собеседующих, и для кандидата.
Часто здесь начинаются рассуждения о «рыночной зарплате», но мне кажется, что при таком разбросе как в оценке навыков, так и в оплате труда, очень тяжело говорить о ЗП «по рынку». Мне кажется, что главное - не воспринимать деньги как что-то личное или, тем более, как оценку профессиональных качеств, не зависящую от контекста - компании, задач, потребности в этом специалисте, имеющегося бюджета и так далее. Если продолжать этот полет мысли, то кандидат, в общем-то, может называть зарплату хоть 100500 миллионов долларов в месяц, а работодатель - хоть просить сотрудника еще доплачивать компании за работу (ладно-ладно, последнее по ТК наверно не очень возможно, но вы поняли идею). В этом нет чего-то личного, это просто предложения, которые могут приводить к выходу человека на работу или не приводить. И каждая сторона сама решает, какое предложение выставить.