Как стать автором
Обновить
30
0
Ренат Абясов @Abyasov

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

Отправить сообщение

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

Время на прочтение12 мин
Количество просмотров7.4K

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


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


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

Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии5

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

Время на прочтение29 мин
Количество просмотров57K

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

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

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

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии15

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

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

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

Время на прочтение11 мин
Количество просмотров50K


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


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

Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии5

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

Время на прочтение9 мин
Количество просмотров14K

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

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

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

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

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

Поехали!
Всего голосов 16: ↑13 и ↓3+10
Комментарии18

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

Время на прочтение16 мин
Количество просмотров75K


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

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

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

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

Время на прочтение21 мин
Количество просмотров54K


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


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


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

Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии46

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

Время на прочтение8 мин
Количество просмотров207K

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


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

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

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

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

Время на прочтение10 мин
Количество просмотров20K

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



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

Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии3

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

Время на прочтение9 мин
Количество просмотров20K
Иногда наши рефлексы, вызванные инстинктом самосохранения, могут привести к летальному исходу. Например, когда переходишь дорогу в России, надо посмотреть сначала налево, а потом направо. А в Англии наоборот: сначала направо, затем налево. Если забыть о левостороннем движении — можно попасть под машину.



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

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

Время на прочтение11 мин
Количество просмотров48K


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

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

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

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

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

image

Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии11

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

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

Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии2

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

Время на прочтение13 мин
Количество просмотров88K

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

Всего голосов 105: ↑101 и ↓4+97
Комментарии29

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

Время на прочтение7 мин
Количество просмотров76K
Хочу поделиться простым рецептом, как можно эффективно выполнять большое число 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 запросов в секунду.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии12

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

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


Всего голосов 8: ↑7 и ↓1+6
Комментарии0

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

Время на прочтение6 мин
Количество просмотров127K


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


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


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

Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии44

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

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


Читать дальше →
Всего голосов 22: ↑17 и ↓5+12
Комментарии4

Word2Vec в примерах

Время на прочтение5 мин
Количество просмотров93K
Волею судеб в мои руки попал обученный на поисковых запросах Word2Vec. Под катом даны примеры использования с пояснениями.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии35

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

Время на прочтение15 мин
Количество просмотров413K

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


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


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

Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии45
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность