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

Педагогика

Геймификация быта и оборотная сторона положительного подкрепления

03.08.2020 10:14:39 | Автор: admin


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

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

1. Сюжеты и смыслы

Помните известную историю о трех рабочих?

Три человека возили в тележках камни.
У одного из них спросили:
Что ты здесь делаешь?
Остановившись и вытерев пот, он устало ответил:
Я таскаю камни.
Тот же вопрос задали второму. Он ответил:
Я зарабатываю деньги. У меня большая семья, и я должен её кормить.
Третий человек, услышав такой же вопрос, ответил:
Я строю храм!


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

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

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

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

В приложении "Zombies, run!" была предпринята попытка (и довольно удачная) по геймификации пробежек. Игрок делает то же, что и обычно (бегает), а игра создает для этого контекст: мир гибнет, ужасные зомби вот-вот догонят тебя, пользователь, и съедят твой мозг, скорее беги к базе! В контексте, как оказалось, бегать гораздо веселее, чем просто так наворачивать круги по району.



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

2. А что мне за это будет?

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

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

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

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



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

3. Кто виноват и что делать

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

Это нехитрое соображение воплотилось в игре Chore wars. Она, в отличие от Superbetter, заточена под использование несколькими членами одной семьи или трудового коллектива. Каждый игрок приключенец, коллектив игроков компания приключенцев, и один из игроков заодно же выполняет функции мастера игры. То есть решает, какие бытовые дела считать квестами и сколько золота и опыта причитается за выполнение каждого квеста.



Золото в Chore wars выводимо из игры, причем примерно таким же образом, как в классическом варианте жетонного подкрепления происходит обналичивание жетонов. То есть игрок (мальчик Вася) подходит к мастеру игры (маме) и говорит: А я вот героически накопил сто золотых! И тут мастер игры (мама) должен принять решение, на что их можно менять. На игрушку? На кино? На погулять вместе в парке? Это сложный вопрос. С одной стороны, чтобы жетонная система подкрепления работала хорошо, подкрепление должно быть недостижимо другими способами. То есть если мы решили, что золото можно менять на прогулку в парке, это должно быть единственным поводом погулять в парке (представьте себе, как влияет на отношения то, что совместную прогулку необходимо зарабатывать). С другой стороны, нужно выбрать какое-то такое подкрепление, которое будет и достаточно привлекательно, и необременительно для бюджета. То есть на мастера ложится нетривиальная задача о выдумывании подкрепления, и мы опять возвращаемся к проблеме того, что пользователю нужно что-то изобретать, к чему он по тем или иным причинам может быть не расположен.

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

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

Другой путь это остаться в рамках ролевой игры и ввести обмен внутриигровых денег на внутриигровые же предметы. По этому пути пошла Habitica.

4. Пылесос и покемоны

Итак, вы снова приключенец. У вас есть список повседневных дел (вы же его сами и заполнили), и за выполнение этих дел вы получаете золото и очки опыта. Отличие в том, что теперь вы понимаете, зачем вам золото. За золото можно купить новую броню, меч и шлем! Более того, вы понимаете, зачем вам хорошая экипировка с ее помощью можно эффективнее одолевать монстров! Из которых, в свою очередь, выпадает еще более крутая экипировка очевидно, для победы над еще более крутыми монстрами Где-то здесь скрыта рекурсия, но она привычна и не беспокоит.

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



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

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

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

5. Обходные пути

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

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

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

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

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

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

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

6. Разрушительная сила награды

Что мы можем сделать, если игрок добывает себе жетоны не тем путем, который от него требуется? Например, мы можем возложить на мастера игры функцию составления или утверждения списка дел, за которые будет выдаваться подкрепление. В Chore wars, например, только мастер может добавить новый квест, и это закрывает игроку возможность насобирать много-много жетонов с помощью заданий типа выкинуть в ведро одну бумажку.

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

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

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

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

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

Если мы воспитываем ребенка, то это существенное ограничение, потому что у нас в конечном счете есть цель вырастить автономного человека, способного самомотивироваться на все необходимые деятельности. Формирование зависимости от подкрепления не то, что приближает нас к этой цели. Эффект постоянной поддержки вознаграждением хорошо исследован на взрослых аутичных людях, которые в детстве получали ABA-терапию. Одним из центральных элементов этой системы является систематическое положительное подкрепление желательных форм поведения ребенка (конфетой, игрушкой, планшетом и т.д.). С одной стороны, это работает хорошо и быстро ребенок понимает, за что его вознаградят, и соответствующим образом адаптирует свое поведение. Окружающим становится намного удобнее с ним взаимодействовать. Именно за это любят ABA-терапию, и именно поэтому она является золотым стандартом в терапии аутизма. Однако через некоторое время становится заметно, что без подкрепления ребенок не функционирует. Он ждет инструкций и ждет, что за любое действие ему что-то дадут. Типичная жалоба жен взрослых аутичных людей заключается в том, что у них отсутствует какая-либо инициатива в отношениях, и о любых действиях их нужно, во-первых, просить и инструктировать, а во-вторых подкреплять. В результате супружеские отношения делаются больше похожи не на супружеские, а на детско-родительские. Понятно, что это утрированный случай, и аутичные люди в целом испытывают проблемы с инициативой (АBA-терапия их не столько создает, сколько усугубляет), но представление о характере отдаленных последствий это дает.

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

7. Медали и списки

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

Медали можно делать руками из подручных материалов (детям, например, очень приятно, когда специально для них что-то сделали), а можно использовать генераторы. Например, есть генератор достижений в стиле World of Warcraft:



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

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

Одна из основных функциональных систем головного мозга это блок программирования и контроля деятельности. В первую очередь к нему относится лобная кора. Если эта система плохо работает, нам тяжело составить план действий и придерживаться этого плана. Мы не понимаем, за что хвататься, и постоянно отвлекаемся. Для маленьких детей это естественное состояние, потому что у них функция программирования и контроля только-только формируется, а когда школьник или взрослый человек не может простроить свою деятельность, мы говорим, что у него дизрегуляторный синдром (executive dysfunction). Дизрегуляторный синдром, например, бывает при синдроме дефицита внимания и при расстройствах аутистического спектра. Окружающим кажется, что такой человек просто несобранный лодырь, самому человеку со временем тоже так начинает казаться, и он очень страдает от своей неспособности к выполнению банальных задач типа уборки.

Мотивирование тут помогает слабо, потому что деятельность стопорится на этапе планирования. Таким людям могут быть полезны планировщики типа той же Хабитики, причем не потому, что там покемоны, а потому что там списки того, что нужно сделать. Списки это та система ориентиров, за которую они могут ухватиться, чтобы поддерживать упорядоченность в своих действиях. Вообще-то этим должна была бы заниматься лобная кора, но по какой-то причине она сама не справилась, и тогда становятся нужны внешние подпорки. Если планирование сильно нарушено, списки должны быть более подробными, чем для нейротипичных людей. Например, задача прибраться на кухне для человека с лобными нарушениями может быть непреодолима из-за отсутствия четко сформулированной процедуры. Что значит прибраться? Если нужно протереть поверхности, то какие, чем, в каком порядке? Что нужно вымыть, что не нужно? Чтобы этот человек смог начать убираться, ему нужно получить алгоритм. Желательно, в письменном виде и в столбик.

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

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

Научно-исследовательские инициативы JetBrains

03.03.2021 14:04:54 | Автор: admin
Develop with pleasure, The drive to develop об этом вы наверняка от нас слышали. Но наши интересы далеко не ограничиваются разработкой и созданием мощных инструментов для повышения продуктивности. Мы верим, что можем многое изменить и сделать мир лучше. Один из верных способов проведение исследований в области передовых технологий и образования. Совместно с ведущими научными учреждениями мира мы занимается прикладными исследованиями, способными влиять на жизни людей и двигать нас всех вперед.

Наши научные исследования объединены в рамках направления JetBrains Research.

Ниже мы представим исследовательские группы JetBrains Research и расскажем, чем они занимаются.

Наука сегодня для технологий будущего



JetBrains Research объединяет более 150 исследователей, участвующих в проектах более 19 лабораторий и групп. Лаборатории и группы ведут работу в самых разных направлениях от физики элементарных частиц до разработки ПО.


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



Исследовательские группы



BioLabs


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


Задача BioLabs раскрыть механизмы эпигенетической регуляции у людей и животных и понять, какое значение эти механизмы играют в процессах дифференцировки и старения клеток. Самым крупным является проект старения, реализуемый BioLabs совместно с Университетом Вашингтона в Сент-Луисе. Другие исследовательские проекты посвящены различным темам, включая новые алгоритмы анализа данных, эффективные инструменты обработки данных для секвенирования нового поколения (Next Generation Sequencing), масштабируемые конвейеры данных, подходы к визуализации и мета-анализу существующих баз данных с информацией о механизмах эпигенетической регуляции. BioLabs также отвечает за PubTrends новый сервис для анализа научных публикаций, позволяющий быстрее анализировать тренды и находить значимые работы. Такой сервис необходим, поскольку число работ, публикуемых каждый год, неуклонно растет, и уследить за всеми публикациями по выбранной теме практически невозможно.


Вернуться к списку исследовательских групп


Группа биоинформатики


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

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


Вернуться к списку исследовательских групп


Лаборатория нейробиологии и физиологии развития


Нейробиология и физиология развития прошли долгий путь и накопили фундаментальную базу исследований. И тем не менее многое в этой науке по-прежнему остается неизведанным. А ведь эти науки таят в себе огромный потенциал к пониманию человеческого мозга.
Задача лаборатории нейробиологии и физиологии развития разработать вычислительный фреймворк для создания динамических пространственных моделей структуры нервных тканей и динамики базовых стимулов. Проект Biological Cellular Neural Network Modeling (BCNNM) использует последовательности биохимических реакций для запуска сложных моделей нейронных сетей при формировании исходных стволовых клеток. Фреймворк можно использовать для in silico репликации экспериментов, проведенных in vitro, чтобы получать измерения с ключевых компонентов, а также выполнять предварительную вычислительную проверку новых гипотез.


Вернуться к списку исследовательских групп



Лаборатория прикладного машинного обучения и глубокого обучения
и
Лаборатория агентных систем и обучения с подкреплением


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


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


Вернуться к списку исследовательских групп


Исследовательская группа Paper-Analyzer


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


Задача исследовательской группы Paper-Analyzer упростить извлечение знаний из научных работ, посвященных биомедицине, используя модели глубокого обучения для обработки естественных языков. Основой Paper-Analyzer служит языковая модель на основе архитектуры Transformer, оптимизированная под работу с научными статьями. Задача языковой модели на основе имеющегося контекста предсказывать следующее слово. Используя языковую модель, можно строить другие модели и обучать их решению таких задач, как, например, распознавание именованных сущностей, извлечение отношений, поиск ответов на вопросы. Группа также проводит эксперименты с генеративными моделями для обобщения и перефразирования предложений. Общая цель всех этих разработок возможность автоматического извлечения знаний из научных публикаций.


Вернуться к списку исследовательских групп


Лаборатория криптографии


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


Лаборатория криптографии занимается исследованиями современных задач в области криптографии и информационной безопасности. Она сотрудничает с COSIC исследовательской группой компьютерной безопасности и промышленной криптографии в Левене (Бельгия), Selmer Center в Университете Бергена (Норвегия) и INRIA (Франция). Исследования ведутся по различным направлениям: криптографические логические функции, симметричные шифры, легковесная криптография, технология блокчейна, квантовая криптография и информационная безопасность. Помимо публикации монографий и статей в ведущих журналах о криптографии, сотрудники лаборатории преподают криптографию в Новосибирском государственном университете и организуют NSUCRYPTO Международную студенческую олимпиаду по криптографии.


Вернуться к списку исследовательских групп


Группа HoTT и зависимых типов


Гомотопическая теория типов довольно новое направление математики, объединяющее несколько областей. Математике требуется прочная доказательная база: как однажды сказал Эйнштейн, никаким количеством экспериментов нельзя доказать теорию; но достаточно одного эксперимента, чтобы ее опровергнуть. Математика сложнейшая наука, поэтому данная инициатива большой и важный шаг.


Исследовательская группа занимается созданием Arend зависимо-типизированного языка и инструмента доказательства теорем, основанного на гомотопической теории типов. HTT является более продвинутым фреймворком, чем те, на которых основаны инструменты вроде Agda и Coq. Конечная цель создать онлайн-помощник для доказательства теорем, основанный на современной теории типов, который бы позволил формализовать определенные разделы математики.


Вернуться к списку исследовательских групп


Лаборатория методов ядерно-физических экспериментов


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


Лаборатория методов ядерно-физических экспериментов базируется в МФТИ. Основной интерес лаборатории методологии и ПО для решения задач в области физики элементарных частиц. На данный момент команда программистов лаборатории занимается разработкой нового поколения инструментов для получения данных (медленное управление, обработка сигналов) и анализа данных. Исследования лаборатории охватывают три сферы: физика элементарных частиц без ускорителя (эксперименты GERDA, Троицк ню-масс, KATRIN и IAXO), численное моделирование в физике элементарных частиц (эксперименты с ускорителем и без, атмосферное электричество, физика рентгеновского излучения) и разработка программного обеспечения для экспериментальной физики (системы получения и анализа данных, проекты по разработке инфраструктур, научные библиотеки для языка Kotlin). Огромное внимание уделяется и обучению: лаборатория старается дать молодым студентам возможность получить реальный опыт в физике и разработке.


Лаборатория методов ядерно-физических экспериментов


Вернуться к списку исследовательских групп


Лаборатория исследований процессов обучения


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


Задача лаборатории исследования процессов обучения разрабатывать мероприятия по продвижению предметов STEM среди старшеклассников и увеличению их шансов на успех при построении профессиональных карьер в областях STEM. Лаборатория занимается долгосрочным исследовательским проектом по выявлению главных индикаторов успеха учащихся в программировании и предметах STEM (наука, технологии, инженерия и математика). Мы ищем сочетание четырех возможных факторов: когнитивные навыки, некогнитивные характеристики (образовательные и профессиональные отношения, социальная среда), гендер и методологии обучения. Необходимо найти ответы на следующие вопросы:


  1. Кто идет в STEM и программирование?
  2. Какие факторы (когнитивные возможности, история семьи и т. д.) приводят человека к лучшим результатам и уменьшают вероятность забросить учебу?
  3. Существуют ли характерные установки (мотивация, вовлеченность и т.д.), способные пересилить первоначальные данные?
  4. Какие методологии обучения приносят успех, а какие повышают вероятность неудачи?

Вернуться к списку исследовательских групп


Лаборатория алгоритмов мобильных роботов


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


Лаборатория алгоритмов мобильных роботов объединяет исследования в области разработки эффективных алгоритмов для мобильных роботов. В лаборатории имеется единственный в России экземпляр Duckietown платформы и среды, позволяющих разрабатывать алгоритмы для мобильных роботов. В центре внимания лаборатории задача одновременной локализации и построения карты (SLAM). SLAM подразумевает составление и последующее поддержание карты неизвестной среды; при этом благодаря анализу данных с различных датчиков можно отслеживать местонахождение агента в среде. Сложность задачи SLAM связана с шумами, свойственными физическим датчикам, а также с необходимостью следить за изменениями в динамической среде. Кроме того, многие алгоритмы SLAM рассчитаны на недорогое оборудование, которое задает строгие требования к производительности. В 2019 году лаборатория роботов участвовала в третьих AI Driving Olympics соревнованиях роботов, управляющих беспилотным транспортом. Эти престижные соревнования считаются местом силы для развития знаний в сфере беспилотных автомобилей. Наша лаборатория заняла первое место во всех трех состязаниях. Примечательно, что это был первый прецедент победы алгоритма глубокого обучения на этих соревнованиях.


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


Лаборатория алгоритмов мобильных роботов


Вернуться к списку исследовательских групп


Проблемы оптимизации в программной инженерии


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


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


Вернуться к списку исследовательских групп


Группа параметризованных алгоритмов


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


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


Вернуться к списку исследовательских групп


Лаборатория параллельных вычислений


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


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


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


Вернуться к списку исследовательских групп


Лаборатория киберфизических систем


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


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


Вернуться к списку исследовательских групп


Методы машинного обучения в области программной инженерии


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


Группа методов машинного обучения в области программной инженерии занимается разработкой и тестированием методов улучшения инструментов и процессов разработки путем применения анализа данных (включая машинное обучение) к данным из программных репозиториев. Совместно с командами нескольких продуктов JetBrains группа занимается интеграцией в продукты современных методов на основе данных. В данный момент группа работает над десятком исследовательских проектов на различные темы от поддержки библиотек сбора данных до генерации кода из описаний на естественном языке. Недавние результаты работы группы включают новый подход к рекомендации рефакторингов Move method, исследование нарушений лицензий в заимствованном коде на GitHub, современный подход к присуждению авторства исходного кода и метод построения векторных представлений стиля кода без явных признаков.


Вернуться к списку исследовательских групп


Лаборатория языковых инструментов


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


Лаборатория языковых инструментов была создана для проведения научных исследований в области теории языков программирования. Это совместная инициатива JetBrains и отделения программной инженерии на математико-механическом факультете Санкт-Петербургского государственного университета. Лаборатория ведет исследования по множеству разных направлений, включая теорию формальных языков и ее приложения в области синтаксического анализа, статический анализ кода, запросы к графовым базам данных, биоинформатику, а также семантику формального языка программирования и, в частности, семантику слабых моделей памяти, формальные методы верификации, основанные на средствах доказательства теорем и SMT-решателях, методы оптимизации программ, основанные на частичной оценке и суперкомпиляции, различные парадигмы программирования, включая функциональное, реляционное и сертифицированное программирование. Помимо исследований лаборатория проводит ежегодные зимние и летние школы, недельные международные семинары, стажировки для аспирантов и многие другие мероприятия.


Вернуться к списку исследовательских групп


Лаборатория верификации и анализа программ (VorPAL)


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


В лаборатории верификации и анализа программ студенты, аспиранты и исследователи занимаются разработкой программных технологий, основанных на формальных методах, таких как верификация, статический анализ и методы трансформации программ. Эти методы помогают повысить продуктивность разработчиков при использовании ими автономных инструментов, расширений языков программирования и плагинов для IDE.
Существенная часть исследований посвящена изучению возможностей по расширению Kotlin. Мы верим, что Kotlin можно продолжать улучшать и расширять. Например, это могут быть макросы, liquid-типы, pattern matching, вариативные дженерики. Также в лаборатории занимаются исследованием применения
конколического тестирования в Kotlin, различных техник фаззинга компилятора и других областей.


Лаборатория верификации и анализа программ (VorPAL)


Вернуться к списку исследовательских групп


Лаборатория инструментов совместной работы


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


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


Вернуться к списку исследовательских групп



Если вы хотите присоединиться к какой-либо из групп, создать совместный проект или у вас есть общие вопросы, пишите нам по адресу info@research.jetbrains.org.


Благодарим Ольгу Андреевских за помощь в подготовке этой публикации.



Ваша команда JetBrains Research
The Drive to Develop
Подробнее..

Как я преподавал курс AIMLDL от Samsung

09.12.2020 20:22:50 | Автор: admin
Всем привет. Расскажу вам про свой взгляд на ИИ, так сказать, изнутри процесса. В смысле образовательного и научного процесса.

Так сложилось что в 1998 я поступил аспирантуру в РГАСХМ и темой своей научной работы выбрал AI/ML. Это были суровые времена очередного ледникового периода нейронных сетей. Как раз в это время Ян Лекун опубликовал свою знаменитую работу Gradient-Based Learning Applied to Document Recognition о принципах организации сверточных сетей, которая, на мой взгляд, как раз и была началом новой оттепели. Забавно, что тогда я работал над некоторыми похожими элементами, верно ведь говорят, что идея, когда приходит её время, носится в воздухе. Однако не всем дано ее воплотить в жизнь. Свою работу я, к сожалению, так и не довел до защиты, но всегда хотел когда-нибудь закончить ее.


Источник: Hitecher

И вот по прошествии 20 лет, когда я стал работать преподавателем в Южном Федеральном Университете и одновременно преподавать в программе дополнительного образования IT Школа Samsung, мне представился второй шанс. Компания Samsung предложила ЮФУ первому запустить учебный трек IT Академии Samsung по искусственному интеллекту для бакалавров и магистров. У меня были некоторые опасения в том, что удастся реализовать всю учебную программу в полном объеме, но я с энтузиазмом откликнулся на предложение читать курс. Я понял, что круг замкнулся, и мне представился таки второй шанс сделать то, что когда-то не удалось. Здесь нужно отметить, что курс Samsung AI/ML это один из лучших на сегодня открытых русскоязычных курсов, доступных бесплатно на платформе Stepik (https://stepik.org/org/srr). Однако в случае ВУЗовской программы, помимо теоретико/практического курса, добавлялась проектная часть. То есть годовая учебная программа IT Академии Samsung считалась освоенной в случае изучения двух модулей Нейронные сети и компьютерное зрение, Нейронные сети и обработка текста с получением соответствующих сертификатов Stepik, а также выполнения индивидуального проекта. Обучение по курсу завершалось защитой проектов студентов, на которую приглашались эксперты, в т.ч. сотрудники московского Центра искусственного интеллекта Samsung.

И вот с сентября 2019 мы стартовали курс в Институте высоких технологий и пьезотехники ЮФУ. Безусловно, довольно большое количество студентов пришло на хайпе и впоследствии был серьезный отсев. Программа была не то чтобы очень сложная, но объемная требовались знания:

  • линейной алгебры,
  • теории вероятности,
  • дифференциального исчисления,
  • языка программирования Python.

Конечно, все требуемые знания и умения не выходят за рамки учебной программы бакалавриата 3-го курса ВУЗа. Приведу пару примеров, из тех что посложнее:

  • Найдите производную функции активации гиперболического тангенса и выразите результат через $th(x)$.
  • Найдите производную функции активации сигмоиды и выразите результат через сигмоиду $(x)$.
  • В графе вычислений приведенном на рис. 1 представлена сложная функция $y$ с параметрами $b1,b2,c1,c2$. Для удобства добавлены промежуточные результаты операций как $z_1z_9$. Необходимо определить, чему будет равна производная $y$ по параметру $b1$




Честно говоря, кое-что, особенно из современных алгоритмов работы с нейронными сетями, я спешно изучал вместе со студентами. Изначально предполагалось, что студенты будут сами изучать видео-лекции онлайн курса Samsung на Stepik, а в аудитории мы будем делать только практикумы. Однако, я принял решение также читать и теорию. Это решение обусловлено тем, что с преподавателем можно разобрать непонятную тему, обсудить возникшие идеи и т.д. Практические же задачи студенты получали в виде домашних заданий. Подход оказался правильным на занятиях получалась живая атмосфера, я видел, что студенты в целом достаточно успешно осваивают материал.

Через месяц мы плавно перешли от модели нейрона к первым простым полносвязным архитектурам, от простой регрессии к многоклассовой классификации, от простого вычисления градиента к алгоритмам оптимизации градиентного спуска SGD, ADAM и т.д. Завершали первую половину курса сверточные сети и современные архитектуры глубоких сетей. Финальным заданием первого модуля по Computer Vision было участие в соревновании на Kaggle "Dirty vs Cleaned" с преодолением порога точности в 80%.

Еще один, на мой взгляд, важный фактор: мы не были замкнуты внутри вуза. Организаторы трека проводили для нас вебинары и мастер-классы с приглашенными экспертами из лабораторий Samsung. Такие мероприятия повышали мотивацию студентов, да и мою, честно говоря :). Например, было интересное профориентационное мероприятие онлайн-мост между аудиториями ЮФУ, МГУ и Samsung, на котором сотрудники московского Центра ИИ Samsung рассказали о современных направлениях развития AI/ML и ответили на вопросы студентов.

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

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

  1. Мониторинг физической активности человека Благодарный Александр, Крикунов Станислав.
  2. Разработка алгоритмов идентификации усталости человека Соленова Антонина.
  3. Распознавание маски на лице Будаева Екатерина.
  4. Распознавание эмоций по фотографии лица Пандов Вячеслав.
  5. Определение эмоций по речи Тихонов Алексей.
  6. Косметологический консультант Жмайлова Наталья.
  7. Цена слова Ринкон Диас Хаиро Алонсо, Моралес Кастро Хайме Игнасио.



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

I место в номинации Искусственный интеллект конкурса IT Академии Samsung.
Мониторинг физической активности человека, Благодарный Александр, Крикунов Станислав


Проект состоял в том, чтобы создать мобильное приложение, определяющее и количественно подсчитывающее физическую активность на тренировках при помощи сенсоров мобильного телефона. Сейчас существует множество мобильных приложений, которые могут распознавать физическую активность человека: Google Fit, Nike Training Club, MapMyFitness и другие. Однако, эти приложения не могут распознавать отдельные виды физических упражнений и подсчитывать количество повторений.
Один из авторов проекта Благодарный Александр, мой выпускник по программе IT Школа Samsung 2015 года, и я не без гордости, радовался, что полученные еще в школе знания по мобильной разработке были применены в таком ключе.


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

Датасет был собран авторами самостоятельно. При выполнении 7 различных упражнений использовались 3 вида смартфонов (Android версии 4.4 ,9.0, 10.0). Смартфон закреплялся на руке с помощью специального кармана. Суммарно тремя добровольцами было выполнено 1800 повторений. При выполнении могли возникать ошибки в технике по каким-либо причинам, поэтому была проведена процедура очистки выборки. Для этого были построены распределения взаимных корреляций для всех видов упражнений. Затем для каждого упражнения был выбран порог корреляции, ниже которого упражнение считается негодным и исключается из выборки.

Одно и то же упражнение, в зависимости от повторения, имеет различное время выполнения. Для борьбы с этим было решено интерполировать данные фиксированным числом отсчетов вне зависимости от того, сколько поступило с датчиков. Поступило 50 удваиваем частоту дискретизации, вычисляя промежуточные позиции как среднее арифметическое соседних. Поступило 200 выбрасываем каждый 2 отсчет. При этом число отсчётов будет постоянным. Аналогично при любых отношениях входного числа отсчётов к желаемому выходному числу.

Для нейросети было решено применять данные в частотной области. Поскольку масса тела человека достаточно велика, можно ожидать, что на большинстве стандартных упражнений характерные частоты сигнала будут лежать в низкочастотной области спектра. При этом высокие частоты можно считать либо дрожью при выполнении, либо шумами датчиков. Что это значит? Это значит, что мы можем найти спектр сигнала при помощи быстрого преобразования Фурье и использовать только 10-20 % данных для анализа. Почему так мало? Так как 1) спектр симметричен, можно сразу отсечь половину составляющих 2) основная информация лишь 20-40% информативной части спектра. Такие предположения особенно хорошо описывают медленные силовые упражнения.


Нормированный временной ряд для разных упражнений


Нормированный спектр для разных упражнений

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

Нейросеть выполняет задачу классификации упражнений. Это значит, что она выдает вектор вероятностей всех упражнений из списка, по которым она была обучена. Индекс максимального элемента в этом векторе номер выполненного упражнения. При этом, если уверенность в выполненном упражнении менее 85%, то считается, что ни одно из упражнений не было выполнено. Сеть состоит из 3 слоев: 4 свёрточных, 3 полносвязных, количество выходных нейронов равно количеству упражнений, которые мы хотим распознавать. В архитектуре для экономии вычислительных ресурсов используются только свёртки с размером ядра 3х3. Сравнительно простая архитектура сети оправдана ограниченными вычислительными ресурсами смартфонов, в нашей задаче необходимо распознавание с минимальной задержкой.


Описание архитектуры нейросети

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

Результаты: при более-менее качественном выполнении упражнений уверенность сети составляет 95-99%. На валидационной выборке точность составила 99.8%.


Ошибка при обучении на валидационной выборке


Матрица ошибок для нейросети

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

В ходе исследования также были опробованы другие модели машинного обучения, используемые в наши дни для решения задач классификации: логистическая регрессия, Random forests, XG Boost. Для этих архитектур были использованы регуляризация Тихонова (L2), перекрёстная проверка и gridsearch для поиска оптимальных параметров. Показатели точности в результате оказались следующими:

  • Логистическая регрессия: 99.4 %
  • Random forests: 99.1 %
  • XG Boost: 97.5%

Знания, полученные в ходе обучения в IT Академии Samsung, помогли авторам проекта расширить горизонты интересов и оказали неоценимый вклад при поступлении в магистратуру Сколковского института науки и технологий. На данный момент мои студенты занимаются там исследованиями в области машинного обучения для систем связи.

Код на GitHub

II место номинации Искусственный интеллект конкурса IT Академии Samsung.
Распознавание эмоций по фотографии лица, Пандов Вячеслав




Работа модели хорошо описана на этом слайде:



Все начинается с фотографии. В представленной реализации оно приходит от Telegram-бота. По нему Dlib frontal_face_detector находит все лица на изображении. Затем с помощью Dlib shape_predictor_68_face_landmarks детектируются 68 ключевых 2D точек каждого лица. Каждый набор нормализуется следующим образом: центрируется (вычитая среднее по X и Y) и масштабируется (деля на абсолютный максимум по X и Y). Каждая координата нормализованной точки принадлежит интервалу [-1, +1].

Затем в дело вступает нейросеть, которая предсказывает глубину каждой ключевой точки лица координату Z, используя нормализованные координаты (X, Y). Данная модель обучалась на датасете AFLW2000.

Далее эти точки соединяются между собой, образуя сеточную маску. Её ещё можно назвать биометрией лица. Длины отрезков такой маски используются как один из способов определения эмоций. Идея в том, что каждый отрезок имеет своё место в векторе отрезков и некоторые из них в зависимости от эмоции. И каждая эмоция, теоретически, имеет ограниченное количество таких векторов. Эта гипотеза подтвердилась в процессе экспериментов. Для обучения такой модели использовались датасеты: Cohn-Kanade+, JAFFE, RAF-DB.

Параллельно ещё одна сеть учится классифицировать эмоции по самому изображению. По найденным с помощью Dlib прямоугольникам вырезаются изображения лиц. Переводятся в одноканальные черно-белые и сжимаются до размеров 48х48. Для обучения этой модели использовались те же датасеты, что и для модели с биометрией. Однако дополнительно использовался датасет FER2013.

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

Среди аналогичных решений можно выделить следующие: EmoPy, DLP-CNN (RAF-DB), FER2013, EmotioNet. Однако сложно делать сравнения, т.к. обучались они на разных данных.

Код на GitHub

Заключение


В заключение хочется сказать, что пилотный курс показал свою состоятельность, и в этом 2020/21 учебном году программа уже преподается в 23х ВУЗах партнерах IT Академии Samsung в России и Казахстане. Полный список можно увидеть здесь. В это году у нас уже учится группа магистров и бакалавров (в группе есть даже один целый к.э.н.!) и пока в основной массе успешно грызет гранит науки. Идеи на индивидуальный проект пока еще только предстоит найти, но студенты полны оптимизма. Конечно в следующем конкурсе индивидуальных проектов конкуренция возрастет десятикратно, но мы надеемся и в дальнейшем получать высокие оценки достижений наших учеников. И самое главное, я уверен, что полученные знания и опыт будут очень серьезным подспорьем для наших выпускников в их дальнейшем развитии в сфере IT.

2020 г. Ростов-на-Дону. ЮФУ, IT Академия Samsung.


Дмитрий Яценко
Старший преподаватель кафедры информационных и измерительных технологий, факультет высоких технологий, Южного Федерального Университета,
Преподаватель IT Школы Samsung,
Преподаватель трека AI IT Академии Samsung.
Подробнее..

Категории

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

  • Имя: Макс
    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