Как стать автором
Обновить
30
0
Зиновьев Алексей @zaleslaw

Пользователь

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

opencv4arts: Нарисуй мой город, Винсент

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

OpenCV — библиотека с историей непрерывной разработки в 20 лет. Возраст, когда начинаешь копаться в себе, искать предназначение. Есть ли проекты на ее основе, которые сделали чью-то жизнь лучше, кого-то счастливее? А можешь ли ты сделать это сам? В поисках ответов и желании открыть для себя ранее неизвестные модули OpenCV, хочу собрать приложения, которые "делают красиво" — так, чтобы сначала было "вау" и только потом ты скажешь "о да, это компьютерное зрение".


Право первой статьи получил эксперимент с переносом стилей мировых художников на фотографии. Из статьи вы узнаете, что является сердцем процедуры и об относительно новом OpenCV.js — JavaScript версии библиотеки OpenCV.


Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии6

Математика для Data Science и машинного обучения за 8 месяцев. Подробный план обучения

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров77K

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

Машинное обучение держится на трёх основных столпах:

Читать далее
Всего голосов 24: ↑23 и ↓1+22
Комментарии44

10 первых ошибок в карьере ML-инженера

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров24K

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

Богдан Печёнкин, автор Симулятора ML, собрал 10 ошибок специалистов, которые зачастую встречаются в первые годы карьеры.

Узнать больше
Всего голосов 39: ↑39 и ↓0+39
Комментарии23

Плохие практики разработки, которые до сих пор встречаю в стартапах

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров52K

Привет, я Виктор. Двенадцать лет назад я пришел в веб-студию в Самаре. Так начался мой путь в разработке. У нас не было гита, CI/CD, тестовых стендов и много чего еще. Я видел, как это мешало развитию команды и бизнеса. Приходилось на ощупь собирать грабли, открывать для себя хорошие практики и внедрять их. С тех пор я поработал старшим разработчиком в российском финансовом холдинге и немецком b2b-стартапе. Был тимлидом в фудтех-проекте, СTO в образовательных стартапах для российского и латиноамериканского рынка — и почти везде поначалу натыкался на похожие проблемы. Недавно переехал в Израиль, стал консультировать стартап. И что бы вы думали…

Читать далее 👉
Всего голосов 110: ↑106 и ↓4+102
Комментарии126

Code Completion. Часть 4: обучение модели

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

Хотим поделиться специфическими проблемами, возникшими у нас при обучении модели, и решениями, которые мы для этих проблем придумали.

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

Если при сборе данных мы допустим ошибку, нельзя будет просто заглянуть в код и все понять. Нам придется устраивать целое расследование без всякой гарантии успеха.

Например
Всего голосов 12: ↑12 и ↓0+12
Комментарии9

KotlinDL 0.3: поддержка ONNX, Object Detection API, 20+ новых моделей в ModelHub, и много новых слоев

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

Представляем версию 0.3 библиотеки глубокого обучения KotlinDL!

Вас ждет множество новых фич: новые модели в ModelHub (включая модели для обнаружения объектов и распознавания лиц), возможность дообучать модели распознавания изображений, экспортированные из Keras и PyTorch в ONNX, экспериментальный высокоуровневый API для распознавания изображений и множество новых слоев, добавленных контрибьюторами. Также KotlinDL теперь доступен в Maven Central.

В этой статье мы коснемся самых главных изменений релиза 0.3. Полный список изменений доступен по ссылке.

Узнать больше о релизе
Всего голосов 17: ↑17 и ↓0+17
Комментарии3

Дообучаем готовую нейросеть для классификации данных

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

В прошлой статье мы научились классифицировать данные без разметки с помощью понижения размерности и методов кластеризации. По итогам получили первичную разметку данных и узнали, что это картинки. С такими начальными условиями можно придумать что-то более серьёзное, например, дообучить существующую нейросеть на наши классы, даже если до этого она их никогда не видела. В iFunny на первом уровне модерации мы выделяем три основных класса: 

• approved — картинки идут в раздел collective (развлекательный контент и мемы);
• not suitable — не попадают в общую ленту, но остаются в ленте пользователя (селфи, пейзажи и другие);
• risked — получают бан и удаляются из приложения (расизм, порнография, расчленёнка и всё, что попадает под определение «противоправный контент»).

Сегодня расскажу на наглядных примерах, как мы перестраивали модель под наши классы, обучали её и выделяли паттерны распознавания картинок. Технические подробности — под катом.

Читать далее
Всего голосов 49: ↑48 и ↓1+47
Комментарии0

Геоанализ этажности Санкт-Петербурга алгоритмом KDE, или Как меняется облик города

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

Всем привет, меня зовут Максим Шаланкин, в Ситимобил я занимаюсь машинным обучением. Мы используем множество крутых алгоритмов для оптимизации наших сервисов и улучшения бизнес-процессов. В этой публикации я расскажу, как использовать в геоаналитике алгоритм ядерной оценки плотности (Kernel Density Estimation) и строить полигоны на карте, основываясь на распределении географических данных.

Врууум
Всего голосов 30: ↑28 и ↓2+26
Комментарии3

Вычисляем на видеокартах. Технология OpenCL. Часть 1a. Как работает OpenCL

Время на прочтение7 мин
Количество просмотров13K
22 июня автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов провёл вебинар «Вычисляем на видеокартах. Технология OpenCL».



Мы подготовили для вас его текстовую версию, для удобства разбив её на смысловые блоки.

0. Зачем мы здесь собрались. Краткая история GPGPU.
1a. Как работает OpenCL.
1b. Пишем для OpenCL.
2. Алгоритмы в условиях массового параллелизма.
3. Сравнение технологий.

Мы обещали, что разберём написание полноценной программы уже в этой части, но материала оказалось слишком много, и мы разбили эту часть надвое. В первой половине расскажем про основные принципы, которые должен знать каждый OpenCL-разработчик, а во второй напишем программу.

Есть мнение, что для написания эффективного кода для GPU программист обязан понимать архитектуру видеокарты. И это мнение не чьё-нибудь там, а NVIDIA (см. Лекции NVIDIA по GPGPU). Не будем спорить и разберём базовые принципы работы видеокарты.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии9

Code Completion. Часть 3: где взять данные для обучения?

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

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

Машине, как и человеку, для обучения нужны данные. Мы используем подход «обучение с учителем». Он предполагает, что мы показываем алгоритму примеры задач, для которых нам заранее известно правильное решение. Алгоритм извлекает из этих примеров закономерности и учится принимать правильные решения даже в тех ситуациях, которых он раньше не видел.

Результат обучения критическим образом зависит от качества и объема этих примеров. И именно здесь у нас возникают трудности.

С одной стороны, собирать базу на основе кода наших пользователей нельзя: результат вашего труда остается только у вас, на серверы JetBrains он не попадает.

С другой стороны, из доступных репозиториев с открытым кодом полноценный датасет собрать не получается. Делая так, мы обучали бы алгоритм работать только с готовым (рабочим) кодом.

Сегодня обсудим, как мы выкручиваемся из этой ситуации. Для начала давайте более подробно рассмотрим, почему не получается работать с готовыми репозиториями.

А потому что они «готовые»
Всего голосов 14: ↑13 и ↓1+12
Комментарии0

Как я запускал классификацию изображений на домашнем кластере Apache Ignite ML

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

Я - студент университета, знаком с машинным обучением в рамках пройденного курса, есть интерес к современным кластерным технологиям, конкретно - к Apache Ignite. Под катом — история о том, как я запускал пример OneVsRestClassificationExample из дистрибутива.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии4

Собственная методология разработки R&D-проектов в AI, от идеи до создания

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

Разработка R&D-проектов в сферах машинного обучения и искусственного интеллекта — задача, к которой следует подходить основательно, используя эффективную и проверенную схему работы. Рассказываем, какую методологию использует команда MIL team (среди клиентов — Huawei, Сбербанк, Ростелеком и другие) и как здесь помогут решения от Selectel.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии2

Нейросети против пылесоса, или Как мы убрали лишний шум в звонках ВКонтакте

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

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

Читать далее
Всего голосов 30: ↑30 и ↓0+30
Комментарии16

Об украинских и русских гласных

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

Одно из самых заметных отличий украинского языка от русского — гласный [і] на месте дореволюционного ятя и в тех словах, где в русском [о]: двір, дім, сільрадість и т. п. Это отличие настолько характерно, что стереотипным «плохим украинским» в юморесках стал русский с заменой [о] на [і]: «кровосісі» и т. п. При этом в других, внешне похожих словах — русскому [о] соответствует [о] и в украинском: кров, рот, сон, голос, ворон и т. п. В чём же разница между этими двумя группами слов? Статья «Икавизм» в русской Википедии предельно лаконична: «переход звуков [ě] (ять), [o], [е], [у], при их нахождении в закрытом слоге, в звук [i]» — хотя и во второй группе слоги закрытые.

Считается, что в праславянском языке было четыре кратких гласных [е о ъ ь], пять долгих [а и у ы ѣ] и действовал закон открытого слога, в соответствии с которым все слоги обязаны завершаться гласным: *дво.ръ, *до.мъ, *со.ль, *ра.до.сть, *кръ.вь, *ръ.тъ, *съ.нъ, *го͡л.съ, *во͡р.нъ. Около 7 в. дифтонги [о͡л] и [о͡р] распались, и закон открытого слога потребовал исправить ситуацию: в древнерусском получились го.ло.съ и во.ро.нъ, в западно- и южнославянских языках (включая церковнославянский) — гла.съ и вра.нъ. Затем в 11–13 вв. произошло падение редуцированных: нечётные [ъ] и [ь], считая от конца слова, исчезли, а чётные понизились до [о] и [е] соответственно: сон, во‿сне ← *съ2нъ1, *въ2‿съ1нѣ. Беглый [о], получившийся из древнерусского [ъ], соответствует [о] и в украинском. Дополнительный признак такого [о] — соответствие [e] в западнославянских языках, например в чешском: krev, ret, sen. В отдельных случаях этот гласный небеглый в русском, но беглый в других языках: в крови, v krvi [ˈfkr̩.vɪ] ← *въ кръве. Второй случай, когда русскому [о] соответствует [о] и в украинском, — полногласные сочетания оро и оло, дополнительный признак которых — неполногласные соответствия в других языках: голос ворон, hlas vran ← *голсъ ворнъ.

Читать далее
Всего голосов 51: ↑43 и ↓8+35
Комментарии131

Обзор плагина Big Data Tools

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

Храните файлы в облачных файловых системах или, может быть, используете Hadoop, Spark и Zeppelin? А пробовали ли вы работать с ними напрямую из IDE?

Привет, меня зовут Олег, я из команды плагина Big Data Tools. В этой статье мы поговорим, зачем этот плагин нужен, как применяется и где его достать. За последний год плагин прошёл большой путь и из экспериментального продукта превратился в боевое решение, на которое стоит взглянуть специалистам по Big Data.

В JetBrains мы создаем IDE и другие инструменты, которые делают жизнь разработчиков лучше. Big Data Tools — это очень узкоспециализированный, редкоземельный плагин, который предназначен для конкретного вида разработчиков — для дата-инженеров.

Если вам интересно подробней узнать о мире Big Data и работе дата-инженеров, рекомендую развернутую серию статей Паши Финкельштейна. Здесь мы рассмотрим одну из самых популярных схем.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии11

Как Яндекс применил генеративные нейросети для поиска ответов

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


Только что мы представили новую версию поиска Y1. Она включает в себя комплекс технологических изменений. В том числе улучшения в ранжировании за счёт более глубокого применения трансформеров. Подробнее об этом направлении мой коллега Саша Готманов уже рассказывал в нашем блоге. В новой версии модель стала мощнее: количество параметров возросло в 4 раза. Но сегодня мы поговорим о других изменениях.

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

Сегодня мы поделимся опытом создания и внедрения технологии YaLM (Yet another Language Model), которая теперь готовит ответы для Поиска и Алисы. В этом мне помогут её создатели — Алексей Петров petrovlesha и Николай Зинов nzinov. Эта история основана на их докладе с Data Fest 2021 и описывает опыт внедрения модели в реальные продукты, поэтому будет полезна и другим специалистам в области NLP. Передаю слово Алексею и Николаю.

Всего голосов 70: ↑68 и ↓2+66
Комментарии18

Практические методы оптимизации запросов в Apache Spark

Время на прочтение13 мин
Количество просмотров8.9K
После вводной статьи про Spark Shell мне хотелось бы рассмотреть некоторые приемы оптимизации запросов в Spark и Hive, и сравнить их с теми, что обычно применяются в классических СУБД типа Oracle или MS SQL.

Базовая модель данных


Рассмотрим разные техники на базе известной всем модели библиотеки. И так, у нас есть книги, они разложены по полкам в шкафах. Шкафы пронумерованы, если библиотека большая — то к шкафу еще прилагается и номер комнаты. Книги разложены в определенном порядке, это «физический» порядок, его можно поменять — но это сложно и долго. Даже если у нас «всего лишь» такая библиотека, как у российских императоров:


А тем более если такая, как в Тринити колледже в Дублине:


Кроме этого, у нас есть каталожные шкафы, где размещены карточки книг. Карточки разложены в логическом порядке, и этих порядков может быть больше одного. Например, алфавитный порядок по названию книги, алфавитный порядок по фамилии автора (авторов и названий бывает несколько, например русское и английское названия), возможно еще какой-то тематический порядок (в жизни бывает редко, так как в оффлайн библиотеке поддерживать даже два порядка уже сложно).
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии7

KotlinDL 0.2: Functional API, зоопарк моделей c ResNet и MobileNet, DSL для обработки изображений

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

Представляем вам версию 0.2 библиотеки KotlinDL. Это библиотека глубокого обучения, где для низкоуровневых вычислений используется TensorFlow, но с высокоуровневым API и логикой, написанными на Kotlin.

KotlinDL 0.2 теперь доступен на Maven Central (до этого он лежал на bintray, но закатилось солнышко земли опенсорсной). Появилось столько всего нового: новые слои, специальный DSL для препроцессинга изображений, новые типы датасетов, зоопарк моделей с несколькими моделями из семейства ResNet, MobileNet и старой доброй моделью VGG (рабочая лошадка, впрочем).

В этой статье мы коснемся самых главных изменений релиза 0.2. Полный список изменений доступен по ссылке.

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

Глубокое обучение на Kotlin: альфа-версия KotlinDL

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

Привет, друзья!Сегодня мы расскажем о первой предварительной версии KotlinDL (v.0.1.0) — высокоуровневого фреймворка для глубокого обучения, похожего на Keras, но написанного на Kotlin. В нем есть простые API для создания, тренировки и развертывания моделей глубокого обучения в среде JVM. Высокоуровневые API и точно настроенные параметры позволяют быстро приступить к работе с KotlinDL. Для создания и обучения своей первой нейронной сети вам достаточно написать всего несколько строк на Kotlin:

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

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

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

Разбираемся, как на самом деле считаются суммы и проценты в клиентском приложении.

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

Узнаём, сколько комиссий и налогов с нас уже содрали и что нам останется при выводе.

Пытаемся понять, что нам с этим делать.

Read more
Всего голосов 158: ↑155 и ↓3+152
Комментарии112
1
23 ...

Информация

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