Pull to refresh
20
Karma
0
Rating
IT-центр МАИ @itmai

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

Hydrosphere — управляем ML как сервисом

OTUS corporate blog Python *Machine learning *DevOps *
Tutorial

Подобно тому, как в мире разработки многокомпонентных систем применяются подходы для управления и мониторинга микросервисами на основе инструментов DevOps (для запуска и восстановления сервисов, передачи данных, наблюдения за распределенными операциями, выполнение замеров и получение операционных метрик), так же и для моделей машинного обучения становится важным обеспечить возможность их развертывания, обновления и наблюдения за метриками (точность модели, время выполнения прямого прохождения нейронной сети и другими). В обобщенном виде такие решения получили названия MLOps и в этой статье мы рассмотрим возможности платформы Hydrosphere 3.0.

Читать далее
Total votes 8: ↑8 and ↓0 +8
Views 1.7K
Comments 0

Self-Supervised Learning. Проблематика и постановка задачи

Machine learning *Artificial Intelligence

В последнее 2-3 года в обучении нейросеток всё больше набирает обороты self-supervised подход. Это мощный инструмент, который позволяет использовать огромные массивы данных, при этом не требуя трудозатратной разметки. Так можно учиться на миллионах или даже миллиардах картинок. Благодаря такому подходу были получены большинство state-of-the-art результатов в последнее время на классических датасетах типа ImageNet.

Это первая статья в цикле, которая рассматривает основные преимущества Self-Supervised Learning (SSL) и общую постановку задачи. Цикл будет посвящён SSL для Computer Vision.

Узнать про SSL
Total votes 18: ↑16 and ↓2 +14
Views 2.4K
Comments 0

Создание архитектуры программы или как проектировать табуретку

Website development *System Analysis and Design *Designing and refactoring *
Sandbox
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →
Total votes 88: ↑85 and ↓3 +82
Views 627K
Comments 45

Проблемы современного машинного обучения

Open Data Science corporate blog Machine learning *Popular science Artificial Intelligence Natural Language Processing *
✏️ Technotext 2021

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

Частой проблемой в машинном обучении является неспособность ML-моделей корректно работать на большем разнообразии примеров, чем те, что встречались при обучении. Здесь идет речь не просто о других примерах (например, тестовых), а о других типах примеров. Например, сеть обучалась на изображениях коровы, в которых чаще всего корова был на фоне травы, а при тестировании требуется корректное распознавание коровы на любом фоне. Почему ML-модели часто не справляются с такой задачей и что с этим делать – мы рассмотрим далее. Работа над этой проблемой важна не только для решения практических задач, но и в целом для дальнейшего развития ИИ.

Читать далее
Total votes 104: ↑103 and ↓1 +102
Views 34K
Comments 26

Как понять, что перед вами плохой разработчик

Хекслет corporate blog Website development *Programming *IT Standards *Development Management *

Мало просто сменить свою сферу работы на IT, желательно еще и стать хорошим разработчиком. Бывший тимлид и консультант Александр Усков рассказывает, как понять, что перед вами плохой разработчик и что с ним вообще можно делать

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

Читать далее
Total votes 301: ↑197 and ↓104 +93
Views 170K
Comments 403

Как уйти с государственной службы и остаться в живых

Personnel Management *IT career

"И как же ты это представляешь? А кто будет за тебя работать? Ты же предаёшь семью" - это первые слова моего руководителя на фразу о возможном уходе.

Здравствуйте, меня зовут Михаил, и я бюджетник. Программист, который смог вырасти от простого джуна-программиста до начальника отдела разработки ИС. К такому долгому карьерному росту я шёл целых 8 лет, благодаря которым я нашёл несколько хороших друзей и приятелей, классный коллектив, да и просто вырос от зеленого студента до руководителя (наверное даже очень неплохого). При этом было много НО. Именно о таких НО и пойдёт речь.

Читать далее
Total votes 318: ↑313 and ↓5 +308
Views 75K
Comments 197

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

Сбер corporate blog Image processing *Machine learning *Artificial Intelligence

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


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


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

Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Views 4.8K
Comments 5

Ансамбли нейронных сетей с PyTorch и Sklearn

Python *Programming *Machine learning *
Tutorial
Sandbox
🔥 Technotext 2020

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


И тут на помощь приходят ансамбли...


Что такое ансамбли


Ансамбль алгоритмов машинного обучения — это использование нескольких (не обязательно разных) моделей вместо одной. То есть сначала мы обучаем каждую модель, а затем объединяем их предсказания. Получается, что наши модели вместе образуют одну более сложную (в плане обобщающей способности — способности "понимать" данные) модель, которую часто называют метамоделью. Чаще всего метамодель обучается уже не на нашей первоначальной выборке данных, а на предсказаниях других моделей. Она как бы учитывает опыт всех моделей, и это позволяет уменьшить ошибки.

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 13K
Comments 6

Компиляция Python

Цифровое проектирование corporate blog High performance *Python *Programming *Compilers *

Предположим, вы разработали приложение или библиотеку на Python и уже готовитесь передать его / её  заказчику. И в этот момент появляются разные вопросы.

Во-первых, к вам прибегает озадаченный проджект-менеджер и говорит: «Мы решили не отдавать исходный код, ведь это наша интеллектуальная собственность. Придумайте что-нибудь, чтобы заказчик был доволен, а мы оставили у себя исходники».

Во-вторых, возникает вопрос окружения - хочется быть уверенным, что заказчик справится с установкой правильной версии Python и всех вспомогательных библиотек, но это не всегда простая задача. Было бы удобно упаковать приложение в автономный исполняемый файл.

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

И вот тут настало время скомпилировать Python-код.

Меня зовут Руслан, я старший разработчик компании «Цифровое проектирование». Сегодня я расскажу, как выбрать тот самый компилятор из множества доступных.

Читать далее
Total votes 10: ↑10 and ↓0 +10
Views 52K
Comments 21

Как нужно обрабатывать изображения, чтобы не расстраивать математику?

twin3d corporate blog Working with 3D-graphics *Algorithms *Image processing *Mathematics *

Мы часто расстраиваем математику, выполняя привычные операции с изображениями — например, когда мы масштабируем их или применяем к ним фильтры. Одним словом — тогда, когда мы производим арифметические операции (+,-,*,/) над значениями цветовых каналов. Обычно это не заметно, но иногда это может доставить неприятности.

Из статьи вы узнаете, почему при решении задач компьютерного зрения (и не только) важно использовать гамма-коррекцию или линейные цветовые пространства. В конце статьи будет показано, как это отражается на задаче 3D-реконструкции человеческих лиц.

Читать далее
Total votes 47: ↑47 and ↓0 +47
Views 12K
Comments 33

Сговор и жульничество в академических кругах

VDSina.ru corporate blog Machine learning *Popular science Artificial Intelligence
Translation

«Он не публиковался» © Mischa Richter

На Хабре много говорилось о проблеме "publish or perish" (публикуйся или умри), фейковых журналах и конференциях, накрутке числа публикаций и индекса цитируемости, фальшивых «соавторах», даже о генераторах псевдонаучных текстов. Но в 2021 году выявилось ещё одно очень неприглядное явление: круговое голосование рецензентов. Когда статьи выбирают не по значимости, а по именам авторов, то это подрывает основы взаимного доверия и цельность всей научной области.

Конечно, тут ничего нового и «все всё знали». Просто нарыв наконец-то вскрылся…

На одной из конференций раскрыли попытку жульничества в системе отбора публикаций. К сожалению, «отличилась» наша отрасль — информатика (computer science).
Читать дальше →
Total votes 89: ↑87 and ↓2 +85
Views 33K
Comments 113

Эволюция методов mesh denoising: от простых фильтров до 3D глубокого обучения

twin3d corporate blog Working with 3D-graphics *Algorithms *Mathematics *Machine learning *

В этой обзорной статье вы узнаете, что такое mesh denoising, какие методы использовались и используются для устранения шума на полигональных сетках (от классических фильтров до передовых графовых нейронных сетей), и получите общее представление о развитии направления.

С помощью технологии трехмерного сканирования можно получить 3D-модель реального объекта. Но знаете ли вы, что почти всегда такие объекты содержат шумы и неточности? В Twin3d мы сканируем людей (и не только) и с помощью фотограмметрии получаем 3D-модели, которые дальше необходимо обрабатывать в зависимости от конечной цели их использования. Естественно, от шумов надо избавляться, чтобы применять виртуальную модель человека в кино/играх/рекламе. Нужно много чего еще делать, но об этом мы поговорим потом.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Views 4.3K
Comments 3

Создание приложений с помощью Mediapipe

Development for Android *Machine learning *TensorFlow *
Sandbox

Сегодня множество сервисов используют в своей работе нейросетевые модели. При этом из-за невысокой производительности клиентских устройств вычисления в большинстве случаев производятся на сервере. Однако производительность смартфонов с каждым годом растет и сейчас становится возможным запуск небольших моделей на клиентских устройствах. Возникает вопрос: как это сделать? Помимо запуска модели требуется выполнять предобработку и постобработку данных. К тому же, есть как минимум две платформы, где это нужно реализовать: android и iOS. Mediapipe — фреймворк для запуска пайплайнов (предобработка данных, запуск (inference) модели, а также постобработка результатов модели) машинного обучения, позволяющий решить описанные выше проблемы и упростить написание кроссплатформенного кода для запуска моделей.


Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Views 12K
Comments 4

Трансформеры как графовые нейронные сети

Data Mining *Machine learning *
Translation
TL;DR: перевод поста Chaitanya Joshi "Transformers are Graph Neural Networks": схемы, формулы, идеи, важные ссылки. Публикуется с любезного разрешения автора.

Друзья-датасаентисты часто задают один и тот же вопрос: графовые нейронные сети (Graph Neural Networks) — прекрасная идея, но были ли у них хоть какие-то настоящие истории успеха? Есть ли у них какие-нибудь полезные на практике приложения?



Можно привести в пример и без того известные варианты — рекомендательные системы в Pinterest, Alibaba и Twitter. Но есть и более хитрая история успеха: штурмом взявшая промышленную обработку естественного языка архитектура Transformer.


В этом посте мне бы хотелось установить связи между графовыми нейронными сетями и трансформерами (Transformers). Мы поговорим об интуитивном обосновании архитектур моделей в NLP- и GNN-сообществах, покажем их связь на языке формул и уравнений и порассуждаем, как оба "мира" могут объединить усилия, чтобы продвинуть прогресс.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 11K
Comments 2

Визуальная теория информации (часть 2)

Mathematics *Machine learning *Statistics in IT
Translation


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

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

Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Views 14K
Comments 0

Первые шаги в визуализации данных с использованием Geopandas и OSM

Python *OpenStreetMap *Data visualization *Popular science
Sandbox

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

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 17K
Comments 18

Занимательная геодезия

Maps API *Yandex API *
Всем привет!
Сегодня я расскажу тебе, %USERNAME%, о башмаках и сургуче, капусте, королях координатах, проекциях, геодезических системах и совсем чуть-чуть о веб-картографии. Устраивайся поудобнее.

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

Вот, казалось бы, простая вещь — географические координаты. Широта и долгота, что может быть проще. А вот представьте, что вы очутились на необитаемом острове. Смартфон утонул, а других средств связи у вас нет. Остаётся только написать письмо с просьбой о помощи и по старинке выбросить его в море в запечатанной бутылке.

Вот только незадача — вы совершенно не знаете, где находится ваш необитаемый остров, а без указания координат никто вас не найдёт, даже если выловит ваше письмо. Что делать? Как определить координаты без GPS?

Об этом и о многом другом - подробнее под катом
Total votes 108: ↑103 and ↓5 +98
Views 93K
Comments 51

Отслеживаем прогресс выполнения в Python

Python *Programming *Interfaces *
Tutorial
Translation

Зачем нужны индикаторы прогресса?


Индикаторы прогресса (progress bar) — визуальное отображение процесса работы. Они избавляют нас от необходимости беспокоиться о том, не завис ли скрипт, дают интуитивное представление о скорости его выполнения и подсказывают, сколько времени осталось до завершения.


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

Читать дальше →
Total votes 43: ↑42 and ↓1 +41
Views 105K
Comments 10

Извилистая геометрия путешествий вокруг света

Entertaining tasks Mathematics *Popular science
Translation

Представьте, что мы живём на кубической планете. Как бы вы искали кратчайший путь для кругосветного путешествия?




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

Но что, если бы мы жили на кубе? Наш мир колебался бы, наши горизонты были бы кривыми, а кратчайший путь было бы гораздо сложнее найти. Возможно, вы не тратите много времени на фантазии о жизни на кубе – однако математики занимаются этим довольно часто. Они изучают вопрос перемещения по поверхностям различных фигур. А недавнее открытие способа прокладки путей по додекаэдру изменило наше представление об объекте, который мы изучали не одну тысячу лет.
Читать дальше →
Total votes 16: ↑11 and ↓5 +6
Views 3.9K
Comments 7

Разница между фальшивыми и истинными смещениями в 3D-графике

Working with 3D-graphics *CGI *
Translation
image

Bump maps (рельефные текстуры), Normal maps (карты нормалей), Displacement и Vector Displacement — вероятно, вы уже сталкивались хотя бы с одним из этих терминов. Несмотря на то, что о них уже есть много информации, похоже, многие путают их различия и последствия использования разных типов карт. В статье я расскажу о том, какие проблемы могут вызывать эти карты.

Все четыре типа текстур имеют одинаковое предназначение — они позволяют добавить на поверхность модели дополнительные детали, используя для этого разные способы. Эти способы можно разделить на две категории, которые я буду называть истинными смещениями (True Displacements) и фальшивыми смещениями (Fake Displacements). Истинные смещения перемещают вершины, а фальшивые стремятся достичь того же внешнего вида без изменения геометрии. Пока я сосредоточусь только на различиях между двумя категориями, а не буду анализировать каждую карту по отдельности.

image

В общем случае, истинные смещения обеспечивают более чёткие результаты, но сильно увеличивают время рендеринга.
Total votes 19: ↑19 and ↓0 +19
Views 14K
Comments 4

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity