Открытый курс машинного обучения habrahabr: Дневной дайджест: 17.04.2017 | PyNSK
Название курса | Сайт | Чему учат | Стоимость | Форма обучения |
Кодкадемия | codecademy.com |
Программирование
Широкий выбор уроков по основным языкам программирования. Есть Python, Git, Java, JS, HTML, PHP, SQL и многое другое
| бесплатно | дистанционно |
w3school | w3schools.com |
Программирование
Азы и туториалы по XML, Xpath, JSON, HTML, CSS, JavaScript, PHP, AngularJS, SQL, Bootstrap, jQuery
| бесплатно | дистанционно |
Машинное обучение. Стэнфордский университет | coursera.org |
Машинное обучение. Курс от Andrew Ng (Stanford, Coursera)
Курс на английском и используется матлаб(octave) для работы, но появляется глубокое понимание в процессах обучения моделей
|
платно
актуальная стоимость на сайте
| дистанционно |
Машинное обучение. МФТИ и Яндекс | coursera.org | Машинное обучение. Курс на русском, Много математики и статистики |
платно
актуальная стоимость на сайте
| дистанционно |
Открытый курс машинного обучения. OpenDataScience | habrahabr.ru | Машинное обучение. Неплохой курс по машинному обучению на русском |
бесплатно
| дистанционно |
sas | https://www.sas.com/ru_ru/training/home.html |
Работе со всем множеством продуктов SAS. От программирования до аналитики
|
платно
актуальная стоимость на сайте
| очно или дистанционно |
sas_free | http://support.sas.com/training/tutorial/ |
Раздел с официальными бесплатными мануалами по SAS (tutorial)
Есть не все, но бесплатно, и официально 🙂
| бесплатно | дистанционно |
sololearn | www. sololearn.com |
Программирование
Можно обучаться с экрана телефона. Python, Java, SQL, C++, PHP, JavaScript, C#, Swift, Ruby, JQuery, HTML, CSS
| бесплатно |
дистанционно
со смартфона
|
habrahabr.ru: big data — bookchld — LiveJournal
bookchldБыстрый старт: обзор основных Deep Learning фреймворков
https://habrahabr.ru/company/npl/blog/325818/
Библиотека глубокого обучения Tensorflow
https://habrahabr.ru/company/ods/blog/324898/
Библиотеки для глубокого обучения Theano/Lasagne
https://habrahabr.ru/company/ods/blog/323272/
Библиотеки для глубокого обучения: Keras
https://habrahabr.ru/company/ods/blog/325432/
Введение в машинное обучение с tensorflow
https://habrahabr.ru/post/326650/
Открытый курс машинного обучения. Тема 6. Построение и отбор признаков
https://habrahabr.ru/company/ods/blog/325422/
Открытый курс машинного обучения. Тема 8. Обучение на гигабайтах с Vowpal Wabbit
https://habrahabr.ru/company/ods/blog/326418/
Открытый курс машинного обучения. Тема 9. Анализ временных рядов с помощью Python
https://habrahabr.ru/company/ods/blog/327242/
Дайджест Университета ИТМО: материалы для тех, кто хочет влиться в Data Science
https://habrahabr.ru/company/spbifmo/blog/326894/
Лучшие онлайн-курсы по Data Science
https://habrahabr.ru/company/studyqa/blog/326808/
Обучение с подкреплением на примере игры «крестики-нолики»
https://habrahabr.ru/post/327714/
Объяснение нейронных машин Тьюринга
https://habrahabr.ru/post/327614/
Видеозапись вебинара «Julia — A fresh approach to numerical computing and data science»
https://habrahabr.ru/company/flyelephant/blog/327608/
Восстание машин: Как роботы захватили бухгалтерию
https://habrahabr.ru/company/microsoft/blog/327554/
Детальный анализ Хабрахабра с помощью языка Wolfram Language (Mathematica)
https://habrahabr. ru/company/cloud4y/blog/327352/
Анализ публикаций на Хабрахабре за последние полгода. Статистика, полезные находки и рейтинги
https://habrahabr.ru/company/cloud4y/blog/327352/
Подборка полезных материалов по Azure
https://habrahabr.ru/company/microsoft/blog/327340/
Спортивный анализ данных, или как стать специалистом по data science
https://habrahabr.ru/company/yandex/blog/327444/
Видеозаписи докладов конференции AI&BigDataLab за последние три года
https://habrahabr.ru/company/flyelephant/blog/327390/
Хочу все знать: бизнес-анализ. Часть 1 https://habrahabr.ru/post/327354/
Хочу все знать: бизнес-анализ. Часть 2 https://habrahabr.ru/post/327370/
Как мы построили облачную инфраструктуру обработки данных для кросс-продуктовой аналитики https://habrahabr.ru/company/skyeng/blog/327088/
Предиктивная аналитика на платформе SCP https://habrahabr.ru/company/sap/blog/327086
Прогнозирование финансовых временных рядов с MLP в Keras
https://habrahabr. ru/post/327022/
Разбор вступительного экзамена ШАД-2015 и воспоминания выпускника 2017 года
https://habrahabr.ru/post/327010/
Алгоритм Джонкера-Волгенанта + t-SNE = супер-сила
https://habrahabr.ru/company/wunderfund/blog/326750/
Data science и качественный код
https://habrahabr.ru/post/326656/
Как говорить с искусственным интеллектом?
https://habrahabr.ru/company/wolfram/blog/326570/
Гуляем по дата-центру TIER III
https://habrahabr.ru/company/dataline/blog/326510/
Не скоро строится забор, тем более – красивый ЦОД. Как мы строим ЦОД «Авантаж». Часть 1
https://habrahabr.ru/company/technoserv/blog/326104/
Векторные модели и русская литература
https://habrahabr.ru/post/326380/
Одномерная линейная регрессия, SQL и машинное обучение
https://habrahabr.ru/post/326124/
Открытый курс машинного обучения. Тема 7. Обучение без учителя: PCA и кластеризация
https://habrahabr.ru/company/ods/blog/325654/
Surf Studio: машинное обучение в production
https://habrahabr. ru/company/google/blog/325896/
Kaggle: Британские спутниковые снимки. Как мы взяли третье место
https://habrahabr.ru/company/ods/blog/325096/
Как полюбить машинное обучение и перестать страдать
https://habrahabr.ru/company/microsoft/blog/325728/
Байесовские многорукие бандиты против A/B тестов
https://habrahabr.ru/company/ods/blog/325416/
Big Data для автодилера и автопроизводителя: от идеи до монетизации
https://habrahabr.ru/company/bright-box/blog/325718/
О линейной регрессии: байесовский подход к курсу рубля
https://habrahabr.ru/post/324890/
Второе почетное. Заметки участника конкурса Dstl Satellite Imagery Feature Detection
https://habrahabr.ru/company/avito/blog/325632/
Рекурсивный фильтр скользящего среднего
https://habrahabr.ru/post/325590/
R, GIS и fuzzyjoin: восстанавливаем статистические данные для регионов NUTS
https://habrahabr.ru/post/325564
Учим TensorFlow рисовать кириллицу
https://habrahabr. ru/post/325510/
Спектральный анализ сигналов нелинейных звеньев АСУ на Python
https://habrahabr.ru/post/325502/
Кластеризация текстовых документов по семантическим признакам (часть вторая: описание моделей)
https://habrahabr.ru/post/324998
Специализация Yandex «Машинное обучение и анализ данных»
Алексей
Швец
Очень хороший старт, позволил многое вспомнить и систематизировать. Если есть понимание из мат. анализа, линейной алгебры и статистики, то можно смело браться за курс, если нет, то лучше где-то приобрести перед началом. Команде, работавшим над курсом хочется сказать слова благодарности и пожелания не снижать планку в дальнейшем.
Вадим
Аюев
Отличный курс от одного из лучших учебных заведений России. Прекрасно подойдёт для желающих начать изучение Machine Learning. В достаточной степени образно объяснены базовые понятия, приведены примеры и ссылки для дальнейшего самостоятельного изучения материала (или повторения забытого после вуза). Практические задания просты и снабжены исчерпывающими примерами.
Курс рассчитан на аудиторию с навыками программирования, хотя задания более чем на 20 строк кода здесь не встречаются.
Степан
Леонтенко
Курс позволяет освежить в памяти основы математики, которые были успешно забыты после полученных зачетов и экзаменов в институте. Позволяет изучить что-то новое как для меня была статистика и Python. И всё в курсе очень профессионально и доступно подано, так что хочется учиться и выполнять проверочные работы, что, например, не всегда наблюдается в том же институте. Остался очень доволен курсом и планирую дальше продолжать специализацию.
Анна
Зверева
Большое спасибо за курс!
Я в данный момент приближаюсь к завершению своей подготовки по машинному обучению и вскоре буду искать работу. Ваша серия курсов очень помогла в освоении этого тернистого пути. Хотелось получить именно глубокое понимание обсуждаемых тем. И 41 из 1058 (надеюсь, только пока) место в конкурсе kaggle от Bosch, на мой взгляд, подтверждает высокое качество освоения материала.
К сожалению, лично для меня освоение такой масштабной области как машинное обучение, оказалось физически и психически слишком неподъёмным при совмещении с основной работой. Поэтому бросила работу и последние месяцы плотно занимаюсь обучением. О чём, кстати, не жалею. Качество усвоения намного выше, чем при учёбе только по выходным.
Василий
Гречихин
Хочу поделиться несколькими мыслями о курсе «Математика и Python для анализа данных».
Я увидел рекламу этой специализации на хабре и решил пройти её в качестве знакомства с анализом данных и машинным обучением.
Очень понравилась адекватная разбивка по неделям, удается идти по графику без спешки, в отличие от многих других курсов.
Большое спасибо за курс!
Иванов
Александр
Шикарный курс. Особо благодарен за задачу про червивые яблоки из Турции. Благодаря ей я до сих пор не помню формулу Байеса, но теперь пониманию и в любой момент могу воспроизвести. Почему-то это главный восторг. Спасибо, Евгений. Так же хочется еще раз поблагодарить Евгения за отзывчивость в слэке и объяснение отличий доверительных интвервалов от предсказательных.
Помимо статистики, очень классное и внятное объяснение математики было в целом. Может только про определитель и свд западает, я скоро забуду опять, как-то интуитивного понимание не сложилось в голове. Зато понял методы оптимизации и матричные операции. Спасибо!
Андрей
Лаврененко
Хочу поблагодарить преподавателей за очень и очень приятную подачу, приятную в том плане, что они рассказывают достаточно доступно, интересно и в то же время после просмотра ты понимаешь, что узнал что-то реально полезное и, по обычным меркам, сложное, хотя вот сложность из-за подачи как раз и не ощущается, потому что приводятся очень хорошие примеры и аналогии.
Приятно, что преподаватели сами по себе очень компетентные люди, интересующиеся тем, чем занимаются. Понравился раздел «Дополнительные материалы», где приводятся различные интересные ссылки на ресурсы, статьи и картиночки. В общем, огромное Вам СПАСИБО!
Foreign
student
As a former MIPT alumni, I enjoyed with brilliant teaching of Emely Drayl, Viktor Kantor, Evgeniy Sokolov and Evgeniy Ryabchenko. They helped me to brush up my knowledge in Linear Algebra and Probability and begin to learn Python at last (currently I work on C++). Great thanks!
Hope to prolong this spec study with enthusiasm, hope to realize my future projects with help of taken courses.
Дмитрий
Васильев
Были очень интересные практические задания. Некоторые из них потребовали довольно много времени, но это того стоило. Параллельно пришлось подтягивать математику, что очень полезно само по себе. Тем, кто будет проходит этот курс в будущем, рекомендую освежить знания по статистике и теории вероятностей — это сильно пригодится.
Из преподавателей отдельно отмечу Евгения Соколова, который очень просто и доступно объяснил тему решающих деревьев. Еще запомнилась одна из лекций Эмели Драль, где она на примерах показала типичные ошибки начинающих специалистов по анализу данных. Остальные ребята тоже отлично справились со своим делом.
Курс очень крутой. Ни разу не пожалел, что записался.
Анна
25 лет, по образованию специалист по информационной безопасности, около 3 лет работала разработчиком.
«Взяла этот курс, так как очень люблю машинное обучение и анализ данных. До этого проходила курсы от зарубежных ВУЗов, как только появился курс на русском языке — сразу записалась. Хотя многие темы были мне известны, все равно было интересно и полезно (особенно статистика!), и были новые материалы, с которыми не работала.
Выполнила первый проект — хорошо документированный, интересный, наиболее приближенный к науке и практике.
Огромное спасибо создателям курса за проделанную работу!»
Сергей
«Ребята, вас бы к нам в МГТУ им. Баумана (лет 5 назад). Спасибо за специализацию! Эмели и Евгений Соколов очень просто и понятно объясняют, хочется увидеть вас в живую .Евгений Рябенко и весёлая статистика — неразделимые вещи. Виктор умеет очень непринужденным тоном говорить о мат. анализе, как будто это тапочки, которые он вчера оставил на обувной полке».
Константин
Окончил экономический факультет МГУ в 1989 году. Занимался внедрением систем ERP, экономическими исследованиями.
«Многое из курса нам преподавали еще в 80-х. С удовольствием осознал, что метод опорных векторов, SVM, мы проходили вскоре после его открытия, математика ведь не была нашим профильным предметом!
На курсе оценил практичность и простоту реализации некоторых вещей. Меня интересуют анализ временных рядов и методы кластеризации. Очень понравилось, как было сделано занятие по тематическому моделированию, но я лично не знаю, где это применять.
Почему-то я больше слышал про R , а не про Python, вначале это настораживало. У меня был неплохой опыт программирования на С, меньше С#, С++.
Это был мой первый опыт онлайн-курсов, мне понравилось. Спасибо!».
Александр
Студент киевского политеха, факультет прикладной математики.
«Очень крутой курс, все понравилось! Преподаватели просто топ, единственное — добавил бы еще практики. Курс сделан на высоком уровне, особенно понравилось преподавание Виктора и Евгения, импонирует их стиль подачи информации.
Курс сделан доступно, понятно. Здорово, что всегда есть возможность получить ответ на свой вопрос в чате.».
Python — Интерпретируемый язык программирования высокого уровня для программирования общего назначения / Хабр
См. Больше на robotics.snowcron.comЭто первая статья в серии, посвященной классификации монет. Имея бесчисленные классификаторы «собаки против кошек» или «найди пешехода на улице» по всему Интернету, классификация монет не похожа на трудная задача. Вначале. К сожалению, это на порядок сложнее — действительно серьезная задача. Вы можете легко отличить решку? Отлично.Сможете ли вы выяснить, сдвинуто ли число на 1 мм влево? Видите ли, с точки зрения классификатора это все та же голова … хотя она может иметь значение между обычной монетой, оцененной в соответствии с номером на ней, и редкой, в 1000 раз дороже. Конечно, мы можем делать то, что обычно сделать в классификации изображений: предоставить 10 000 образцов изображений . .. Нет, подождите, мы не можем. Некоторые типы монет действительно редки — вам нужно перебрать КОРЗИНУ (10 литров) монет, чтобы найти одну. Простая арифметика предполагает, что для получения 10000 изображений РАЗНЫХ монет вам понадобится 10000 корзин монет для начала.Ну и неограниченное время. Так что это не так просто. В любом случае, мы собираемся начать с получения большого количества изображений и работать оттуда. Мы будем использовать российские монеты в качестве примера, поскольку в 1994 году в России была проведена денежная реформа, и поэтому количество монет, которые можно ожидать найти в кармане, ограничено. В отличие от США с 200-летней монетарной историей. И да, мы собираемся сосредоточиться ТОЛЬКО на текущих монетах: конечная цель нашей работы — написать программу для смартфона, чтобы классифицировать монеты, полученные в продуктовом магазине, как сдачу.Что еще хуже, так как мы больше не можем рассчитывать на хорошее освещение и качественные камеры. Но мы все же попробуем. Помимо «только российские монеты, начиная с 1994 года», мы добавим дополнительное ограничение: никаких особых монет. Эти монеты выглядят самобытно, поэтому любой может понять, что это особенная монета. Мы ориентируемся на ОБЫЧНЫЕ монеты. Что сильно ограничивает их количество. Не поймите меня неправильно: если нам нужно применить тот же подход к полному списку монет … это сработает. Но у меня есть 15 ГБ изображений для этого ограниченного набора, представляете, насколько велик будет полный набор ?! Чтобы получить изображения, я собираюсь сканировать один из крупнейших российских монетных сайтов «meshok».ru ». На этом сайте покупатели и продавцы могут найти друг друга; продавцы могут загружать изображения … именно то, что нам нужно. К сожалению, бизнес-ориентированный продавец может запросто загрузить свое изображение за 1 рубль в темы 1, 2, 5, 10 рублей. , просто для увеличения экспозиции.
Так что мы не можем рассчитывать на название темы, мы должны сами определять, какая монета изображена на фото.Для сканирования сайта был написан простой сканер на основе библиотеки Python Beautiful Soup. Всего за несколько часов я получил более 50 000 фотографий. Немного по стандартам машинного обучения, но определенно начало.После того, как мы получили изображения, мы должны, к сожалению, просмотреть их вручную, ища изображения, которые нам не нужны в нашем обучающем наборе, или изображения, которые нужно как-то редактировать. Например, кто-то мог загрузить фотографию своего кота. Нам не нужна кошка в нашем наборе данных. Сначала мы удаляем все изображения, которые нельзя разделить на голову / град.
Как я получил сертификат разработчика TensorFlow (и как получить его для вас) / блог компании SkillFactory / Хабр
В начале мая я решил получить сертификат разработчика TensorFlow.Для этого я разработал программу тренировок по повышению квалификации. и сдал задания на сертификационный экзамен пару дней назад (3 июня). Оказалось, что я успешно сдал экзамен.
Позвольте мне рассказать вам, как я это сделал, и как вы делаете то же самое.
Погодите. Что вообще такое TensorFlow?
TensorFlow — это числовая система с открытым исходным кодом, которая позволяет вам предварительно обрабатывать и моделировать данные (находить в них закономерности, обычно с помощью глубокого обучения) и развертывать ваши решения для всего мира.
Google использует TensorFlow для поддержки всех своих сервисов машинного обучения. Скорее всего, устройство, на котором вы это читаете, в той или иной форме использовало TensorFlow.
Обычно вы пишете код с использованием TensorFlow на очень понятном Python (это то, что требуется для экзамена) или jаvascript (tensorflow.js), и он запускает ряд базовых функций, написанных на C. Эти функции выполняют команды, описанные вами ранее ( проделать много численных расчетов). Сертификация
для разработчиков TensorFlow Как вы уже догадались, это способ продемонстрировать свою способность работать с TensorFlow.
В частности, ваша способность использовать TensorFlow (версия Python) при построении моделей глубокого обучения для ряда различных задач: регрессионного анализа, компьютерного зрения (поиск закономерностей в изображениях), обработки естественного языка (поиск закономерностей в тексте) и времени. прогнозирование ряда (прогнозирование будущих тенденций на основе ряда прошлых событий).
Зачем вам нужен сертификат разработчика TensorFlow?
Первой причиной было веселье. Я хотел дать себе небольшой вызов в своей работе и найти причину прочитать новую книгу, которую я купил (подробнее об этом позже).
Но есть еще две веские причины:
Получите фундаментальные навыки, необходимые для создания приложений, использующих технологию машинного обучения.
Продемонстрируйте свою компетентность будущему работодателю.
Говоря о будущих работодателях: на основе страницы Hacker News’s Who’s Hiring (страница, на которой перечислены ежемесячные вакансии разработчиков программного обеспечения), TensorFlow, похоже, опережает другие структуры глубокого обучения.
Сравнение различных фреймворков глубокого обучения на основе того, как часто они упоминаются в различных рабочих публикациях на странице Who’s Hiring на сайте Hacker News.Примечание. Начиная с TensorFlow 2. x, Keras по сути является частью TensorFlow. Примечание 2: в связи с текущими глобальными обстоятельствами общий уровень найма разработчиков программного обеспечения снижается.
Хочу уточнить, что платный сертификат не является гарантией трудоустройства. Однако в мире онлайн-обучения, где навыки превращаются в товары, это еще один способ показать, на что вы способны.
Считаю это приятным дополнением к имеющемуся списку личных проектов, над которыми вы работали — курсы формируют фундаментальные знания, проекты — конкретные знания.
Так как же все это делается?
Как подготовиться к экзамену
Когда я решил, что мне интересно, я зашел на сайт программы сертификации. и прочтите Руководство по сертификации разработчиков TensorFlow.
Из этих двух ресурсов я построил учебную программу.
Учебная программа отражает то, что я изучил, чтобы развить навыки, необходимые для сдачи экзамена
.
Следует отметить, что до того, как я начал готовиться к экзамену, у меня был некоторый практический опыт создания нескольких проектов с помощью TensorFlow.
Опытный специалист по TensorFlow или специалист по глубокому обучению, вероятно, сможет пройти следующий курс обучения примерно в том же темпе (всего 3 недели), что и я (возможно, быстрее).
Новичок может потратить сколько угодно времени. Помните: для приобретения любого полезного навыка требуется время.
Я перечислил термины, стоимость (в долларах США) и уровень полезности (для экзамена) для каждого ресурса. Сроки основаны на моем опыте.
Если вы хотите составить учебную программу для себя, я бы порекомендовал что-то вроде приведенного ниже списка.
Примечание: для платных ресурсов использовались партнерские ссылки. Это не изменит для вас цену ресурса, но если вы получите доступ к одному из материалов, я получу часть этой суммы: я использую эти деньги для создания подобных материалов.
1,3-3r3150. Руководство по сертификации разработчиков TensorFlow
Время: 1 час.
Стоимость: Бесплатно.
Уровень полезности: Обязательный.
Этот ресурс должен стать вашей первой остановкой.В нем описаны темы, которые будут рассмотрены на экзамене. Прочтите это, а затем прочтите еще раз.
Если вы новичок в TensorFlow и машинном обучении, вы, вероятно, прочтете его и испугаетесь множества аспектов. Не волнуйся. Приведенные ниже ресурсы помогут вам с ними ознакомиться.
2.3-3r3180. Практическая специализация в TensorFlow на Coursera
Время: от 3 недель (опытный пользователь) до 3 месяцев (новичок).
Стоимость: 59 долларов в месяц после 7-дневной бесплатной пробной версии вы можете запросить финансовую поддержку.Если вы не можете получить доступ к Coursera, просмотрите эквивалентную бесплатную версию YouTube для.
Уровень полезности: 10/10.
Это наиболее подходящий ресурс для экзамена (и начала работы с TensorFlow в целом). Внимательный слушатель заметит руководство по сертификации TensorFlow, и очертания этой специализации практически идентичны.
Его преподают Лоуренс Морони и Эндрю Нг, два титана TensorFlow и машинного обучения, и если бы мне пришлось выбрать только один ресурс для подготовки к экзамену, то это был бы этот курс.
Я оценил формат коротких видеороликов и как можно скорее сосредоточился на практических примерах. Многочисленные файлы кода в конце каждого раздела будут очень полезны любому студенту, обучающемуся на практике.
Подсказка к упражнениям по программированию: не просто заполняйте пробелы в коде, а пишите все сами.
3. Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow 2nd Edition.
Время: от 3 недель (чтение от корки до корки, без упражнений) до 3 месяцев (чтение от корки до корки и выполнение упражнений).
Стоимость: Цены на Amazon различаются, но я купил бумажную версию за 55 долларов. Весь код можно посмотреть бесплатно на GitHub.
Уровень полезности: 7/10 (просто потому, что некоторые главы не имеют отношения к экзамену).
Книга объемом более 700 страниц охватывает практически все аспекты компьютерного обучения и, следовательно, некоторые темы, не связанные с экзаменом. Но его обязательно нужно прочитать всем, кто хочет заложить прочный фундамент для будущего машинного обучения, а не только для сдачи экзамена.
Если вы новичок в машинном обучении, то, скорее всего, вам будет сложно прочитать эту книгу (в начале пути). Опять же, не волнуйтесь, спешить некуда, освоение полезных навыков требует времени.
Скажем так: если вы хотите получить представление о качестве книги, я прочитал первое издание утром, когда пошел работать инженером по машинному обучению. И могу сказать, что чаще всего в течение рабочего дня мне приходилось кстати то, что я читал в книге.
Второе издание ничем не отличается, за исключением того, что оно было обновлено, чтобы охватить новейшие инструменты и методы, а именно TensorFlow 2.x — на котором основан экзамен.
Если вам нужны только главы, соответствующие экзамену, вы можете прочитать следующее:
Глава 10: Введение в искусственные нейронные сети с помощью Keras
Глава 11: Изучение глубоких нейронных сетей
Глава 12: Пользовательские модели и обучение с помощью TensorFlow
Глава 13: Загрузка и предварительная обработка данных с помощью TensorFlow
Глава 14: Глубокое компьютерное зрение с использованием сверточных нейронных сетей
Глава 15: Обработка последовательностей с использованием рекуррентных и сверточных нейронных сетей
.
Глава 16: Обработка текста на естественном языке с использованием повторяющихся нейронных сетей и внимания
Но серьезному студенту я бы посоветовал прочитать всю книгу и выполнить упражнения (может быть, не все, но те, которые больше всего соответствуют вашим интересам).
4.3-3r3302. Введение в глубокое обучение от MIT
Время: от 3 часов (я просмотрел всего 3 лекции) до одного дня (1 час на каждую лекцию, плюс час на обзор).
Стоимость: Бесплатно.
Уровень полезности: 8/10.
Курс глубокого обучения мирового уровня от университета мирового класса. Не забыл упомянуть, что это бесплатно?
Первые 3 лекции, разделы по глубокому обучению (обзор), сверточным нейронным сетям (обычно используемым для компьютерного зрения) и рекуррентным нейронным сетям (обычно используемым для обработки текстов) являются наиболее важными для экзамена.
Но, опять же, для прилежного слушателя было бы полезно пройти весь курс.
Обязательно ознакомьтесь с лабораторными работами и кодом, который они предлагают на GitHub, особенно с Введение в TensorFlow. И опять же, я не могу полностью указать на важность написания кода самостоятельно.
??? — 33346. Начало работы с PyCharm
Время: 3 часа (в зависимости от скорости вашего компьютера).
Стоимость: Бесплатно.
Уровень утилиты: 10/10 (обязательное использование PyCharm).
Тест проводится в PyCharm (инструмент разработки на Python). До экзамена я ни разу не использовал PyCharm, и перед началом предлагается хотя бы немного с ним ознакомиться.
Чтобы познакомиться с PyCharm, я просмотрел серию вводных видеороликов на YouTube, и они были очень простыми: «Вот что делает эта кнопка».
Но основные тесты заключались в проверке того, что TensorFlow 2.x работает без проблем, а также на возможность работы с глубокими нейронными сетями за разумное время (мой MacBook Pro не имеет графического процессора Nvidia).
Чтобы проверить эти аспекты, я скопировал на свой локальный компьютер следующие два руководства TensorFlow:
Классификация изображений с использованием TensorFlow
Классификация текста с помощью TensorFlow
Однако, как мы увидим ниже, как только я начал сдавать экзамен, я столкнулся с проблема.
Дополнительно
Видео с deeplearning.ai на Coursera / YouTube — экзамен включает в себя выполнение задач по программированию (вам необходимо писать код на Python), но если вы хотите знать, что происходит за кулисами написанного вами кода ( линейная алгебра, математический анализ), я бы смотрел эти видео как можно больше. Например, если вы не знаете, что такое градиентный спуск с мини-пакетами, поищите «deeplearning.ai mini-batch gradient descent»
TensorFlow Documentation. — если вы с Если вы планируете стать практиком TensorFlow, вам необходимо уметь читать документацию. Если вы чего-то не понимаете, напишите код и прокомментируйте его сами.
Программирование с TensorFlow на YouTube (плейлист) — Большая часть специализации TensorFlow с Coursera в видео YouTube преподается одним и тем же лектором.
Как я готовился к экзамену
Вооружившись указанными выше ресурсами, я составил план в Notion.
Моя программа сертификации разработчиков TensorFlow в компании Notion. Чтобы отслеживать, что нужно сделать, я использовал технику канбан, а также различные ресурсы и заметки. Если вы перейдете по ссылке, вы можете сделать свою копию, нажав кнопку дублирования в правом верхнем углу.
Каждое утро в течение мая я вставал, писал, гулял, читал книгу «Практическое машинное обучение» в течение 1 часа, работал с TensorFlow в течение 2-3 часов на практике (сначала я посещал лекции, а затем выполнял все упражнения по кодированию в Google Colab), а в конце каждого модуля я смотрел соответствующую лекцию «Введение в глубокое обучение» от MIT.
Например, как только я закончил секцию компьютерного зрения в рамках практической специализации TensorFlow, я посмотрел лекцию по сверточным нейронным сетям (разновидность алгоритма компьютерного зрения) от MIT.
Этот тройной подход оказался особенно эффективным.
Концепция, изучаемая в книге, была подкреплена примерами кода из специализации Coursera и, в конечном итоге, резюмирована видеоматериалами из MIT.
Чтобы получить представление о сроках, я начал готовиться к экзамену 11 мая и сдал его 3 июня.
По моим наблюдениям (в Notion) и по моим рукописным закладкам, в среднем я изучал 20 страниц в час и потратил около 1 недели на изучение содержания курса на 2-3 часа изучения (без отвлекающих факторов).
Наконец, за пару дней до экзамена я загрузил PyCharm и убедился, что некоторые из изученных мной примеров кода работают на моем локальном компьютере.
Подробнее — что происходит во время экзамена
Итак, вы закончили обучение? Что теперь?
Итак, начнем с двух важных факторов.
Стоимость экзамена: 100 долларов (после неудачной попытки придется подождать 2 недели, чтобы повторить попытку, с каждой неудачной попыткой время ожидания будет увеличиваться).
Время: 5:00. Если бы не ошибка в начале экзамена, я бы сказал, что спокойно сдал бы его за 3 часа. Однако увеличенный временной лимит должен дать вам достаточно времени для обучения моделей глубокого обучения на вашем компьютере (поэтому убедитесь, что все работает до начала экзамена).
Как устроен экзамен
.
Я не собираюсь здесь много раскрывать, потому что это будет нечестно. Все, что я скажу, это прочтите руководство разработчика TensorFlow, и вы получите четкое представление об основных разделах экзамена.
Практикуйте каждую из технологий, упомянутых в руководстве (используя ресурсы, указанные выше), и вы будете готовы.
Нюансы экзамена
Обучающие модели — Если ваш компьютер не может быстро изучить модели глубокого обучения (частью критериев оценки является представление обученных моделей), вы можете обучить их в Google Colab с помощью бесплатного облачного GPU, а затем загрузите их, разместив в соответствующих каталогах для экзамена и отправив через PyCharm.
Мой сломанный интерпретатор Python — — В материалах для подготовки к экзамену подчеркивается, что для сдачи экзамена требуется Python 3.7. Когда я начинал, у меня был Python ???. И по какой-то причине, несмотря на то, что накануне TensorFlow работал на моей локальной машине с использованием PyCharm, после экзамена (который автоматически создает для вас среду TensorFlow) все сломалось.
А именно, каждый раз, когда я запускал хотя бы одну строку кода TensorFlow, я получал ошибку:
RuntimeError: словарь изменил размер во время итерации
Теперь я не уверен, что это та версия TensorFlow, которую установил экзамен (??? ) или конкретную версию Python, которая у меня была (???).
Однако после нескольких проклятий и бурных поисков в глубинах 3–3–3553. В старой ветке о проблемах на GitHub
я обнаружил странное исправление, которое означало, что мне пришлось бы изменить исходный код версии Python, которую я использовал (в частности, строку 48 lincache.py).
# Предыдущая строка 48 lincache.py
для мода в sys.modules.values ():
# Обновлена строка 48 linecache.py
для мода в списке (sys.modules.values ()): # добавлен список ()
Примечание: — это быстрое исправление, поскольку оно использовалось только на время экзамена, поэтому я не уверен, имеет ли он какие-либо долгосрочные преимущества или приводит к каким-либо последствиям.
Во время безумного поиска я также прочитал, что альтернативой является обновление / переустановка версии TensorFlow, которую вы используете в PyCharm (например, ??? -> 2.2.x). Я пробовал, и это не сработало, однако, будучи новичком в PyCharm, я признаю, что в чем-то ошибался как пользователь.
После исправления успешно сдал экзамен.
Что происходит после сдачи экзамена
.
Вы получите уведомление по электронной почте, когда / если вы сдадите экзамен. Отзывов не будет, кроме «Поздравляю, вы прошли» или «К сожалению, в этот раз вы не прошли».«
Без каких-либо негативных последствий, во время экзамена вы получите довольно четкие инструкции — сдадите вы или нет (каждый раз, когда вы представляете модель, она получает оценку).
Если вы сдадите, поздравляю вас!
Обязательно заполните форму в электронном письме, чтобы убедиться, что вы добавлены в сеть сертифицированных разработчиков TensorFlow.
После того, как вы сдадите экзамен и заполните форму в электронном письме с подтверждением, через пару недель вы сможете получить доступ к Google Сеть сертификации разработчиков.
Примечание: на момент написания меня там не было. На это уйдет 1-2 недели.
Регистрация означает, что любой, кто ищет опытных разработчиков TensorFlow, сможет найти вас в зависимости от вашего типа сертификации, опыта и региона.
Наконец, через пару недель вы получите официальный сертификат и значок разработчика TensorFlow по электронной почте (я еще не получил свой). Вы можете добавить их к проектам, над которыми вы работали.
Вопросы 3-3-3754.
Могу я просто пройти курсы, прочитать книгу и практиковаться самостоятельно, действительно ли мне нужен сертификат?
Конечно можно. В конце концов, вы должны стремиться к навыкам, а не к сертификатам. Сертификаты — это хорошо, но не обязательно.
Если вы говорите, что сертификат не требуется — зачем вы его получили?
Мне нравится иметь проблемы и работать, чтобы с ними справиться. Назначение даты (например, «Я сдам экзамен 3 июня») не оставило мне выбора, кроме как учиться.
Могу ли я сделать это с бесплатными ресурсами?
Конечно, можно. Вы можете пойти и приобрести все необходимые навыки, изучив документацию TensorFlow. Фактически, когда мне нужно что-то попрактиковаться, я копирую примеры из документации (каждую строку кода), вырабатываю понимание каждой строки, а затем пытаюсь повторить то, что видел сам.
Почему не PyTorch?
Мне нравится PyTorch. Но они не предлагают сертификатов, и если бы они предлагали, я бы, вероятно, прошел через это (для удовольствия).Кроме того, опытный пользователь обоих фреймворков (PyTorch и TensorFlow) заметит, что последние обновления сделали эти два фреймворка очень похожими. Кроме того, TensorFlow имеет преимущество в корпоративном мире (см. Диаграмму выше).
Я ничего не знаю о машинном обучении, с чего мне начать?
Прочтите статью «5 шагов в машинном обучении для начинающих».
Я сдал экзамен и зарегистрировался в сети сертификации разработчиков Google. Что мне делать дальше?
Пора творить! Используйте приобретенные навыки, чтобы создать то, что вы хотели бы видеть в мире. И не забывайте делиться своими работами, мало ли кто их увидит.
Ничего не упомянул? Не стесняйтесь оставлять комментарии или задавать вопросы по электронной почте. И я отвечу.
PS, если любите смотреть видео, я сделал видео версию этой статьи.
Узнайте подробности о том, как получить востребованную профессию с нуля или повысить уровень навыков и заработной платы, пройдя платные онлайн-курсы SkillFactory: курс
Машинное обучение. (12 недель)
Изучение профессии Data Science с нуля (12 месяцев)
Профессия аналитика с любым начальным уровнем (9 месяцев)
Курс Python для веб-разработки (9 месяцев)
Прочитать еще
Cool Data Scientists не теряют время по статистике
Как стать специалистом по данным без онлайн-курсов
Шпаргалка по сортировке для науки о данных
Наука о данных для гуманитарных наук: что такое «данные»
Сцена данных о стероидах: введение в систему принятия решений
статей — Singularis lab
- Шаповалов, О. В. (2018, апрель). Использование ROS в промышленном применении. Отчет представлен на первом IT Meetup волгоградским сообществом iT-34, Волгоград, Россия.
- Брианцони П., Якубчик Ю., Крыжановский А.И., Катаев А.В. (2018, март). Дроны и искусственный интеллект. Отчет представлен в Ротари Клубе Бормио, Бормио, Италия.
- h364 Видео трансляция без перекодирования и задержки. Статья в блоге Singularis Lab на Хабрахабре.
- Никляев И.Ю., Катаев А.В. (2017, август). Навигация и локализация. Онлайн-отчет, представленный на Intel Summer Internship 2017.
- Катаев А.В., Алексеев А.В. (2016, октябрь). Распознавание маркеров дополненной реальности в реальной среде. Отчет представлен на выставке CEE-SECR’2016, Москва, Россия.
- Никляев И.Ю. (2016, октябрь). Быстрый прототип системы управления БПЛА. (pptx pdf) Отчет представлен на CEE-SECR’16, Москва, Россия.
Курс компьютерного зрения и машинного обучения
Данный курс был прочитан инженерами нашей компании как трек «Компьютерное зрение и машинное обучение» на VII Всероссийской молодежной школе по робототехнике, встраиваемым системам и компьютерному зрению 2018 19-24 ноября.
- Катаев, А.В. (2018, ноябрь).
- Доклад представлен на Робошколе’2018, Волгоград, Россия.
Лекции, прочитанные на VIII Летней школе в МФТИ-Иннополис
Данный курс был прочитан инженерами нашей компании на VIII Летней школе в МФТИ-Иннополисе по высокопроизводительным вычислениям в компьютерном зрении 2016 15-21 августа.
День 1.
- Катаев А.В., Алексеев А.В. (2016, август). Введение в компьютерное зрение. (pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Базовые алгоритмы обработки изображений. (pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Введение в компьютерное зрение. Практика (pdf)
День 2.
- Катаев А.В., Алексеев А.В. (2016, август). Фильтрация изображений. (pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Методы поиска предметов.(pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Базовые алгоритмы обработки изображений. Практика. (pdf) Исходные материалы. (zip)
День 3.
- Катаев А.В., Алексеев А.В. (2016, август). Машинное обучение в компьютерном зрении. Сверточные нейронные сети. (pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Пример TensorFlow MNIST. (pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Машинное обучение в OpenCV.Практика. (pdf) Исходные материалы. (zip)
День 4.
- Агафонов В.Ю. (2016, август). Введение в SLAM. (pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Работайте с 3D. (pdf)
- Катаев А.В., Алексеев А.В. (2016, август). Исходные материалы. (zip)
День 5.
- Катаев А.В., Алексеев А.В. (2016, август). Подготовка к хакатону. Практика. (pdf)
Аддиктивные материалы.
- Катаев А.В., Алексеев А.В. (2016, август). Android + OpenCV. Базовые концепты. (pdf) Исходные материалы. (zip)
Курс компьютерного зрения и машинного обучения
Данный курс был прочитан инженерами нашей компании как трек «Компьютерное зрение и машинное обучение» на IV Всероссийской молодежной школе по робототехнике, встраиваемым системам и компьютерному зрению 2015 9-13 ноября.
- Катаев А.В., Алексеев А.В. (2015, ноябрь). Введение в компьютерное зрение. (pptx pdf) Отчет, представленный на Робошколе’2015, Волгоград, Россия.
- Алексеев А.В., Катаев А.В. (2015, ноябрь). Обработка изображений. Отчет представлен на Roboschool’2015, Волгоград, Россия.
- Филимонов, А.В. (2015, ноябрь). Машинное обучение. Отчет представлен на Roboschool’2015, Волгоград, Россия.
Курс робототехники и искусственного интеллекта
Данный курс был прочитан инженерами нашей компании как трек «Робототехника и искусственный интеллект» на IV Всероссийской молодежной школе по робототехнике, встраиваемым системам и компьютерному зрению 2015 9-13 ноября.
- Крыжановский, А.И. (2015, ноябрь). Поговорим о ROS. (7z pdf) Отчет, представленный на Робошколе’2015, Волгоград, Россия.
- Никляев И.Ю. (2015, ноябрь). Фильтрация сенсорных данных. (pptx pdf) Отчет, представленный на Робошколе’2015, Волгоград, Россия.
- Никляев И.Ю. (2015, ноябрь). Навигация и локализация. Отчет представлен на Roboschool’2015, Волгоград, Россия.
- Алексеев, А.В., Катаев, А. (2015, октябрь). О разработке приложения для Intel® RealSense TM для анимации трехмерных моделей на основе аватаров с использованием мимикрии пользователя. Отчет представлен на SECR’2015, Москва, Россия.
- Катаев А.В., Алексеев А.В. (2015, октябрь). Разработка приложений компьютерного зрения и дополненной реальности — теперь это просто. (ppsx pdf) Отчет, представленный на SECR’2015, Москва, Россия.
- Никляев И.Ю., Крыжановский А.И., Бородинов Л.Ю. (2015, октябрь). Разработка алгоритма навигации БПЛА с использованием ROS.(ppsx pdf) Отчет, представленный на SECR’2015, Москва, Россия.
- Бородинов Л.Ю., Катаев А.В., Алексеев А.В. (2018, март). Виртуальная и дополненная реальность. Отчет представлен в Школе интеллектуального досуга, Волгоград, Россия.
- Агафонов Г.В. (2018, ноябрь). Опыт использования платформы мобильной разработки Google Firebase. Отчет представлен в штаб-квартире Singularis Lab, Волгоград, Россия.
- Крыжановский, А. (2018, май).Опыт использования Octopus. Отчет, представленный на второй IT Meetup волгоградской общиной iT-34, Волгоград, Россия.
- Никляев И.Ю. (2018, апрель). Опыт использования Elasticsearch. Отчет представлен на первом IT Meetup волгоградским сообществом iT-34, Волгоград, Россия.
- Осинцев, Д.С. (2018, апрель). Angular и Redux. Отчет представлен на первом IT Meetup волгоградским сообществом iT-34, Волгоград, Россия.
- Пыхтин П.С. (2016, октябрь).Переписывание без рефакторинга. Отчет представлен на выставке CEE-SECR’2016, Москва, Россия.
- Шаповалов В.В. (2019, июль). Опыт использования MobX Report, представленный в штаб-квартире Singularis Lab, Волгоград, Россия.
- Крыжановский А.И. (2019, июль). Опыт использования библиотеки Polly Отчет представлен в штаб-квартире Singularis Lab, Волгоград, Россия.
Курс разработки приложений .NET
Данный курс создан инженерами нашей компании для студентов и практикантов.Ее читали весной 2015 года как пилотные лекции.
- Пыхтин П.С. (2015, май). Обзор кода. (ppsx pdf) Отчет, представленный на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Крыжановский А.И. (2015, май). Проблемы в .NET. (ppsx pdf) Отчет, представленный на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Шаповалов, В.В. (2015, май). Веб-службы WCF. Отчет представлен на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Крыжановский А.И. (2015, апрель). Параллелизм в .NET (ppsx pdf) Отчет, представленный на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Шаповалов, В.В. (2015, апрель). N-уровневая архитектура инверсии зависимостей. Отчет представлен на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Пыхтин, П.С. (2015, апрель). ORM.NHibernate. Отчет представлен на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Пыхтин, П.С. (2015, апрель). ASP.Net MVC.Report представлен на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Усачева, Н.К. (2015, апрель). ТВЕРДЫЕ принципы. Отчет представлен на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Усачева, Н.К. (2015, март). Знакомство с .NET_platform. Отчет представлен на открытой лекции в лаборатории Singularis, Волгоград, Россия.
- Крыжановский А.И., Пыхтин П.С. (2015, март). Вводная лекция.Отчет представлен на открытой лекции в лаборатории Singularis, Волгоград, Россия.
Основы программирования на сопроцессоре Intel®Xeon Phi
TM , курс
Данный курс был прочитан инженерами нашей компании как трек «Основы программирования на сопроцессоре Intel®Xeon Phi TM » на Summer Supercomputing Academy 2016 с 27 июня по 2 июля.
- Гетманский, В. В. (2016, июнь). Оптимизация для трехмерной конечной разности (3DFD).Отчет представлен на Летней суперкомпьютерной академии 2016, Москва, Россия.
- Сергеев, Е. (2016, июнь). Повышение производительности задачи N-Body. Отчет представлен на Летней суперкомпьютерной академии 2016, Москва, Россия.
- Сергеев, Е. (2016, июнь). Примеры OpenMP. Отчет представлен на Летней суперкомпьютерной академии 2016, Москва, Россия.
- Гетманский, В.В. (2016, июнь). Оптимизация низкоуровневого кода для Intel®Xeon Phi TM . Отчет представлен на Летней суперкомпьютерной академии 2016, Москва, Россия.
- Гетманский, В.В. (2016, июнь). Введение в MPI. Отчет представлен на Летней суперкомпьютерной академии 2016, Москва, Россия.
- Сергеев Е.С., Гетманский В.В. (2016, июнь). Программный сопроцессор Intel®Xeon Phi TM : от простого к сложному TM . Отчет представлен на Летней суперкомпьютерной академии 2016, Москва, Россия.
- Сергеев, Е. (2016, июнь). Обзор архитектуры. Отчет представлен на Летней суперкомпьютерной академии 2016, Москва, Россия.
Программный сопроцессор Intel®Xeon Phi ™: от простого к сложному, курс
Данный курс был прочитан инженерами нашей компании на Международной конференции IXPUG / RU 2016 9-10 июня.
- Катаев, А.В. (2016, июнь). Сверточная нейронная сеть Исходный код. Доклад представлен на Международной конференции IXPUG / RU, Санкт-Петербург, Россия.
- Гетманский, В.В. (2016, июнь). Трехмерный код MPI с конечной разностью (3DFD).Доклад представлен на Международной конференции IXPUG / RU, Санкт-Петербург, Россия.
- Гетманский, В.В. (2016, июнь). Оптимизация для трехмерной конечной разности (3DFD). Доклад представлен на Международной конференции IXPUG / RU, Санкт-Петербург, Россия.
- Сергеев, Е. (2016, июнь). Улучшение выполнения задачи N-Body. Доклад представлен на Международной конференции IXPUG / RU, Санкт-Петербург, Россия.
- Сергеев, Е. (2015, июнь).Программирование сопроцессора Intel® Xeon Phi ™: от простого к сложному. Доклад представлен на Международной конференции IXPUG / RU 2016, Санкт-Петербург, Россия.
Параллельное программирование с использованием курса Intel Tools
Данный курс был прочитан инженерами нашей компании как трек «Параллельное программирование с использованием Intel Tools» на Summer Supercomputing Academy 2015 23-26 июня.
- Гетманский В.В., Шаповалов О.В., Сергеев Е.С., Крыжановский Д.И. (2015, июнь). Векторизация кода для Intel®Xeon Phi TM с использованием встроенных функций. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Гетманский В.В., Шаповалов О.В., Сергеев Е.С., Крыжановский Д.И. (2015, июнь). Профилирование энергопотребления высокопроизводительных приложений MPI. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Гетманский В. В., Шаповалов О.В., Сергеев Е.С., Крыжановский Д. (2015, июнь). Оптимизация сопоставления рангов и узлов для программ MPI в больших кластерах. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Шаповалов О.В., Сергеев Е.С., Гетманский В.В., Крыжановский Д.И. (2015, июнь). Применение параллельных вычислений в контексте конечно-элементного анализа задач геомагнитного зондирования. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Шаповалов О.В., Сергеев Е.С., Гетманский В.В., Крыжановский Д.И. (2015, июнь). Задача распараллеливания при разработке ядра геометрического моделирования. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Шаповалов О.В., Сергеев Е.С., Гетманский В.В., Крыжановский Д.И. (2015, июнь). Применение гибридного подхода OpenMP / GPGPU для ускорения вычисления поля скоростей 3D сейсмических данных. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Шаповалов, О.В., Сергеев Е.С., Гетманский В.В., Крыжановский Д.И. (2015, июнь). Алгоритм Штрассена. Расширенная оптимизация для Intel®Xeon Phi TM . Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Сергеев Е.С., Шаповалов О.В., Гетманский В.В., Крыжановский Д.И. (2015, июнь). Сопроцессор Intel®Xeon Phi TM . Лабораторные инструкции. Версия C ++. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Сергеев, Э.С., Шаповалов О.В., Гетманский В.В., Крыжановский Д.И. (2015, июнь). Intel®MPI на Intel®Xeon Phi TM — отчет по лабораторным инструкциям, представленный на Летней суперкомпьютерной академии 2015 г., Москва, Россия.
- Сергеев Е.С., Шаповалов О.В., Гетманский В.В., Крыжановский Д.И. (2015, июнь). Распределение вычислительной нагрузки в гетерогенных компьютерных сетях. Отчет представлен на Летней суперкомпьютерной академии 2015, Москва, Россия.
- Шаповалов, О. В., Гетманский В.В., Крыжановский Д.И., Сергеев Е.С. (2015, март). Алгоритм Штрассена. Расширенная оптимизация для Intel®Xeon Phi TM . Отчет представлен на РСТ’2015, Екатеринбург, Россия.
- Гетманский В.В., Чалышев В.С., Крыжановский Д.И., Лексиков Е.И. (2015, март). Оптимизация неравномерного отображения взаимодействующих MPI-процессов на вычислительной архитектуре. Работа представлена на РСТ’2015, Екатеринбург, Россия.
- Сергеев Е.С., Шаповалов О.В., Чалышев В.С., Крыжановский Д.И. (2015, март) Реализация алгоритма Штрассена для Intel®Xeon Phi TM . Работа представлена на РСТ’2015, Екатеринбург, Россия.
Список инструментов искусственного интеллекта, которые вы можете использовать сегодня — для личного пользования (1/3) | by Liam Hänel
🏠 Personal / In-Home
Ems — поможет вам найти идеальное место для жизни
Bridge Kitchen — кухонный помощник для пошаговых инструкций на кухне
UnifyID — подтвердите свою личность по тому, как вы ходите, печатаете и сидите
👔 Work
Carly — помогает управлять телефонными звонками
ETCH — помогает управлять своими сетями в базе данных с возможностью поиска
Findo — ваш умный помощник по поиску в электронной почте, файлах и личном облаке
Leap — рекомендует компаниям подавать заявки на основе ваших навыков
Lomi — определяет потенциальных клиентов
Мозаика — помогает вам лучше писать резюме
Newton — помогает найти работу мечты
Notion — помогает с перегрузкой электронной почты, организацией и общением
Robby — лучший и умный календарь
Stella — сканирует вакансии и помогает управлять процессом подачи заявки
Woo — помогает вам принять более разумное решение для вашей карьеры, анонимно
Алоэ — заменяет ваши записные книжки, дневники и материалы для подготовки к встрече
Wade & Wendy — ваш консультант по вопросам карьеры
Подтолкнуть. ai — виджет браузера, который поможет вам узнать о людях, с которыми вы общаетесь по электронной почте
Scribbl — запись, расшифровка и поиск текста стенограммы на ваших удаленных собраниях
👯 Социальные сети
Brightcrowd — помогает вам находить важные профессиональные связи
Capsule. ai — вспомните хорошие времена в жизни
Dating.ai — приложение для знакомств с поиском по лицу
ETCH — поможет вам управлять своими сетями в базе данных с возможностью поиска
Eezy — позвольте Eezy позаботиться о вашем вечере, чтобы вы могли позаботьтесь о развлечениях
Hashley — ироничный генератор хештегов и комментариев для ваших фотографий
Hotness.ai — расскажет, насколько вы сексуальны
Nudge.ai — полезные идеи и интеллект в отношениях
Rey — познакомит вас с людьми, с которыми вам действительно стоит познакомиться (работа и отдых)
🎓 Education
Thirdleap — помогает детям изучать математику
Woogie — диалоговый робот с искусственным интеллектом, который делает обучение и открытие для детей интересным
🏥 Здравоохранение / медицина
Abi — медицинский помощник, который связывает людей с врачами для быстрой консультации
Ада — может помочь, если вы плохо себя чувствуете
Airi — личный тренер по здоровью
Alz. ai — помогает заботиться о близких с болезнью Альцгеймера
Amélie — чат-бот для психического здоровья
Bitesnap — распознавание еды по фотографиям еды для подсчета калорий
doc.ai — упрощает понимание результатов лабораторных исследований
Gyan — помогает перейти от симптомов к вероятным состояниям
Joy — помогает отслеживать и улучшать свое психическое здоровье
Kiwi — помогает сократить количество курения и бросить курить
Tess by X2AI — терапевт в кармане
Сон.ai — диагностика храпа и скрежета зубов
🕵️ Агенты — личные
Amazon Echo / Alexa — повседневный персональный помощник для дома
Apple Siri — повседневный персональный помощник на iPhone и Mac
Cortana — повседневный персональный помощник на ПК и устройствах Windows
Facebook M — конкуренты Siri, Now и Cortana
Fin — мощный персональный помощник
Focus — помогает сосредоточиться, выполнять задачи и расставлять приоритеты в течение дня
Gatebox — голографический помощник аниме в кофемашине для приготовления эспрессо
Google Assistant — персональный помощник на каждый день
Hound — персональный помощник на каждый день
Ling — похож на Amazon Echo
Mycroft — первый в мире открытый исходный код голосовой помощник
Remi — как Siri с интерфейсом
Разговорный — виртуальный помощник с интерфейсом
Viv — как Siri, но в 10 раз лучше
📅 Агенты — профессиональный
Клара — помощник по планированию встреч
Julie Desk — помощник по планированию встреч (нацелено на C-Suite )
Kono — помощник по планированию встреч
Mimetic — помощник по планированию встреч
My Ally — управляет планированием встреч и управляет календарем
SkipFlag — автоматически обнаруживает и организует вашу работу
Vesper — виртуальный помощник, предназначенный для -Комната
х. ai — помощник по планированию встреч
Zoom.ai — личный помощник, который поможет вам в работе
🙍 Агент — Развлечение
Fembot — ваша подруга AI
Lifos — динамические независимые объекты, которые взаимодействуют с сетью и социальными сетями
Replika — ваш друг AI, которого вы воспитываете с помощью текстовых разговоров
📝 Агенты — чат-бот
Брин — помогает вам принимать более разумные бизнес-решения
Chatfuel — создайте чат-бота Facebook за 7 минут
09 905 Luka
— чат-бот для людей и других чат-ботов
Lyra — монитор анализирует выбросы углерода
myWave — чат-бот, который поможет вам в повседневной жизни
🗞️ Развлечения / Новости
Jottr — приложение для контента и новостей, которое узнает, что вам нравится, а что нет
News360 — узнает, что вам нравится, и находит истории, которые вам нравятся понравится
✈️ Travel
Ada — чат-бот, который помогает вам ориентироваться и принимать решения
Emma — автоматически вычисляет и добавляет время в пути на встречу
ETA — помогает вам управлять маршрутами и встречами
HelloGbye — бронируйте сложные поездки с помощью простой речи
Mezi — помогает с бронированием рейсов, отелей, ресторанов и т. д.
Nexar — приложение для видеорегистратора, которое помогает вам безопаснее управлять автомобилем
Ready — синоптик и прогнозирование времени в пути
Пространственный — раскрывает социальный слой городов
🚗 Автомобиль
Vinli — превращает любую машину в умную
🏃 Фитнес
Mara — более умное приложение для бега
🎵 Музыка
Aiva — сочиняет эмоциональный саундтрек
Pandora — находит музыку, которая может вам понравиться
🏛️ Страховка / L egal
Docubot — может проконсультировать вас по юридическим вопросам
Driveway — отслеживает и вознаграждает безопасных водителей
🛒 Покупки
Butler — Заказ еды с голосом (Alexa / Google Home)
1 — Entrupy
помогает определить подлинность дизайнерских продуктов высокого класса
Fify — помогает делать покупки для одежды
GoFind — помогает найти одежду в Интернете по фотографиям
Mode. ai — поможет вам найти одежду в Интернете
💰 Финансы
Abe — быстрые ответы о ваших финансах
Энди — личный налоговый бухгалтер
Ara — поможет вам составить бюджет
Bond — поможет вы достигаете своих финансовых целей
Mylo — округляет ваши повседневные покупки и инвестирует мелочь
Olivia — помогает вам управлять своими финансами
Отзывчивый — активное управление портфелем институционального уровня
Roger — помогает оплачивать счета легко
Кошелек — AI для повседневных финансовых решений
Xoe.ai — чат-бот для кредитования AI
📱 Социальные сети / Управление веб-сайтами
Firedrop — веб-сайты создаются автоматически, просто добавляйте контент и публикуйте
Hashley — ироничный генератор хэштегов и комментариев для ваших фотографий
Millions. ai — бросить контент на нем, и он создает вам веб-сайт
Oly — выбирает и помогает вам публиковать контент в социальных сетях
Подпись — создавать элегантные целевые страницы с использованием вашего контента в социальных сетях
TheGrid — создание веб-сайтов автоматически просто добавив контент
Zen.ai — персональные рекомендации для вашего магазина Shopify
💡 IoT / IIoT
Aerial — домашний датчик активности, движения и идентификации
Bridge.ai — платформа умного дома, ориентированная на речь и звук
Cubic — one место для подключения устройств умного дома
Grojo — контроллер и система мониторинга комнаты для выращивания
Дом — автономные домашние операции с подключенными устройствами
Hello — помогает контролировать и улучшать ваш сон
Джош — голосовое управление всем домом
Mycroft — первый в мире голосовой помощник с открытым исходным кодом
Nanit — радионяня, измеряющая взаимодействие во сне и с опекуном
Nest — ряд домашних устройств, таких как термостат, безопасность и сигнализация
⌚ Носимые устройства
Eli — помогает выучить новый язык из разговоров в течение дня
Удар. ai — носимый для боевых искусств, помогающий анализировать удары ногами и драки
🌐 Язык / перевод
Liv — расшифровка разговоров на английском и хинди
Microsoft Translator — языковой переводчик на базе нейронных сетей
Watson.ai — юридический, академический и финансовый перевод
🤖 Роботы
Dispatch — доставка роботом
Jibo — дружественный интерактивный робот для дома
Roboy — робот-гуманоид, способный быть не хуже человека
Rokid — набор домашних роботов и помощников
Spoon — робот (я не мог понять его назначение, но звучало круто!)
UBTECH — забавные гуманоидные роботы для дома (популярные Alpha и Cruz)
💌 Полезное + забавное + случайное
Botler — процесс иммиграции упростился с обходом
CaptionBot — Microsoft описывает любую фотографию
Краудфандинг. ai — краудфандинговая платформа для проектов ИИ
Лифт — помогает найти и купить каннабис (с рекомендациями)
Fieldguide — универсальный полевой справочник, который предлагает возможные совпадения
Frankenstain.ai — это совместный эксперимент по повествованию с использованием ИИ, машинное обучение, робототехника, биоинженерия и Интернет вещей
# Laugh — смех, визуализированный в цифровом формате, который может быть отправлен в космос
IntelligentX Brewing Co. — пиво, сваренное с помощью искусственного интеллекта
Readster — рекомендации книги от AI
Spark — заказ каннабиса из текстовых сообщений
Subutai — одноранговые социальные облачные вычисления
Token — поможет вам отправить идеальный подарок
Wixi — поможет вам исправить Проблемы с Wi-Fi
📚 Исследование
Apollo — быстро разбивает статьи и PDF-файлы на читаемые точки
Хорек. ai — помогает вам исследовать, обобщая статьи и возможности поиска
Iris — помогает вам исследовать и визуализировать концепции в исследовательских статьях
🎫 События, конференции и сообщества
The AI Conference — ежегодное мероприятие, в котором ведущий AI исследователи и ведущие специалисты отрасли встречаются и сотрудничают
Конференция по прикладному искусственному интеллекту — Венчурная фирма Bootstrap Labs
Events.ai — универсальный магазин для мероприятий и конференций AI / ML / DL
Nucl.ai — игровая конференция и курсы по ИИ
oh.hai.ai — игра с сильным именем!
The AI Forum — конференция AI в Монреале
Amsterdam — Сообщество прикладного ИИ и мероприятия
Бангалор — Сообщество прикладного ИИ и мероприятия
Берлин — Сообщество прикладного ИИ и мероприятия
Бухарест — Сообщество прикладного ИИ и события
Будапешт — прикладное сообщество ИИ и события
Город. ai — сообщества и события прикладного ИИ
Гамбург — сообщество и события прикладного ИИ
Гонконг — сообщество и события прикладного ИИ
Лондон — сообщество и события прикладного ИИ
Мадрид — сообщество и события прикладного ИИ
Милан — Сообщество и события прикладного ИИ
New York.ai — Сообщество прикладного ИИ и мероприятия
Краков — Сообщество прикладного ИИ и мероприятия
Осло — Сообщество прикладного ИИ и мероприятия
Таллинн — Сообщество прикладного ИИ и события
Тирана — Сообщество прикладного ИИ и события
Сиэтл — Сообщество прикладного ИИ и события
Сингапур — Сообщество прикладного ИИ и события
София — Сообщество прикладного ИИ и события
Стокгольм — Сообщество прикладного ИИ и события
Валлетта — Сообщество прикладного ИИ и даже ts
📰 Новости и блоги
AI Weekly — еженедельная подборка новостей и ресурсов по AI и ML
Примерно правильно — Блог AI и машинного обучения
Axiomzen — Информационный бюллетень AI доставляется каждые 2 недели
Что касается. ai — комментаторы AI
Fast.ai — посвящены тому, чтобы сделать глубокое обучение доступным для всех
Machinelearning.ai — специальные новости и обновления для машинного обучения и искусственного интеллекта
Machine Learning Weekly — подготовленный вручную информационный бюллетень ML и DL
PRAI — f0rum для AI, ML и робототехники
Storyteller — появление новых повествований в виде интеллектуальных алгоритмов
Iterate.ai (Исследование) — обнаруживайте стартапы, затем оценивайте и привлекайте их
Investors.ai (Финансы) — простой инструмент, который поможет вам принимать разумные решения по акциям
Aging.AI (Здоровье) — прогнозирует ваш возраст и пол по анализу крови
Neurons. a i (Новости и блоги) — профессиональная сеть для обсуждения AI и ML
Moon Wearables (Wearables) — носимые для контроля вашего тела и здоровья
Jarvis (Personal) — новинка персональный помощник для мобильных
A16Z 905 AI Playbook (AI Playbook ) — Andreessen Horowitz возьмет на себя состояние AI
Wealthfront (Финансы) — поможет вам спланировать финансы, сэкономить деньги и куда вложить
Pitchbot.vc (Разговорный) — узнайте, готовы вы инвестор или нет, в разговоре
Часть 1 — Инструменты ИИ для Личное использование
Часть 2 — Инструменты ИИ для использования в бизнесе — Корпоративный интеллект
Часть 2 — Инструменты ИИ для использования в бизнесе (продолжение) — Функции предприятия
Часть 3 — Инструменты ИИ для Отраслевых предприятий
Обратите внимание: я больше не принимаю запросы на добавление в эти списки
Интервью с Kaggle Grandmaster, старшим инженером по резюме в Lyft: Dr.
Игловиков Владимир Иванович
@ init_27
Саньям Бутани
👨💻 h3Oai
🎙 CTDS.Show & CTDS.News
👨🎓 fast.ai
🎲 Kaggle 3x Expert
Часть 24 серии, в которой я беру интервью у своих героев.
Сегодня для меня большая честь поговорить с еще одним великим Кагглером из сообщества ODS: (kaggle: iglovikov) Гроссмейстер соревнований (97 место в рейтинге), эксперт по обсуждениям (30 место): доктор Владимир Иванович Игловиков
Владимир В настоящее время работает старшим инженером по компьютерному зрению на уровне 5 в подразделении самостоятельного вождения Lyft Inc.
До Lyft Владимир работал старшим специалистом по анализу данных в TrueAccord. Он имеет образование в области физики и имеет степень доктора философии. по физике Калифорнийского университета в Дэвисе.
О серии:
Совсем недавно я начал добиваться определенных успехов в своем путешествии по самообучению по машинному обучению. Но, честно говоря, это было бы невозможно без замечательного онлайн-сообщества и замечательных людей, которые мне помогли.
В этой серии сообщений в блоге я разговариваю с людьми, которые действительно вдохновили меня и на которых я смотрю как на образцы для подражания.
Мотивация для этого заключается в том, что вы можете увидеть некоторые закономерности и, надеюсь, вы сможете учиться у замечательных людей, у которых мне посчастливилось учиться.
Саньям Бутани: Привет, Грандмастер! Спасибо, что нашли время сделать это.
Игловиков Владимир Иванович: Спасибо за вопросы. Это удовольствие. Я постараюсь быть максимально подробным, даже если меньше читателей доживут до конца. 🙂
Если бы я прочитал подобный текст четыре года назад в начале моей карьеры в области Data Science, я считаю, что моя жизнь была бы немного проще.Так что это будет стоить того, чтобы писать, если это поможет хотя бы одному человеку.
Саньям: Вы защитили докторскую диссертацию. и имеет степень магистра физики. Как машинное обучение появилось на свет? Не могли бы вы рассказать читателям о своем пути к машинному обучению?
Игловиков Владимир Иванович: Около четырех лет назад я заканчивал кандидатскую диссертацию. программа в Калифорнийском университете в Дэвисе. До выпуска оставалось несколько месяцев. Пришло время подумать о своих следующих шагах. Все мои коллеги-выпускники либо собирались на:
- постдокторантуры.ИЛИ
- должности инженера-программиста.
Позиции постдока не привлекали. Они предлагают большую компенсацию, но работа такая же, как у аспирантов, с ограниченными преподавательскими обязанностями или без них. Я предпочитаю максимизировать количество знаний, полученных за единицу времени. На практике это также означает, что я максимизирую количество новых ошибок, которые делаю каждый день. С этой точки зрения делать почти то же самое, что и я много лет, не выглядело привлекательным.
Более того, количество постдоков ограничено, а количество претендентов велико.Маловероятно, что вас примут на работу, которая вам больше всего нравится.
Позиции Software Engineering меня интересовали еще меньше. В университете я занимался теоретической физикой. Каждый день на работе меня окружали дискуссии о субатомных частицах, космологических эффектах, слиянии пространства и времени, нанотехнологиях и других захватывающих, почти научно-фантастических темах. Эта среда заставила меня думать, что мы живем в будущем, и заставила мое сердце биться быстрее. Исследования, которые я проводил в течение многих лет, были связаны со сверхпроводимостью при комнатной температуре.Когда / если это произойдет в нашей жизни, я почти уверен, что это изменит человечество, каким мы его знаем. Все это выглядело круто и очень увлекательно.
Инженеры-программисты, с которыми я разговаривал, работали над некоторыми сложными проектами, которые меня не волновали. Дискуссии о бэкэнде, фронтэнде и прочем не заставляли струны моей души петь. Мысли о том, чтобы провести следующие несколько лет в этой сфере, очень расстроили меня.
До выпуска оставалось несколько месяцев, и мне нужно было выбрать одно из направлений, хотя ни одно из них не выглядело хорошо.
К счастью, один из моих друзей, который закончил наш факультет годом ранее, зашел в Калифорнийский университет Дэвиса. Мы выпили немного пива, и он рассказал мне о своей профессии в то время. Он работал специалистом по анализу данных в небольшом стартапе в Сан-Франциско. То, что он сделал, звучало интересно. Он также упомянул свою компенсацию. И это было в несколько раз больше, чем я зарабатывал, будучи аспирантом. Деньги — не моя движущая сила, но их отсутствие мешало мне заниматься многими видами деятельности, которыми я хотел заниматься в своей жизни.Таким образом, финансовую составляющую этой возможности было трудно игнорировать.
Я пришел домой и решил, что Data Science стоит попробовать. Проблема заключалась в том, что я понятия не имел, что такое Data Science, какие проблемы она решает и, что более важно, как получить работу. Интернет не помог. Время шло. Я решил пройти онлайн-курс по науке о данных, и я думаю, что это была наноразмерная степень от Джона Хопкинса.
В одном из классов авторы упомянули Kaggle. Мне нужно было попрактиковаться в том, что я узнал о машинном обучении.Каггл выглядел как хорошая игровая площадка. Я изучил руководство по прогнозированию смертности на Титанике и продолжил совершенствовать свои навыки в новых соревнованиях.
Я читал блоги, книги, статьи, посещал онлайн-уроки и искал любой другой материал, который мог бы расширить мои знания ML. Мои позиции в таблице лидеров в первых нескольких соревнованиях были низкими, но постепенно и последовательно результаты начали улучшаться. Каждый раз, когда я заканчивал все ближе к вершине, моя интуиция ML развивалась, и количество сильных конвейеров в моем частном репозитории GitHub росло.В моем опыте было много пробелов, но через несколько месяцев в Kaggle я смог взглянуть на большинство проблем машинного обучения и дать хорошо обоснованное предположение о том, какие функции могут работать и как будут вести себя различные алгоритмы.
В то же время я пытался найти работу, и это было непросто. У меня не было отраслевого опыта, я не знал, как писать резюме, у меня не было сетей, не связанных с физикой.
Я написал лучшее резюме, которое мог, и подал заявку на каждую должность, связанную с наукой о данных.Я отправлял их через веб-сайты компании, и все мы знаем, что приложения в основном уходят в черную дыру.
Самая большая проблема, вероятно, заключалась не в отсутствии технических навыков, хотя список вещей, которые мне нужно было изучить, был очень длинным, а в моем мировоззрении. После стольких лет в академической среде вы бессознательно полагаете, что все люди в мире думают так же, как ваши коллеги из университета. Это очень далеко от истины. Я смог получить несколько собеседований, но с треском провалился, некоторые из-за ограниченности моих технических знаний, а некоторые из-за «культурного соответствия».«Интервьюеры чувствовали себя инопланетянами, и, вероятно, они чувствовали то же самое в отношении меня.
В конце августа 2015 года я переехал в Окленд. У моего друга есть там дом, и он согласился принять меня на пару месяцев, пока я искал работу. Мои кредитные карты почти закончились. Моя виза истекала. Если я не получу предложения через два месяца, меня депортируют. его ситуация очень меня мотивировала. За месяц поиска работы и активного изучения вариантов использования, основ информатики, статистики, SQL и других вещей, не связанных с машинным обучением, я смог получить предложение для компании под названием Bidgely, расположенной в Саннивейле.
Bidgely работает в области Интернета вещей, разрабатывая технологию под названием Energy Disaggregation. И продукт, и лежащая в его основе технология выглядели интересно.
Мне не понравилось расположение. Когда я приехал в Саннивейл, я ожидал безостановочного движения, динамики, самостоятельного полета чего-то в небе, встреч, конференций, когда люди обсуждают свои идеи для стартапов. Я хотел увидеть мечтателей; те, кто был готов рискнуть и потерпеть неудачу в случае необходимости. По сути, я хотел увидеть образ Кремниевой долины, который сложился в моей голове из телешоу и Интернета.На самом деле все было иначе. Саннивейл похож на город после зомби-апокалипсиса. Пустые улицы, пустые рестораны, все пусто. Другой проблемой того периода было то, что Bidgely использовала MatLab в качестве основного инструмента Data Science, и это сильно оттолкнуло.
Я накапливал знания на работе, но этого было недостаточно. Днем я делал то, что требовалось по работе. По вечерам я был занят соревнованиями Kaggle и дополнял свои знания всеми источниками, которые мог найти.
Я многому научился у команды и очень благодарен за время, которое я провел там. Но восемь месяцев спустя у меня появилась возможность объединить все полученные знания и начать работу в области Data Science в стартапе под названием TrueAccord. На той должности я использовал машинное обучение для создания рекомендательных систем, и это был не MatLab, а благословенный богом питон. Офис находился в Сан-Франциско, что было большим шагом вперед. Есть много вещей, которые мне могут не нравиться в Сан-Франциско, но стартап-драйв уже здесь.Не в том виде, который я наблюдал в телешоу, но все же.
Это сочетание знаний, полученных в результате моей работы и соревнований, было действительно приятным. Машинное обучение, которым вы занимаетесь на своей повседневной работе, не поможет вам в соревнованиях, а соревнования не улучшат вашу работу в отрасли. Они решают разные проблемы, что делает их сочетание действительно мощным.
Зимой 2017 года в Kaggle появилось множество задач компьютерного зрения. Компьютерное зрение — это увлекательно. Это соответствовало навыку, которым я хотел овладеть.
Еще одна проблема, с которой я столкнулся, заключалась в том, что мой процесс обучения был неэффективным. У меня не было наставника, который мог бы направить меня на пути к машинному обучению. Мои коллеги не знали и не хотели изучать ML. И у меня не было друзей, с которыми я мог бы задавать сложные вопросы по машинному обучению, которые меня беспокоят, или просто обсуждать последние статьи.
Я быстро прогрессировал, но борьба с проблемами в одиночку казалась не такой эффективной, как мне хотелось бы, чтобы мое обучение было.
Потом произошло чудо.Меня пригласили стать членом меритократического русскоязычного сообщества Open Data Science ods.ai. Наконец, у меня появился доступ к сообществу экспертов по машинному обучению из индустрии, академических кругов и сообщества Kaggle. Это был следующий уровень моего пути к машинному обучению. Там я познакомился с людьми, которые стали моими товарищами по команде на соревнованиях, в написании научных статей и в проектах с открытым исходным кодом.
В последующие месяцы я занимал призовые места по адресу:
Саньям Бутани: Что заставило вас взяться за дело и продолжить соревноваться, чтобы в конечном итоге стать гроссмейстером?
Владимир И.Игловиков: Стать мастером Kaggle не так уж и сложно. Я твердо уверен, что каждый достойный инженер / исследователь машинного обучения может и должен иметь возможность получить одну золотую и две серебряные модели в соревнованиях Kaggle. И примеров тому множество. Это займет несколько вечеров и выходных, но если у вас есть солидный опыт в области машинного обучения на основе самообразования, академического или промышленного опыта, это не должно быть так сложно.
Грандмастер — это другая история. В Kaggle зарегистрировано более двух миллионов человек, но только 150 из них являются гроссмейстерами.Kaggle — вторая неоплачиваемая работа на полную ставку. Вам нужна действительно веская причина, чтобы тратить на это свое свободное время месяцами или даже годами. Есть и другие, гораздо более важные занятия в жизни, такие как путешествия, спорт, общественная жизнь и т. Д. Наверное, основная причина моего перехода на уровень гроссмейстера состоит в том, что мне нравилось работать над всеми проблемами, и у меня это получалось хорошо 🙂
Прямо сейчас у меня есть много интересных и сложных проблем, которые можно решить с помощью глубокого обучения на работе. Это делает меня менее увлеченным соревнованиями, хотя время от времени я делаю несколько работ на Kaggle.
При этом жизнь не ограничивается работой, и помимо путешествий, занятий спортом и общественной деятельности в свободное время я работаю над проектами с открытым кодом.
Здесь я хотел бы отметить библиотеку дополнений изображений, которую мы с мастерами Kaggle Александр Буслаев, Алексей Паринов, Евгений Хведченя и я разрабатываем в свободное время.
Еще одно занятие, которое я мог бы посвятить соревнованиям Kaggle, — это написание препринтов, статей и сообщений в блогах.Около года назад, просто ради забавы, мы с Алексеем Швцом опубликовали препринт под названием:
«TernausNet: U-Net с кодировщиком VGG11, предварительно обученный в ImageNet для сегментации изображений». В этой работе не было ничего экстраординарного, только кодировщик UNet + VGG11, который я использовал в нашем выигрышном решении для Carvana Challenge. Модель — это просто другая вариация UNet, и я бы даже не сказал, что это самая удачная вариация. Прямо сейчас, всего год спустя, предварительно обученный кодировщик уже является стандартом, и люди используют гораздо более интересные варианты с гиперколонкой, модулями сжатия и возбуждения и другими приятными трюками.
Как я уже сказал, мы делали это в основном для развлечения, но когда я смотрю свой профиль в Google Scholar, это моя самая цитируемая работа. Это превосходит то, что я делал в академических кругах много лет. Когда я представлял плакаты для других работ на CVPR 2018, люди подходили ко мне и благодарили за TernausNet, за то, что я поделился кодом, и рассказывали, как это им помогло. Я знал, что огромное количество знаний гниет на форумах Kaggle, не имея возможности выйти во внешний мир и быть полезными для практиков ML.История с TernausNet заставила меня лучше почувствовать масштаб проблемы.
В прошлом году я и мои сотрудники потратили много времени на публикацию статей, основанных на конкурсах. Это помогло поделиться нашими знаниями.
Отзывы сообщества были положительными, мы получили несколько ссылок на наши публикации, и я планирую еще больше увеличить свою писательскую активность в этом году.
Я очень надеюсь, что все больше и больше Kagglers будут вкладывать деньги в написание. Это могут быть сообщения в блогах, статьи или что-то еще.Лучше передавать больше информации между людьми. Написание сообщения в блоге или технического отчета поможет вам структурировать мысли о проблемах, это поможет другим людям с теплотой начать решать аналогичные проблемы и, скорее всего, поможет вам с карьерными возможностями. Это означает, что вы будете работать над более интересными задачами и в то же время получать больше денег.
Саньям Бутани: Сегодня вы работаете инженером по компьютерному зрению в Lyft.
Считаете ли вы, что соревнования kaggle связаны с вашей работой? Как ты находишь время болтать?
Владимир И.Игловиков: Когда я проходил собеседование в Lyft, мне нужна была должность, которая включала бы применение Deep Learning в задачах компьютерного зрения. В университете я специализировался на теоретической физике, которая, по моему предвзятому мнению, превосходит информатику. Но представители отдела кадров придерживались противоположной точки зрения. В моем резюме не было публикаций, связанных с компьютерным зрением, и до Lyft моя работа была посвящена традиционному машинному обучению, а не данным изображений. Единственное, что было связано с тем, чем я хотел заниматься, — это лучшие результаты в соревнованиях по компьютерному зрению.
Обычно HR пропускает части вашего резюме о результатах конкурентного машинного обучения и ищет набор стандартных ключевых слов для фильтрации резюме. На этот раз произошло чудо, и результаты Kaggle привлекли внимание. Это помогло мне попасть в конвейер собеседований. Имея опыт разработки и развертывания моделей машинного обучения в моих предыдущих компаниях в сочетании со знаниями, полученными в Kaggle, собеседования были относительно простыми. Таким образом, опыт и достижения Kaggle помогли мне найти работу, соответствующую тому, чем я хотел заниматься.
В то же время не очевидно, что соревнования Kaggle могут быть полезны для работы. Более того, я бы не сказал, что все конкурсы Kaggle полезны для каждого проекта, с которым вы сталкиваетесь на работе. Знания, которые вы получаете в Kaggle, — могущественный зверь. Это приносит пользу, только если вы знаете, как его приручить.
Я часто использую знания, полученные на соревнованиях Kaggle, в работе:
- Если перед вами возникла проблема, в некотором смысле похожая на существующее или прошедшее соревнование Kaggle.
- Если вы можете анализировать знания, которые генерируются Kaggle на форумах и в ядрах.
- Если вы можете реализовать и проверить, как идеи из Kaggle применимы к проблеме, с которой вы столкнулись, быстрым и хакерским способом.
- Если вы можете провести рефакторинг и переписать свои хакерские конвейеры в производственном коде качества.
Если это так, Kaggle становится бесценным.
Не все задачи можно представить в формате соревнований Kaggle.Но в области беспилотного вождения их много. В этом смысле мне повезло. Это касается пунктов 1.
Я участвовал в более чем 70 различных соревнованиях на разных платформах. Не все мои попытки были успешными, но каждая из них улучшала способ поиска информации, включая форумы и ядра Kaggle. И это адрес 2.
Невозможно стать Мастером Kaggle и не научиться заново решать эту неизвестную проблему путем быстрого взлома с очень большим количеством итераций в единицу времени.Этот навык в мире соревновательного обучения — вопрос выживания 🙂 Это закрывает 3.
4. Это отдельная история.
Одна из причин, по которой мне было трудно перейти из академии в промышленность, была связана с качеством кода, который я писал в аспирантуре.
С точки зрения обучения написанию кода производственного качества Kaggle почти бесполезен. Я не вижу, как получить такой опыт, кроме как в компании с высокой культурой программирования и сильными инженерами-программистами, которые ее применяют.
Саньям Бутани: Вы сыграли немало соревнований. Какой из них был твоим любимым?
Игловиков Владимир Иванович: Есть два конкурса, которые хотелось бы отметить. Один мой любимый, а второй самый интересный.
Мне больше всего нравится функция обнаружения спутниковых изображений Dstl.
- Это было сложно с инженерной точки зрения. На этапах предварительной и постобработки было много нетривиальных преобразований данных.
- Это было интересно с научной точки зрения. Изображения RGB хорошо изучены, и я бы сказал, скучно, но RGBD, который содержит каналы с более высокой длиной волны, намного интереснее.
- Проблема не сводилась к модификации fit_predict. Некоторые классы, такие как вода, лучше идентифицировать неконтролируемым способом, исходя из физических свойств материала. Я не помню подробностей, но думаю, что было что-то в теплоемкости и инфракрасном свете.
- Это был первый вызов, когда я выиграл денежный приз.Мой образ мышления изменился с «только очень опытные участники выигрывают главные призы» на «Я могу это сделать, в какой следующей задаче я могу проверить это предположение?»
- Я купил второй графический процессор и, наконец, понял, что не хочу иметь дело с Keras + tensorflow, пока они не решат мои болевые точки, и что пришло время переключиться на PyTorch, который решил хотя бы некоторые из них.
Среди более чем 70 соревнований, над которыми я работал, есть еще одно, которое я хорошо помню.
Сама по себе задача была не такой уж захватывающей, просто обнаружение объекта на аэрофотоснимках, но история вокруг этого была приятной.Я попал на главную страницу крупнейшего российского интернет-сайта lenta.ru, и за один день был показан по всем телеканалам России
История немного анекдотична. Я написал подробное описание происходящего на русском языке в блоге на habrahabr.com. Если вы говорите по-русски, вам это может понравиться 🙂
Краткая версия событий на английском языке звучит так: «Defense Lab for MI-6 в Великобритании организовал международный конкурс на обнаружение объектов в неизвестном городе Британии ».
Правила конкурса были очень нестандартными, что добавило пикантности ситуации:
« Участвовать может каждый, но получить призовые деньги могут только граждане и жители определенных стран. Хотя я резидент США и плачу здесь налоги, я не имею права только из-за цвета моего паспорта.
Интересен и способ выбора этих стран. Организаторы взяли теневой рейтинг коррупции стран за 5 лет до конкурса и поставили порог на каком-то уровне. Почему был выбран именно этот уровень, также неясно. Мне нравится думать, что это сокращение было выбрано случайно, но мои друзья подозревали, что это был заговор, в котором Великобритания разрезала страны, которые она считала гражданами второго сорта, т.е.э., Россия и Китай. Надеюсь, что этого не произошло, но сокращение было чуть выше этих стран.
Так или иначе, я знал об этом правиле и все равно участвовал. Новые знания, новые конвейеры в моем частном репо — это важно. Призы тоже ценные, но второстепенные. В этом конкурсе у меня также была возможность поучиться у Сергея Белоусова, малоизвестного эксперта по глубокому обучению, который оказывал наставничество во время и после конкурса.
Я сделал несколько итераций, проверил множество идей, реализовал сильный конвейер обнаружения объектов и закончил вторым….
Что касается правил, то я не заслужил приза, но то, что правило существует, не означает, что оно мне нравится.
Так или иначе, я написал сообщения в Facebook и Twitter, что я не большой поклонник этих правил.
История острая и относительно ядовитая:
«Искусственный интеллект», «Победитель конкурса», «Бедный гражданин России», «Жестокая британская лаборатория обороны», «Обвинение России как страны в коррупции» и все прочие причудливые слова. можно использовать в публикации.
Различные средства массовой информации запугивали меня с просьбой об интервью, но все это было для меня настолько ново, что я упал. Журналистов это не остановило, поэтому вместо разговора со мной они показали мою аватарку из Facebook и Github и пригласили каких-то странных экспертов поделиться своим мнением по теме. Сегодня я бы повел себя иначе. Теперь мне удобнее разговаривать на камеру, и я по-прежнему считаю, что информационный поток в науке и технике должен быть максимальным.
Если мы хотим в ближайшее время отправиться на Марс или продлить нашу жизнь, нам нужно быть более открытыми для потока информации в научных и инженерных сообществах.
Крупная технологическая компания Mail Ru Group согласилась выплатить мне денежный приз, это было 15 тысяч долларов, но я не чувствовал, что заслуживаю их, поэтому я попросил передать их в фонд, поддерживающий теоретическую физику.
Самое смешное было, когда журналисты подошли к моим родителям. Мои мать и отец сказали, что, хотя они были неотъемлемой частью моего детства, было бы неразумно недооценивать влияние моего школьного образования и что мои школьные учителя являются гораздо лучшими кандидатами на собеседование.И это сработало 🙂 Мои школьные учителя тоже появлялись по ТВ.
Саньям Бутани: Какие задачи вы ищете сегодня? Как вы решаете, стоит ли ваше время на соревнования?
Владимир И. Игловиков: Как я уже упоминал выше, лучше всего работает, когда задача сильно коррелирует с повседневными задачами, с которыми я сталкиваюсь. Так что это первый тип проблем, которые я ищу.
Далее я ищу проблемы, которые интересны, но выходят за пределы моей зоны комфорта. Например, GAN для меня немного более чужды, чем я бы предпочел. Поэтому обязательно приму участие в следующем конкурсе Kaggle по этой теме.
Последний самый простой. В 2017 году на Kaggle было проведено три соревнования с призовым фондом более 1000000 долларов. Мне относительно хорошо платят, поэтому деньги — не самая важная часть моей мотивации. Но я открыт для обсуждения позиций консультативного совета в стартапах на ранних стадиях и интересных должностей на полный рабочий день, которые добавят + 30% к моей общей денежной компенсации.Этот факт заставляет меня чувствовать, что я дам шанс на следующий вызов с хорошим призом.
Саньям Бутани: Как вы подходите к новому соревнованию? Какие методы вы используете?
Владимир И. Игловиков: Для каждой проблемы машинного обучения, с которой я сталкиваюсь, первое, что я пытаюсь сделать, — это преобразовать данные в предсказание, а предсказание в оценку валидации.
Это может быть что-то, что я реализую с нуля, что хорошо работает, если это проблема, с которой я знаком. Но если проблема для меня нова, я просто копирую вставку с форума на Kaggle или `git clone` из соответствующего репо. Если я понимаю, что происходит в этом поглощенном коде, это хорошо. Но если я не имею ни малейшего представления о том, что происходит, это все равно более чем хорошо.
На первом этапе мне нужна надежная базовая линия, даже если я не совсем понимаю все детали того, как работает конвейер.
В целом для себя я делю каждое соревнование Kaggle на два основных этапа:
- Детский сад.Это включает в себя — чтение форума, чтение статей, посещение соответствующих классов, выполнение исследовательского анализа данных, обучение модели.
- Стадия для взрослых: у меня есть конвейер, который сопоставляет данные с оценкой перекрестной проверки и отправкой в надлежащем формате.
Это разделение на детсад / взрослую фазу немного жестко, и вы можете думать об этом иначе, но мне нравится быть резким по отношению к себе. Это немного повышает мою продуктивность.
Как сказал Майк Тайсон: « Любой, кто когда-либо участвовал в драке, знает, что это правда — вы можете планировать все, что хотите, но когда начинают наносить удары, планы быстро вылетают из окна. ”
В соревнованиях Kaggle вы переоцените свое мастерство и недооцените талант людей, с которыми соревнуетесь. Современные подходы, которые вы представили на Tech Review при работе в PowerPoint и которые тепло приветствовали ваши коллеги, внезапно будут работать намного хуже, когда они будут фактически реализованы на Python и проверены в таблице лидеров. Драйверы, библиотеки, модели и версии данных (здесь я хотел бы упомянуть инструмент dvc.org, который я использую для задач управления версиями моделей), качество данных, все это и 100500 других мелких, но раздражающих вещей будут атаковать вас.По умолчанию вы не знаете, где будут наиболее серьезные проблемы.
Таким образом, конвейер, который выводит меня на взрослую стадию соревнований, — это первое, что мне нужно сделать.
После завершения конвейера вы сможете выполнять быстрые итерации. Я хотел бы напомнить вам, что количество идей, которые вы пробуете, часто пропорционально вашему положению в таблице лидеров. Таким образом, чтобы получить максимальную оценку, вам нужно увеличить темп ваших итераций.
Как только я начинаю повторять:
- , я вынужден провести рефакторинг конвейера, чтобы сделать его более модульным.(Скажем, для всех моих конвейеров глубокого обучения компьютерного зрения я использую библиотеку Remi Cadene, которая позволяет быстро проверять разные магистрали. То же самое с гибкостью в дополнениях, и снова я хотел бы упомянуть библиотеку Albumentations, которую разрабатываем мои коллеги и я, и это помогло мне и многим другим людям добиться хороших результатов в задачах компьютерного зрения.)
- Мне нужно лучше понять свою кодовую базу. Как я уже сказал, если проблема новая, может случиться так, что мой конвейер будет работать и давать хороший результат, но мои знания кодовой базы будут ограничены. Во-первых, я могу удалить все, что не используется. Мертвого кода может быть много. Удаляю. Меньше кода => меньше ошибок. Скорее всего есть функционал, который мне не нужен => Я его удаляю. Было бы неплохо запустить flake8 или аналогичные инструменты. Исправление ошибок flake8 немного улучшит код, и в процессе я буду лучше разбираться в кодовой базе. Переименование переменных из h , w , i во что-то более значимое, например, height , width , batch_id .Это мало, но помогает. Я использую PyCharm для написания кода на Python. В нем есть все необходимые функции для быстрого рефакторинга, но я считаю, что и другие IDE не менее хороши. Но! Я не стремлюсь полностью понимать код. Он придет. Моя цель — получить хорошую оценку модели, а хорошее качество кода — вторично. Хорошее качество кода для конкурентов — приятный бонус, который помогает быстро выполнять итерации, и не более того. Конечно, когда мне нужно будет поделиться кодом в команде или повторно использовать его для решения другой проблемы, это станет критическим, и я потрачу время на рефакторинг и написание документации, но если это произойдет, то это будет позже. Скорее всего, я откажусь от этого конвейера или огромных его частей, потому что найду новые способы решения проблемы.
- Получайте идеи от Kaggle, статьи, классы, обсуждения и воплощайте их в жизнь. Цель быстрых итераций — быстро потерпеть неудачу и сделать следующий шаг более разумно.
Я хочу подчеркнуть, что соревнование по ML, в котором вы работаете самостоятельно и разрабатываете код, который будет поцарапан, не то же самое, что разработка моделей ML для производства на вашей работе.
Возможность быстрой проверки идей важна, но нельзя даже учитывать, что код низкого качества присутствует в производственной базе кода при работе.
Саньям Бутани: Для читателей и новичков, таких как я, которые хотят стать лучшими кагглерами, что бы вы посоветовали?
Владимир Иванович Игловиков: Я бы сказал тем, кто еще не пробовал участвовать в соревнованиях Kaggle, но готов потратить время на повышение своих навыков в области обработки данных, чтобы начать как можно скорее. Если вы знаете основы Python и не имеете опыта работы с машинным обучением, этого будет достаточно для начала. Просто сделай это, и лучше сделать это сейчас, чем потом.Каждый день, когда вы думаете об участии, но не делаете этого — есть знания, которых вы не получаете.
Sanyam Bhutani: Ваша победа в конкурсе Carvana потребовала ОГРОМНЫХ вычислительных ресурсов, которые действительно были необходимы для соревнований.
Как вы думаете, в целом, новичок может преуспеть в конкуренции со стартовым оборудованием?
Владимир Иванович Игловиков: Я бы сказал, что наличие графических процессоров полезно. И это правда, что у нашей команды было около 20 относительно мощных графических процессоров.Аппаратное обеспечение помогает с итерациями, некоторые тяжелые модели глубокого обучения могут потребовать как оборудования, так и времени, и довольно часто вы можете обменивать оборудование на время, что приводит к быстрым итерациям и, как следствие, к большему количеству знаний за раз и лучшим результатам.
Если вы можете позволить себе машину с 2 x 1080Ti, дерзайте. Если ваш менеджер на работе может разрешить вам использовать некоторые рабочие вычислительные ресурсы для соревнований, поговорите с ним об этом. Обычно менеджеры довольно открыты для вас, чтобы вы тратили свое свободное время и вычислительные ресурсы компании на ваше саморазвитие.Особенно, если это повысит вашу продуктивность и вы сможете самостоятельно внедрять новые идеи.
В то же время я не уверен, что у участника с четырьмя графическими процессорами больше шансов на успех, чем у человека с двумя, по крайней мере, в отношении проблем, которые я видел до сих пор в Kaggle.
Я приведу вам пару примеров:
Мастер Kaggle, Виктор Дурнов, занявший первое место в Spacenet 4, был частью команды-победителя Data Science Bowl 2018, а также был лидером многих других соревнований, начатых без любые графические процессоры.Он использовал бесплатные кредиты от Google Cloud. Теперь у него есть четыре редакции Titan V CEO, которые он получил для Data Science Bowl 2018, и я почти уверен, что это ему нравится больше, чем использование облака.
В своем интервью Артур Кузин рассказал о том, как мастер Kaggle Валерий Бабушкин получил свою первую золотую медаль в конкурсе Computer Vision / Deep Learning без графических процессоров. В начале конкурса он добился хороших результатов с CPU, и многие люди с GPU были счастливы объединиться с ним в одну команду.Я бы сказал, что есть много людей, которые хотят участвовать, но не имеют графических процессоров, и множество тех, у кого есть графические процессоры, но они менее мотивированы. Покажи покажи какой-нибудь результат, и появятся люди с железом.
Саньям Бутани: Вы активный член сообщества ods.ai. Не могли бы вы рассказать нам больше об ОРВ? Мы видим много команд из ODS в топе LB, приветствуются ли новички в сообществе?
Владимир Иванович Игловиков: Более того.Если вы посмотрите на мой LinkedIn, то увидите, что я проповедник ods.ai как сообщества. Я считаю, что сообщество отличное, и это сильно повысило мои навыки машинного обучения. Мне потребовалось несколько лет, чтобы получить свою первую золотую медаль на Kaggle, когда я выступал самостоятельно. Я присоединился к ods.ai, и другие лучшие результаты пришли намного быстрее 🙂
ods .ai — меритократическое русскоязычное сообщество Data Science. На данный момент это около 30 тысяч участников. Не все из них активны, но есть значительное количество людей, которые бывают там довольно регулярно и используют Data Science как часть своей жизни.Это может быть для исследований, конкурсов, образования, домашних проектов, бизнес-инициатив и всего остального. Приглашаются все желающие, кроме представителей отдела кадров. Некоторые люди делают свои первые шаги в Data Science, некоторые люди больше работают над исследованиями, другие зарабатывают деньги на создании продуктов с помощью методов Data Science, как и я. В принципе, приветствуются все, кто увлечен наукой о данных и желает изучить DS эффективным, но, вероятно, трудным путем.
Наиболее значительная часть сообщества проживает в бывшем Советском Союзе, но есть много людей из США, Китая, Европы, Канады и Индии. Если вы увлечены наукой о данных, это отличное место для вас. Правильное место, чтобы задать вопрос, правильное место, чтобы дать ответ.
Есть несколько инициатив, которые родились в ods.ai
- DataFest — самой важной конференции Russian Speaking Data Science. Влиятельные спикеры, поддержка крупнейших технологических компаний России.Отдельное спасибо Алексею Натекину и команде за организацию. Еще есть Minsk DataFest, в прошлом году я там был основным докладчиком, его организовывает Арсений Кравченко.
- mlcourse.ai — русско-английский онлайн-курс ML, созданный Юрием Кашницким и его командой под девизом: «Изучите ML на практике». Действительно хорошо. Я рекомендую это.
- dlcourse.ai — Курс Deep Learning Саймона Козлова, который чувствовал, что знания, которыми он обладает в области Deep Learning, должны быть переданы студентам в его альма-матер Новосибирского университета, и ведет класс онлайн.Он даже летит в Сибирь на выпускной экзамен 🙂
И многие другие участвуют, например, Kaggle Masters Валерий Бабушкин и Алексей Григорьев, которые пишут книги и издают онлайн-курсы по Data Science.
Я хотел бы подчеркнуть, что эти люди тратят свое время на улучшение состояния знаний в области науки о данных без оплаты, просто потому, что это правильно. Эта философия согласуется со многими аспектами сообщества ods.ai.
Саньям Бутани: Учитывая стремительный рост ML, как вы всегда в курсе последних достижений техники?
Владимир И.Игловиков: Не знаю. И даже не пытаюсь. Поле слишком велико. Когда у меня возникает проблема, которую мне нужно решить, я углубляюсь в последние достижения в этой конкретной области. По темам, по которым у меня нет практического опыта, мои знания могут быть минимальными. Я пытаюсь работать над несколькими разными проблемами одновременно, над парой на работе, над конкурсом и над домашним проектом, что дает некоторую широту взгляда. Я надеюсь, что у меня достаточно опыта, чтобы выбрать новую тему, например, распознавание голоса, и быстро овладеть знаниями.
Читать свежие газеты по всем темам с утра до вечера — плохая идея. Жизнь слишком коротка и ценна для этого вида деятельности.
Я читаю газеты ежедневно, но только по проблемам, с которыми я сталкиваюсь. Также я анализирую решения победителей различных соревнований. Как мы обсуждали выше, это бесценный источник информации, если вы можете правильно ее проанализировать.
Посещение конференций типа CVPR, ICCV, как обычно, работает очень хорошо. Плотный, утомительный, но очень продуктивный способ в целом догнать поле.
Саньям Бутани: Какие успехи вас действительно радуют в области компьютерного зрения?
Владимир Иванович Игловиков: Что касается статей, то мой последний любимый трюк — использовать сиамские сети для классификации и отслеживания изображений, когда вы изучаете не значения классов, а встраивание классов.
Мне очень нравится концепция. Но мне также нравится, как он позволяет использовать небольшой объем данных для обучения.
Я предполагаю, что для того, чтобы двигаться в направлении общего искусственного интеллекта, роботов, беспилотных автомобилей, являющихся продуктом, и других захватывающих областей научной фантастики, нам, вероятно, необходимо выяснить, как более эффективно использовать существующие данные. И в этом смысле мне нравятся сиамские сети и общая работа сообщества в направлении одноразового обучения.
Sanyam Bhutani: Считаете ли вы, что ML как область будет соответствовать ажиотажу?
Владимир Иванович Игловиков: Если честно, не знаю. Давайте перефразируем вопрос.
Есть много людей, которые ходят в колледж на факультет компьютерных наук в течение четырех лет и думают о пятилетнем аспирантуре, чтобы через 4 + 5 = 9 лет у них была интересная, хорошо оплачиваемая работа область машинного обучения.Я не уверен, что они это сделают. Но посмотрим, как это пойдет. В наши дни все меняется слишком быстро 🙂
Саньям Бутани: Прежде чем мы закончим, какие советы начинающим, которые чувствуют себя подавленными, чтобы начать соревноваться?
Владимир Иванович Игловиков: Есть только один совет для тех, кто хочет начать соревноваться. Просто сделай это и постарайся добраться до вершины, учись у всех и вся. Kaggle — отличная среда для обучения большому количеству навыков машинного обучения.Чем раньше вы начнете, тем раньше вы их приобретете.
Саньям: Большое спасибо за это интервью.
Владимир Иванович Игловиков: Спасибо за организацию и всем, кто найдет терпение дочитать до конца 🙂 И отдельное спасибо Эрику Гааседелену за вычитку!
Edit: Спасибо Юрию Кашницкому за вычитку и внесение исправлений.
Edit2: Большое спасибо Татьяне Габрусевой за доработку.
Если вам это интересно и вы хотели бы стать частью My Learning Path , вы можете найти меня в Twitter здесь .
Если вам интересно читать новости о глубоком обучении и компьютерном зрении, вы можете ознакомиться с моим информационным бюллетенем здесь .
Если вам интересно прочитать несколько лучших советов от героев машинного обучения: практиков, исследователей и Kagglers. Нажмите здесь
Соответствующие
Теги
Присоединяйтесь к хакеру Полдень
Создайте бесплатную учетную запись, чтобы разблокировать свой собственный опыт чтения.
Это GameDev, детка! Интервью с разработчиками World of Tanks — HackMag
Филип Кучерявый, инженер-программист операционной группы
- Ему 24 года, у него борода
- Влюблен в Linux и Python
- Параноик
- Не имеет диплома о высшем образовании
- http: // github.com / Friz-zy
Дмитрий Трофимов, Руководитель Front-End дизайна пользовательского интерфейса WoT
- Программированием интересуется с 14 лет
- В 17 лет он написал простой графический интерфейс для MS-DOS
- Помимо World of Tanks, его любимые игры включают Heroes of Might and Magic III
- Большой поклонник Явы
- Имеет ряд дипломов и сертификатов по программированию
Дмитрий Овчинников, веб-разработчик
- Он пришел в веб-разработку через Perl
- Имеет три диплома об образовании
- Ненавидит провода и распознает только Bluetooth / Wi-Fi
- После семи лет работы с Gentoo перешел на OS X и ни о чем не жалеет
- Скрывает, что знает PHP
- В офисах Wargaming по всему миру работает более 3400 сотрудников
- Более 15 игр, выпущенных WG с момента основания компании в 1998 году
- 100000000+ пользователей, зарегистрированных в проектах Wargaming
- В 50 странах мира World of Tanks Blitz вошел в топ-3 приложений в App Store и был загружен более 5000000 раз
Филипп Кучерявый
Наш сервер управляется движком BigWorld, написанным на C ++ и Python. Все, что критично для скорости, написано на C ++, остальное — на Python.
У нас много техники, огромный зоопарк. Здесь без автоматизации не обойтись. Для автоматизации мы используем Ansible, Fabric и Puppet. И мы отслеживаем с помощью Zabbix.
Мы изучаем модные решения виртуализации, такие как Docker, но все еще не хотим пускать его в производство. В настоящее время мы пытаемся перевести локальные инстансы на такую виртуализацию, так как это дает значительную экономию.Сейчас они тоже размещаются на виртуальных машинах, но это более «серьезные» решения, не столь специализированные, как VMware и другие.
Часть всего написана на Erlang, например, транзакции. Но это только внешние дополнения к движку, подсистемы, действующие как отдельные костыли, такие как доставка сообщений и связь. Двигатель в этом не участвует.
У нас очень специфический процесс разработки, множество инструментов, которые очень адаптированы к нашим потребностям. То есть мы используем открытый исходный код, стараемся внести свой вклад, проводим всевозможные встречи (я лично люблю в них участвовать). В то же время у нас есть очень специфические вещи, которые не следует публиковать. Не потому, что это большой секрет, а просто потому, что они никому не понадобятся, кроме нас.
У нас собственное оборудование. Мы лично подбираем необходимое оборудование, покупаем его и эксплуатируем. Конечно, облако — это здорово, но дорого и не всегда удобно.
Если вдруг произойдет какой-то «взрыв» в нагрузке, у нас всегда есть резервная мощность при холодном пуске. Это своего рода резервный вариант для быстрого вызова другого кластера в случае скачка нагрузки.
Когда вы полностью владеете оборудованием, вы можете реалистично оценить ситуацию. Допустим, мы давно играем с гипертрейдингом и до сих пор пытаемся оценить его плюсы и минусы. В некоторых случаях это только мешало работе, и мы намеренно отключили его. Имея доступ к оборудованию, мы можем лично обновить прошивку BIOS и посмотреть, что там происходит.
В общем, если возникнет необходимость, мы можем все переставить и собрать стопку в течение дня или меньше. Естественно, мы стараемся балансировать нагрузку на оборудование по проектам, и когда нам нужно переместить оборудование в другое место, это не проблема, так как это можно сделать довольно быстро.
Мы обрабатываем масштабирование в основном с помощью RabbitMQ. Кроме того, BigWorld имеет собственную технологию соединения в кластере (между машинами и между кластерами).Русский сервер сегодня — это девять периферийных устройств и центр. BigWorld имеет собственную технологию подключения периферийных устройств к центру и собственный протокол. «Кролик» используется для связи между BigWorld и Интернетом отдельно, как стек.
У нашего QA есть доступ к волшебной кнопке «Сделай мне хорошо». То есть в любой момент, когда им нужна определенная версия среды или проекта, они нажимают эту кнопку, и, как это ни странно, они начинают чувствовать себя хорошо. Я считаю, что каждый должен стремиться максимально автоматизировать свою работу.
В основном у нас месячные циклы разработки. В конце раскатываем производство. Чаще бывает локально. Развертываем производство под ручным управлением. Это частично автоматизировано, а частично нет.
Развертываем прямо из исходников, без пакетов. На самом деле мы работаем с большими объемами кода, и никто не хочет каждый раз компилировать пакеты размером в несколько гигабайт.Не говоря уже о том, что нам просто нужно сделать патч. Кроме того, доставка осуществляется одновременно на множество серверов. Это сразу заполняет канал и ресурсы, которые в то же время испытывают нагрузку со стороны игроков. Другими словами, все нужно делать очень аккуратно.
Дмитрий Трофимов
Что такое BigWorld на стороне клиента? Как ни странно, это тот же Python, что и на сервере. В нашей компании BigWorld подключен к технологии, позволяющей интегрировать Flash в игровой клиент. Есть виртуальная машина, проприетарная реализация от AutoDesk. Также есть проигрыватель GFX, который запускает Flash внутри клиента.
Да, мы используем Flash в качестве пользовательского интерфейса для танков.
Считается, что Флэш умирает. Позвольте мне сказать, что это чушь. Тенденция такова, что Flash становится узкоспециализированной технологией. Да, всякие флеш игры в Сети, скорее всего, умрут. Но в таких крупных проектах, как «Танки», «Корабли» и так далее, Flash оказался очень популярной технологией.Он идеально подходит для решения задач с точки зрения производительности и в некоторых других областях… например, добавление кнопок и тому подобное.
Почему Flash? Во-первых, когда мы занялись Flash, не было альтернатив вроде HTML5. Во-вторых, Flash имеет встроенную поддержку HTML, и мы делаем некоторые вещи, используя разметку HTML. На самом деле, я бы поспорил, работает ли HTML5 быстрее или обеспечивает более высокую производительность. По крайней мере, для нашего клиента анализ показал, что HTML5 будет обеспечивать меньшую производительность, чем Flash.
Переход на HTML5 означал бы переподготовку огромной команды разработчиков Flash для новой технологии, которую нельзя назвать оптимальным решением. И, конечно, не забывайте, что в этом случае все должно быть переписано . Это не то, чего мы сейчас хотим.
Лично я бы не стал рассчитывать на HTML5 на данном этапе его развития, , учитывая, что он не очень хорошо продается на рынке. У него есть конкуренты, которые довольно активно продвигаются, в том числе Mozilla, Unity, они сейчас очень тесно сотрудничают по развитию этой технологии.В результате HTML5 может вообще отойти в сторону.
Кстати, мы старались не использовать Flash, создав пользовательский интерфейс с доступными альтернативами, такими как компоненты Python. Как потом выяснилось, это были просто ужасные костыли, нам постоянно чего-то не хватало. Кроме того, то, что было доступно, не могло обеспечить то, что нам было нужно. Мы начали думать, что с этим делать, и начали самостоятельно писать различные компоненты. Как только дело дошло до сложных анимаций, эффектов и прочего, стало ясно, что нам нужен очень серьезный редактор, чтобы определять различные визуальные элементы, анимировать их и делать их «живыми».Flash была единственной действительно мощной технологией, которая могла справиться со всем этим. С тех пор мы продолжаем его использовать.
Хоть мы и ищем альтернативу Flash, пока он отлично справляется с текущими задачами. На данный момент мы не планируем внутреннего внедрения.
Во Flash мы используем всевозможные вещи с открытым исходным кодом, такие как GreenSock, , перенесенные на стандартные библиотеки Java, для работы со структурами данных.
Единственное, что в какой-то мере стало настоящей проблемой найти flash-разработчиков. Дело в том, что наши потребности в плане Flash значительно выросли, при этом почти все самые опытные ребята либо уже работают в нашей команде, либо наняты аналогичными компаниями. На рынке стало действительно сложно найти хорошего и опытного профессионала.
Филипп Кучерявый
Конечно, Flash — не единственная клиентская технология. Для разных платформ мы используем разную технологию. Так, например, делаем отдельный клиент для Xbox; Для мобильной версии у нас также есть отдельный движок, в разработке которого активно участвует наша студия.У нас много разных технологий.
Овчинников Дмитрий
В Интернете мы используем стек Python, Django, memcached и MySQL, все они работают хорошо.
Как ни удивительно, мы не храним пользовательские данные, а передаем их дальше: мы просто аутентифицируем их и передаем. Мне сложно оценить, что происходит за этой «большой каменной стеной», но, насколько я помню, есть MySQL. А точнее Percona.
Филипп Кучерявый
Мы все еще экспериментируем с разными форками MySQL. В основном все зависит от железа. Все данные, связанные с BigWorld и Интернетом, полагаются на MySQL. В сети есть свои базы данных, а в Big World — свои, но они могут общаться друг с другом через RabbitMQ.
Мы используем Percona и MySQL. Кроме того, мы смотрим на них в разных операционных системах. Я точно знаю, что мы не занимаемся супероптимизацией, наши решения в большинстве своем нестандартные.
RabbitMQ легко кластеризуется, и это подходит для наших задач. Исторически мы активно им пользуемся. Для развертывания мы разрабатываем различные проприетарные инструменты (для ведения логов и прочего).
Обращаем внимание на современные и модные стеки, такие как Kibana и Logstash. Для них мы рассматриваем, например, ZeroMQ. Но кластеру требуется централизованное решение, в которое ZeroMQ не подходит, поскольку он децентрализован. RabbitMQ можно лучше интегрировать в нашу схему.
У нас есть собственный кластер Hadoop. Специалисты по обработке данных работают с ним для получения статистики и других подобных вещей. Мы собираем эти данные не для игроков, а для себя. Мы собираем различную статистику, анализируем ее, а затем наши аналитики производят расчеты.
Мы также используем базы данных NoSQL, но не для производства. В нашем развертывании мы используем MongoDB для хранения статистики и информации: мы используем его для сбора статистики с серверов и дальнейшей ее обработки с помощью наших собственных инструментов.Грубо говоря, это просто хранилище данных JSON. Это не продакшн, это просто самопомощь.
Филипп Кучерявый
Не было ни одного проекта, где бы удалось полностью избежать провалов. Лично мой первый сбой произошел на тестовом сервере. Этот сервер тоже был задействован в производстве, но он был предназначен не для игроков, а для нас, чтобы запускать тесты. Это было мое первое развертывание в компании, и в то время я проработал в компании всего три месяца.Я выкатил код, мы его протестировали, и оказалось, что я предоставил совершенно неправильный код. Пришлось переделать и попросить QA еще раз все проверить. Мне было стыдно. Эта ситуация очень хорошо напомнила мне, что стоит все перепроверить и быть более внимательными.
Часто сбои вызваны чем-то, что находится вне нашего контроля. Иногда выходит из строя оборудование, и мы должны быстро реагировать. Иногда технические проблемы возникают не у нас, а у внешних провайдеров.
Была когда-то ситуация, когда в службу поддержки поступало много жалоб на то, что игроки не могут играть, все пропало, все мы умирали, ничего не работало. Мы пытались выяснить, что произошло, но никто не мог выйти вперед и признать свою вину. Подозрение упало на одну из опор в России. Наши ребята из службы поддержки просто позвонили всем своим друзьям, которые когда-либо работали с провайдерами, и выяснили, что действительно был сбой магистрали у определенного провайдера.Они просто не хотели этого признавать.
Большинство проблем с провайдерами возникает в Китае. Конечно, нагрузка там достаточно высокая, но проблемы возникают просто из-за связи с Китаем. Особенности китайского Интернета таковы, что связь между двумя соседними сайтами может быть хуже, чем между мной и Китаем. И не стоит забывать про всю их неразбериху с межсетевыми экранами, все технические детали согласовываются очень долго.
Китай все активно фильтрует и режет. Все, кто работает с Китаем и его поставщиками, должны сертифицировать все, что выходит. Они активно ищут порты и режут все лишнее. Пришлось с ними согласовывать даже порты.
Дмитрий Трофимов
Начиная свой собственный проект, вы должны понимать, каков ваш первоначальный бюджет. Если ваш первоначальный бюджет меньше миллиона долларов, забудьте о любых Flash. Flash может быть действительно полезен только в больших проектах. Если проект небольшой и вы хотите сразу всплыть и остаться на плаву, лучше выбрать более простую технологию, возможно, начав с Unity.Вы даже можете написать что-нибудь без излишеств и скомпилировать библиотеки с открытым исходным кодом на C ++.
Мы часто говорим: «Это GameDev, детка». Рынок GameDev очень грубый. Скорость технологических изменений здесь просто фантастическая, и никто ни от чего не защищен.
Иногда вам приходится поддерживать устаревшее решение только потому, что оно дешевле. Даже если мы примем какую-то сверхактуальную и многообещающую технологию для работы над проектом, возможно, что будет очень сложно и дорого изменить эту технологию, когда это необходимо.Итак, выбор прост: либо принять и жить с этим, поддерживая старые технологии, либо переписать все глобально, сменить персонал и переобучиться. Это дорого и часто не имеет смысла.
Филипп Кучерявый
Продолжайте раунд за раундом. Чтобы продукт окупился как можно быстрее, это нужно делать на основе ваших собственных знаний. Если вы что-то знаете и вам это нравится, нет причин менять технологию и пытаться быстро понять что-то еще только потому, что это круче, и эта технология будет поддерживаться еще N лет.
Схема простая: крафтите изделие и получайте деньги. Нанимайте разработчиков, создавайте еще более крутой продукт и получайте больше денег. Но все время создавать что-то Великое… Что ж, однажды это может не сработать. Не всем удается родить Майнкрафт.
Все зависит от ресурсов, таких как деньги, время и люди. Если стартапу нужно максимально ограничить себя, то следуйте советам, описанным во всех учебниках по бизнесу — выжимайте максимум из того, что у вас уже есть, а остальное старайтесь переложить на кого-то другого.
Делегируйте обязанности. Скажем, если у компании нет ресурсов, нет хороших администраторов оборудования, зачем вообще с этим возиться? Такой компании проще перейти в облако, быстро подняться, заработать, нанять кого-то и уже потом думать об оборудовании
Дмитрий Трофимов
Различные подходы и отношения к технологиям представляют разные бизнес-модели. Например, вы можете сразу потратить много денег, создать какую-нибудь ультра абстрактную систему (которая, кстати, будет очень дорого поддерживать).Но, при этом, вы можете даже не выйти на рынок, потому что старт был слишком долгим. С другой стороны, вы можете уменьшить размер, жестко запрограммировать и закодировать, а затем мучиться с предоставлением поддержки, но в то же время выйти на рынок и быстро внедрить некоторые функции. И получить деньги.
Филипп Кучерявый
В Wargaming работаю уже более двух с половиной лет. Меня взяли на первое место прямо из университета, где я изучал радиофизику.В конце концов, я не закончил учебу и вместо этого выбрал работу.
Как я сюда попал? После третьего года обучения я активно искал, чем заняться. В то время у меня был продвинутый уровень знаний Linux и Python. Нашла вакансию в WG, но упустила возможность. Меня пригласили на охрану в банке, и было еще несколько небольших вакансий, но я ждал месяц, а в WG появилась еще одна вакансия. Я пришла на собеседование и в итоге осталась здесь, о чем нисколько не жалею.
Очень люблю читать и впитываю огромное количество информации. Из веб-ресурсов читаю Habrahabr и Hacker Magazine ..
В свободное время я создаю вещи на Python на GitHub. Но это отечественные разработки, в основном нацеленные на самообучение. Я стараюсь сознательно идти в те области, где у меня нет опыта, но которые мне интересны.
На работе я тоже пишу на Python, но в основном это небольшие навороты, призванные помочь, автоматизировать что-то. Дома я пытаюсь заниматься другими вещами, например, асинхронным программированием.
Для меня работа — это хобби, за которое хорошо платят. Как еще это описать? WG — это команда, в которую я прихожу, чтобы поговорить на интересующие меня темы. Это сообщество, которое организовано по интересам.
Время от времени я выступаю на митапах, и это действительно интересно. На эти мероприятия собираются разные люди, например, из Минска. Они не знают друг друга, а пытаются объединиться и познакомиться.Здорово, когда возвращаешься, видишь того же человека в третий раз и уже прекрасно общаешься, обмениваешься контактами. Это объединяет людей.
Дмитрий Трофимов
Я занимаюсь программированием с 14 лет. Я закончил колледж по специальности техник / программист. Сразу после учебы пошел работать разработчиком. Меня наняли по той же схеме, о которой мы уже говорили. У меня не было опыта работы с Java, но меня взяли для обучения на Java-разработчика.Я проработал на этой должности около года, но потом случился кризис и я попал в GameDev. В то время компания RamStudio искала разработчиков Flash, я прошел собеседование и научился там использовать технологию Flash, о которой я изначально не знал. Далее я решил перейти к более серьезному проекту и через некоторое время попал в Wargaming.
Через какое-то время я получил «powerlevel», освоил все необходимые технологии и разобрался в особенностях World of Tanks.Сейчас, в свободное время, я больше не занимаюсь Flash, я заинтересовался разработкой мобильных приложений, так как это очень интересно перекликается с Java.
Для меня работа — это еще и хобби, за которое мне платят. Я занимаюсь этим хобби более десяти лет и иногда думаю, что это просто большая удача, а подобных вещей обычно не бывает. Одно могу сказать, делай, что хочешь, и все у тебя получится.
Овчинников Дмитрий
Ха, у всех такой хороший спорт, каждый чему-то учится.Но я люблю сидеть на диване и играть с PlayStation:) * Я люблю хорошо поесть, и моя дикая мечта — переписать Rails на Python. Я очень нежно люблю Rails, и, поскольку сейчас разработка ведется на Python, я иногда скучаю по ним.
Я глубоко симпатизирую миру Ruby, его соглашениям, соглашениям, подходам. Хочу все это потихоньку перетащить… ну может на рабочий стол. Но мне нравится сама идея, что я этим занимаюсь. Хотя вряд ли я когда-нибудь покажу его кому-нибудь
🙂
Я пришел в WG на должность разработчика Python, но до этого я фактически никогда не видел Python. Я давно занимаюсь веб-разработкой. Я начал с Perl, а потом у меня были разные отношения с Ruby, PHP и так далее. Поэтому, когда Wargaming предложила мне попробовать поработать с Python, я подумал, а почему бы и нет?
Я видел много компаний. Я работал в аутсорсинговых компаниях, в продуктовых компаниях, а теперь я в GameDev. Могу сказать, что, на мой взгляд, Wargaming — лучшее собрание профессионалов, которое только можно найти в индустрии. К тому же все они очень активные, веселые и интересные люди, с которыми можно общаться каждый день.
В Wargaming постоянно ведется какая-то деятельность, не связанная с работой, в том числе организованная сотрудниками WG (спортивные мероприятия, технические мероприятия, митапы). Компания не стоит в стороне. Он всячески помогает и поддерживает такую самоорганизацию.
Мы проводим ежемесячные встречи Python в Минске при поддержке Wargaming, чтобы расширить сообщество разработчиков.
Очень сложно передать, что ты чувствуешь, будучи частью Wargaming. Вы можете просматривать фотоотчеты, видео с наших мероприятий, но пока вы не приедете сюда, вы этого не поймете.
Филипп Кучерявый
Не могу сказать, что для работы с WG нужно знать конкретно о том и о том. Лично я считаю, что в жизни нужно найти то, что вам нравится, и заняться этим. Нет необходимости акцентировать внимание на конкретной компании. Когда я искал работу, я искал позиции, которые «подходили бы мне», и я знал, что хочу заняться Python.Я искал по этому критерию, и в то время предложения о работе поступали только от трех компаний, включая Wargaming.
В жизни вам нужно найти что-то свое и получить от этого удовольствие, следуйте по этому пути, и вас будут нанимать, куда бы вы ни пошли. Когда я пошел на собеседование в WG, мой будущий начальник сказал, что, посмотрев мое резюме, он не хотел брать у меня интервью, но HR настояли, потому что у меня было очень сильное мотивационное письмо. В конце концов, начальник признался, что не пожалел о том, что согласился на собеседование со мной, потому что мои глаза светились интересом, и именно по этой причине меня взяли на работу.Я просто фанат своей работы.
Дмитрий Трофимов
Если вы фанат своей работы, вы можете найти работу, которая вам понравится, и нет необходимости оттачивать свои навыки для конкретной компании. Однако, как лидер довольно большой команды, отмечу еще один навык, без которого совершенно не обойтись.
Научитесь общаться с людьми и находите общий язык. Это, наверное, даже важнее, чем быть крутым техническим экспертом. Человеческий язык несовершенен.Иногда возникают недопонимания, вы должны суметь их разрешить и передать свои идеи партнеру. Это особенно важно в такой большой компании, как WG.
Овчинников Дмитрий
Мой пример показывает, что отсутствие опыта работы с определенной технологией не является препятствием. Существует большая потребность в сосредоточении внимания, общем опыте и понимании того, что происходит. Что касается конкретного языка … Это не ракетостроение, и приходит довольно быстро.
Во-первых, вы получите общее представление о том, как все работает, об общей структуре, архитектуре. Что касается языка, на котором писать… лет через пять он становится не так уж и важен.
Вам нужно больше энтузиазма в том, чем вы занимаетесь. Девиз нашей компании — «Глобально с энтузиазмом». Нам действительно нужна эта страсть. Нам нравятся люди, которые очень заботятся о том, что делают; люди, которым интересно что-то делать; которые не просто «идут на свою работу», но пытаются стать частью более крупной Wargaming, которую мы создаем вместе.
Wargaming всячески старается показать атмосферу WG людям, которые не работают с компанией. Сюда входит публикация интересных постов, фотоотчетов о мероприятиях, проводимых внутри компании или при ее поддержке. Совсем недавно под эгидой FSF прошел первый Белорусский БиКон, в котором Wargaming участвовала в качестве партнера.
Существует также Python Meetup, ежемесячная встреча разработчиков Python, проводимая при поддержке Wargaming. Он предлагает множество плюсов для новичков, хардкорные отчеты от гуру Python и бесценный опыт знакомства с сообществом.
Один день из жизни специалиста по данным
Или небольшой рассказ о том, как мы создаем и обучаем новые алгоритмы машинного обучения для анализа данных в социальных сетях.
В YouScan мы используем технологии искусственного интеллекта и работаем с данными, а поиск и анализ тенденций в социальных сетях выполняются с помощью алгоритмов машинного обучения. Для извлечения ценной информации из данных требуется некоторая предварительная работа. Эту работу обычно выполняет специалист по данным. Мы решили приоткрыть завесу над тем, чем они занимаются, как они работают и как выглядит обычный день жизни специалиста по данным YouScan.
Как видно из названия, основным торговым инструментом для специалистов по данным являются данные. Но не все знают, сколько времени требуется на сбор и сортировку первичных источников данных. Специалисты по обработке данных тратят до 80% своих ресурсов на очистку так называемых «сырых данных» — или груды неструктурированной информации, — которая еще не была обработана или проанализирована.
Современный искусственный интеллект часто называют «слабым ИИ», поскольку он не может адекватно реагировать на неожиданные ситуации и требует специальных циклов обучения для каждой отдельной задачи.
Исторически сложилось так, что все «зимы» ИИ (по сути, плато разработки) были связаны с разочарованием из-за необоснованно завышенных ожиданий со стороны отраслей. Таким образом, после сильного начала разработки ИИ в 1960-х годах многие исследователи верили в возможность разработки роботов с общим интеллектом в течение десятилетий.
Однако сегодня искусственный интеллект дополняет потенциал человеческого познания, а не заменяет его, с помощью набора алгоритмов, специально разработанных для решения сложных проблем.Обучение таких алгоритмов обычно проводят специалисты по данным. Иногда решения просты, когда данные уже отсортированы по категориям — например, по полу и возрасту аудитории. Однако чаще алгоритмам приходится иметь дело с совершенно неорганизованными исходными числами. Специалисты по анализу данных должны находить закономерности в необработанных данных, выдвигать гипотезы и проверять цифры на соответствие этим гипотезам.
Наш отдел обработки данных
В нашем отделе обработки данных работают шесть человек.Все они, конечно, математические ботаники, потому что для успеха в этой области вам нужны хотя бы некоторые базовые знания алгоритмов, теории вероятностей, статистики, количественных методов и немного навыков программирования на Python. Мы наняли наших специалистов по данным довольно спонтанно — встречаясь с ними на конференциях, в профессиональных чатах или по рекомендации — но всегда с учетом их страсти к такой работе. Все они запускали проекты GitHub, активно участвовали в дискуссиях на форумах по data science, а также принимали участие в различных хакатонах, конференциях, конкурсах и т. Д.
Евгений Терпиль — руководитель отдела data science. Он работает специалистом по обработке данных более трех лет и уже написал десятки завершенных моделей, которые могут решить проблемы аналитики социальных сетей. Несколько лет назад Евгений окончил Киевский политехнический институт и начал работать фронтенд-разработчиком. Но наука о данных была его страстью со студенческих времен, и после того, как Евгений устроился на работу в YouScan, он решил полностью сменить специализацию.Между прочим, он считает, что большинство специалистов по данным начинают свою деятельность с разработчиков.
«Вы можете быть специалистом по данным без формального послесреднего образования, но вы должны обладать определенными соответствующими навыками и знаниями в области информатики и математики, и действительно жить и дышать наукой о данных. Таким образом, знание основ информатики в на мой взгляд, дает кандидату много преимуществ. Те, кто стремится к профессиональному развитию, могут пройти специализированные онлайн-курсы, например, на Coursera, или принять участие в соревнованиях на Kaggle, где вы можете протестировать свой код и учиться самостоятельно », — говорит Евгений.«Это отличный вариант для того, чтобы найти свое место на рынке труда, где есть тысячи объявлений о вакансиях DS по России и Российскому Содружеству».
Задачи дата-сайентиста
- Специалисты по обработке данных ежедневно решают сложные задачи. В YouScan они сталкиваются со следующими задачами:
- Обработка данных. Как мы уже упоминали, обработка необработанных данных занимает до 80% рабочего дня специалиста по данным. Если нет надежного способа сортировки данных, они должны быть размечены вручную, или специалист по данным должен создать различные алгоритмы для предварительного анализа и оптимизации разметки.
- Машинное обучение для алгоритмов ИИ. Когда у команды есть обработанный набор данных — например, если мы уже знаем, что 100 сообщений, с которыми мы работаем, содержат позитивные настроения, — специалисты по данным затем тренируют свою модель ИИ, используя эти 100 сообщений. На этом этапе очень важно выбрать правильный алгоритм или обратиться к международному сообществу DS, чтобы помочь написать новый алгоритм. Обучение происходит как с учителем, так и без него. Если мы уже знаем категорию для некоторых данных, в том числе настроения постов в нашем примере, то мы имеем дело с контролируемым обучением.Наша цель — научить ИИ различать категории на основе небольшого набора данных. Однако чаще всего нет доступного набора данных, который можно было бы использовать для обучения. В этом случае вы можете использовать методы обучения без учителя, которые помогают определить структуру данных и сформировать различные кластеры.
- Проверка гипотез. ИИ не может предсказать или самостоятельно решить неизвестные проблемы (по крайней мере, пока). Вот почему специалисты по данным должны сами проверять свои гипотезы.Например, если мы задаемся вопросом: «Неужели пользователи, которые не пользуются всеми дополнительными функциями, оставляют нас?» — специалисты по данным могут проверить эту гипотезу. Такой подход позволяет нам определить, нужно ли тратить время и ресурсы на разработку определенных функций, или вы теряете клиентов по какой-либо другой причине.
- Поиск закономерностей. Помимо гипотез и тестов, специалисты по данным также могут искать закономерности в определенных событиях в широком информационном потоке. Например, вы можете поручить специалисту по анализу данных искать корреляцию между показателем успешности баннера и содержанием баннерной рекламы, и он будет искать любые шаблоны, относящиеся к этому запросу.
Работа специалиста по данным может быть очень творческой. Просто невозможно предсказать все возможные причуды и несоответствия набора данных. Специалистам по данным часто приходится переоценивать модели, проводить многочисленные эксперименты и запускать разные версии алгоритма для сравнения результатов.
- Например, разработка каждой новой функции программного обеспечения разворачивается в следующем порядке:
- Инновационные исследования. Мы стараемся идти в ногу с последними разработками в области программного обеспечения для распознавания изображений или анализа настроений.
- Эксперименты. Если мы найдем новый алгоритм, который окажется эффективным для определения таких вещей, как приблизительный возраст человека на фотографии, мы попытаемся посмотреть, можем ли мы использовать тот же алгоритм для определения пола. Нет гарантии, что он будет работать так, как мы хотим, поэтому нам нужно запускать тесты.
- Прототипирование. Если все предыдущие процессы были завершены успешно, нам нужно сначала создать внутреннюю среду тестирования. На этом этапе специалисты по обработке данных совместно с разработчиками работают над демонстрационной версией новой функции.
- Создание нового продукта. Интеграция новой функции или функции в существующий продукт осуществляется в сотрудничестве с маркетологами, дизайнерами и менеджерами по продуктам. Этот шаг необходим, чтобы убедиться, что новая функция устраняет существующую болевую точку клиента или предоставляет новое решение.
Одной из последних функций, разработанных таким образом нашими специалистами по данным, является функция распознавания логотипов. Теперь мы можем найти упоминания бренда в социальных сетях, даже если в сопроводительном тексте о нем нет упоминания — достаточно, чтобы логотип бренда был виден на фотографиях пользователя.
Анализ настроений
Одна из вещей, которую исследуют наши специалисты по данным, — это анализ настроений в сообщениях в социальных сетях. Существует три типа сантиментов или словесного выражения своего мнения о чем-либо: положительное, нейтральное или отрицательное. Проблема с типом контента, с которым мы работаем, заключается в том, что «живой» контент в социальных сетях может различаться. Выражение положительных или отрицательных чувств может быть незаметным, а когда люди используют сарказм или иронию, все становится еще сложнее.
Кроме того, важно проанализировать контекст сообщения. Например, чистящее средство, которое оставляет вашу посуду чистой и блестящей, — это хорошо, в то время как аналогичный пост о Coca-Cola не так хорош — маловероятно, что производитель напитков хочет ассоциироваться с бытовыми чистящими средствами. Такие тонкости можно решить, используя нейронные сети глубокого обучения с повторяющимися слоями памяти. В этих случаях мы разрабатываем алгоритмы, предназначенные для определения контекста, определения тем и тем обсуждения.
Наша новая модель, основанная на повторяющихся нейронных сетях, лучше понимает мелкие детали упоминания, что помогло нам значительно снизить уровень ошибок при анализе тональности. В этих случаях специалисты по обработке данных несут ответственность за создание богатой обучающей среды, которая может помочь алгоритмам изучить тонкости общения в социальных сетях. Мы обучаем ИИ определять настроения в отношении нескольких категорий брендов с учетом их уникальных требований. Это помогает нам добиться большей точности определения настроений.
Источники вдохновения
Специалисты по данным в YouScan начинают свой день с кофе и легкого чтения — обычно это англоязычные публикации, в которых первыми появляются последние тенденции и новости. Например, наши коллеги находят много полезной информации на Medium и на arxiv.org, который представляет собой электронный архив журнальных статей и рефератов из Корнельского университета. Здесь обычно публикуются все последние тенденции в области науки о данных и машинного обучения.
Российское сообщество специалистов по данным обычно тусуется в канале ODS (Open Data Science) в Slack.В настоящее время в нем около 12 000 членов, и все они помогают друг другу. Наша команда также участвует в группе VK Deep Learning и активно комментирует сообщения о своих областях знаний на Хабрахабре.
Команда YouScan на конференции # AIUkraine2016
V Московский фестиваль данных. Data Fest — крупнейшая конференция, объединяющая исследователей, инженеров и разработчиков, работающих в области науки о данных, машинного обучения и искусственного интеллекта.
Интересно, что большинство научных статей от профильных экспертов имеют открытый исходный код.Например, Google и Facebook предоставляют подробные объяснения своих новых алгоритмов и делают специальные объявления о своих последних моделях обучения ИИ на различных научных конференциях. Это означает, что мы можем как использовать технологии, разработанные лидерами отрасли, так и настраивать их для наших собственных задач, таких как анализ социальных сетей.