Pull to refresh
30
0
Ренат Абясов @Abyasov

Управляю проектами в ML/DL

Send message

Как работает FaceSwap. Часть 2. Разработка от Sber AI

Reading time12 min
Views7.4K

Привет, Хабр!


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


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

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments5

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1

Reading time29 min
Views57K

Всем привет! Я Дмитрий Лунин, работаю аналитиком в команде ценообразования Авито. Наш юнит отвечает за все платные услуги площадки. Наша основная задача — сделать цены на них оптимальными. 

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

Одним из инструментов для решения наших задач является A/B-тестирование.

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments15

Веб-аналитика: Не все цифры одинаково полезны

Reading time5 min
Views22K
Нас всё время спрашивают: какова погрешность сбора данных в Google Analytics? Какому счетчику лучше доверять? Нельзя ли избавиться ото всех несовпадений и получить точные цифры посещаемости?
Мы всегда отвечаем: погрешность обычно около 10%, явного лидера по точности нет, убрать все ошибки невозможно — так уж устроена технология.
Практически никто не понимает, что неточный сбор данных — это не единственная ошибка, влияющая на результат анализа. Даже идеально собранные данные не позволят нам точно подсчитать нужные показатели на сайте (прежде всего, процент конверсии). Собранных данных может быть недостаточно! Это понимает каждый: если на сайт пришли всего 15 посетителей и ни один из них не заполнил форму заявки на кредит, о конверсии говорить рано. Так подсказывает нам здравый смысл; но в какой момент можно сказать, что данных хватает? Ждать ли еще 100 посещений? 200? 500?
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments6

Методы приближенного поиска ближайших соседей

Reading time11 min
Views50K


Довольно часто программисты и специалисты из области data science сталкиваются с задачей поиска похожих профилей пользователей или подбора схожей музыки. Решения могут сводиться к преобразованию объектов в векторную форму и поиску ближайших.


Мы тоже столкнулись с необходимостью поиска ближайших соседей в задаче распознавания лиц. Там мы формируем векторные представления лиц при помощи нейросети и ищем ближайшие векторы уже известных людей. Изначально для поиска мы выбрали Annoy, как хорошо известный и проверенный алгоритм, используемый в том числе в Spotify. Но быстро поняли, что с его аппетитами по памяти мы либо не вмещаемся в RAM, либо сильно теряем в точности. Это привело к небольшому исследованию. О результатах которого пойдет речь ниже.

Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments5

Собираем нейросети. Классификатор животных из мультфильмов. Без данных и за 5 минут. CLIP: Обучение без Обучения + код

Reading time9 min
Views14K

Туториал: Собираем нейронную сеть на примере классификации нарисованных животных в режиме "обучения без обучения".

Цель: Научиться быстро создавать классификаторы для множества задач, без данных и без разметки, используя нейросеть CLIP от OpenAI.

Уровень: Туториал подходит под любой уровень: от нулевого до профи.

Совсем недавно я писал статью про нейронную сеть CLIP от OpenAI — классификатор изображений, решающий практически любую задачу, и который вообще не нужно обучать! Теперь давайте посмотрим, как CLIP работает на практике. Собираем CLIP из рубрики: Разбираем и Собираем Нейронные Сети на примере мультфильмов. На написание кода, и создание готового обученного классификатора у меня, и у любого, даже не знакомого с Python, уйдет именно пять минут. Интересно как? На самом деле все очень просто.

Туториал + Рабочий код: Читай и запускай! Приятного прочтения!

Поехали!
Total votes 16: ↑13 and ↓3+10
Comments18

Что происходит в «Пиковой даме» Пушкина и во что они играют?

Reading time16 min
Views75K


Если коротко — Пушкин открыл жанр «киберспортивной фантастики». Только до появления фантастики и киберспорта. Его одно из самых известных произведений — «Пиковая дама» — это рассказ про мегапопулярную в свете игру в карты с элементами философских вопросов. Попадание в тогдашнюю аудиторию стопроцентное благодаря невероятно простому порогу входа (31 страница текста итого), очень узнаваемым персонажам, невероятной куче пасхалок, сарказму и актуальной теме.

А предыстория такая. Пока мы со школьными группами осенью ездили по Пскову, зарулили в театр. Он во Пскове неожиданно крутой. Ставили как раз Пушкина. Проблема в том, что дети не поняли сюжет и ещё минут 15 обсуждали после спектакля, что же это такое было и кто выиграл или проиграл. Вроде, очевидно, что Германна где-то прокатили, но вот где и как?

Поэтому мы сейчас поговорим про пасхалки «Пиковой дамы», как Пушкин вьехал сапогом в зубы понтёру и немного про математику. Кстати, Александр Сергеевич был тем ещё кутилой, что не совсем вяжется с образом, который дают на литературе в школе. И поскольку вы сейчас, скорее всего, дома, предлагаю прикоснуться к прекрасному.
Читать дальше →
Total votes 219: ↑215 and ↓4+211
Comments69

Что не так с обучением с подкреплением (Reinforcement Learning)?

Reading time21 min
Views54K


Еще в начале 2018 года вышла статья Deep Reinforcement Learning Doesn't Work Yet ("Обучение с подкреплением пока не работает"). Основная претензия которой сводилась к тому, что современные алгоритмы обучения с подкреплением требуют для решения задачи примерно столько же времени, как и обычный случайный поиск.


Изменилось ли что-то с того времени? Нет.


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

Читать дальше →
Total votes 75: ↑72 and ↓3+69
Comments46

LSTM – сети долгой краткосрочной памяти

Reading time8 min
Views207K

Рекуррентные нейронные сети


Люди не начинают думать с чистого листа каждую секунду. Читая этот пост, вы понимаете каждое слово, основываясь на понимании предыдущего слова. Мы не выбрасываем из головы все и не начинаем думать с нуля. Наши мысли обладают постоянством.

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

Решить эту проблемы помогают рекуррентые нейронные сети (Recurrent Neural Networks, RNN). Это сети, содержащие обратные связи и позволяющие сохранять информацию.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments4

Главные достижения в области обработки естественного языка в 2017 году

Reading time10 min
Views20K

Всем привет. Сразу поделим аудиторию на две части — тех, кто любит смотреть видео, и тех, кто, как я, лучше воспринимает тексты. Чтобы не томить первых, запись моего выступления на Дата-Ёлке:



Там есть все основные моменты, но формат выступления не предполагает подробного рассмотрения статей. Любители ссылок и подробных разборов, добро пожаловать под кат.

Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments3

6 привычек проектного бизнеса, которые убивают продуктовый

Reading time9 min
Views20K
Иногда наши рефлексы, вызванные инстинктом самосохранения, могут привести к летальному исходу. Например, когда переходишь дорогу в России, надо посмотреть сначала налево, а потом направо. А в Англии наоборот: сначала направо, затем налево. Если забыть о левостороннем движении — можно попасть под машину.



При переходе от проектного бизнеса (например, веб-студии или компании аутсорсинговой разработки) к продуктовому (разработка и вывод на рынок собственного решения) — происходит то же самое. Сложно избежать привычного подхода к бизнесу. Директор Акселератора ФРИИ Дмитрий Калаев рассказал о шести привычках проектного бизнеса, которые мешают продуктовому расти, а в самых тяжелых случаях — убивают стартап.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments8

Список ресурсов по машинному обучению. Часть 2

Reading time11 min
Views48K


Продолжим (1, 2) рассматривать тему машинного обучения. Вашему вниманию вторая часть (первая тут) адаптированной подборки полезных материалов.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments0

Интересные алгоритмы кластеризации, часть первая: Affinity propagation

Reading time11 min
Views50K
Часть первая — Affinity Propagation
Часть вторая — DBSCAN
Часть третья — кластеризация временных рядов
Часть четвёртая — Self-Organizing Maps (SOM)
Часть пятая — Growing Neural Gas (GNG)

Если вы спросите начинающего аналитика данных, какие он знает методы классификации, вам наверняка перечислят довольно приличный список: статистика, деревья, SVM, нейронные сети… Но если спросить про методы кластеризации, в ответ вы скорее всего получите уверенное «k-means же!» Именно этот золотой молоток рассматривают на всех курсах машинного обучения. Часто дело даже не доходит до его модификаций (k-medians) или связно-графовых методов.

Не то чтобы k-means так уж плох, но его результат почти всегда дёшев и сердит. Есть более совершенные способы кластеризации, но не все знают, какой когда следует применять, и очень немногие понимают, как они работают. Я бы хотел приоткрыть завесу тайны над некоторыми алгоритмами. Начнём с Affinity propagation.

image

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments11

Microsoft и Amazon представили новую библиотеку для машинного обучения — Gluon

Reading time3 min
Views7.6K
На прошлой неделе Amazon Web Services (AWS) и Microsoft представили открытую библиотеку Gluon для машинного обучения. Создатели утверждают, что она позволит разработчикам легко прототипировать и развёртывать сложные модели машинного обучения в облаке.

Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments2

Достижения в глубоком обучении за последний год

Reading time13 min
Views88K

Привет, Хабр. В своей статье я расскажу вам, что интересного произошло в мире машинного обучения за последний год (в основном в Deep Learning). А произошло очень многое, поэтому я остановился на самых, на мой взгляд, зрелищных и/или значимых достижениях. Технические аспекты улучшения архитектур сетей в статье не приводятся. Расширяем кругозор!

Total votes 105: ↑101 and ↓4+97
Comments29

Эффективная многопоточность в Python

Reading time7 min
Views76K
Хочу поделиться простым рецептом, как можно эффективно выполнять большое число http-запросов и других задач ввода-вывода из обычного Питона. Самое правильное, что можно было бы сделать — использовать асинхронные фреймворки вроде Торнадо или gevent. Но иногда этот вариант не подходит, потому что встроить event loop в уже существующий проект проблематично.

В моем случае уже существовало Django-приложение, из которого примерно раз в месяц нужно было выгрузить немного очень мелких файлов на AWS s3. Шло время, количество файлов стало приближаться к 50 тысячам, и выгружать их по очереди стало утомительным. Как известно, s3 не поддерживает множественное обновление за один PUT-запрос, а установленная опытным путем максимальная скорость запросов с сервера ec2 в том же датацентре не превышает 17 в секунду (что очень не мало, кстати). Таким образом, время обновления для 50 тысяч файлов стало приближаться к одному часу.

Питонисты с детства знают, что от использования потоков (тредов операционной системы) нет никакого толка из-за глобального лока интерпретатора. Но немногие догадываются, что как и любой лок, этот время от времени освобождается. В частности, это происходит при операциях ввода-вывода, в том числе и сетевых. А значит, потоки можно использовать для распараллеливания http-запросов — пока один поток ожидает ответа, другой спокойно обрабатывает результат предыдущего или готовит следующий.

Получается, всего-то нужен пул потоков, который будет выполнять запросы. К счастью, такой пул уже написан. Начиная с версии 3.2 для унификации всей асинхронной работы в Питоне появилась библиотека concurrent.futures. Для второй версии Питона есть бекпорт под именем futures. Код до безобразия прост:

from concurrent.futures import ThreadPoolExecutor

with ThreadPoolExecutor(concurrency) as executor:
    for _ in executor.map(upload, queryset):
        pass

Здесь concurrency — число рабочих потоков, upload — функция, выполняющую саму задачу, queryset — итератор объектов, которые по одному будут передаваться в задачу. Уже этот код при concurrency в 150 смог пропихнуть на сервера Амазона ≈450 запросов в секунду.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments12

Интерактивные рекоммендеры: как создавать, как работают

Reading time9 min
Views5.9K
Как строить рекомендательные системы? Какие модели машинного обучения можно применять? Какие проблемы решают интерактивные рекоммендеры, а какие – нет? Какие инструменты могут быть полезны для e-commerce портала? Об этом – в докладе Big Data-инженера ЕРАМ Екатерины Сотенко «Обзор подходов построения интерактивных рекоммендеров», с которым она выступила на самарском ITsubbotnik этой весной. Ниже – видеозапись доклада, еще ниже – его краткое содержание.


Total votes 8: ↑7 and ↓1+6
Comments0

Что читать о нейросетях

Reading time6 min
Views127K


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


Стоит ли изучать нейросети не специалистам в области машинного обучения? Каждый для себя ответит на этот вопрос сам. Мы же посмотрим на ситуацию с другой стороны — что делать разработчикам (и всем остальным), которые хотят больше знать про методы распознавания образов, дискриминантный анализ, методы кластеризации и другие занимательные вещи, но не хотят расходовать на эту задачу лишние ресурсы.


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

Читать дальше →
Total votes 59: ↑58 and ↓1+57
Comments44

Машинное обучение для страховой компании: Реалистичность идеи

Reading time5 min
Views10K
Пятница — отличный день, чтобы что-то начать, например, новый цикл статей по машинному обучению. В первой части команда WaveAccess рассказывает для чего нужно машинное обучение в страховой компании и как они проверяли реалистичность идеи предсказания пиков затрат.


Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments4

Открытый курс машинного обучения. Тема 2: Визуализация данных c Python

Reading time15 min
Views413K

Второе занятие посвящено визуализации данных в Python. Сначала мы посмотрим на основные методы библиотек Seaborn и Plotly, затем поанализируем знакомый нам по первой статье набор данных по оттоку клиентов телеком-оператора и подглядим в n-мерное пространство с помощью алгоритма t-SNE. Есть и видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Сейчас статья уже будет существенно длиннее. Готовы? Поехали!

Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments45
1
23 ...

Information

Rating
Does not participate
Registered
Activity