Русский
Русский
English
Статистика
Реклама

Соревнования

Перевод Дата-сайентист, который просто не может перестать выигрывать на Kaggle

24.01.2021 16:23:06 | Автор: admin
Ранее у нас в блоге уже был материал про лучших в Kaggle, а сегодня представляю вам интервью с признанным дата-сайентистом и гроссмейстером Kaggle Филиппом Сингером, который поделится своим опытом, вдохновением и и достижениями. Беседа призвана мотивировать и воодушевить других людей, которые хотят понять, что нужно, чтобы стать гроссмейстером Kaggle. Также в этом интервью мы узнаем больше об академическом прошлом Филиппа, его увлечении Kaggle и о его работе в качестве дата-сайентиста.




Филипп, в мире Kaggle более известный как Psi, стал кандидатом наук, получил диплом с отличием в области информатики в Техническом университете Граца, а также получил степень магистра в области разработки программного обеспечения и управления бизнесом. У Филиппа несколько достижений, в том числе многократные победы и высшие места на Kaggle, несколько научных наград, в том числе за лучшую работу на знаменитой Всемирной веб-конференции.

В настоящее время он занимает третье место в мире в рейтинге соревнований Kaggle. Это одновременно впечатляет и вдохновляет. Одно из самых заметных достижений Филиппа победа на Втором ежегодном турнире по большим данным NFL вместе с другим дата-сайентистом H2O.ai Дмитрием Гордеевым.

Более 2000 дата-сайентистов со всего мира соревновались на Kaggle, чтобы спрогнозировать результаты стремительной игры. Филипп Сингер и Дмитрий Гордеев получили главный приз 50 000 долларов США за их подход к задаче.


Победители конкурса Big Data Bowl 20192020 Филипп Сингер и Дмитрий Гордеев (сзади) выступают в Индианаполисе.

У вас есть докторская степень в области компьютерных наук. Почему вы в качестве карьеры выбрали науку о данных, а не занимались научными исследованиями?


Филипп: Я получил степень доктора философии [кандидата наук] компьютерных наук в Техническом университете Граца в Австрии и был занят в исследованиях в Германии. За время своей научной карьеры я затронул множество разных тем в области науки о данных и опубликовал множество научных работ и статей на известных конференциях и в журналах. После я должен был стать профессором, это интриговало меня. Однако, хотя я люблю преподавать, я хотел углубиться в более прикладную работу, то есть хотел, чтобы моя работа имела большее влияние, чем то влияние, которое возможно в исследованиях. Это побудило меня заняться наукой о данных в качестве карьеры. Надо сказать, я до конца насладился докторской степенью и многому научился, но теперь я также рад быть в авангарде науки о данных и машинного обучения, играть по-настоящему важную роль в H2O.ai.

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



Профиль Филиппа на Kaggle

Филипп: Я зарегистрировался на Kaggle около восьми лет назад, когда начал работу в качестве доктора философии, потому что слышал о платформе и хотел её проверить. Но я сделал всего лишь образец задачи и шесть лет больше не прикасался к Kaggle. Около двух лет назад мы с Дмитрием (dott1718 на Kaggle, а теперь коллегой по работе) решили вместе попробовать посоревноваться на Kaggle, это был сайд-проект на работе. Мы ничего не ждали, но в итоге выиграли соревнование. Победа зацепила меня, с этого момента начался мой путь на Kaggle. На Kaggle мой подход всегда заключался в том, чтобы решать новые типы проблем, так я сохраняю мотивацию. Есть ещё новые интересные проблемы, которые нужно решать правильно. Кроме того, мне нравится встречаться и работать с талантливыми людьми на Kaggle, и я вижу, к чему стремится сообщество.

В последнее время вы уничтожили таблицу лидеров Kaggle, добились впечатляющих результатов, последний из которых первое место на NFL и второе в Future Impact Detection. Как вы подходите к решению таких проблем, как идёте так хорошо?


Филипп: Люди часто спрашивают меня, как выиграть соревнования Kaggle; я не думаю, что есть какой-то секретный соус, чтобы побеждать везде. Большой успех на Kaggle основывается на опыте, желании прикоснуться к чему-то новому, о чём, на первый взгляд, вы мало что знаете. Со временем я собрал особый универсальный набор инструментов, который содержит строительные блоки каждого соревнования, в котором я участвовал. Например, я понимаю, как правильно настроить кросс-валидацию, какие библиотеки задействовать в моделях, как правильно подбирать модели, отслеживать их производительность и т. п. Так что у меня освобождается больше времени, чтобы сосредоточиться на новых для меня и важных аспектах недавних соревнований. после каждого соревнования я всегда стараюсь улучшить свой рабочий процесс, чтобы повысить эффективность и способность конкурировать с соперниками.

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

Как вы решаете, в каких соревнованиях участвовать?




Лучшие достижения Филиппа на Kaggle

Филипп: Я в основном пытаюсь решать новые типы задач или участвовать в соревнованиях, которые кажутся интересными в отношении данных или проблемы, которую нужно решить. Иногда я испытываю удачу в более стандартных соревнованиях, чтобы понимать состояние искусства Data Science, которое меняется каждую неделю.

Как вы обычно подходите к задаче на Kaggle? Есть ли какие-нибудь любимые ресурсы по ML (массовые открытые онлайн-курсы, блоги и т. д.), которыми вы хотите поделиться с сообществом?


Филипп: Я стараюсь прибегать к уже накопленному мной арсеналу методов, инструментов и опыта, а затем пытаюсь исследовать конкретную проблему. Это означает, что я изучаю предыдущие решения аналогичных проблем на Kaggle и читаю соответствующие статьи. Лучший способ изучить проблему учиться на практике.

В каких конкретных областях вы работаете как дата-сайентист в H2O.ai?



Филипп и другие гроссмейстеры Kaggle на H2O.ai

Филипп: Моя роль в H2O.ai очень многогранна. Я регулярно участвую в проектах, ориентированных на клиентов, и моя задача опираясь на опыт, поддерживать проекты в области Data Science. Кроме того, будучи гроссмейстерами Kaggle, мы всегда стараемся использовать наш опыт и знания о последних достижениях, чтобы постоянно улучшать наши продукты и разрабатывать новые передовые прототипы и решения. Это означает, например, что мы предлагаем новые функции в Driverless AI, разрабатываем приложения ИИ в Wave , демонстрируя новые методы и весь конвейер решений Data Science.

Расскажите о лучшем из того, что вы узнали на Kaggle и применяете в работе на H2O.ai?


Филипп: На Kaggle вы узнаете, как создавать надёжные модели, которые хорошо обобщаются и не слишком подвержены переобучению. На Kaggle это важно, потому что вам нужно хорошо работать с невидимыми, закрытыми данными. Это означает, что вы многое узнаете о надёжной перекрёстной проверке и о других аспектах данных, таких как сдвиги в распределении функций, или некоторые других важных аспектах. Я могу хорошо приспособить эти знания в своей работе на H2O.ai, поскольку они также являются неотъемлемой частью наших продуктов. Опираясь на наш опыт и знания, мы хотим, чтобы ML наших клиентов было надёжным.

Область Data Science стремительно развивается. Как вам удается быть в курсе всех последних событий?


Филипп: Чтобы быть в курсе последних событий, я в основном использую Kaggle; это отличный фильтр новых методов, которые либо работают с практическими и прикладными проблемами, либо не работают. Обычно надёжные методы выживают, а ненадёжные методы, которые работают лишь от случая к случаю, отфильтровываются. В то же время я слежу за известными исследователями и практиками в Твиттере и на других платформах.

Есть ли какие-то конкретные области или проблемы, в которых вы хотели бы применить свой опыт в области машинного обучения?




Филипп выступает на встрече Vienna Data Science Group 9 января 2020 г.

Филипп: Я не держу в голове ничего конкретного; обычно я стараюсь удивляться интересным проблемам, которые возникают либо на работе, либо в Kaggle. Очень важно вникать в проблемы, которые на первый взгляд не кажутся вам интересными. Можно объективно взглянуть на проблему и, вероятно, обратиться к опыту, который вы приобрели решая другие проблемы, к тем данным, что у вас есть.

Несколько советов претендентам в Data Science и Kaggle, которые только начали или хотят начать свой путь в Data Science.


Филипп: Запачкайте руки, не бойтесь потерпеть неудачу и всегда стремитесь узнавать новое.

Путь Филиппа на Kaggle был весьма примечательным. Я уверен, что его путь, преданность делу и достижения станут источником вдохновения для тех, кто уже работает или пытается сделать карьеру в Data Science.



image



Подробнее..

Контур стал организатором ICFPC 2020

07.07.2020 10:10:24 | Автор: admin

Ничего не планируйте с 17 по 20 июля, потому что в это время пройдет ежегодное международное соревнование ICFPC 2020. Собирайте команду и трое суток решайте секретную задачу от Контура. Чтобы быть в курсе всех новостей, получать подсказки и не пропустить регистрацию, подписывайтесь на Твиттер.


15 лет команда Контура участвовала в соревновании, а в этом году нас пригласили провести ICFPC 2020. Мы первая команда из России, которой доверили организацию, и это очень круто! Какую задачу мы приготовили пока секрет. Все участники узнают ее условия одновременно 17 июля, но уже сейчас в Твиттере можно увидеть некоторые спойлеры.




Почему нужно участвовать в ICFPC 2020


ICFPC командное соревнование. Соревнований для одиночек много: например, Facebook Hacker Cup и Google Code Jam. Если вам нравятся AI для игр, то codingame.com проводят отличные челенджи раз в 2-3 месяца. В одиночных соревнованиях топ обычно забит какими-то гениями, а в командных можно хорошо выступить за счет упорства и хорошей организации.


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


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


Задачи небанальные. Организатор соревнования меняется каждый год и старается превзойти предыдущего, поэтому задачи год от года становятся все интереснее. Обычно это университет, поэтому они добавляют в задачи отсылки к научным проблемам и классике computer science. Кроме того, ICFPC приурочен к научной конференции по функциональному программированию ICFP, и это влияет на задачи. Через раз приходится читать описания на функциональном псевдоязыке (не бойтесь, понятном для обывателей!), а потом программировать виртуальные машины и компиляторы.


Задача одна! За 72 часа команда неограниченного размера должна решить всего одну задачу. Но многогранную и трудную. Её нельзя решить оптимально, но можно решить лучше других команд. Самыми необычными и яркими задачами считаются задачи 2006 и 2007 годов, в которых балом правили виртуальные машины внутри виртуальных машин и а также реверс-инжениринг виртуальных машин.


Про некоторые задачи прошлых лет мы уже писали на Хабре. Если вы участвуете впервые, обязательно посмотрите текст green_hippo. Там Игорь рассказывает, как подготовиться, что посмотреть и послушать, чтобы набраться опыта и вдохновиться.


Подробности соревнования появляются в Твиттере. Там же скоро появится ссылка на регистрацию.


Желаем удачи!

Подробнее..

Пан или пропант. Роснефть интригует программистов

13.08.2020 10:12:29 | Автор: admin
image
Этой осенью Роснефть организует открытый марафон ИТ-соревнований для программистов. Марафон пройдёт с сентября по ноябрь. Магическое число этого ивента 3: 3 соревнования, 3 задачи, 3 победителя в каждом из конкурсов и 3 призовых фонда.


Итак, в нашем меню для гурманов Хабра: Хакатон трёх городов по машинному обучению, Хакатон для программистов-робототехников и Rosneft Proppant Check Challenge. Машинного обучения, роботов и пропанта хватит на всех!

Стать участниками ИТ-марафона может айтишная братия, достигшая совершеннолетия (18+). Ставим на студентов техвузов, аспирантов, молодых спецов и иже с ними. Регистрация на соревнования уже идёт полным ходом на сайте.

image

По порядку. Хакатон трёх городов по машинному обучению пройдёт 24-25 сентября одновременно в трёх городах: в Уфе, Казани и Самаре. Нашей талантливой молодёжи предстоит разработать алгоритм для построения пути движения на сложной поверхности. Похожие задачи возникают во многих прикладных областях, связанных с геологией, сейсморазведкой, трубопроводным транспортом и нефтепереработкой. Приз за самое оперативное и качественное решение 289 000 рублей*.

Хакатон для программистов-робототехников пройдёт 16-17 октября в Уфе на базе УГАТУ. Задача подразумевает техническое творчество: необходимо разработать роботизированное решение для выполнения операции, связанной с текущей производственной деятельностью по обслуживанию технологического оборудования. При этом мы вооружим участников настоящим роботом-манипулятором и трудолюбивым 3D-принтером. Призовой фонд для любителей роботов 139 000 рублей*.

image

Завершающим мероприятием ИТ-марафона станет международное соревнование Rosneft Proppant Check Challenge, которое стартует в сентябре как для опытных ИТ-специалистов, так и для начинающих (не только из России, но и за пределами нашей необъятной страны). Задача очень серьёзная: определение распределения линейных размеров зёрен пропанта по серии фотографий. В идеале получить уникальный алгоритм для определения характеристик пропанта по фотографии без каких-либо лабораторных исследований. Естественно, целью не является замена исследований как таковых, но в обозримом будущем реализованный алгоритм может быть применен как онлайн метод проверки качества пропанта на линиях производства, что повысит уровень контроля качества выпускаемой продукции. Тут придётся выложиться по максимуму. Но и призовой фонд весьма достойный 1 142 000 рублей*.
* До уплаты налогов
image

Финал ИТ-марафона состоится 28 ноября (дата предварительная) в Москве, где будут подведены итоги Rosneft Proppant Check Challenge, и куда мы пригласим победителей всех трёх хакатонов.

Кого точно не будет в марафоне Роснефти, так это проигравших: участие в масштабном мероприятии нефтяного лидера позволит молодым и амбициозным айтишникам оценить свои возможности на рынке, добавить веса своему резюме, стать претендентами на будущие вакансии и найти единомышленников для обмена знаниями и совместных проектов. Цифровые месторождения, робототехника, программное обеспечение, 3D-технологии, искусственный интеллект всё это, понятное дело, возможно не само по себе. Новую реальность, в том числе для нефтегаза, создают уникальные люди с их уникальными мозгами. Чтобы привлечь внимание этих гениев, надо заинтересовать и вовлечь их в решение действительно важных задач, которые будут впоследствии внедрены на практике.

ИТ-марафон Роснефти это не светские мероприятия для ИТ-специалистов и не ярмарка тщеславия. Это действующий инструмент получения лучших идей и алгоритмов, необходимых для совершенствования существующего наукоёмкого программного обеспечения нефтяной компании.

image

Например, подходы победителей прошлогоднего соревнования Rosneft Seismic Challenge уже подготовлены в виде пилотной версии для промышленного внедрения в сейсмическую часть корпоративного ПО Роснефти. Это ПО позволит автоматизировать огромное количество ручных операций интерпретаторов сейсмических данных, а значит, мы сможем более эффективно распоряжаться интеллектуальными ресурсами, так как появится больше времени для анализа и понимания особенностей геологического строения объекта сейсмосъёмки, что пока машинам недоступно.

Кстати, если вы пропустили прошлогоднюю сейсмическую феерию Роснефти, то по ссылке ролик с финала Rosneft Seismic Challenge.

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

Нам нужны специалисты с нестандартным мышлением, способные решать серьёзные и нестандартные задачи. Вы именно такой(ая)? Тогда бегом к нам.

image

P. S. По этой ссылке источник вдохновения для будущих участников ИТ-марафона видеопожелания финалистов прошлогоднего Rosneft Seismic Challenge
Подробнее..

О талантах, деньгах и алгоритмах сжатия данных

30.10.2020 10:10:09 | Автор: admin


Алгоритмы сжатия это очень коварная тема, привлекающая многих новичков. Это правда! Часто человеку кажется, что его осенила божественная идея, как сильно сжать данные. Любые, кстати! Без потерь! Рекурсивно! А поскольку данные это хранение информации и передача, то если хотя бы на единицы процентов результат улучшить это миллиарды долларов (смотрим экономию всех провайдеров на передаче и хранении, всех дата-центров компаний, всех домашних пользователей, перемножаем аж дух захватывает)! И люди пишут письма:
Обращаюсь к вам, как создателю и демиургу проекта ;) compression. Мной придуман алгоритм, основанный на простом рассуждении если файл условно несжимаемый, есть вероятность что, часть файла имеет избыточность и файл можно сжать частично.
Обращаюсь к Вам, как к одному из главных специалистов в области сжатия информации. Предлагаю Вам ознакомиться с изобретением в области сжатия информации. [...] По мнению автора, основным достоинством данного Способа кодирования информации является способность одинаково хорошо сжимать без потери качества информацию любого типа (видео, аудио, текст, архив и т.д.). Помимо этого Способ позволяет проводить процесс кодирования (сжатия) повторно....

Бывает даже так:
Мне, для начала, нужно 3060 минут общения с Вами по Скайпу.
Вопрос: каково Ваше вознаграждение и куда его отправить?

И если вы думаете, что обращения типа последнего мои любимые, то реакция ровно обратная (Боже, дай мне терпения!). Ибо по опыту в последнем случае люди наиболее настойчивые Кстати, это могут быть не только авторы, но и инвесторы, о которых ниже тоже будет.

Кому интересно, в чем же таки коварство алгоритмов, есть ли у нас таланты, и где же, наконец, деньги добро пожаловать под кат! (Талантливые авторы алгоритмов могут сразу переходить в раздел Про деньги).



Disclaimer 1: Любые совпадения в тексте с реальными лицами и фактами являются абсолютно случайными!
Disclaimer 2: Автор съел на этой теме несколько корейских невкусных собак, но так и не стал считать себя в ней истиной в последней инстанции!


Когда-то давно я имел неосторожность организовать команду из 4-х человек, и мы вместе написали книжку по алгоритмам сжатия, где много подходов разобрали. С тех пор идет довольно стабильный поток подобных писем. Настоящая жемчужина была этой весной. Пока люди страдали от ковида, человек написал очень прикольный текст про свой будущий архиватор. Зацените концовку (орфография во всех цитатах авторская):
И когда компрессор ******- будет создан Тогда Тогда
Да развергнутся Небеса.
И сойдёт на создателя сего творения Благодать, которая наполнит его Чашу богоугодным напитком,
Который опьянит его рассудок. И разольётся тепло по всей периферии, по всем жилам, согревая утомлённое от трудов, его бренное тело
И тогда сожмётся несжимаемый файл.
И тогда все скажут: О, чудо! И сильно удивятся, и начнут кричать: Ура! И начнут кидать вверх запонки, туфли, галстуки, лифчики
А потом выползет на пронизывающий свет брюзглявый скептик
Откроет один зашореный глаз, и пробубнит: Этого не может быть, так не бывает, у меня в книжке написано
.
А скромный создатель ******, снисходительно улыбнётся. Зачем ему доказывать что-то, когда его Чаша наполнена, а Душа преисполнена
удовлетворённостью от выполненного дела

Боже, как поэтично! Особенно про несжимаемый файл, подброшенные лифчики и брюзглявого скептика, написавшего книжку! Волшебно! Я давно так не смеялся. Причем автор жег и дальше:
А для военных, это вообще находка. И сложно представить, сколько фильмов можно будет записать на одну флэшку. ТВ, интернет, телефон всё по двум проводам в дом. А оптоволокно будут использовать для новогодних гирлянд и магазинных вывесок. Мы живём в удивительное время, когда всё меняется. А России нужен технологический скачок.

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

О неправоте старика Шеннона


Писем таких много. Вот, например, человек теорему Шеннона поминает, но, похоже, не разбирался с ее доказательством:
Просмотрите pls не так бегло ;) Сравнение с Zip только для широкого круга читателей. Прямое сравнение с Арифметическим кодированием встречается в неск. местах. И да: я понимаю, что значит противоречит теореме Шеннона, именно это я и показываю НА ПРАКТИКЕ! Возможный по p*log(p) предел кодирования **** его превосходит! (в отдельных случаях)
Это не шутка.

Или вот:
И все бы хорошо, но **** действительно обеспечивает лучшее сжатие, т.е. поправить надо бы в консерватории Шеннона

А эти ребята даже стартап создали:
Мы создаём алгоритм сжатия данных, очень интересно было бы с вами пообщаться. [...] Мы начали разрабатывать алгоритм сжатия данных в конце 2017 года. ************ (второй сооснователь) придумал как сжимать любые данные в несколько раз. С технической точки зрения он лучше меня сможет объяснить, я занимаюсь продвижением.

Вежливо замечу, что если человек действительно напишет программу, которая ЛЮБЕ данные сожмет В НЕСКОЛЬКО РАЗ, то ему не нужен продвиженец, он может прямо сейчас начать хорошо зарабатывать. И я обязательно расскажу как.

Характерно, что многие присланные изобретенные способы позволяют проводить процесс кодирования (сжатия) повторно, давая возможность в итоге в несколько итераций успешно сжать даже несжимаемые файлы, что специально подчеркивается авторами. Аллилуйя!!!

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

Впрочем, для любого программиста совершенно очевидно, что в наш информационный век современный философский камень это сжатие несжимаемых данных. И неважно, что для чего-то там что-то доказано.
Г-голубчики, сказал Федор Симеонович озадаченно, разобравшись в почерках. Это же п-проблема Бен Б-бецалеля. К-калиостро же доказал, что она н-не имеет р-решения.
Мы сами знаем, что она не имеет решения, сказал Хунта, немедленно ощетиниваясь. Мы хотим знать, как ее решать.
К-как-то ты странно рассуждаешь, К-кристо К-как же искать решение, к-когда его нет? Б-бессмыслица какая-то
Извини, Теодор, но это ты очень странно рассуждаешь. Бессмыслица искать решение, если оно и так есть. Речь идет о том, как поступать с задачей, которая решения не имеет. Это глубоко принципиальный вопрос, который, как я вижу, тебе, прикладнику, к сожалению, не доступен. По-моему, я напрасно начал с тобой беседовать на эту тему.

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

Явление, которое проиллюстрировано выше цитатами из писем, это обычный эффект Даннинга-Крюгера, описанный в статье 1999 года, но хорошо известный со времен античности. Когда человек только начинает изучать любую область, ему кажется, что она очень проста и понятна, уверенность в своих знаниях растет очень быстро. Однако, чем выше самоуверенность в начале, тем глубже яма страданий потом из-за того, что реальность кардинально расходится с представлениями о ней. Причем попытки уберечь людей от глубоких страданий являются крайне неблагодарным занятием. Проверял несколько раз (мать-мать-мать, ладно, страдайте!!!).


Что можно сказать об опыте авторов таких писем? Когда смотришь присланный людьми PDF на тему сжатия несжимаемого, Яндекс дает просто неприличную рекламу (реальный скриншот аттача письма):


Справедливости ради люди часто прямо пишут:
Программирую на Delphi. Язык C, я плохо понимать.

Или так:
Так как мои познания в программировании ограничены, ищу соавтора программиста разбирающегося в алгоритмах сжатия информации

Или вот очень культурно:
Дмитрий, если у вас есть возможность помочь в данном вопросе, или заинтересуется кто-то из ваших знакомых прошу со мной связаться. Если окажется, что алгоритм неработоспособен, готов компенсировать затраты и потраченное время

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

Впрочем Ладно, расскажу! На самом деле сжимать уже сжатые данные, конечно, можно. (Что-о-о-о он несет??? возмущенно раздалось с мест!) Спокойно, господа! Рассказываю, как это делается на практике.

Когда-то я руководил разработкой проекта компании SoundGenetics с внутренним названием MP3Zip, позднее названным Sound Slimmer (сайт проекта, увы, более не поддерживается). Тогда удалось достичь сжатия MP3 в среднем в 1.2 раза на большой выборке MP3. Причем сжимался файл полностью без потерь, бит в бит. Идея была в том, что файл распаковывался до потока коэффициентов MDCT, которые далее паковались более эффективно (кому интересны детали, там было несколько патентов).

Причем если кто-то думает, что сильно сжать основная проблема, то он серьезно ошибается. Как показало вскрытие, огромный процент MP3 файлов, которые тогда ходили по людям, были битые. Особенно конец файла (наследие ранних p2p). И учесть корректно побитые файлы было не так просто. Т.е., если бы можно было починить файл, было бы достигнуто большее сжатие, но тогда каждый чайник проверил бы, увидел, что не бит в бит, и что есть силы закричал бы: Они обма-а-а-анывают! И был бы прав. Поэтому мы всячески извращались, стараясь минимально потерять сжатие, и максимально парсили битые куски (алгоритмически там не так все просто).

Также интересно, что если бы можно было зафиксировать распакованный файл (условно WAV), а не MP3, то для того же распакованного файла (бит в бит в WAV) можно было бы еще чуть увеличить сжатие. Но, увы, бизнес сказал: работаем только на уровне MP3. Так что эта часть осталась во внутренних разработках. Также по заказу известной японской компании была сильно переделана архитектура алгоритма (а теперь, ребята, делаем те же трюки, только стоя на канате!) и появилась возможность сжимать MP3 поток, т.е. работать по буферу, видя только небольшую часть файла. Это позволяло сжимать вещание. Аналогично, удалось примерно на 11% сжать AAC со всеми наворотами типа обработки битых и было показано, как аналогично дожимать JPEG и GIF (т.е. всю графику тогдашнего веба). В проекте работало 6 человек, и это было очень прикольно!

Так что сжимать сжатое можно! За это даже платят. Лично проверял!

Про деньги


А теперь про самое интересное (Да-да! Было явно обещано про деньги, раздалось с мест). Умные люди заранее спрашивают в письмах:
Существующие технологии сжатия графики будут развиваться. В частности, появятся новые преобразования [...]
Вопрос: как с минимальными усилиями извлечь некоторую финансовую выгоду в случае разработки более перспективных преобразований (которые на 20-30% лучше по быстродействию или по качеству сжатия)?

Мне нравятся такие письма. Перед тем как попусту растрачивать свой талант копать тему, человек грамотно интересуется, как с минимальными усилиями извлечь максимальную выгоду, когда (фигня вопрос!) удастся всех на 2030% обогнать.

Постараюсь ответить детально и по пунктам. Поехали!


Способ 0: Популярные неработающие подходы


Начну с нулевого во всех смыслах способа.

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

Также частое желание сделать стартап и, конечно, продать его Google. Джим Коунси, директор подразделения Autodesk Developers Network (на потоке покупавший стартапы), несколько лет вел блог Dances with Elephants: How small companies can partner with large companies to accelerate their business growth. Его метафора танца со слонами довольно точно передает суть процесса. Безусловно, в блоге отражена точка зрения слона, поэтому скольких во время этих танцев раздавили даже не со зла, а просто не заметив, история умалчивает. Но, если вы мечтаете о продаже крупняку за много миллионов почитайте и трезво содрогнитесь.

Способ 1: Сжимаем несжимаемое за славу и деньги (на новом месте работы)


Проще всего тем, кто реально может сжимать несжимаемое. Марк Нельсон, автор толстенного кирпича The Data Compression Book библии сжатия 90-х, еще в 2002 году объявил конкурс, позднее названный The Million Random Digit Challenge и продлевавшийся с уточнением правил не один раз. Смысл конкурса в том, что была взята хорошо подготовленная последовательность случайных чисел (большой файл):


Задача была создать архиватор для этого файла, который вместе с архивом был бы меньше по размеру, чем сжимаемый файл. Ибо, если ограничение на размер архиватора не ставить, задача, как вы понимаете, решается тривиально (Джентльмены верят на слово [что мы часть архива в архиватор не кладем] Тут-то мне карта и поперла!). Т.е. надо на другом чистом компе из двух файлов искомый несжимаемый распаковать, ибо история знала случаи, когда сжимающий ЛЮБОЙ файл архиватор просто клал часть файла в tmp директорию компа. И люди проверяли, и у них, вы не поверите, работало! Несжимаемые файлы успешно сжимались!!! На самом деле!!! И они коллегам срочно пересылали попробовать, и у них тоже о чудо! работало!!! Офигеть просто Если архиватор не находил в tmp нужный кусок архива, он просто вызывал деление на ноль и технично падал. А что вы хотели, его технология тогда была несовершенна и сохранять часть архива в облако еще не умела Но поклонение у пипла уже вызывала! Так сильна человеческая вера в чудо

В общем, уже много лет Марк Нельсон покупает торт и задувает все больше и больше свечей на день рождения The Million Random Digit Challenge (ведь его детищу уже стукнуло 18!), но воз и ныне там. Интересно, что к созданию исходного файла конкурса приложил руку тот самый физик Джон фон Нейман, который недвусмысленно высказывался, что:
Любой, кто рассматривает арифметические методы получения случайных чисел, безусловно грешник

Это, впрочем, не мешает и по сей день особо упорным товарищам со словами ваши теоремы не работают случайностей не бывает продолжать искать алгоритмические закономерности в несжимаемых данных. В 2012 на десятилетие конкурса Марк Нельсон расширил правила, позволив делать компрессор и декомпрессор любого размера, но работать оно должно для любого файла. И он герой, конечно. Ибо особо умных товарищей много, и там уже было сохранение данных в имени файла, переменных среды, буферах ядра и т.д. Т.е. обнаружить читера не так просто, как кажется. Несмотря на малый размер призового фонда конкурса всего 100 $, желающих поучаствовать достаточно, и, если вы победите, всемирная известность и выгодные контракты вам точно обеспечены!

Способ 2: Получаем под сжатие деньги инвестора


Вообще стартапы по теме сжатия возникают регулярно. Даже в сериале Кремниевая долина у главного героя, если помните, был стартап по сжатию (в т.ч. 3D видео, что характерно). Поверьте, это не случайность, а тонкий троллинг. Деньги под сжатие просят (и даже получают!) довольно часто.

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

Причем у меня с такими товарищами была масса характерных разговоров. Выходят на меня, как правило, через МГУ, и у них представление такое, что ученый должен млеть от самого факта общения с новым русским инвестором А я сам был и СЕО, и СТО и живу, хм не на зарплату. И очень любопытно посмотреть, как эти горе-инвесторы себя ведут. А ведут они себя своеобразно. Что-то веско пообещать и пропасть норма. И при этом забавное желание получить консультацию на халяву. Причем желательно разобраться вот прямо за один сеанс.

Господа! За получасовой сеанс вам все про ваш pet project расскажут экстрасенсы (с гарантией 100%, кстати). А если вам заливают в уши грамотно, то реально вникать надо. В общем, смотришь на этот мастер-класс по переговорам и так и хочется сказать: Господи! Жги! Люди! Берите инвестиции!. Ибо на чужом опыте эти инвесторы не учатся.

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

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

Способ 3: Конкурс на сжатие википедии


В 2006 профессор австралийского университета (ныне исследователь в Google DeepMind) и автор нескольких книжек (в том числе книги 2005 года по раннему ИИ и алгоритмической вероятности) Маркус Хаттер объявил приз в 50000 за лучшее сжатие 1 Gb текстов википедии. На самом деле это реклама, поскольку формула приза построена так, что более чем 10000 Маркус не рисковал. Но тем не менее за 11 лет конкурса 8747 призовых были выплачены! Вот, к примеру, призы за 2007 и 2018 коллеге и соавтору нашей книжки Александру Ратушняку (и это не все, о чем будет ниже):


Интересно, что в 2020 году конкурс получил новое название 500'000 Prize for Compressing Human Knowledge, а размер корпуса на сжатие увеличен до 10 Gb.

В общем, если вы реально классно сжимаете дерзайте! Сжатие википедии дело благородное. Причем, если вы выиграете, очень многие компании будут рады видеть вас у себя и вы будете мучительно выбирать, где и как хотели бы жить и работать.

Способ 4: Специализированные конкурсы


Также существуют специализированные конкурсы. Например, в 2011 году был конкурс Sequence Squeeze Compression Competition на сжатие последовательности ДНК с призовым фондом 15000 $. Причем в результатах видно, что по сравнению с baseline удалось либо практически на порядок увеличить скорость сжатия при существенном уменьшении файла, либо при той же скорости практически в 3 раза увеличить сжатие. Это является основной мотивацией компаний для проведения таких конкурсов (например, в 3 раза уменьшить затраты на хранение данных):

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

Способ 5: Конкурс на 50000 евро + слава в подарок



И, наконец, прямо сейчас идет конкурс Global Data Compression Competition с прямым призовым фондом 50000 (т.е. вся сумма планируется к выплате после оглашения результатов). Как я понимаю, это самый крупный в истории конкурс по сжатию без потерь, если считать размер выплаты ко времени конкурса. В его организации принимают участие трое из четырех авторов той самой книжки.

В конкурсе 4 вида данных:
  • Тексты (дань традиции). Размер 1 Gb. Практический смысл сжатия текстов сегодня ограничен, но с новыми ML/DL NLP подходами там есть с чем развернуться и силушку показать.
  • Картинки. Размер 1 Gb. Тут понятно.
  • Количественно-качественные данные: исполняемые файлы с большим процентом числовых таблиц. Размер 1 Gb. Это, условно, кейс дистрибутивов, бэкапов и разнообразные случаи сжатия разнородных данных.
  • Блочное сжатие 1 Gb блоков по 32 Kb это кейс баз данных, block storage, сжатия файловых систем. Данные в этом кейсе неоднородные, чтобы также приблизиться к реальным условиям.

Для каждого вида данных есть 3 варианта ограничений по скорости для быстрых, средних и медленных (Иду на рекорд!) алгоритмов. Впрочем, многие алгоритмы можно адаптировать без переделки, и вы наверняка обращали внимание, что в тех же RAR или ZIP можно задавать силу сжатия, и чем сильнее, тем дольше жмет. Вот ровно про это речь.

Итого получается 12 номинаций, в каждой из которых призы за лучшие места. Можно и нужно точиться по времени и занимать первые места в нескольких номинациях (если у вас адски мощный DL препроцессинг текстовых данных, например).

Соревнование международное, и в нем уже участвуют авторы алгоритмов сжатия от профессоров университетов США до индийских программистов.

Важный момент никто не требует исходников. Это, безусловно, расширяет список участников, но Правильно, тут же появляются самые умные. Например, один из участников из гм Юго-Восточной Азии явственно парсит GitHub на предмет годных исходников, точит их под задание и засылает. Просто и со вкусом. При том, что вычислить такое поведение, пусть сложно, но реально.

Чтобы сразу понятно было. Финансирует конкурс Huawei. В этот момент должен раздаться хор непонятно чем недовольных. Поскольку когда такого спонсора нет, то призовой фонд, вспоминаем старика Нельсона, равен 100 $. Причем в его случае он мог и миллион долларов пообещать, но представляете, с какими изощренными способами спрятать куда-то кусок архива ему бы пришлось столкнуться! Он же не мазохист. И вообще у нас на compression.ru и ранее рейтинги кодеров проводились. И в других местах тоже. Но это, похоже, первое широкомасштабное соревнование на тему сжатия без потерь, проспонсированное компанией! Т.е. ни Google, ни Apple, ни Intel, ни Microsoft как-то не сподобились. При том что они от этого вполне выигрывают, в том числе реальные большие деньги на экономии трафика и хранении. А, чем выше призовой фонд, тем больше геморрой для нас, авторов книг организаторов соревнований. Ибо больше не только волн, но и пены. Хотя и больше шанс реально интересные результаты собрать, конечно.

Сейчас большие надежды возлагаются на Deep Learning, который, конечно, сметет все старые алгоритмы и в сжатии без потерь тоже. И тогда покажется смешным сжатие бит в бит MP3 и JPEG на 20%, и снизойдет на автора алгоритма благодать, и он улыбнется.

Короче, господа! Результаты, надеемся, будут очень интересные. И, если вы где-то будете в лидерах вас точно заметят и закидают предложениями о работе. Так что дерзайте! Планируем обязательно рассказать о том, что получилось в итоге.

Резюмируя тему, замечу, что наиболее частый путь успеха в общем-то похож на путь современного ML/DL поколения: прокачка Kaggle/хакатоны/конкурсы победы зарплата $100200K в год. Маркус Хаттер в DeepMind, как видим, получает столько, что конкурсы на полмиллиона евро лично спонсирует. В этом большой плюс соревнований и побед. Главное адекватно оценивать усилия, необходимые на качественную прокачку и быстро переходить от слов к делу (это самое сложное по опыту).

Про талант


И, наконец, последняя обещанная тема. Может показаться, что я как-то неровно дышу к нашим ярким талантам. Это не так. Просто мне ближе такое определение:

И к счастью, я знаю много замечательных талантливых (в рамках этого определения) соотечественников. Например, мы 17 лет проводим сравнения кодеков, в которых участвуют компании из разных стран. Так, до недавнего времени едва ли не половина общения шла на русском. Т.е. компания была западная, а видеокодеками в ней занимались люди родом из России, Украины, Белоруссии, из Прибалтики, наконец. Недавно, правда, стало очень много китайцев (как компаний, так и разработчиков), но это отдельная тема.

С обычным сжатием ситуация также очень показательна:
  • Если кто не знает, то автор RAR (WinRAR) фактически самого популярного коммерческого архиватора в мире талантливый челябинец Евгений Рошал.
  • Автор 7-zip крайне популярной бесплатной open-source программы сжатия и LZMA SDK Игорь Павлов.
  • Автор алгоритма PPMd (использованного и в RAR, и в 7-zip) и почти призер Hutter Prize Дмитрий Шкарин. Кстати, его же метод BMF сейчас в топе Global Data Compression Competition на сжатии изображений. При том что он придуман 1520 лет назад!
  • Автор PPMY, PPMd_sh, shar2 и многих алгоритмов рекомпрессии JPEG, MP3, AAC, Deflate (участник упоминавшегося проекта SoundSlimmer) харьковчанин Евгений Шелвин. Евгений контрибьютор большого количества компрессоров с открытым кодом и поддерживает, пожалуй, самый известный в мире форум по сжатию.
  • Александр Ратушняк, один из авторов той самой книги и соорганизатор конкурса Global Data Compression Competition, автор высокоэффективных компрессоров изображений, контрибьютор стандарта JPEG-XL, четыре раза получал Hutter Prize! Вообще таблица призеров Hutter Prize выглядит так, будто, несмотря на длительность конкурса, Саша не оставил другим авторам никаких шансов:



И список выше далеко не полный. Причем когда общаешься с этими замечательными людьми, понимаешь, что талант не главное. А главное терпеливо и настойчиво заниматься темой, которая тебе действительно нравится.

Закончить хотелось бы словами любимых Стругацких:
Сюда пришли люди, которым было приятнее быть друг с другом, чем порознь, которые терпеть не могли всякого рода воскресений, потому что в воскресенье им было скучно. Маги, Люди с большой буквы, и девизом их было Понедельник начинается в субботу они приняли рабочую гипотезу, что счастье в непрерывном познании неизвестного и смысл жизни в том же. Каждый человек маг в душе, но он становится магом только тогда, когда начинает меньше думать о себе и больше о других, когда работать ему становится интереснее, чем развлекаться в старинном смысле этого слова.

Дерзайте! Доводите ваши идеи до результата! И пусть ваша работа будет интереснее ваших развлечений!

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

Благодарности


Хотелось бы сердечно поблагодарить:
  • Лабораторию Компьютерной Графики и Мультимедиа ВМК МГУ им. М.В. Ломоносова за вклад в развитие сжатия медиа в России и не только,
  • моих соавторов по книге Методы сжатия данных, благодаря которым этот проект вообще стал возможным и нанес непоправимую пользу многим людям,
  • персонально Константина Кожемякова и Кирилла Малышева, которые сделали очень много для того, чтобы эта статья стала лучше,
  • и, наконец, огромное спасибо Дмитрию Коновальчуку, Максиму Смирнову, Анастасии Кирилловой, Андрею Москаленко, Егору Склярову, Никите Молотилову, Ивану Молодецких, Вячеславу Мещанинову, Михаилу Дремину, Александру Гущину и Николаю Сафонову за большое количество дельных замечаний и правок, сделавших этот текст намного лучше!
Подробнее..

Как организовать локальный чемпионат по робототехнике и сделать его традиционным (vol. 3)

25.03.2021 10:19:47 | Автор: admin

В продолжение, а скорее - в завершение, истории об организации и ежегодном проведении Сахалинского чемпионата по робототехнике, пришло время немного поговорить во что начало вырастать локальное мероприятие, которое за 4 года выросло с 72 до 204 участников в возрасте от 4 до 18 лет. А также - порассуждать о том, во что этот чемпионат может превратиться в будущем. Первая и вторая часть истории доступны по соответствующим ссылкам.

О поддержке и партнерах, об имени мероприятия его бренде

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

Первые два года мероприятие проводилось за счет грантовых средств Правительства Сахалинской области и наших собственных вложений. Третий раз подавать один и тот же проект на точно такой же конкурс того же самого грантодателя мы не рискнули все же ежегодное финансирование одних и тех же мероприятий не только противоречит принципам социального проектирования, но и может привести к отказу просто по политическим мотивам. К тому же, гибкость правительства Сахалинской области (ограниченный бюджет на финансирование социальных проектов приводит к урезанию смет и уменьшению фактического финансирования в случае победы социального проекта на грантовом конкурсе) в политике поддержать как можно больше проектов на конкурсах в данном случае приводит к рискам недофинансирования проекта. А, на минуточку, по наблюдениям за 4 года мы выяснили, что в среднем на участника тратится ~3.000 рублей (банально все расходы, связанные с проведением мероприятия, делим на количество участников). И из года в год эта цифра остается стабильной с небольшими подвижками влево и вправо.

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

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

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

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

Однако, как говорится, лучше перебдеть, чем недобдеть. И в рамках патриотического слета ОстроVа, который проходит на территории Сахалинской области в августе 2020 года, на проводимый во время слета грантовый конкурс физических лиц отправилась заявка на финансирование IV Сахалинского чемпионата по робототехнике. И внезапно оказалась поддержана на сумму 700.000 рублей, с прогнозируемым количеством участников в 200 человек (вновь практически попадает в предполагаемые 3.000 на участника, за исключением новых затрат приобретение коробов для укладки полей, благо это разовая закупка и оборудование будет использоваться на последующих чемпионатах).

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

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

В пользу такого решения говорила только эпидемиологическая обстановка и риск невозможности проведения мероприятия из-за действующих ограничений. Против такого решения говорило практически все: усталость людей от запретов, желание муниципальных команд выехать для участия в региональный центр, невозможность обеспечить прозрачность судейства, сложности в технической организации трансляции с каждой из площадок чемпионата и прочие организационные вещи, учиться которым времени фактически не оставалось. К тому же, в ноябре 2020 года проходил национальный финал конкурса профессионального мастерства для людей с инвалидностью и ОВЗ Абилимпикс - в очно-дистанционном формате. Очная часть заключалась в присутствии главных национальных экспертов по компетенциям и их заместителей на единой площадке в Москве, а дистанционная в том, что все команды проходят конкурсные испытания у себя в регионе, с обязательным обеспечением видеосвязи на все время работы участников. Полученный опыт роли главного эксперта в части подготовки дистанционных площадок, контроля их соответствия правилам застройки, а затем и само дистанционное оценивание работы участников также показало, что наш чемпионат не должен проходить дистанционно слишком много условий необходимо для его чистого и честного проведения. Итак, мы пришли к мнению, что чемпионат должен состояться очно, даже если придется его переносить до момента снятия ограничительных мер.

Однако за это время случилось интересное информационный шум, который периодически порождался чемпионатом в предыдущие годы, публикации о переносе сроков чемпионата привели к тому, что у нас появился партнер. Первый. Компания Tezona, занимающаяся поставкой интерактивного оборудования для образовательных организаций, предложила свою помощь в организации призового фонда для победителей (на чемпионате было 6 направлений, в каждом направлении 3 призовых места, а каждое призовое место команда из 2 человек, итого 36 подарков). Партнеры сами выбрали (и согласовали с нами) подарки для каждой возрастной категории, а также организовали мастер-классы для детей в актовом зале школы для организации досуга в перерывах между завершением работы площадок и объявлением победителей в этот раз у нас действительно все площадки заканчивали работать последовательно, а череда награждений, казалось, была бесконечной.

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

Что будет дальше и к чему мы хотим прийди

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

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

Итак, теперь мы понимаем (и, естественно, догадывались ранее ведь вопросы-то мы составляли), что в юбилейном чемпионате пора делить возрастную категорию 5-8 классов на 2 независимых категории с разной сложностью заданий. Прошедший чемпионат показал, что это действительно необходимо в данной возрастной категории была наибольшая конкуренция. Так, например, в направлении для дошкольников Островная логистика было 8 команд, а в направлении Сельское хозяйство для 5-8 классов 40 команд. Банально понятнее, что занять призовое место даже с достаточным уровнем знаний достаточно сложно. Причем не обязательно сравнивать с дошкольниками в соседней категории для 9-11 классов было 10 команд. А разделение по возрастам дало бы больше шансов участникам, которые только начали осваивать олимпиадную робототехнику, да и позволило бы большему количеству ребят уйти с позитивом и завоеванной наградой.

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

Еще одно интересное и привлекательное направление развития Чемпионата это включение мероприятия в перечень олимпиад Министерства просвещения Российской Федерации. Это должно повысить заинтересованность участников, а еще, скорее всего, привлечет команды из соседних субъектов пока что, по результатам мониторинга, мы видим, что на Дальнем Востоке отсутствуют мероприятия, входящие в данный перечень. А победа на подобном, входящем в перечень, мероприятии повысит шансы умных ребят на поступление в образовательные организации высшего и среде-специального образования.

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

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

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

И кто знает, возможно когда-то начинание, идея, родившаяся в 2017 году во время судейства на национальном этапе всероссийской робототехнической олимпиады в Иннополисе, приведет нас к полноценному уже не региональному, а окружному, дальневосточному, чемпионату, способному собрать множество команд из различных субъектов ДВФО.

Вместо послесловия

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

Наверное, это способ выложить и проанализировать все сделанные шаги не то чтобы со стороны, а скорее в комплексе, изложив перед собой свои собственные шаги.

Пока, кстати, писались эти строки, нам пришла хорошая новость. Областное агентство по делам молодежи одобрило нашу заявку на проходившем конкурсе субсидий на реализацию мероприятий в сфере молодежной политике. Заявка на V Сахалинский чемпионат по робототехнике получила софинансирование в объеме 300.000 рублей. А следовательно, за 5 лет чемпионата общее софинансирование (а значит - внешнее, экспертное, признание в необходимости данного мероприятия) составляет 1.960.000 в рублях, что покрывает примерно 70% всех расходов.

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

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

И спасибо всем, кто дочитал этот лонгрид до конца.

Подробнее..

Победители соревнований Dialogue Evaluation о задачах, языковых моделях, ML и о себе

06.07.2020 16:22:04 | Автор: admin
Недавно завершился Диалог 2020, международная научная конференция по компьютерной лингвистике и интеллектуальным технологиям. Традиционно одно из ключевых событий конференции это Dialogue Evaluation, соревнования между разработчиками автоматических систем лингвистического анализа текстов. Мы уже рассказывали на Хабре о задачах, которые участники состязаний решали в прошлом году, например, о генерации заголовков и поиске пропущенных слов в тексте. Сегодня мы поговорили с победителями двух дорожек Dialogue Evaluation этого года Владиславом Корзуном и Даниилом Анастасьевым о том, почему они решили участвовать в технологических соревнованиях, какие задачи и какими способами решали, чем ребята интересуются, где учились и чем планируют заниматься в будущем. Добро пожаловать под кат!

Владислав Корзун, победитель дорожки Dialogue Evaluation RuREBus-2020



Чем ты занимаешься?


Я разработчик в NLP Advanced Research Group в ABBYY. В данный момент мы решаем задачу one shot learning для извлечения сущностей. Т. е. имея небольшую обучающую выборку (5-10 документов), надо научиться извлекать специфические сущности из похожих документов. Для этого мы собираемся использовать выходы обученной на стандартных типах сущностей (Персоны, Локации, Организации) NER-модели в качестве признаков для решения этой задачи. Также мы планируем использовать специальную языковую модель, которая обучалась на документах, схожих по тематике с нашей задачей.

Какие задачи ты решал на Dialogue Evaluation?


На Диалоге я участвовал в соревновании RuREBus, посвященном извлечению сущностей и отношений из специфических документов корпуса Минэкономразвития. Данный корпус сильно отличался от корпусов, используемых, например, в соревновании Conll. Во-первых, сами типы сущностей были не стандартные (Персоны, Локации, Организации), среди них были даже неименованные и субстантивы действий. Во-вторых, сами тексты представляли собой не наборы выверенных предложений, а реальные документы, из-за чего в них попадались различные списки, заголовки и даже таблицы. В итоге основные трудности возникали именно с обработкой данных, а не с решением задачи, т.к. по сути это классические задачи Named Entity Recognition и Relation Extraction.

В самом соревновании было 3 дорожки: NER, RE с заданными сущностями и end-to-end RE. Я пытался решить первые две. В первой задаче я использовал классические подходы. Сперва я попробовал в качестве модели использовать рекуррентную сеть, а в качестве признаков словные эмбеддинги fasttext, шаблоны капитализации, символьные эмбеддинги и POS-тэги[1]. Затем я уже использовал различные предобученные BERT-ы [2], которые довольно сильно превзошли предыдущий мой подход. Однако этого не хватило, чтобы занять первое место в этой дорожке.


А вот во второй дорожке мне это удалось. Для решения задачи извлечения отношений я свел её к задаче классификации отношений, схожей с SemEval 2010 Task 8. В данной задаче для каждого предложения дана одна пара сущностей, для которой нужно классифицировать отношение. А в дорожке в каждом предложении может быть сколько угодно сущностей, однако она просто сводится к предыдущей путем сэмплирования предложения для каждой пары сущностей. Также при обучении я брал отрицательные примеры случайно для каждого предложения в размере, не большем удвоенного числа положительных, чтобы сократить обучающую выборку.

В качестве подходов к решению задачи классификации отношений я использовал две модели, основанные на BERT-e. В первой я просто конкатенировал выходы BERT с NER-эмбеддингами и затем усреднял признаки по каждому токену с помощью Self-attention[3]. В качестве второй модели была взята одна из лучших для решения SemEval 2010 Task 8 R-BERT[4]. Суть данного подхода в следующем: вставить специальные токены до и после каждой сущности, усреднить выходы BERT для токенов каждой сущности, объединить полученные вектора с выходом, соответствующим CLS-токену и классифицировать полученный вектор признаков. В итоге данная модель заняла первое место в дорожке. Результаты соревнования доступны здесь.


[4] Wu, S., He, Y. (2019, November). Enriching pre-trained language model with entity information for relation classification. In Proceedings of the 28th ACM International Conference on Information and Knowledge Management (pp. 2361-2364).

Что показалось тебе наиболее сложным в этих задачах?


Самым проблемным оказалась обработка корпуса. Сами задачи максимально классические, для их решения уже есть готовые фреймворки, например AllenNLP. Но ответ нужно выдавать с сохранением спанов токенов, поэтому я не мог просто использовать готовый пайплайн, не написав множество дополнительного кода. Поэтому я решил писать весь пайплайн на чистом PyTorch, чтобы ничего не упустить. Хотя некоторые модули из AllenNLP я все-таки использовал.

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

Ты раньше участвовал в Диалоге и дорожках?


В прошлом году выступал со своим магистерским дипломом на студенческой сессии.

А почему в этом году решил участвовать в соревнованиях?


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

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

А в других соревнованиях ты участвовал?


В это же время наша команда участвовала в SemEval. В основном задачей занимался Илья Димов, я лишь предложил пару идей. Там была задача классификации пропаганды: выделен спан текста и нужно его классифицировать. Я предложил использовать подход R-BERT, то есть выделять в токенах эту сущность, перед ней и после нее вставлять специальный токен и усреднять выходы. В итоге это дало небольшой прирост. Вот и научная ценность: для решения задачи мы использовали модель, предназначенную совсем для другого.

Еще участвовал в ABBYY-шном хакатоне, в ACM icpc соревнованиях по спортивному программированию на первых курсах. Мы тогда особо далеко не прошли, но было весело. Подобные соревнования сильно отличаются от представленных на Диалоге, где есть достаточно много времени, чтобы спокойно реализовать и проверить несколько подходов. В хакатонах же нужно все делать быстро, времени расслабиться, попить чай нет. Но в этом и вся прелесть подобных мероприятий в них царит специфическая атмосфера.

Какие самые интересные задачи ты решал на соревнованиях либо на работе?


Скоро будет соревнование по генерации жестов GENEA, и я собираюсь туда пойти. Мне кажется, это будет интересно. Это воркшоп на ACM International Conference on Intelligent Virtual Agents. В данном соревновании предлагается генерировать жесты для 3D-модели человека на основе голоса. Я выступал в этом году на Диалоге с похожей темой, делал небольшой обзор подходов для задачи автоматической генерации мимики и жестов по голосу. Нужно набираться опыта, ведь мне еще диссертацию защищать по схожей теме. Я хочу попробовать создать читающего виртуального агента, с мимикой, жестами, и конечно, голосом. Текущие подходы синтеза речи позволяют генерировать довольно реалистичную речь по тексту, а подходы генерации жестов жесты по голосу. Так почему бы не объединить эти подходы.

Кстати, где ты сейчас учишься?


Я учусь в аспирантуре кафедры компьютерной лингвистики ABBYY в МФТИ. Через два года буду защищать диссертацию.

Какие знания и навыки, полученные в вузе, тебе помогают сейчас?


Как ни странно, математика. Пусть я и не интегрирую каждый день и не перемножаю матрицы в уме, но математика учит аналитическому мышлению и умению разобраться в чем угодно. Ведь любой экзамен включает в себя доказательство теорем, и пытаться их выучить бесполезно, а понять и доказать самому, помня только идею, возможно. Также у нас были неплохие курсы по программированию, где мы с низкого уровня учились понимать, как все устроено, разбирали различные алгоритмы и структуры данных. И теперь разобраться с новым фреймворком или даже языком программирования не составит проблем. Да, конечно, у нас были курсы и по машинному обучению, и по NLP, в частности, но все-таки, как мне кажется, базовые навыки важнее.

Даниил Анастасьев, победитель дорожки Dialogue Evaluation GramEval-2020



Чем ты занимаешься?


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

Расскажи про задачу, которую ты решал в этом году на одном из треков Dialogue Evaluation.


Я занимался задачей, очень близкой тому, чем занимаются в ABBYY. Нужно было построить модель, которая проанализирует предложение, сделает морфологический и синтаксический разбор, определит леммы. Это очень похоже на то, что делают в школе. Построение модели заняло примерно 5 моих выходных дней.

image

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

А похоже ли это на то, чем ты занимаешься на работе?


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

Участвовал ли ты в Dialogue Evaluation до этого?


Участвовал в дорожке MorphoRuEval-2017 на 5 курсе и тоже тогда занял 1 место. Тогда нужно было определить только морфологию и леммы, без синтаксических отношений.

Реально ли применять твою модель для других задач уже сейчас?


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

А для чего ты участвуешь в Dialogue Evaluation и других подобных соревнованиях?


Хакатоны и такие соревнования напрямую не связаны с моей деятельностью, но это все равно полезный опыт. Например, когда я участвовал в хакатоне AI Journey в прошлом году, я научился каким-то вещам, которые потом использовал в работе. Задача была научиться проходить ЕГЭ по русскому языку, то есть решать тесты и писать сочинение. Понятно, что это всё слабо связано с работой. А вот умение быстро придумать и обучить модель, которая решает какую-то задачу очень даже полезно. Мы тогда с командой, кстати, заняли первое место.

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


Окончил бакалавриат и магистратуру кафедры компьютерной лингвистики ABBYY в МФТИ, выпустился в 2018 году. Также учился в Школе анализа данных (ШАД). Когда пришло время выбирать базовую кафедру на 2 курсе, у нас большая часть группы пошла на кафедры ABBYY компьютерной лингвистики или распознавания изображений и обработки текста. В бакалавриате нас хорошо учили программировать были очень полезные курсы. Я с 4 курса работал в ABBYY на протяжении 2,5 лет. Сначала в группе морфологии, затем занимался задачами, связанными с языковыми моделями для улучшения распознавания текста в ABBYY FineReader. Я писал код, обучал модели, сейчас я занимаюсь тем же, но для совсем другого продукта.

А как проводишь свободное время?


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

Есть ли у тебя планы или цели на ближайшие, допустим, 5 лет?


5 лет слишком далекий горизонт планирования. У меня ведь даже нет 5-летнего опыта работы. За последние 5 лет многое поменялось, сейчас явно другое ощущение от жизни. С трудом представляю, что еще может измениться, но есть мысли получить PhD за границей.

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


Лучше всего практиковаться, пробовать и участвовать в соревнованиях. Совсем начинающие могут пройти один из множества курсов: например, от ШАДа, DeepPavlov или даже мой собственный, который я когда-то провел в ABBYY.


Кстати, мы продолжаем набор в магистратуру на кафедры ABBYY в МФТИ: распознавания изображений и обработки текста (РИОТ) и компьютерной лингвистики (КЛ). До 15 июля включительно присылайте на brains@abbyy.com мотивационное письмо с указанием кафедры, на которую хотели бы поступить, и резюме с указанием среднего балла GPA по 5- или 10-балльной шкале.

Подробности о магистратуре можно посмотреть на видео, а о кафедрах ABBYY прочитать здесь.
Подробнее..

Первое место на AI Journey 2020 Digital Петр

27.12.2020 16:14:22 | Автор: admin
Приветъ ХабрПриветъ Хабр

Всем добрейшего дня! Совсем недавно закончилось ежегодное международное соревнование AI Contest, организатором которого является Сбер вместе с российскими и зарубежными партнёрами в рамках конференции Artificial Intelligence Journey. Задачи этого года: Digital Петр: распознавание рукописей Петра I, NoFloodWithAI: паводки на реке Амур и AI 4 Humanities: ruGPT-3. В этот раз в соревновании участвовало около 1000 человек из 43 государств.

Наша команда приняла участие в решении задачи "Digital Петр: распознавание рукописей Петра I" и заняла первое место. Я бы хотел рассказать о том, что мы наворотили в процессе решения соревнования, кто тут батя, какие трюки и фишки использовали. Информации много, будет много спецэфичных слов, для тех кто не в теме. Это не туториал, очень подробно я описывать не буду, но с удовольствием отвечу на вопросы в комментариях.

Можете посмотреть на команду мечты

План

Описание задачи

Формат данных, доступные ресурсы и ограничения

Если без воды, то: Необходимо перевести строку, написанную от руки Петром I, в печатный формат (см. пример ниже). Организаторы совместно с историками подготовили данные, разбив документы построчно, где каждая строка - картинка и ей соответствует текстовый файл с расшифровкой.

Примеры. Текст от руки и печатный аналог

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

Этапы решения

За время проведения соревнования мы протестировали более 500 гипотез, которые включали подбор архитектуры нейронной сети, подбор готовых аугментаций, тестирование своих аугментаций, различные варианты ансамблирования моделей и постобработки.

1. Предобработка данных

Выбросили картинки, на которых очевидно не верна разметка (нашли с помощью OOF), удалили редкие символы. Так как Пётр писал не только горизонтально (как на картинках выше), но и на полях (как на картинке ниже), то в данных присутствовали картинки с вертикальными надписями, которые нужно было перевернуть либо на +90, либо на -90 градусов. Для поворота картинок мы обучили сеть (Resnet34 с изменённой головой) которая предсказывала есть ли необходимость поворачивать картинку и в какую сторону. Это необходимо для того, чтобы поворачивать картинки на скрытых данных.

Пример вертикальной картинки

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

2. Описание нейронной сети

Мы рассматривали два варианта архитектур нейронных сетей, одну под CTCLoss и другую на классическом Attention. Отдельно про CTCLoss можно посмотреть тут, а про Attention почитать тут. Начали с CTCLoss, но на нём и остались, так как на подход с Attention не хватило времени. Сразу покажу картинку.

Где Bs - размер батча, (w, h, c) - параметры изображения (ширина, высота, каналы). Штрихи указывают на производные параметры от исходных. Hidden size - размер скрытого слоя в LSTM слое. Dict Size - количество буковок, которые будет знать наша нейронка. Dense - слой полносвязной сети в Keras, аналог Linear в PyTorch.

3. Аугментации

Что такое аугментации, как их применять можно посмотреть тут и тут. Мы использовали стандартные аугментации: ToGray, CLAHE, Rotate, CutOut.

Однако CutOut мы в середине соревнования заменили на другую аугментацию. Мы написали её сами, назвали HandWrittenBlots, суть в том, что это имитация человеческой почеркушки с различным размером, наклоном и прозрачностью. Сделано это для того, чтобы улучшить (кто бы мог подумать) распознавание перечёркнутых букв. CutOut накидывал, HandWrittenBlots накинул еще больше. Аугментацию можно найти в репозиторииAugmixations. Пример использования тут.

P.S. Форма вырезанных прямоугольников в CutOut тут такая потому, что параметры были подобраны эмпирически и вертикальные тонкие прямоугольники докидывали больше всего.

4. CharMasks

Это крутая штука, которая возможна, когда используешь CTC Loss. Дело в том, после предсказания моделью последовательности символов, есть возможность разбить входную картинку по этим символам, пропорционально размеру выходной последовательности (руками разбивать картинки конечно тоже можно, но это совсем прохладная история). Для этого нужно использовать координаты стыков различных букв (Именно так делали ребята для Action Labeling тут).

Таким образом мы получаем координаты начала и конца каждого символа. А затем, имея координаты всех символов во всех строках датасета, мы можем сами генерировать любую фразу почерком Петра. Вопрос остаётся в том, что нам пока негде брать древнерусские фразочки. Поэтому мы идём в гугл и нагугливаем книжки с текстами XVII-XVIII веков (Да, их тоже надо почистить и обработать). И уже теперь, с чистой совестью, достаём любую фразу из нашего корпуса текстов и составляем по ней картинку.

всемъ спасибо за соревъ piterвсемъ спасибо за соревъ piter

Да, она будет не идеальна, и если генерировать изображения, используя однобуквенные символы, то скор это не улучшит. Но тут в дело вступают токенизаторы. Обучаем мы их на предложениях из имеющегося датасета, в котором у нас есть соответствующие картинки. Таким образом для каждого токена мы теперь можем получить картинку. Далее с помощью токенизаторов (Multi Word Expression) мы можем составлять фразы из токенов (состоящих из нескольких символов и пробелов) различной длины и генерировать соответствующую картинку.

всемъ спасибо за соревъ piterвсемъ спасибо за соревъ piter

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

всемъ спасибо за соревъ piterвсемъ спасибо за соревъ piter

5. Spell correction using XLMRoberta

Сразу скажу, что в этом пункте много текста.

Естественно, нашасупермегапаверфьюженстелскрутаямодель не предсказывает идеальные предложения и всё же делает некоторые ошибки(особенно пробелы, ненавижу пробелы). И совершенно случайно в наши ряды затисались эксперты NLP. Ну они и обучили буквенную языковую модель XLMRoberta на корпусе XVII-XVIII в.в., а затем реализовали модель исправления опечаток в стиле Петра I. Делали следующее:

1. из сырого выхода OCR модели (перед тем как схлопнуть повторяющиеся символы и паддинги) склеивали повторяющиеся символы (включая паддинг) и пересчитывали их вероятности (среднее + softmax), брали 3 наиболее вероятные символа (буквы/цифры/blank в т.ч.) для каждой позиции в тексте;

2. каждую локальную позицию проверяли и исправляли так: давали 3-4 варианта модели, а она выбирала наиболее правильный - т.к. символы были буквы/цифры/blank, то таким образом мы боролись как с расстановкой пробелов, так и с другими видами опечаток с учетом контекста. Также с помощью данного подхода легко реализовать zero-shot learning, где предсказываются символы, которых не было в исходном датасете. Так мы накинули варианты похожих с точки зрения OCR латинских и кириллических букв ('р': 'p', 'о': 'o', 'е': 'e', 'с': 'c', 'а': 'a', 'х': 'x', 'и': 'u', 'к': k);

3. сортировали все локальные позиции по уверенности OCR модели и исправляли по одной step by step (!), что позволило улучшить и главное не испортить следующие предикты на более уверенных позициях;

4. обучали модель так: маскировали буквы (рандомно от 0 до 12), 50% масок превращали в padding (борьба с наличием лишних символов), 10% оставшихся букв заменяли на рандомный символ в тч и. паддинг (для стабилизации предикта). пытались предсказать маскированные буквы на фичах XLMRoberta из outputhiddenstates - почти как NER, но классификация на все заданные символы;

5. на GPU данная модель учится довольно долго, поэтому мы юзали TPU на Colab

P.S.
После завершения соревнования мы узнали (один из участников опубликовал своё решение), что в этой задаче можно было применить BeamSearch. Реализация которого есть тут.

6. Ensemble + Spell Correction Thresholds

Думаю, что многие в соревновании столкнулись с тем, что модели, обученные с помощью CTCLoss, нельзя так просто заблендить. А ансамбль это крутая штука и хотелось бы его использовать. Поэтому немногопокурив бамбукподумав, мы пришли к своеобразному ансамблю.Представим что у нас есть N моделей и у всех мы сделали предикт и нам остаётся только "схлопнуть" повторяющиеся буквы для того чтобы получилось чистое предложение. Мы проделываем данную операцию, но не только с символами но и с их вероятностями, усредняя их. Таким образом получаем среднюю вероятность каждого символа. И теперь, итерируясь по всем моделям, бёрем только те предикты, средняя вероятность которых наиболее высокая.Надеюсь, что +- понятно описал.

Что не сработало

Other Backbones. Мы ставили эксперименты с кучей других бекбонов и доп блоками (EfficientNet, [SE, ECA]ResNet[xt], Mobilenet и др), но на удивление лучше всего заходит классический Resnet34.

Augmentations.Перепробовали практически весь набор аугментаций из всеми нами любимогоAlbumentations (Brightness, Gamma, Blur и др), остались только те, что я указал выше.

TTA (Test-Time Augmentations).Интересно то, что на нашей holdout выборке ТТА давал прирост, а на public test - нет. Мы решили верить паблик тесту, так как там выборка заметно больше нашей на holdout.

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

Команда

Все четверо из команды работаем в компании ОЦРВ в лаборатории искусственного интеллекта и нейронных сетей в городе Сириус (Сочи). Спасибо ребятам, что продержались до конца и показали отличный результат! :)

Информация каждом члене команды

Карачёв Денис (github, linkedin, kaggle)

Шоненков Алексей (github, linkedin, kaggle)

Смолин Илья (github, linkedin, kaggle)

Новопольцев Максим (linkedin, kaggle)

Заключение

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

P.S.Наше самое быстрое решение (одна модель, public):
| CER: 2.531 | WER: 13.5 | ACC: 62.107 | TIME: 32s |
Код submission и веса опубликованы здесь.

P.P.S. Бонус

Особо пытливым предлагаю разгадать ребус, что же здесь написано? :)

Подробнее..

Как мы участвовали в соревнованиях автономных дронов Aerobot 2020 от русской DARPA

24.12.2020 04:15:09 | Автор: admin

Немного соревнований автономных дронов, рассчитанных на взрослых разработчиков и организации, проводятся в России. В статье расскажу о нашем участии в Аэробот-2020. Мы и без соревнований работаем с актуальными технологиями локализации дрона в помещении, планирования движения и картографии (exploration), детекции объектов (perception) и оптимального управления движением. В условиях соревнования были задачи как раз из этой области.

Наша команда состояла из сотрудников Центра компетенций НТИ по направлению Технологии компонентов робототехники и мехатроники на базе Университета Иннополис и студентов университета.

Под катом много увлекательных полетов и падений дронов.

С одной стороны, мы хотим забыть об этом как о страшном сне, а с другой, это интересный опыт. Так что, чтобы оставить эти воспоминания в 2020 году, эта статья достается из черновиков.

Соревновательная робототехника

Если спортивное программирование и индустриальная разработка уже во многих случаях весьма далеки друг от друга, то в робототехнике зачастую крупные соревнования становятся драйверами развития целых направлений. Пожалуй, самый яркий пример DARPA Grand Challenge, которые предопределили бурное развитие автономных автомобилей. Основатель DJI начинал свою работу по БПЛА с соревнований ABU Robocon в составе команды гонконгского университета HKUST.

Среди современных крупных конкурсов в области воздушной робототехники я выделю:

А что в России?

В России робототехника вообще становится популярна, есть кружки, курсы и много STEM-education-движухи. Соревнования дронов в основном проводятся среди школьников и студентов. Мы их и сами проводим. Конкурсов, ориентированных на организации и более сложные задачи, немного (хотя порой и современные школьники делают удивительные вещи). Когда-то компания КРОК проводила интересный конкурс, с тех пор мало подобного было. Пример недавнего конкурса для производителей БПЛА конкурс от ПАО Газпром нефть и AeroNet по перевозке груза, имитирующего пробы нефти. Однако, там задачи больше по аппаратной составляющей БПЛА, чем по планированию движения и обработке сенсорных данных. Можно упомянуть еще Copter Hack, но это конкурс проектов, а не соревнования в которых команды соревнуются в выполнении одних и тех же заданий.

Аэробот-2020

Соревнования Aerobot проводятся в России второй год и как раз ориентированы на развитие решений в области разработки, создания и эксплуатации перспективных робототехнических комплексов (систем) гражданского, военного, специального и двойного назначения воздушного базирования (sic!). Как видите, даже название пропитано духом двойного назначения, что не случайно: соревнования проходят при поддержке ФПИ, призванного быть российским аналогом DARPA. При этом задания вполне интересные, даже если вы пацифист или опасаетесь военной бюрократии, как я.

Заданий в этом году было 3:

  1. Инспекция помещения и поиск объектов в нем с указанием их координат (жизненный аналог поисковые операции в разрушенном здании, например);

  2. Движение по QR-код (получается этакий дрон для складской инвентаризации, вот похожий проект от коллег из Сколково);

  3. Гонки дронов максимально быстро пролететь между воротами и обойти препятствия между ними.

Эти соревнования проводились во второй раз. В этот раз организатором выступила наша с @GigaFlopsis (и еще нескольких теперешних иннополисян) alma mater НИИ робототехники и процессов управления Южного федерального университета (НИИ РиПУ), г. Таганрог.

Команды-участники

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

Из-за коронавируса в этом году команд было меньше, чем в прошлом, но уровень был выше: у всех дроны летали и все делали попытки выполнения заданий. Еще порадовало, что команды были гибридные представители академических институтов и индустрии. Список и краткая инфа о командах:

  • RaccoonLab, Университет Иннополис это мы;

  • ФИЦ ИУ РАН (Москва), в составе разработчики из Fast Sense Studio. Они делают бортовые компьютеры для мобильных роботов и дроны для складской инспекции;

  • ИПУ РАН (Москва) использовали дрон стартапа Airspector по промышленной инспекции при помощи БПЛА;

  • С305, ДВФУ (Владивосток), Центр проектной деятельности студентов;

  • QuadroZ, НИИ РиПУ (Таганрог), команда организатора соревнований;

  • Альтаир, студенты ЮФУ (Таганрог);

  • Команда ВИТ Эра (Анапа).

Состав нашей команды

  • Дмитрий Девитт главный заводила, знает вкус победы предыдущих соревнований Аэробот-2019. Видели Noize MC, обвешанного гитарой и укулеле с сэмплером и клавишами? Вот примерно так работает Дима при тестах: в одной руке ноутбук, в другой пульт ручного управления для подстраховки;

  • Дмитрий Пономарев программист, реализовал фьюзинг нескольких реалсенсов для локализации, генерировал миры в Gazebo;

  • Илья Севостьянов студент Университета Иннополис, работал над детекцией полосы и посадочной площадки;

  • Юрий Сухоруков студент, много занимался сборкой кошерного дрона, 3D-печатью, сделал ворота и параллельно порадовал сайд-проектом по детекции масок с дрона;

  • Роман Федоренко я, каким-то волшебным образом собрал эту мега-команду и наблюдаю за успехом (спокойствие все же только видимое).

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

  • Виктор Массагуе алгоритм инспекции;

  • Гисара Пратхап сегментация на облаке точек, создание миров в Gazebo;

  • Никита Ермоленко алгоритмы CV для детекции ворот.

Отборочный этап

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

Все три задания от третьего к первому на симуляторе (этап 1) в таймлапсе:

На отборочном этапе наша команда заняла первое место с заметным отрывом, но расслабляться было рано.

Разбор решений

Approach

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

Железо

Все летали на опенсорс автопилоте PX4 (слава ему).

По бортовым компьютерам: Nvidia Jetson (Nano/NX/Xavier) или Raspberry Pi или свой компьютер у FastSense.

Из сенсоров для восприятия мира, как правило, есть камеры глубины Realsense D435, многие летают также с использованием RPLIDAR плюс обычные камеры (вебки) для детекции объектов.

Локализация

Здесь две доминирующие идеи: 2D SLAM на Google Cartographer (мы использовали только на этапе симуляциий) c RPLIDAR и tracking камеры Realsense T265.

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

Комплексирование данных локализации Комплексирование данных локализации

Картография

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

Мы использовали свою наработку в этой области, основанную на модифицированном алгоритме NBV (next-best-view), а также библиотеке voxblox для представления карты.

Алгоритм строит 3d карту (цветной mesh) в реальном времени на борту дрона, зная только предполагаемые размеры области инспекции. При планировании также выполняется обход препятствий, пролет в окно для инспекции следующего помещения также планирует этот алгоритм.

Как это выглядит в реальных тестах:

Почитать подробнее можно, например, здесь.

Траекторное управление и обход препятствий

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

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

На основе облака точек формируется новая карта с дополнительными границами вокруг препятствий (т.н. inflation). По этой карте находится оптимальный маршрут, используя несколько алгоритмов (для быстрого поиска сильно модифицированный elastic band planner, в сложных случаях дополнительно используется A*).

На выходе мы получаем набор координат, через которые нужно построить траекторию дрона. Для генерации физичной траектории используются сплайны. Существует много хороших открытых решений от крутых лабораторий, например mav_trajectory_generation от Autonomous Systems Lab (ETH, Цюрих), B-traj от HKUST Aerial Robotics Group (Гонконг) и множество реализаций minimum snap и jerk генераторов траекторий (btw, jerk и snap это названия соответственно третьей и четвертой производных перемещения по времени, по-русски толчок и рывок). Мы интегрировали решение от HKUST Aerial Robotics Group. Результатом работы данного модуля является гладкое движение дрона с отклонением от препятствий.

Один из примеров полёта у нас в подвале:

Еще один пример работы планировщика уже в симуляторе Gazebo:

Восприятие

В задачи восприятия, которых мы касаемся здесь, входят детекция (и локализация)

  • кубиков с логотипом (задача 1);

  • посадочной площадки (все задания);

  • QR-кодов (задание 2);

  • препятствий и ворот (задание 3).

Для детекцией кубиков хватило базовых методов OpenCV: SIFT + Homography + PnP. Т.к. мы знали паттерн на сторонах куба, достаточно было определить точное положение этого паттерна относительно камеры, а дальше можно получить позицию относительно любой системы координат. Для этого был написан простой пакет под ROS на python.

Для QR кодов помимо координат необходимо было произвести расшифровку кода. На python с этим отлично справляется библиотека zbar.

Посадка по маркеруПосадка по маркеруQR-кодыQR-коды

Забавно было с детекцией ворот и препятствий. На этапе симулятора мы заюзали кластеризацию облаков точек на базе https://github.com/PRBonn/depth_clustering. Ворота сегментировались как один кластер и мы задавали траекторию полета через его центр. Если вместо ворот были препятствия, их облетал алгоритм траекторного управления с обходом препятствий (см. выше).

На этапе полигона мы, конечно, от этого ушли :)

Ad hoc vs унифицированные подходы

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

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

Хорошим примером здесь будет наш планировщик для первого задания. Можно делать универсальный алгоритм с NBV, оптимизацией движения с целью максимального захвата камерой неисследованного объема, а можно, зная размеры комнат и что они имеют простую форму, задать несколько рандомных точек в каждой. Также можно задавать направление движения, зная что карта устроена для движения по или против часовой стрелки. Еще забавный момент если предположить, что организаторы расставили объекты поиска в точки с целыми координатами (или с координатами кратными 0.5), что свойственно человеку, можно довести точность их определения дроном до абсолютной простым округлением :)

Отступление 2

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

Отступление 3

Все кто делают дронов, рассчитывайте на тройное резервирование, бюджеты умножьте на 3 и не соглашайтесь на меньшее :) Дроны падают.

Обещанное видео падений:

И еще. Делайте бэкапы. У нас, например, накрылась флешка со всей системой на бортовом компьютере и это стоило нам дня соревнований и ночи восстановления.

Как вам такое перед зачётной попыткой?Как вам такое перед зачётной попыткой?

Полигон и летающая звезда Давида

Технополис Эра

Облако теговОблако тегов

Эра это военный Технополис. Круто, что он у моря. Расположение Технополиса на морском побережье создает комфортные условия для работы и жизни. сказано на сайте Технополиса :)

И да, у них свой пирс с вертолётной площадкой.

Источник: era-tehnopolis.ruИсточник: era-tehnopolis.ru

Особенностью работы в военном Технополисе является отсутствие Интернета, в том числе мобильного из-за экранирования. Поступали так:

А это мобильная базовая станция

Полигон

Полигон в его вариантах для разных заданий выглядел так:

Неофициальный партнер соревнований Леруа Мерлен :)Неофициальный партнер соревнований Леруа Мерлен :)

Железо

Дроны других участников

Дрон команды QuadroZ (НИИ РиПУ, Таганрог) Дрон команды QuadroZ (НИИ РиПУ, Таганрог) Дрон ИПУ РАН (Москва) от AirspectorДрон ИПУ РАН (Москва) от AirspectorБПЛА ВИТ Эра (Геоскан Пионер)БПЛА ВИТ Эра (Геоскан Пионер)Дрон и команда ИЦ ИУ РАН и Fast Sense Studio (Москва) с нашим шпиономДрон и команда ИЦ ИУ РАН и Fast Sense Studio (Москва) с нашим шпионом

Технология тряпочки

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

Итак, уважаемые знатоки, внимание, вопрос: для чего нужна тряпочка на взлетно-посадочной площадке?

ЗагадкаЗагадкаОтвет в спойлере

Всё просто на тряпочке много фич по сравнению с гладким полом, и визуальной одометрии есть за что зацепиться в момент взлёта, когда камера только поверхность под дроном и видит.

Наш дрон

Про звезду Давида мы не специально (кажется). Просто такая форма получилась достаточно жесткой.

Вообще, конструкция сделана модульная, с расчетом на ремонтопригодность, изготовление на базе стандартных карбоновых трубой и 3D-печатных деталей.

Готовим запчасти (3D-печать)Готовим запчасти (3D-печать)

Последних мы взяли с собой мешочек про запас. Питстоп по замене сломанного крепления двигателя не более 60 секунд:

Пит-стопПит-стоп

Полёты

Репортаж о соревнованиях и дронах, у которых есть имена (источник):

Победила дружба

По результатам соревнований судейской коллегией было принято решение не выявлять победителей, т.к. ни одной командой не были пройдены задания второго тура целиком. По итогу: 1) потрачено много запчастей и нервов, 2) было весело, собрались интересные ребята, 3) победила дружба. Следующие соревнование организаторы планируют проводить с теми же заданиями. А мы занимаемся прикладной разработкой и поглядываем на MBZIRC. Привет участникам и организаторам!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru