Привет, это Александр Нозик, и этот пост посвящен еще одной "интересной" магистерской программе (на этот раз на физтехе, совместно с JetBrains, Таврида Электрик и целым списком научных организаций). Про интересность вы решите сами, но программа в этот раз действительно уникальная (пока по крайней мере). Называется она Научное программирование (официальное название "Разработка и применение программного обеспечения в физических исследованиях") и расположена на ФПМИ и ЛФИ в МФТИ. Посвящена не отдельно физике, не отдельно программированию, не отдельно computer science, а стыку всего этого.
Если вы уже поняли, что это про вас, то можно бежать читать подробности и заполнять анкету на сайте программы.
Если нет, то читаем дальше.
Дело в том, что все аспекты нашей современной жизни так или иначе связаны с компьютерами и программированием, наука и инженерия не исключение. Ученые и инженеры существенную часть своего рабочего времени посвящают работе с компьютерами. Если мы говорим про науку, то все начинается со стадии проектирования эксперимента. Мы делаем большие объемы математического моделирования, чтобы понять, что вообще можно измерить и как это лучше сделать. В конце концов, мы не можем работать методом тыка. Современные эксперименты очень дороги, и делать их, не зная заранее, что там можно измерить, очень невыгодно. Дальше нам надо собрать данные, для этого используются разнообразные автоматизированные системы управления. Эти данные нужно хранить (а данных может быть очень много, петабайты). К данным нужно обеспечить удобный доступ, организовать резервное хранение, сервисы по индексации и визуализации. В конце концов данные нужно обработать. А тут уже нужно задействовать весь арсенал современных компьютерных методов работы с данными от параллельных и распределенных вычислений до машинного обучения.
В индустрии проблем не сильно меньше. То же самое математическое моделирование, тот же сбор данных, но также добавляется использование автоматических систем проектирования, инфраструктурные проекты и многое другое.
Во всех этих задачах нужно не только знать соответствующие алгоритмы, но и создавать и поддерживать программные инструменты. Практика показывает, что для этого нужно понимать не только прикладное программирование, но и ту область, в которой решения будут применяться (предметную область). В то же время физики и инженеры должны знать прикладное программирование, чтобы работать с современным программным обеспечением и совершенствовать его.
Как вы, наверное, уже догадались, тут как раз и включается наша магистерская программа. Она организована на стыке областей, и наша цель научить физиков (и вообще "предметников") программировать, а программистов понимать предметную область. Разумеется, невозможно знать все одинаково хорошо. Но тем не менее мы и наши партнеры верим в то, что в будущем профессия физик-программист (или химик-программист, или биолог-программист), то есть тот, кто не просто может написать скрипт на Python, а умеет создавать и поддерживать прикладное программное обеспечение в предметной области, будет весьма востребована.
Разумеется, тут есть некоторая техническая сложность. Дело в том, что за последние 30 лет пути IT и естественных наук сильно разошлись, и оказывается, что физики плохо владеют IT-инструментами, а IT-шники не знают предметной области. Нам нужны и те и другие, но обучать их нужно по-разному. Поэтому нужно сделать так, чтобы программа была максимально гибкая и могла быть подстроена и под тех, и под других. Решение это минимальный набор общих предметов:
Вычислительные методы
Анализ данных
Научная этика
Научный семинар
Остальные предметы выбираются студентом совместно с научным руководителем. Научный руководитель в нашей программе играет ключевую роль, потому что мы пытаемся охватить очень широкую область со множеством узких специализаций, и именно научный руководитель (и компания или институт, стоящие за ним) являются "направляющей", по которой студент будет двигаться. По этой причине руководителя нужно выбрать заранее и убедиться в том, что он (или она) вам подходит и вы подходите ему (или ей). В качестве бонуса от такой процедуры вы можете получить гарантированное поступление в магистратуру МФТИ. Наши промышленные партнеры (JetBrains и Таврида Электрик) готовы оплатить обучение для ограниченного количества студентов, которые прошли собеседования с руководителями, но по какой-то причине не прошли по конкурсу.
Давайте теперь кратко подробно никакого поста не хватит остановимся на темах тех научных руководителей, которые участвуют в программе.
Это направление представлено очень широко, поскольку создатели программы выходцы из этой области.
Максим Долгоносов из ИКИ РАН и ВШЭ представляет широкое направление, связанное с моделированием космических детекторов и высокоэнергетических процессов в атмосфере (с заходом в физику плазмы). Над этой проблемой сейчас также работает очень активная группа в МФТИ под руководством Егора Стадничука и Екатерины Свечниковой из ИПФ РАН.
Художественное видение реакторной модели возникновения наземных гамма-всплесков. Автор: Екатерина СвечниковаИгорь Анатольевич Пшеничнов из ИЯИ РАН является ведущим мировым специалистом по фотоядерным реакциям, физике ядер-спектаторов и моделированию на платформе Geant4 как для экспериментов в физике частиц, так и для прикладных исследований, например медицинской физики. Ученики Игоря Анатольевича работают в МФТИ.
Кроме того существует широкий спектр задач в физике частиц (в основном в международных коллаборациях), требующих навыков работы с Geant4 (С++).
В лаборатории Nuclear Physics Methods JetBrains Research мы Александр Нозик и Roland Grinis также занимаемся разработкой новых экспериментальных инструментов для моделирования процессов (в основном на Kotlin и с использованием разных новых технологий.
Айно Константиновна Скасырская является уникальным специалистом по сеточным расчетам разного рода (гидродинамика, термодинамика, расчет механических напряжений, электромагнитные поля). Для таких расчетов нужно не только хорошо разбираться в решении дифференциальных уравнений на сетках, но и владеть современными коммерческими пакетами, такими как ANSYS и COMSOL. Ученики Айно Константиновны чрезвычайно востребованы в промышленности.
На данный момент этой задачей занимаются сразу две не связанные между собой группы, сотрудничающие с нашей магистерской программой: Олег Евгеньевич Калашев из ИЯИ РАН и Дмитрий Костюнин из DESY (Германия). Обе группы занимаются анализом данных с крупных международных экспериментов, таких как Telescope Array, Tunka-rex и HESS, с использованием современных компьютерных методов, включая машинное обучение.
Иллюстрация из сборника "Физики шутят"Лев Шагалов курирует широкий спектр задач от крупной коммерческой компании Таврида Электрик одного из наших основных партнеров. Среди этих задач есть как разработка высоконагруженных распределенных систем последнего поколения для управления электросетями, так и разработка и внедрение "умных" алгоритмов в энергетической отрасли.
Константин Герценбергер является главой группы программного обеспечения в эксперименте BM@N на коллайдере NICA и занимается разработкой и поддержкой всех программных систем эксперимента. Петр Климай в рамках этой же коллаборации занимается системами хранения, индексации и визуализации больших объемов данных.
Игорь Хохряков входит в коллаборацию TANGO-controls и вместе со мной занимается разработкой распределенных гетерогенных систем сбора данных нового поколения и системами визуализации для них (кому интересно, пойдите посмотрите тут и тут.
Ильмир Усманов из JetBrains (отделение в Мюнхене) входит в команду Kotlin language research и занимается проектированием и оптимизацией элементов компилятора Kotlin, нужных в том числе для высокопроизводительных вычислений.
Roland Grinis в плотном сотрудничестве с лабораториями JetBrains Research и Kotlin scientific community занимается разработкой и интеграцией инструментов для высокопроизводительных тензорных вычислений и их использованием для реализации прикладного моделирования.
Разумеется, тут описано далеко не все, чем планируется заниматься в рамках магистратуры. В одной только нашей лаборатории еще много работы по визуализации данных, распределенным вычислениям и куче всего.
Демонстрация библиотеки VisionForge. Визуализация трэков мюонов в подземном эксперименте Muon MonitorСписок руководителей постоянно обновляется. Кроме того, если у вас есть задача по научному программированию, под которую у нас не нашлось руководителя, то пишите нам, мы поищем. Ну и разумеется, можно приходить со своим руководителем.
Для того, чтобы примерно понять, о каких задачах идет речь, можно заглянуть сюда и посмотреть тестовые/стартовые задачи, оставленные нашими руководителями с пометкой "Магистратура".
Для начала надо заполнить анкету. В ней укажите свою контактную информацию и тех руководителей, с которыми вы хотели бы работать. Подача анкеты ни к чему вас не обязывает. Вы можете зарегистрироваться, пройти собеседование с руководителем и решить, что вам хочется чего-то другого.
Более подробная и актуальная информация есть на сайте.
Задать вопросы и обсудить разные аспекты научного программирования можно в телеграм-группе нашей лаборатории
Всем привет! На связи Антон Клочков, студент первого курса корпоративной магистратуры JetBrains Разработка программного обеспечения на базе Университета ИТМО. Я хочу рассказать, как выбирал программу, и главное оправдались ли мои ожидания.
Northern Eurasia Regional Contests 2017. Антон в центре снимка [прим. ред.]Я из небольшого города в Хабаровском крае Советской Гавани. В школьные годы участвовал в разных олимпиадах, но занимал только призовые места, и дальше региона мне пройти не удавалось. Пишу код с восьмого класса, разработкой занимаюсь с первого курса вуза.
Школу я закончил весьма успешно: золотая медаль и 276 баллов по ЕГЭ дали возможность поступить в Университет ИТМО, чем я и воспользовался. Выбрал бакалаврскую программу Программирование и интернет-технологии, где познакомился с множеством замечательных людей и расширил свой кругозор в области разработки программного обеспечения.
В конце второго курса я присоединился к 3D4Medical в роли R&D Engineer занимался оптимизациями графического движка, разрабатывал внутренние инструменты и реализовывал фичи для приложения компании Complete Anatomy. К началу четвертого курса я сменил акцент с разработки в сторону машинного обучения и перешел в другую компанию BrainGarden, где развивал проекты, связанные со SLAM (Simultaneous localization and mapping) и computer vision. Меня устраивал уровень зарплаты и был очевиден карьерный путь. Однако пробелы в области алгоритмов и в некоторых разделах математики не давали покоя. Я понимал, что магистратура возможность устранить эти пробелы, и решил выбрать для себя подходящую программу.
На корпоративную программу JetBrains я подал документы после тщательного обдумывания и сравнения с аналогами. Критерии были следующие:
Есть предметы, имеющие отношение и к разработке, и к машинному обучению. У меня был опыт работы с задачами по deep learning, и хотелось развиваться в этом направлении.
Программа базируется в Санкт-Петербурге он мне очень нравится своим спокойствием и доступностью цивилизации.
Большинство преподавателей являются очень хорошими специалистами в отрасли, либо работают в ней прямо сейчас.
Программа актуальна. Мне жалко тратить свое время на учебу, когда полученными знаниями можно воспользоваться, только если работаешь с технологиями времен СССР.
Дисциплины последовательны. Знания должны дополняться от семестра к семестру сперва нужно пройти фундаментальные предметы, а потом те, что базируются и отталкиваются от них.
В итоге в поле зрения оказалась моя нынешняя программа, а также Машинное обучение и анализ данных из петербургского кампуса НИУ ВШЭ. Знакомые студенты обеих программ заверили, что оба варианта очень сложные и интересные. Но Университет ИТМО был мне ближе по духу, поэтому я сделал выбор в его пользу.
В отличие от большинства ребят из моего потока, я поступил без экзаменов. Еще во время учебы в бакалавриате я занимался научной деятельностью, и к концу четвертого курса у меня были статьи, которые я приложил к заявке для конкурса портфолио. Однако этот способ мог и не принести результата, поэтому параллельно с подачей документов я все-таки готовился к вступительным. По большей части это были курсы на платформе Stepik, который рекомендуют абитуриентам организаторы программы в Telegram-чате. С этого года их учитывают в качестве первой части вступительного испытания (см. перезачет онлайн-курсов, а со всеми траекториями поступления можно ознакомиться на сайте магистратуры). К счастью, я прошел по конкурсу портфолио и два месяца ждал начала обучения, один из которых потратил на военные сборы.
У каждого потока есть кураторы. Они решают проблемы с расписанием, делают обучение комфортным и независимым от бюрократии. С учетом достаточно интенсивного обучения еще и помогают знакомиться с одногруппниками и устраивают разные внеучебные активности. В целом к ним можно обратиться и по жизненному вопросу, они поддержат и подскажут.
Наша учеба началась с весьма ламповой встречи, на которой мы ели пиццу и познакомились друг с другом. К сожалению, из-за коронавируса таких встреч за весь семестр было две. Даже сейчас, когда многие университеты вернулись к очному обучению, мы продолжаем заниматься дистанционно. Дело в том, что большинство преподавателей программы сотрудники JetBrains, а компания заботится об их здоровье и старается минимизировать личные контакты.
Тем не менее, даже на дистанте преподаватели дают материал на высшем уровне. Например, мне кажется, что Александр Владимирович Смаль (ведет курс Алгоритмы и структуры данных) изобрёл великолепную технику преподавания. Когда требуется большое количество выкладок на доске, он использует планшет и стримит с него экран, на котором пишет. Выглядит это так:
Еще я столкнулся с совершенно новой для себя областью функциональным программированием. На этом курсе мы сначала изучали лямбда-исчисление и программирование на Haskell. Было интересно, сложно, но мы справились благодаря отличным лекциям от Дениса Николаевича Москвина и подробным практическим занятиям.
Опытный комментатор остановит меня здесь и скажет: Что-то у вас там слишком всё сладко. И будет прав. Как и везде, проблемы есть: что-то недопонял, что-то не успел, что-то не понравилось. Но всё это решаемо. Если вам не нравится, как проходит курс, можно обсудить это с кураторами и повлиять на изменения в нем. Что-то недопонял пишешь преподавателю, и с тобой обсудят волнующую тебя тему. Так обучение становится благоприятным для развития.
Кроме лекций и практик каждый семестр студенты выполняют научно-исследовательскую работу (НИР). Стоит сказать, что это один из самых интересных аспектов нашей магистратуры. Студенты получают темы от компаний: JetBrains, Яндекс, ВКонтакте и других, выбирают себе приглянувшиеся и под контролем сотрудников компании работают над ними. В частности, в первом семестре я взял тему Generative adversarial audio denoiser в компании MynaLabs.
В рамках этого НИРа мне нужно было погрузиться в то, как устроен аудиосигнал, какие методы его обработки существуют, а также изучить природу шумов в аудиосигнале и обучить глубокую нейронную сеть, которая очищала аудио от шумов. Мой научный руководитель предложил обучить HiFi-GAN использовать один из последних подходов для подавления шумов в аудио. Если вы не знаете, что такое GAN, то общую информацию можно найти здесь.
Для обучения мне выделили отдельную видеокарту на корпоративных серверах и обеспечили необходимыми данными. В течение всего семестра я созванивался с научным руководителем: мы обсуждали проблемы, пути их решения, я описывал текущие результаты. В общем, мой НИР ничем не отличался от реальной работы в компании. В результате мне частично удалось обучить HiFi-GAN. Кажется, что за более длительное время я смог бы добиться и лучших результатов, но в целом я доволен проделанной работой.
Программа, на которой я учусь, оказалась действительно сложной. Под этим словом каждому стоит понимать свое. Людям не из ИТ-сферы скорее всего будет сложно и с точки зрения материала, и с точки зрения нагрузки. Если у вас есть опыт в разработке и знание базового курса алгоритмов не переживайте, вам тоже будет нелегко. Объем заданий очень большой. Стоит быть готовым к тому, что первый семестр пройдет в режиме постоянной кропотливой работы. С крепким математическим бэкграундом, алгоритмическими знаниями и многолетним опытом тоже можно поступать, но проще от этого вам, скорее всего, не будет: порой задачки, с которыми нужно разбираться, имеют весьма нетривиальное решение.
Для меня самым ценным в магистратуре является отношение между преподавателями и студентами. Первые заинтересованы в том, чтобы мы чему-то научились, и стараются давать годный материал под уровень студентов например, подстраивают темп чтения, чтобы было комфортно слушать лекции и практики. Вторые активно изучают и обсуждают материал, плюс поддерживают дружную атмосферу даже на удаленке. Если попытаться уложить мой опыт в рамки чеклиста, получатся следующие рекомендации для тех, кто думает о поступлении:
Оцените свою мотивацию. Эта программа реально сложная. Поэтому подумайте дважды, а то и трижды, зачем она вам. Я не пытаюсь отговорить, просто на одном желании долго не протянуть.
Начните готовиться уже сейчас. Если вы прошли онлайн-тест, стоит готовиться к устному вступительному экзамену. Не надо зубрить, надо понимать. Проверяют не столько на знания, сколько на понимание сути. Само собой, формулу биномиальных коэффициентов нужно и знать, и понимать,как вывести.
Приготовьтесь уйти с работы. Да, как бы грустно это ни звучало, но работу очень сложно совмещать с первым курсом магистратуры. Есть уникумы, которым удавалось работать на полставки со второго семестра, но о тех, кто делал это на первом, я не слышал. В нашем наборе все либо брали долгосрочный отпуск, либо увольнялись.
В целом мои ожидания от магистратуры оправдались. Изначально я скептически относился к уровню сложности программы. Мне казалось, что ракету построить сложно, а учиться вряд ли. Но здесь я просчитался. С другой стороны, я получаю актуальные знания, которые мне обязательно пригодятся. Уверен потому, что проецируя знания на мой предыдущий опыт работы, я нахожу более элегантные решения для разных задач. Сейчас я понимаю, что делал не так, и как следовало бы. А потраченное время окупится в будущем.
Что еще есть у нас в блоге на Хабре:
Если информационные технологии это индустрия настоящего, то фотоника индустрия будущего. Объем глобального рынка фотоники в настоящий момент составляет 550 млрд долларов, но уже к 2023 году достигнет примерно 800 млрд долларов, что обеспечивает рост потребности в квалифицированных специалистах, в том числе и в России
Владислав Бугров, директор мегафакультета фотоники
Нафизико-техническом факультете ИТМОведутся фундаментальные и прикладные исследования в области нанофотоники, радиофизики, физики твердого тела, а также междисциплинарные исследования на стыке физики, химии, информатики, биологии. Они включают метаматериалы, оптоэлектронику, адресную доставку лекарств, топологическую фотонику, биофотонику, оптомеханику, беспроводную передачу энергии, радиофизику и другие направления. На факультете есть шесть международных лабораторий, оснащенных современным исследовательским оборудованием, в которых работает большой коллектив молодых ученых
Юлия Толстых, инженер физико-технического факультета
Студенты бакалавриата и магистратуры с самых первых семестров учебы попадают на научную практику в лаборатории и моментально все схватывают. Зачастую они уже гораздо лучше разбираются в отдельных вопросах, и они уже объясняют детали работы это чудесно
Георгий Зограф, аспирант физико-технического факультета ИТМО
Во время обучения в магистратуре мы с коллегами теоретически предсказали новый тип электромагнитных поверхностных волн, которые сегодня известны в мире как гиперболические плазмон-поляритоны. В 2015 году по результатам этой работы опубликовали статью в авторитетном журнале Physical Review B, при этом редакторы журнала особо выделили и рекомендовали нашу работу
Олег Ермаков, выпускник и куратор программы Нанофотоника и метаматериалы
Во время обучения в бакалавриате и при поступлении в магистратуру у меня не было и мысли о том, что я буду ученым я просто любил физику. Передо мной снова стал важный выбор куда именно поступать в аспирантуру. Я получил предложения от нескольких европейских университетов, но все-таки решил продолжить карьеру в ИТМО. За время обучения в аспирантуре ИТМО я также много работал и представлял свои результаты за рубежом. В частности, за последние два года у меня было три стажировки в Техническом университете Дании и две стажировки в Институте фотонных технологий имени Лейбница в Германии. Кроме того, я посетил ряд конференций и симпозиумов не только в различных городах России, но и во Франции, Италии, Дании и даже Сингапуре
Олег Ермаков
Этот метод позволяет сформировать структуру электрода, буквально выстраивая его по атомам. Образуется очень качественное покрытие, дающее хорошую проводимость. В результате общая эффективность солнечной батареи увеличивается на 20%. Такой электрод со стеклянными вкраплениями можно использовать для тонких солнечных батарей на основе не только аморфного кремния, но и любых других материалов
Михаил Омельянович, аспирант Нового физтеха ИТМО
Среди компаний-работодателей есть как тяжеловесы, входящие в структуры Росатома, Газпрома, Новатека с местами для трудоустройства, так и небольшие компании, которые предлагают сотрудникам быстрый карьерный рост и гибкую систему оплаты труда, зависящую от эффективности специалиста. Студенты, которые ищут себе подходящее место работы, уже сами могут выбрать, что им больше подходит стабильность или быстрые победы и взлёты
Андрей Никитин, декан факультета низкотемпературной энергетики
Ранее на Хабре мы обсудили тему молодежной робототехники и междисциплинарный подход к развитию в этой области. Сегодня сфокусируемся на несколько ином направлении и поделимся нашей беседой с Екатериной Скорб, директором центра инфохимии Университета ИТМО, приглашенным профессором в Гарварде и групп-лидером в институте Макса Планка.
На фото: профессор Екатерина Скорб. Источник: news.itmo.ruПослушать беседу:Apple PodcastsЯндекс.МузыкаPodfmАудиоверсия на YouTube.
Таймкод 00:24
Екатерина: Мы занимаемся новым направлением междисциплинарной инфохимией. Эта область затрагивает все, что связано с кодированием, хранением и обработкой информации на молекулярном уровне. Когда в таком контексте звучит слово информация, вы понимаете, что химик должен находится там, где понимают, что такое теория информации, поэтому я работаю в Университете ИТМО. Здесь в какой-то момент проявили интерес к естественно-научному направлению, а потом интегрировали его с инженерной и математической базой.
В нашем центре химики предлагают новые подходы к решению сложных проблем занимаются информацией в самоорганизующихся системах, изучают их синтетические аналоги и проводят фундаментальные исследования в этой области. Одно из направлений осциллирующие реакции и электрохимические системы. С ними удобно работать. Мы смотрим, как их запускать синхронно и настраивать систему так, чтобы получить порядок из хаоса.
Дмитрий: Как я понимаю, такие исследования пригодятся в целом спектре отраслей от хранения данных до разработки новых вычислительных систем и медицинских гаджетов?
Екатерина: Если мы перейдем к управлению на молекулярном уровне, применение будет очень широким. Мы надеемся, что сможем продвинуться в этом направлении. Пока работаем с биологическими системами ищем те, на основе которых можем предложить предсказательные модели и новые подходы например, занимаемся разными типами биопленок.
Когда возникла проблема бактерий, устойчивых к антибиотикам, ученые начали разбираться, как они живут и коммуницируют. Выяснилось, что они делают это с помощью небольших молекул передают друг другу сигналы, запускающие процесс размножения, как только попадают в благоприятные условия. Мы можем взять подобную систему в качестве модели допустим, запускать автокаталитическое размножение схожим образом, потом выделять такие молекулы [либо ингибиторы] периодически.
Так можно найти различные подходы для отправки сигналов биологическим системам. Но хорошо бы вообще делать большую часть всего этого математически. Тут можно вспомнить Алана Тьюринга и его работу похимическимосновамморфогенеза, которую любят биологи.
Поэтому сейчас мы разбираемся с этой темой с точки зрения теории информации, чтобы понять, сможем ли мы управлять и использовать такие системы для вычислений. Подобные исследования возможны только в связке с людьми, которые специализируются на данных областях знаний.
Таймкод 05:31
Дмитрий: Вы работаете с темой на фундаментальном уровне, чтобы объяснить, как добиться такого эффекта и воспроизводить его?
Екатерина: Я иногда говорю, что мы собираем биологические и химические системы, которые работают так же хорошо, как системы транзисторов. Например, мы делаем локальные градиенты и посылаем локальные сигналы, а потом смотрим, как происходит синхронизация в нашей химической и биологической системе, описываем математические зависимости. Какие-то процессы запускаем не на одном электроде, а одновременно на 25-30 электродах. Находим состояния и режимы, когда несинхронные процессы приводят к синхронизации в системе.
Если говорить простыми словами, то настраиваем все так, чтобы можно было использовать такую химико-биологическую систему в потребительском сегменте. Допустим, в диагностике.
Дмитрий: Наклейка на кожу, которая будет показывать результат определенных измерений?
Екатерина: Или будет мониторить концентрацию натрия и калия, которая связана с обменом веществ, а вы будете понимать, все ли в порядке. Пока мы пытаемся выявить некие корреляции. Один из последних примеров показал, что у людей в арабских странах содержание меди ниже среднего. Возможно, это связано с рационом. Но если вы измеряете не только медь, но и цинк, кальций, магний, натрий и делаете это постоянно в формате носимого устройства, анализ с помощью систем ИИ позволит выявить закономерности и специфику целевых групп. Например, признаки определенных заболеваний или спортивных тренировок. От этих выводов можно отталкиваться для разработки тренировочных программ и стратегий лечения пациентов.
Дмитрий: Такой подход упростит и сам процесс сбора данных.
Екатерина: Да, мы работаем над этим. С коллегами мы занялись не только проектированием химических сенсоров, но и функциональных приборов сделали прототип портативного потенциостата. Далее его можно миниатюризировать, переводить в гибкие форматы.
Таймкод 12:33
Дмитрий: Получается, у вас в комплексе теоретические и практические разработки?
Екатерина: Да. Как раз для этого и поддержали наш центр инфохимии. Теперь это не только моя группа, которая занимается фундаментальными проблемами. Есть весьма прикладные цифровизация пищевых технологий, разработка и внедрение портативных устройств и другие.
Дмитрий: Уже идет работа над продуктом.
Екатерина: Да. Тут еще важно, что все это очень понятно для магистров и аспирантов. Они сами проявляют инициативу и подают заявки на гранты. Основное финансирование РНФ и РФФИ, но я надеюсь, что в какой-то момент будет поддержка и от меценатов, которых заинтересуют амбициозные задачи, и они начнут инвестировать в исследовательскую деятельность.
На фото: профессор Екатерина Скорб. Источник: news.itmo.ruЗдесь я чуть больше двух лет. До этого долго работала в институте Макса Планка, где у меня была научная группа. Еще в Гарварде, у самого цитируемого химика современности Джорджа Уайтсайдса. Занималась фундаментальным направлением, таким как возникновение жизни на Земле. Эту работу поддерживал фонд Саймонса.
Будет отлично, если у нас появятся похожие примеры. Допустим, инвесторы заинтересуются разработкой искусственной клетки и самовоспроизводящихся систем.
Такие задачи можно решать только с помощью усилий междисциплинарных групп. Как только нам вместе удается выявить зависимости и построить предсказательные модели для сложных систем, мы их подтверждаем и запускаем дальнейшие разработки.
Дмитрий: Расскажите, пожалуйста, подробнее о центре, различиях специалистов по профилю и о том, как вы вовлекаете младших коллег в свою деятельность.
Екатерина: Наша группа выросла из химико-биологического кластера там есть две образовательные программы. Мы пропагандируем подход, который условно можно назвать образованием через науку. У ребят есть серьезные исследования, каждый ведет свой проект и отвечает за него. Магистры это основа, но есть и аспиранты, и постдоки.
Таймкод 15:36
Я готова работать с любым человеком, кому интересна инфохимия. Задачи найдем. Мы ждем хороших химиков и математиков, если у них есть интерес к междисциплинарной работе. На текущий момент коллектив вырос до нескольких независимых групп. Два моих постдока получили свои РНФ-гранты на запуск научных групп. Потом выделилась еще пара групп химометрики и биомиметики. Сейчас все они оформились в научных центр инфохимии.
Еще у нас появилась группа вычислительной химии. Она помогает транслировать студентам многие вопросы, которые невозможно решить с моделями. Все, что в водных растворах; выпадение осадка; изменения системы в процессе адаптации. Можно говорить и о разработке самозалечивающихся материалов и о том, как собрать имплантаты внутри живых организмов.
Взаимодействие с медиками привело к тому, что мы запустили группу биоэлементологии, занялись функциональным питанием. Все это у нас происходит достаточно органично.
На фото: профессор Екатерина Скорб. Источник: news.itmo.ruВсе-таки альтернативы текущим разработкам всегда нужны, и я решила, что мне было бы интересно что-то предложить и сделать в направлении инфохимии. В мире мало кто этим занимается, потому как нужен тесный контакт со специалистами разного профиля, но как раз здесь в Университете ИТМО такая возможность есть. Допустим, если вы хотите заняться темой наноструктурирования поверхностей, системами умной доставки, которые можно регулировать светом, током, а они самоадаптируются в целевой среде например, очищаются от бактерий. Ресурсы для этой работы и научные группы у нас есть.
Дмитрий: Могли бы вы что-то порекомендовать с точки зрения пререквизитов и бэкграуда для тех, кто хотел бы присоединиться к вам? Каких людей вы ждете в своем новом центре?
Екатерина: Мы ждем тех, кто готов доводить дело до конца публиковаться в высокоимпактных журналах или выводить на рынок и условные прилавки аптек свои сенсоры. Если это хороший химик, у нас есть возможность научить его современным подходам в математике и программировании. В обратной ситуации покажем модельные биологические и химические системы, дадим базис для решения сложных проблем. Нужно быть готовыми учиться.
Дмитрий: Возможны оба исходных направления?
Екатерина: Да. Мы хотим распространить такой подход и на бакалавров, а потом и школьников. Чтобы они знакомились с научными проектами. Так, в школе 239 уже есть химбио-направление. Мы хотим видеть выпускников таких образовательных учреждений у себя в университете.
Дмитрий: Приличный горизонт планирования для подготовки новых специалистов.
Екатерина: Если вы понимаете, что прорывы ожидаются в междисциплинарных областях, то это перспективный подход. Но в Университете ИТМО мы предлагаем не только это, а еще и обширную инфраструктуру для развития софт-скиллз и личностного роста.
Таймкод 26:58
Дмитрий: Все-таки междисциплинарный подход во многом подразумевает обучение на лету и передачу знаний из рук в руки. Учебников по последним достижениям, конечно, не бывает.
Екатерина: Поэтому мы и говорим, что это образование через науку. Мы вовлекаем наших учеников в подготовку публикаций для высокоимпактных журналов, еще они могут поехать на практику. Одни уже поработали в Гарварде, другие взаимодействовали с коллегами из института Макса Планка. Это стажировки в топ-10 вузах мира, если необходимо для проекта.
Мы не говорим о научном туризме. Наши подопечные вовлечены в значимые проекты и осознают свою ответственность, а мы показываем им передний край науки.
Дмитрий: Они продолжают заниматься своей научной работой и расширяют базу за счет таких стажировок. Не меняют направление, не переключаются ради какой-то разовой поездки.
Екатерина: Да, но это требует согласования. Например, моя группа сотрудничает с NUS, и мы всегда обсуждаем со студентами, как сделать такое взаимодействие максимально продуктивным. Допустим, с точки зрения научных публикаций. Хотя по большей части многим и не требуется куда-то обязательно ехать. У нас можно сделать все, что связано с электрохимией и аналитической химией лаборатории прекрасно оборудованы. Необходимость стажировок определяется с помощью индивидуального подхода к тому, чем занимается каждый из студентов.
Дмитрий: Пока все это возможно при поддержке государства.
Екатерина: Фонды государственные. Но вообще-то это фактически мы налогоплательщики. Поэтому я считаю, что нужно рассказывать о науке, а проекты, нацеленные на продукт, могут заканчиваться выгодными конкурентными разработками с привлечением соинвесторов.
У нас есть опыт таких переговоров, хотя формальностями больше занимаются юристы, а мы специализируемся на том, что до нас мало кто делал в этой области. Наша группа третья из тех, что занимаются инфохимией, помимо группы Джорджа Уайтсайдса и польских коллег.
Прорывы ожидаются именно в таких естественнонаучных направлениях. В мире понимают, что подобный подход перспективен. Так, в научный совет нашего центра входит Жан-Мари Лен, нобелевский лауреат и основоположник супрамолекулярной химии. Я думаю, что такое взаимодействие необходимо для развития.
Мы работаем над контролируемыми электрохимическими осциллирующими системами и системами доставки веществ, когда есть каскад реакций и периодическое выделение. К прикладным и фундаментальным исследованиям в этих областях в мире есть большой интерес.
Таймкод 37:38
Дмитрий: Если смотреть на ваше взаимодействие с международным сообществом и коллегами здесь, как выглядит ваш рабочий день? Как вам удается найти время, чтобы разобраться, чем занимается каждый из ваших подопечных?
Екатерина: Даже если я что-то не успеваю, я делаю все по максимуму. Зачастую мне хватает и четырех часов сна. В начале дня в лаборатории мы проводим общее совещание или обсуждаем тематические проекты. До этого ребята присылают все свои наработки к текущему моменту мы смотрим, что сделано, планируем развитие. Далее идут индивидуальные встречи. Мы садимся и думаем, что уже можно оформить в научную статью, как она будет выглядеть и так далее.
Какая-то часть времени уходит на написание научных проектов и административные моменты. Иногда бывают интервью. Как то, которое мы записываем сейчас. Я считаю, что это важно.
Еще мы организуем встречи в духе Art&Science со специалистами из других сфер деятельности.
По мере завершения рабочего дня это чтение и подготовка своих статей, какие-то переговоры.
Кроме меня у студентов есть менторы на уровне других групп-лидеров, постдоков и аспирантов. Но мне всегда нужно понимать, что у всех есть задачи, как минимум, на две-три недели. Тогда можно оценивать прогресс и видеть, что человек делает максимум из того, что можно было бы осуществить, исходя из имеющихся ресурсов. Мы действительно много вкладываем в наших учеников. На этот счет моя совесть чиста. Мы делаем общее дело, и я надеюсь, что все, кто идут рядом, делают для этого максимум. Тогда и получаются интересные результаты.
Другие интервью в нашем подкасте:
Мы делаем робототехнические системы для работы с неструктурированным окружением
Мы делаем ставку на открытость: чему учат предпринимателей в Университете ИТМО
Подкаст: Мне нравится исследовать атаки на системы квантовой рассылки ключа
Найдите уравнение касательной к кривой в точке . Ответ запишите в виде , где целые несократимые числа и (без пробелов и скобок), например, .
На плоскости нарисованы две кривые, заданные многочленами второй степени.
Найдите площадь замкнутой области, которая ограничена этими кривыми. Если такой области нет, то нужно вывести число 0.
Вход
На первой строке три целых числа , , , задающие первую кривую , на второй строке три целых числа , и , задающие кривую . Все числа по модулю не превосходят .
Выход
Площадь замкнутой области, ограниченная и .
Ответ должен быть вычислен с точностью 5 знаков после запятой.
# считываем коэффициенты f(x) и g(x)a1, b1, c1 = map(int, raw_input().split())a2, b2, c2 = map(int, raw_input().split())# вычисляем коэффициенты h(x)a = a1 - a2b = b1 - b2c = c1 - c2# проверяем наличие корнейd = b * b - 4 * a * cif a == 0 or d <= 0: print(0) exit(0)# вычисляем корниr1 = (-b - math.sqrt(d)) / (2.0 * a)r2 = (-b + math.sqrt(d)) / (2.0 * a)# первообразная для h(x)def H(x): return a*x*x*x/3.0 + b*x*x/2.0 + c*x# вычисляем определённый интеграл и выводим его модуль в требуемом форматеprint("{:.5f}".format(math.fabs(H(r2) - H(r1))))
В пространстве задано стандартное скалярное произведение, подпространство, заданное как линейная оболочка векторов , , . Найти ортогональную проекцию вектора на подпространство вектор и ортогональную составляющую этого же вектора ().
В ответ напишите сумму координат вектора (например, для вектора сумма координат будет 9).
Ответ укажите с точностью до двух знаков после точки. При необходимости округлите по правилам математики.
Обозначим за комлексный корень степени из единицы с минимальным положительным аргументом (аргумент = угол в полярной форме комплексного числа). Например, .
Найдите минимальное положительное целое , являющееся решением следующего уравнения.
Маленькому мальчику Ване на кружке по системам счисления задали следующую задачу: перевести число в системе счисления в систему счисления . Недолго думая, он позвал на помощь своего лучшего друга Петю, который славился тем, что замечательно умел считать до на пальцах. После нескольких бессонных ночей ребята общими усилиями справились с задачей.
Однако, на следующем занятии Ване задали похожую задачу, где , к сожалению, превышало . Тогда ребята решили обратиться к старшей сестре Пети с просьбой написать универсальную программу, которая решает задачу для любых , и . Ваша цель выполнить просьбу Вани и Пети.
Входные данные
Во входных данных вашей программе дается три числа: исходное число , основания систем счисления и (). Число в десятичной системе счисления не превышает .
Выходные данные
В выходных данных должно быть число , записанное в системе счисления , или , если входные данные некорректны (число во входных данных не является корректной записью числа в системе счисления ).
# считываем входные данныеxstr, b, c = raw_input().split()s1 = int(b)s2 = int(c)# проверяем входные данные и преобразуем в числоx = 0for c in xstr: if int(c) >= s1: print(-1) exit() x = x * s1 + int(c)# переводим в заданную систему счисленияres = ""if x == 0: res = "0"else: while x > 0: res = str(x % s2) + res x = x // s2 print(res)
Про студентов магистерской программы Software Engineering известно, что они дружат друг с другом так, что каждый студент дружит не более чем с 3 другими, и для любых двух студентов верно, что они либо дружат друг с другом, либо есть студент, который дружит с ними обоими.
Какое максимальное число студентов на магистерской программе Software Engineering?
Сколько различных решений имеет следующее уравнение
если известно, что , , , ?
count = 0for x1 in range(1,51): for x2 in range(2,51): for x3 in range(51): if x1 + x2 + x3 <= 50: count = count + 1print(count)
Сколько различных решений имеет следующее уравнение(Мы вычли из правой части и добились того, чтобы все переменные начинались с нуля.)
если известно, что ?
Найти длину кривой , заключённой в первой четверти.
Ответ укажите с точностью до двух знаков после точки. При необходимости округлите по правилам математики.
На вход программе подаётся строка, содержащая слова, разделённые пробелом. Слово это последовательность латинских символов, окружённая пробелами или границами строк.
Для всех слов, которые встречаются в тексте более одного раза, программа должна вычислить минимальное количество слов между повторениями.
Вход
Строка, содержащая последовательность строчных латинских символов, разделённых пробелами.
Выход
Выведите все слова, которые встречаются более одного раза, и минимальное количество слов между их повторениями, в формате
слово: число
Выведите эту информацию в том порядке, в котором слова встречаются в тексте в первый раз.
# считываем входную строку и разбиваем на словаwords = raw_input().split()# заводим необходимые словариidx = {} # хранит номер последнего вхождения словаdist = {} # хранит минимальное расстояние между повторениямиfirst = {} # хранит номер первого вхождения# проходим по словам и вычисляем минимальное расстояние для каждого словаfor i in range(len(words)): if words[i] in idx: if dist[words[i]] > i - idx[words[i]] - 1: dist[words[i]] = i - idx[words[i]] - 1 else: first[words[i]] = i dist[words[i]] = 2 * len(words) # замена +бесконечности idx[words[i]] = i # массив для хранения слов, которые встречаются более одного разаgood = []for k in dist: if dist[k] < len(words): good.append((k, dist[k], first[k])) # упорядочиваем массив по номеру первого вхожденияgood.sort(key=lambda t: t[2])# выводим результатfor t in good: print("{}: {}".format(t[0], t[1]))
В студенческом общежитии ИТМО очень сложно устроена локальная сеть местный администратор не любит роутеры, потому сетевые кабели протянуты напрямую между некоторыми компьютерами (для этого в некоторые компьютеры пришлось установить дополнительные сетевые карты).
Вам, как новичку в общежитии, хочется выяснить как все устроено. Поэтому вы можете выбрать любые два компьютера и получить ответ на вопрос проложен ли между ними провод?. Вам бы хотелось узнать можно ли в общежитии передать информацию с любого компьютера до любого другого по проводам.
Какое минимальное количество вопросов необходимо задать чтобы гарантированно получить ответ, если всего в общежитии установлено 32 компьютера?
Школьник Ваня приболел, и его мама решила вызвать врача домой. У врача есть статистика по району, где живет Ваня. У больных детей этого района грипп, у остальных ветрянка. Других болезней в этом районе не зафиксировано.
Один из основных симптомов ветрянки это сыпь, она появляется в случаях заболевания ветрянкой. Однако, во время гриппа она тоже возможна и появляется в случаях.
Осмотрев Ваню, врач обнаружил сыпь. Какова вероятность того, что у Вани ветрянка?
Ответ укажите с точностью до двух знаков после точки. При необходимости округлите по правилам математики.
Привет, Хабр! Сегодня хотим представить вам проект студентов магистратуры Наука о данных НИТУ МИСиС и Zavtra.Online (подразделении SkillFactory по работе с университетами) созданный на внутреннем хакатоне, который прошел в марте. Команда поделится решением выбранной задачи предсказание победителя-бойца турнира UFC. Задача отличалась от прочих тем, что после написания модели из неё можно сделать целый продукт, оформив модель в приложение, готовое к использованию конечными пользователями, например теми, кто захочет обыграть букмекеров.
Для нашего проекта мы сформулировали гипотезу, что на победу бойца влияют:
физические параметры бойца (его рост, вес, размах рук и ног);
возраст бойца (всё-таки со временем физически мы слабеем);
разница в опыте соперников (вряд ли какой-то новичок без опыта одолеет Хабиба);
характер поведения бойца на ринге (чаще обороняется или чаще нападает);
географические параметры (вдруг наш боец не успел адаптироваться к другому часовому поясу).
Основа всех методов проверки модели машинного обучения разделение данных при обучении модели на тренировочную и валидационную выборки. Валидационная выборка потребуется, чтобы понять, что произойдёт, если наша модель столкнётся с данными, которых она раньше не видела.
Принцип разделения прост: мы случайным образом разбиваем свои данные примерно на 70 %, используемых для обучения модели, и 30 % для тестирования модели. Однако есть нюанс... Для предсказания результата боя UFC важно, чтобы тренировочная выборка была раньше тестовой во временном периоде.
Иначе модель будет смотреть в будущее, и на реальных данных модель будет работать некорректно. Этот нюанс мы учли и разбили выборку не случайным образом, а в зависимости от временных периодов.
В ходе работы над проектом мы просидели в зуме, а затем в дискорде более 10 часов. Углубились во все тонкости предобработки данных, сделали немного занимательной визуализации и обучили нашу модель.
Примерно 90 % времени мы потратили на обработку данных и остальные 10 % на обучение модели. Пайплайн подготовки данных верхнеуровнево выглядел следующим образом: мы очистили датасет от пропусков и выбросов и обогатили его новыми признаками.
Например, на основе физических характеристик рассчитали другие, а также посчитали кумулятивную статистику для каждого боя и каждого бойца. А ещё для увеличения качества модели вычислили разницу между физическими характеристиками бойцов.
Ментор предоставил нам спарсенные данные по истории Боёв UFC и статистику по бойцам. Данные и Jupyter Notebook с бейзлайном модели можно найти по этой ссылке на Kaggle. В связи с тем что сроки у нас были ограничены, мы решили не заниматься дополнительным парсингом фичей, а уделить большое внимание обработке имеющихся данных и генерации новых признаков.
Также в процессе обработки мы собрали немного занимательной статистики по боям: например, на этом бублике можно увидеть распределение боев по категориям, из которой можно увидеть, что мужских боёв гораздо больше, чем женских (увы).
А на этом бублике видим, что бои заканчиваются с равной вероятностью либо нокаутом, либо признанием своего поражения, либо решением судьи.
Основная идея обработки данных заключалась в создании единого датасета, содержащего накопительную статистику по каждому из бойцов за все его предыдущие бои и его физические характеристики на момент начала боя. Необходимо было избежать лика в данных, при котором модель могла переобучиться на данных из ещё не состоявшегося боя.
После очистки датасета от пропусков и выбросов в первую очередь мы сгенерировали фичи по каждому из бойцов, связанные с его физическими характеристиками. Поскольку мы имеем информацию по физическим характеристикам бойца на настоящий момент, для корректного обучения модели на данных по боям из прошлого мы использовали фичи, которые не заглядывают в будущее.
Вторым шагом был сбор фичей с кумулятивной статистикой по всем предыдущим боям для каждого из соперников и генерации из получившейся накопленной суммы новых важных признаков, таких как серия побед, сумма побед нокаутами, сумма чистых побед, точность ударов, среднее время боя, KO/TKO и т. д. Это перечень важных показателей по уже проведённым боям, которые обычно публикуются на сайте UFC до начала боя. Затем мы посчитали разницу по физическим характеристикам бойцов, удалили коррелированные между собой величины и законсервировали данные в pkl-файл.
В качестве первой модели мы решили взять случайный лес, так как эта модель неплохо справляется с ненормализованными данными. Результат ошеломил по сравнению с букмекерскими конторами, процент точности был очень высок, однако не всё так просто
Изначально мы не учли наличие временного ряда, и наша модель тренировалась на данных из будущего перемешанного с прошлым, то есть мы взяли временной ряд и случайным образом поделили данные на тренировочные и тестовые (80/20). Тренировочные для тренировки модели, тестовые для проверки правильности уже тренированной модели.
Процент точности прогноза победы варьировался от 75 до 82%! Но какая разница, если обучение было неправильным?.. Модель не должна смотреть в будущее, как это было у нас. Решить эту проблему удалось достаточно просто: мы вернули даты для нашего датасета и поделили на тренировочные и тестовые по датам: данные до 2018 года взяли за тренировочные, данные после 2018 года за тестовые, и вуаля, точность упала в среднем на 5 %, однако теперь мы в ней хотя бы уверены.
Потюнить модели в достаточной мере не получилось, так как было мало времени. Но получилось попробовать стекинг, бэггинг и другие разновидности моделей с параметрами по умолчанию. Они, к сожалению, не дали результатов лучше, чем стандартный случайный лес, поэтому в качестве итоговой модели мы оставили именно этот алгоритм. Возможно, в будущем после подбора параметров для всех моделей найдётся та, которая окажется лучше.
Посмотреть на модель можно на GitHub.
Для того чтобы модель предсказала победителя на новых данных, нужно эти данные обработать таким же образом, как мы это делали в нашем ноутбуке (Jupyter Notebook) DeepOverfitting-DataPreparing, после этого просто подать эти строчки данных для двух бойцов в predict функцию нашей модели и получить предсказание, либо 0, либо 1, 0 победил 2 боец, 1 победил первый боец.
Самое главное мы все выявили свои слабые и сильные стороны, поняли, какие пробелы в понимании работы с временными рядами нам нужно заполнить, и научились распределять нагрузку в команде. После всего проделанного нами пути мы решили, что не остановимся на достигнутом и продолжим развивать наш продукт.
Поэтому мы наметили следующий план:
Улучшим точность предсказаний путем более кропотливой настройки модели.
Проверим нашу текущую модель на предстоящих боях.
Попробуем применить нейронные сети и глубокое обучение.
Разработаем приложение, которое будет в удобном виде показывать, сколько и куда ставить.
Станем кем-то кроме букмекера, кто заработает на ставках. И, конечно, будем писать на Хабре про дальнейшее развитие проекта. Букмекеры, берегитесь, мы идём за вами.
Состав команды работавшей над проектов:
Евгения Шикина (г. Видное)
Оксана Евсеева (г. Барселона)
Максим Щиколодков (г. Москва)
Михаил Стриженов (г. Москва)
Лев Неганов (г. Москва)
Кирилл Плотников (г. Екатеринбург)
Узнать больше про магистратуру можно на сайтеdata.misis.ruи вTelegram канале.
Ну и конечно не магистратурой единой! Если вы хотите узнать больше про data science, машинное и глубокое обучение заглядывайте к нам на соответствующий курсы, будет непросто, но увлекательно.
Узнайте, как прокачаться и в других специальностях и навыках или освоить их с нуля:
ПРОФЕССИИ
КУРС
Мы хотели бы выразить благодарность кураторам, преподавателям и экспертам за организацию Дататона. Это был отличный опыт и возможность самостоятельно проявить себя в решении практических задач, а также получить развернутую оценку от профессиональных Дата-сайентистов.
https://api.spotify.com/v1//v1/artists/{id}/top-tracks
, указывая в качестве значения параметра id Spotify ID артиста,
который мы получили ранее, а в значении параметра market указываем
RU.
Документация.https://api.spotify.com/v1/albums/{id}
, указав
album_spotify_id, полученный ранее, в качестве значения для
параметра id.
Документация.https://api.spotify.com/v1/audio-features/{id}
, указав
его Spotify ID как значение параметра id.
Документация.https://api.spotify.com/v1/audio-features
, передавая
Spotify ID этих треков через запятую как значение для параметра
ids.
Документация.В Тинькофф есть образовательный проект Лаборатория Финансовые технологии. Мы отбираем студентов и магистров московских технических вузов, которые хотят работать с ИТ-проектами банка. Оформляем их на работу в штат на 20, 30 или 40 часов в неделю, даем задачи, ментора и помогаем расти профессионально. Мы работаем в партнерстве с МФТИ: преподаватели и старшекурсники вуза выступают менторами для студентов.
Лаборант может выбрать, в какой из пяти команд работать:
У каждой команды свои задачи и специфика. Но принцип общий: учим решать сложные академические задачи на реальных кейсах.
Рассказываем о внутренней кухне Лаборатории на примере работы команды Computer Vision весной-летом 2020 года.
Куратор проекта: Константин Осминин, Тинькофф
Ментор: Аркадий Ильин, Лаборатория гибридных
интеллектуальных систем МФТИ
Лаборанты: Кирилл Рыжиков (2 курс) и Дмитрий Гадецкий (1
курс магистратуры)
В Лаборатории мы решаем наукоемкие задачи, которые в перспективе
можно применить на практике в работе банка. В команде Computer
Vision в этом году работали над задачей audio-to-video. Это
генерация реалистичного видео с человеком на основе его речи на
русском языке.
Изначально тут был не только бизнес, но в значительной степени
исследовательский интерес. Если кратко: нужно было обучить
компьютерную модель генерировать видеоизображение на основе только
фото человека и аудиодорожки. То есть мы даем модели аудио и
картинку, а на выходе получаем видео с говорящим человеком.
Такая технология впервые появилась в Китае, а в России представлена сервисом по генерации виртуальных ведущих в Мейл.ру. У Сбербанка робот-ведущий Елена читает 30-секундные новости.
Потенциально такую технологию можно применить для реализации виртуальных ведущих, помощников, визуализации образовательных курсов или даже генерации изображения собеседника при звонках, чтобы не гонять трафик видео, а значит, снизить стоимость звонка.
Константин Осминин, куратор команды Computer Vision в Тинькофф
Область виртуальных аватаров сейчас очень востребована в индустрии. Лаборатория это больше образовательный проект, для нас важно поработать с самой технологией, проверить уже существующие решения и придумать что-то свое.
Сначала мы работали над исследовательской частью, а потом поняли, как можно применить технологию в бизнесе. Теперь мы разрабатываем свой прототип ориентированного на бизнес сервиса, визуально общающегося с пользователем.
У нас было два этапа работы. Первый провести исследование в
области Neural Voice Puppetry, выяснить, что уже сделано другими
исследователями и разработчиками. Потом реализация.
Работа над ней делилась на два больших блока:
Сначала нам нужно было глубоко разобраться в области. Некоторые компании уже работали над этой задачей, например Samsung AI Center, Сбербанк. Но код у них закрытый и получить доступ к нему нельзя. Поэтому мы работали с открытыми источниками, они все в основном на английском. Больше всего информации нашли на агрегаторе Arxiv.
Пример статьи c arxiv.org
Это не научный журнал, а агрегатор статей в открытом доступе.
Поэтому каждую статью и все, что там написано, нужно проверять. То
есть посмотреть, насколько рабочий код приложен в статье.
Обычно код к статьям выкладывают на Гитхабе. Если авторы не
выложили код, команда искала имплементации на том же Гитхабе, но
уже от простых пользователей-энтузиастов.
Пример неофициальной имплементации архитектуры генератора
говорящих голов из статьи
Few-Shot Adversarial Learning of Realistic Neural Talking Head
Models (Egor Zakharov et al.)
Дмитрий Гадецкий, лаборант Тинькофф, студент 1 курса магистратуры
В первый месяц мы почти все время читали статьи на Arxiv и проверяли разные подходы. По опыту скажу: чтобы разобраться в вопросе, нужно вдумчиво изучить около десяти статей и проверить их код на работоспособность. Только когда понимаешь архитектуру кода, появляется возможность применить описанные принципы к конкретным задачам.
У нас был случай, когда мы проверяли подход к генерации из статьи китайских коллег. Мы не могли запустить код несколько дней. Пришлось писать авторам статьи с просьбой о помощи. В итоге они ответили, дописали код, чтобы все заработало.
Дальше мы перешли к поиску собственных решений, как сгенерировать реалистичное видео говорящего человека только по фото и аудио.
Теоретически можно было использовать наработки зарубежных разработчиков и код их нейронной сети, как, например, на Гитхабе.
Но возникла серьезная проблема. Нейросети, которые уже решали задачу генерации видео по аудио, не работали с русским языком. Все они были заточены под английский язык. А значит, нужно было разработать сеть и обучить ее на собственном датасете.
Встал вопрос, на каких данных обучать свой комплекс нейросетей. Готовых данных у нас не было. В сети датасетов с видео на английском языке тысячи часов (например, voxceleb, voxceleb2), а на русском их просто нет.
Нужно было собрать свой датасет:
Изначально для парсинга мы выбрали лекции на Курсере. У них есть API, которая позволяет скачивать видео. Мы скачали видео с ресурса и приступили к его обработке.
Для этого написали программный модуль: он нарезал видео на отдельные кусочки, проверял, что на этом кусочке речь одного человека. Еще он искал в кадре того человека, кто говорил. Вырезанные куски с головой говорящего человека в кадре складывали в датасет.
С Курсеры мы собрали 20 часов видео. Но качество видео этого датасета было не очень. Лицо получалось в плохом разрешении. Поэтому нам пришлось собирать второй датасет уже с Ютуба. Оттуда скачали видео, которые больше соответствовали нашим требованиям: лицо говорящего человека занимало не меньше 40% экрана, смотрело в камеру. Этот датасет был в 60 часов.
Параметры датасета
На собранной базе видео мы запустили работу модели по разметке лиц. Мы прогнали одну модель (FaceAlign), которая искала на лице определенные ключевые точки лэндмарки. Всего их 68.
Сеть извлекает на каждом кадре видео эти точки и переводит их вот в
такое представление:
Данные о точках описывали движение челюстей, губ, подвижность бровей и синхронное движение носа.
На этих данных о ключевых точках обучался пререндер, построенный и обученный нами с оглядкой на архитектуру, предложенную Захаровым (a.k.a. Samsung)). Ему подавалась входная аудиодорожка, а он должен был сгенерировать видео. Сначала модуль генерировал абсолютное положение точек, но модель на таком подходе генерировала неправдоподобное изображение.
Итерации обучения генератора абсолютных положений лэндмарок. На
последних итерациях видно, что рот перестает полностью закрываться,
а брови приобретают статичное положение и присутствует общая
деградация выразительности мимики
Кирилл Рыжиков, лаборант
Чтобы наша сеть генерировала правдоподобное изображение, мы искали другой подход. Попробовали генерировать не абсолютное положение ключевых точек, а отклонение от их положения на нейтральном лице, когда человек смотрит на вас прямо с закрытым ртом и спокойными бровями. И эврика! сеть сгенерировала правдоподобную мимику. Мы поняли, что идем в правильном направлении, и начали работать именно с этим подходом.
Отдельно мы решали задачу генерации моргания, чтобы лицо на видео выглядело реалистично. Без моргания говорящее лицо смотрится жутко. Выяснилось, что моргание не синхронизировано с речью. Поэтому наша модель его просто сэмплировала.
Когда мы обучили сеть генерить правдоподобную мимику, пришла очередь работать над пререндером и рендером, то есть переводом данных в видео. Лаборанты использовали технологии First Order Modu и Samsung. После двух-трех этапов рендера получилось сгенерировать более проработанную мимику, более качественное изображение и приятную текстуру лица.
В качестве пострендера использовали LipGAN, чтобы уточнить движение губ.
Ребята показали результат в июле этого года. На общей презентации было 60 сотрудников Тинькофф, что необычно для Лаборатории. Как правило, проекты защищаются перед меньшей аудиторией.
Результат команды понравился куратору, коллеги решили продолжить работу над проектом и перевести его в практическую плоскость.
Готовый результат ждем к концу этого года. Скорее всего, это будет 3D-модель, как тут:
Лаборанты с ментором и куратором встречались вживую только один раз, на собеседовании. Остальное время общались в Телеграме и Зуме. Это принцип Лаборатории: удаленная работа в удобное участникам время.
Аркадий Ильин, ментор
Каждый работает в комфортное ему время, в комфортной для себя обстановке. Например, вчера Кирилл прислал мне ответ в час ночи и, пока он спал до обеда, я его прочитал. Думаю, такой подход только повышает эффективность работы.
Три раза в неделю рабочие созвоны, где обсуждают текущие задачи, гипотезы, методы решений.
Два раза в месяц отчетные созвоны с куратором Тинькофф, на которых лаборанты рассказывают о проделанной работе.
Обычный рабочий созвон с обсуждением найденной архитектуры
генератора мимики
Так как работа в Лаборатории идет на стыке науки и практики, ее результаты публикуют и в академических кругах. Например, первые результаты работы в проекте Говорящие головы ментор и студенты готовят для доклада на 63-ю научную конференцию в МФТИ в ноябре этого года.
Аркадий Ильин, ментор
То, что делаем мы, мало кто делает в бизнес-сообществе. Поэтому хотим донести результаты и до академической среды.
До 27 сентября открыт прием заявок в лабораторию, подробнее об открытых проектах и сроках
Они приходят и думают, что сейчас будут зарабатывать 500к в секунду, потому что знают названия фреймворков и как из них запустить модель в две строчки,
К сожалению, собеседование по Data Science сейчас обычно выглядит так: кандидат рассказывает, что попробовал применять пару-тройку библиотек, на вопросы о том, как именно работают алгоритмы, ответить не может, затем просит 200, 300, 400 тысяч рублей в месяц на руки.
Из-за большого количества рекламных лозунгов вроде стать аналитиком данных может каждый, освой машинное обучение за три месяца и начни получать кучу денег и жажды быстрой наживы, в нашу область хлынул огромный поток поверхностных кандидатов совершенно без системной подготовки.
Виктор Кантор
Chief Data Scientist в МТС
Я сейчас ищу специалистов по машинному обучению себе в команду. При этом вижу, что зачастую кандидаты освоили отдельные инструменты Data Science, но у них недостаточно глубокое понимание теоретических основ, чтобы создавать новые решения.
Эмиль Магеррамов
Руководитель группы сервисов вычислительной химии, Biocad
Многое зависит от человека: если трехмесячный интенсив от сильных преподавателей с опытом тимлидов в топовых компаниях проходит слушатель с хорошей базой в математике и программировании, вникает во все материалы курса и впитывает как губка, как говорили в школе, то проблем с таким сотрудником потом нет. Но 90-95% людей, чтобы что-то усвоить навсегда, нужно выучить в десять раз больше и делать это систематично несколько лет подряд. И это делает магистерские программы по анализу данных великолепным вариантом получить хороший фундамент знаний, с которым и на собеседовании не придется краснеть, и работу делать будет сильно проще.
Виктор Кантор
Chief Data Scientist в МТС
Если перед вами стоит краткосрочная задача смены профессии или поиска работы в этой специальности, то тогда вам подходят какие-то систематические курсы, которые короткие и быстро дают минимальный набор технических навыков, чтобы вы смогли претендовать на начальную позицию в этой области.
Иван Ямщиков
Академический директор онлайн-магистратуры Наука о данных
Высшее образование подходит, когда вы понимаете, что эта область интересна вам долгосрочно. Вы не стремитесь выйти на работу как можно скорее. И не хотите, чтобы у вас был карьерный потолок, также не хотите столкнуться с проблемой недостатка знаний, навыков, недостатка понимания общей экосистемы, с помощью которой развиваются инновационные продукты. Для этого нужно именно высшее образование, которое формирует не только необходимый набор технических навыков, но и структурирует по-другому ваше мышление и помогает сформировать некоторое видение вашей карьеры на более долгосрочную перспективу.
Иван Ямщиков
Академический директор онлайн-магистратуры Наука о данных
На сайте университета науки и технологий МИСиС проходят Дни открытых дверей и вебинары для тех, кто хочет работать в Data Science. Представители НИТУ МИСиС, SkillFactory, HeadHunter, Facebook, Mail.ru Group и Яндекс, рассказываю про самое важное:
- Как найти свое место в Data Science?,
- Можно ли стать data scientist с нуля?,
- Сохранится ли необходимость в data scientist-ах через 2-5 лет?,
- Над какими задачами работают специалисты data science?,
- Как построить карьеру в Data Science?
Обучение онлайн, диплом государственного образования. Заявки на программу принимаются до 10 августа.
Legal Tech набирает обороты и становится все более популярным
направлением не только для исследований, но и работы. В России пока
не разработано магистерских программ под Legal Tech: отдельные
направления включают в себя правовую информатику
поскольку-постольку (например, "Юрист мирового финансового рынка" в
ВШЭ). А вот в Германии спрос уже породил предложение - появились
отдельные магистерские программы, заточенные под Legal Tech, хотя
они и остаются штучным и уникальным товаром. Им и хочется посвятить
этот пост.
Почему Германия? Во-первых, она славится качественным и
относительно недорогим по отношению к другим европейским странам
образованием. Во-вторых, ФРГ отличается множеством стипендий для
иностранных студентов и налаженной системой их адаптации/языковой
подготовки. В-третьих, в стране можно найти и англоязычные
программы. Плюс для тех кто получил основное юридическое
образование в России будет проще изучить правовые предметы в
немецком вузе из-за сходства правовых систем двух стран.
Примечание. Описание модулей отражает наиболее важные элементы их содержания. В немецких вузах модули делятся на обязательные, по выбору и факультативы, так что индивидуальный набор модулей из программы составляется студентом и его научным руководителем после поступления.
Программу можно найти здесь.
Длительность обучения: 1 год, состоящий из двух семестров. Начало обучения в октябре, конец - в июне.
Язык обучения: английский.
Срок подачи документов и стоимость: не указаны.
Содержание программы:
Модуль 1. Введение в Legal Tech и цифровое право. Основные понятия. Общий взгляд на современные тренды: блокчейн, смарт-контракт, интернет вещей, автономная система, ключевые технологии цифровизации (облачные технологии и большие данные), искусственный интеллект, естественный язык, машинное обучение, глубокое обучение, стратегическое развитие LegalTech-бизнес моделей, психологические и этические аспекты цифровизации правовой сферы.
Модуль 2. Legal-Tech в повседневной практике юриста. Технические и правовые основания включения технологий в работу различных видов юридической работы (адвокат, судья), а также использование информационных технологий при организации рабочего процесса и документооборота. Электронная юстиция, правовое и предиктивное правосудие. Экскурсия в юридические организации и органы, такие как земельный суд Регенсбурга.
Модуль 3. Data Science и Big Data для юристов. Общая концепция науки о данных. Главные задачи работы с большими данными. Типичные сферы применения таких технологий: поиск информации, eDiscovery, distant reading.
Модуль 4. Цифровое право. Часть I. Основные положения права интеллектуальной собственности и конкурентного права. Защита персональных данных.
Модуль 5. Цифровое право. Часть II. Цифровое договорное право. Правовые аспекты финансовых инструментов и связанных с ними бизнес-моделей (Fin Tech). Цифровые технологии в области трудового права.
Модуль 6. Цифровое право. Часть III. Правовые основы защиты пользователей и электронные альтернативные способы разрешения споров. Проблемы правового регулирования применения алгоритмов.
Модуль 7. Основы информационных технологий, цифровые инновации и предпринимательство. Развитие программного обеспечения, совершенствование криптографии, блокчейна, искусственного интеллекта, экономические и правовые аспекты цифровых инноваций.
Модуль 8. Глобальный Legal Tech и кибербезопасность. Процессы глобализации и интернационализации в контексте Legal Tech. Существующие формы киберпреступности.
Краткое резюме: хорошо "сбитая" программа обо всем. Очевидные плюс - преподавание на английском. Подойдет для юристов, желающих приобрести или усовершенствовать свою компетенцию.
Программу можно найти здесь.
Длительность обучения: 1 год, состоящий из двух семестров. Начало обучения в октябре, конец - в июне.
Язык обучения: немецкий.
Срок подачи документов : до 30.09.
Стоимость: единоразовый платеж 3750 + 238 за первый семестр + 236 за второй семестр.
Содержание программы:
Модуль 1. Основы юриспруденции (для неюристов) . Введение в юриспруденцию (мышление и работа юриста). Частное право. Введение в научное юридическое письмо. Юридические интернет-проекты.
Модуль 1. Основы информатики (для юристов). Технические принципы работы Интернета. Введение в информатику. Введение в научное юридическое письмо. Юридические интернет-проекты.
Модуль 2. IT-Право I. Авторское право. Частноправовые основы IT-Права. Публичное информационное право.
Модуль 3. Защита данных. Введение в право защиты данных. Защита данных на практике.
Модуль 4. IT-Право II. IT-Право для продолжающих. Медиа-право. Процессуальные вопросы электронного правосудия. Охрана промышленной собственности.
Модуль 5. IT-Право III. Уголовно-процессуальное право в контексте информационных технологий. Технические основы электронного правосудия.
Модуль 6. Правовая информатика. Введение в правовую информатику. Правовая информатика для продолжающих.
Модуль 7. IT-Безопасность Введение в IT-Безопасность. IT-криминалистика.
Модуль 8. Медиаправо. Правовое регулирование прессы и вещания.
Модуль 9. Электронные инструменты юриста. Технические основы электронного правосудия. Введение в IT-Безопасность. Процессуальные вопросы электронного правосудия.
Модуль 10. Право интеллектуальной собственности и конкурентное право. Охрана промышленной собственности. Конкурентное право. Авторское право.
Модуль 11. Международный. Международное частное право. Международное процессуальное право. Межнациональное право. Международное экономическое право.
Модуль 12. IT-Право в рамках ЕС. Европейское право конституциональные основы и основы внутреннего рынка. Европейское экономическое право.
Модуль 13. Искусственный интеллект и право. Частноправовые аспекты искусственного интеллекта. ИИ и этика
Краткое резюме: изюминка программы - ее открытость как для программистов, так и для юристов. Каждой из категорий дадут свою базу из другой области: программистам - из юриспруденции, юристам - из информатики.
Программу можно найти здесь.
Длительность обучения: 1 год, состоящий из двух семестров. Начало обучения в сентябре, конец - в мае.
Язык обучения: немецкий.
Срок подачи документов : с 01.06. по 01.09.
Стоимость: 1500 за модуль. Среднее количество модулей в программе - 7, следовательно средняя стоимость обучения 10 500 + ежесеместровый взнос в размере 181,82.
Содержание программы:
Модуль 1. Интернет-право. Доменное право. Европейское и национальное право дистанционных продаж и электронной коммерции. Особенности мобильной коммерции. Особенности электронной коммерции с позиции конкурентного права. Ответственность в Интернете.
Модуль 2. Телекоммуникационное право. Конституционные основы телекоммуникационного права. Договорное право и защита прав потребителя. Защита персональных данных и тайна связи. Процедурные и процессуальные аспекты.
Модуль 3. Информационное право. IT-Безопасность. Договоры на производство/предоставление/обслуживание компьютерных программ. ПО с открытым исходным кодом. Аутсорсинг и обслуживание приложений. Облачные технологии. Договоры с провайдерами.
Модуль 4. Право интеллектуальной собственности. Защита прав на ПО в немецком и европейском авторском праве, патентном праве, праве товарных знаков. Договорное право в области прав на ПО. Правовая защита баз данных. Авторское право в Интернете.
Модуль 5. Компьютерное уголовное право. Международные и национальные аспекты уголовного права в области компьютерных технологий и интернета. Мошенничество и компьютерное мошенничество, подделка документов на компьютере, модификация данных и компьютерный саботаж. Уголовная ответственность провайдеров, порнография в интернете, экстремистская пропаганда, мошенничество в Интернете, азартные игры, новые тенденции (фишинг, скимминг, киберсталкинг, кибертерроризм).
Модуль 6. Правовая защита данных. Международное и европейское право защиты данных. Право защиты данных немецких федеральных земель и федерации в целом. Защита данных на предприятиях и в юридических фирмах. Анонимность и псевдоанонимность. Цифровая безопасность.
Модуль 7. Налогообложение цифровой экономики. Налог на прибыль с продаж ПО с точки зрения конституции и европейского права. Налоговые риски, связанные с ответственностью, а также использованием цифрового операционного аудита. Налогообложение IT-профессий.
Краткое резюме: программа рассчитана исключительно на юристов и дает глубокие знания по любому выбранному профилю - нацелена на подготовку конкретных юристов-профессионалов в IT-сфере (интеллектуальщик, медиаюрист, юрист по информационной безопасности и т.п.). Из минусов - высокая стоимость обучения.
Программу можно найти здесь.
Длительность обучения: 1 год, состоящий из двух семестров. Первый семестр - обучение в Ганновере. Второй семестр - обучение в одном из партнерских университетов по всему миру.
Язык обучения: немецкий и английский.
Срок подачи документов : с 01.06. по 15.07.
Стоимость: ежесеместровый взнос в размере 439,73 + доп. взнос в зависимости от университета второго семестра.
Содержание программы:
Базовый модуль. Основы. Введение в правовую информатику и право защиты данных. Европейское регулирование и сравнительные правовые аспекты информационного общества. Юридические решения в цифровую эпоху. Авторское право.
Модуль на выбор: правовое консультирование. Договорное право и документооборот в контексте IT. Процессуальные аспекты информационных технологий и интеллектуальной собственности. Право товарных знаков в сфере IT. Особенности уголовного права в цифровой среде. Электронная коммерция.
Модуль на выбор: технологии. Аспекты информатики, вычислительной техники и информационной безопасности. Телекоммуникационное право. Европейское право интеллектуальной собственности. IT-договоры. Медиа-право.
Модуль на выбор: интеллектуальная собственность. Авторское право. Альтернативное лицензирование. Медиа-право. Международное частное право и Интернет. Европейское право интеллектуальной собственности. Право интеллектуальной собственности США.
Программа и модули второго семестра зависят от принимающего университета.
Краткое резюме: "программа-бутерброд", позволяющая обучиться сразу в двух университетах и получить ценный опыт. Одним из партнерский университетов является Университет Кюсю в Японии. Минус - слишком насыщенная программа первого семестра, которая потребует быстро влиться в учебный процесс.
Программу можно найти здесь.
Длительность обучения: 1 год, состоящий из двух семестров. Начало обучения в октябре, конец - в сентябре.
Язык обучения: английский.
Срок подачи документов : до 30.06.
Стоимость: ежесеместровый взнос в размере 3 900
Содержание программы:
Модуль 1. Основы права интеллектуальной собственности.
Модуль 2. Основы правового регулирования технологий.
Модуль 3. Основы права Европейского права и немецкой правовой системы.
Модуль 4. Продвинутый уровень изучения права интеллектуальной собственности.
Модуль 5. Продвинутый уровень изучения правового регулирования технологий.
Модуль 6. Антимонопольное регулирование на цифровых рынках.
Модуль 7. Электронная коммерция.
Модуль 8. Право защиты данных.
Модуль 9. Введение в правовую информатику.
Модуль 10. Экономические основы права интеллектуальной собственности и информационных технологий.
Модуль 11. Международное право интеллектуальной собственности и информационных технологий.
Модуль 12. Транснациональные контракты в сфере интеллектуальной собственности.
Модуль 13. Транснациональные информационно-технологические проекты.
Краткое резюме: хорошая программа без особенностей и изюминок, рассчитанная исключительно на юристов.
Преподавательский состав магистерской программы JetBrains и ИТМО Разработка программного обеспечения на четверть (!) состоит из выпускников этой же программы. Пожалуй, это хороший повод для гордости. Мы решили сделать большое интервью с ребятами. Возможно, их истории помогут кому-то решиться начать преподавательскую карьеру, а кому-то поступить к нам на программу.
В первой части наши выпускники и преподаватели Владислав Танков, Дмитрий Новожилов, Дмитрий Халанский, Алексей Зубаков, Артем Хорошев, Александр Садовников, Владислав Кораблинов и Роман Голышев рассказывают о выборе магистратуры, впечатлениях от обучения и отличиях от других программ.
Почему вы поступили на эту программу? Оправдались ли ожидания?
Влад Т.: Я поступал на программу, ориентируясь на качество обучения в Computer Science центре. Я знал некоторых преподавателей и представлял, что будет, безусловно, сложно, но интересно. Относительно ожиданий думаю, оправдались. Я узнал много нового, попробовал заняться неизвестными ранее вещами, а продукт, который мы сделали на хакатоне в магистратуре, в итоге стал моей основной работой. Тогда мы за два дня написали штуку, вокруг которой в итоге выросла команда из восьми человек, а продуктом воспользовались несколько миллионов человек.
Дима Х.: Во время учебы в бакалавриате я случайно повстречался с преподававшим у параллельных групп бывшим студентом этой магистратуры Игорем Жирковым. Он впечатлил меня казавшимся тогда недоступным уровнем всестороннего понимания программирования. Особенно меня поразило, как он оперировал математическими инструментами. А я, надо признаться, в то время был убежден, что математика это про решение уравнений и неадекватных головоломок в духе правда ли, что 10 в степени 1999, если от него отнять 1999, делится на 9 и совсем меня не касается.
Это меня так впечатлило, что я решил бросить все силы на обретение этой мощи. Самостоятельное чтение книжек давалось с трудом, и я решил, что надо получить полноценное образование, где меня бы научили математически мыслить, желательно с привязкой к программированию. Я спросил у Игоря, где можно найти что-то подобное, и был готов ехать куда угодно. Каково же было мое удивление, когда Игорь сказал, что никуда ехать не надо: в СПбАУ есть такая учебная программа. (Ранее программа реализовывалась в СПбАУ. Прим. ред.)
Я увлекаюсь довольно нишевыми вещами, и в этой магистратуре мне удалось найти для себя много познавательного. Здесь каждый найдет что-то по душе. Любите машинное обучение? Пожалуйста! Хотите просто зарабатывать программированием на Java? Для этого здесь тоже все есть, и в довольно интенсивной форме. Компьютерное зрение? Алгоритмы на графах? Интерфейсы для Android-приложений? Сколько хотите. Почти любые связанные с программированием интересы тут поощряются и, скорее всего, вы найдете себе ментора. А если ваши интересы настолько особенные, что связанных с ними специалистов тут нет есть смысл подумать, а не стать ли первым соответствующим экспертом-преподавателем в этой магистратуре. Некоторые предметы начинали преподаваться именно так.
Дима Н.: Про программу я узнал еще в школе. Я получил внушительный багаж знаний по специальности, а также, благодаря практикам и стажировкам, устроился на замечательную работу.
Леша: Я хотел закрыть пробелы в знаниях и укрепить базу, которую дали в бакалавриате. Искал какое-то хорошее место в области программирования, на тот момент это была чуть ли не единственная адекватная магистратура в Питере. Ожидания полностью оправдались. Я до сих пор иногда переслушиваю некоторые курсы и даже посещаю семинары.
Артем: В бакалавриате я учился на физическом факультете СПбГУ, но со 2-3 курса увлекся программированием. Ближе к выпуску я успел освоить основы разработки на C++ и поработать в одной компании, но у меня было чувство, что я многого не знаю в отличие от ребят, которые учились на программистских специальностях. Пришло время задуматься о магистратуре. Внимательно изучив сайт программы и поинтересовавшись у знакомых, я понял, что это именно то место, где могут дать всю необходимую базу в короткий срок. Я пришел сюда за знаниями и опытом и могу с уверенностью сказать, что получил и то и другое в полном объеме.
Влад К.: Я заканчивал 4-й курс в своем любимом УдГУ и раздумывал, чем заниматься дальше. Друг собрался поступать в физическую магистратуру СПбАУ и позвал меня туда же на информатику. Я справедливо возразил, что это невозможно, потому что туда поступают только минимум желтенькие на Codeforces. Он не менее справедливо возразил, что ну и пофиг. Я подумал месяцок и решил отправить заявку. Съездил на собеседование, и меня взяли.
Моим главным стремлением было добавить к теоретическим знаниям практические навыки. Мне это удалось, однако не совсем так, как я ожидал: чаще приходилось учиться чему-то самостоятельно, но у меня появилось понимание, как именно это делать. В итоге, как мне кажется, я все равно отстаю в прикладном плане от многих моих одногруппников. Так я понял, что мне гораздо более интересны теоретические аспекты и что суровая разработка это не мое.
Какие впечатления у вас остались от обучения на программе? Стоит ли что-то в ней изменить?
Влад Т.: С одной стороны, было довольно сложно, особенно первый и второй семестр. С другой стороны крайне увлекательно. Я нашел новых друзей настоящих единомышленников, увлеченных своим делом, познакомился с новыми областями и просто попробовал что-то новое.
Артем: Только положительные впечатления, особенно запомнился первый семестр. Дело ведь даже не в том, что у студентов данной программы огромное количество заданий и практики (хотя это немаловажная черта программы), а в том, что они получают постоянный фидбек от преподавателей, могут почти в любой момент получить ответ на любой вопрос. В свое время для меня было шоком, что можно просто взять и написать вопрос по теме (и не только) в чат курса с преподавателем и максимально быстро получить ответ.
Саша: Впечатлений много! Наверное, большинство из них связаны с первым курсом. Было очень сложно. Пятичасовой сон, отмененные поездки за границу с друзьями, отсутствие свободного времени типичные атрибуты жизни студента первого семестра нашей магистратуры! Сейчас, конечно, понимаешь, что это было не зря. Но повторять, если честно, не очень хочется. А вот что хотелось бы повторить это второй семестр. Там ты уже научился балансировать между учебой и личной жизнью. И прямо ощущаешь себя сверхразумом, который успевает получать от жизни все и знания, и эмоции.
Иногда казалось, что учеба настолько сложная, потому что есть какие-то организационные затыки: то преподаватель не выложил/не проверил домашку вовремя, то сообщил о контрольной накануне ее проведения. Такие моменты, естественно, хотелось исправить! Как мне кажется, это одна из главных причин, почему так много ребят с моего курса в итоге вызвались стать преподавателями в нашей магистратуре.
Влад К.: За два года впечатления самые разнообразные, но скажу, что такая же крутая учеба в моей жизни была до этого только в ЛМШ. Здесь невероятная атмосфера и люди, после обычного университета ты просто испытываешь эйфорию: а что, так можно было?!.. Но конечно, ничто не бывает идеальным, и изменить можно много чего как глобально, так и по каждому курсу в отдельности. Но это больше вопрос для обсуждения с кураторами, мне кажется.
Рома: Сложность прохождения программы целиком зависит от подготовленности студента. У меня были проблемы с теорией (алгоритмы, дискретка), но при этом сравнительно большой практический опыт программирования, что сильно упрощало прохождение практических курсов (Bash, Python, C++, Java). Думаю, тем, у кого не было предварительной подготовки ни в теории, ни в практике, программа дается значительно труднее. Кажется, это важно учитывать при составлении заданий, чтобы не создавать порочный круг я не могу даже понять текущее задание (потому что этот материал совершенно новый для меня) <-> я пропущу его и наверстаю потом.
В последнее время я все чаще вспоминаю курс Software Design, на котором нас учили архитектуре, проектированию, шаблонам и так далее. На мой взгляд, этот курс должен занимать чуть более важное место в учебной программе, особенно с точки зрения практики. Студенты должны не только прослушать, какие бывают архитектуры приложений, но и попробовать их использовать, а в идеале ощутить последствия их неправильного использования (например, за счет работы с легаси-кодом). На текущей работе я осознаю, что самый большой пробел в моих навыках именно в проектировании программ. Возможно, я не одинок, и студентам не помешает более интенсивный курс на эту тему.
Что, по-вашему, отличает эту программу от других магистратур? Как вы пытаетесь реализовать эти отличия в преподавании?
Дима Х.: На мой взгляд, самое ценное в этой магистратуре то, что здесь многие преподают в качестве хобби, а сами работают непосредственно с тем, чему учат. Сам я тоже работаю, да и программирую для души, так что рассказываю студентам о том, с чем сталкиваюсь постоянно, и стараюсь регулярно привязывать происходящее на занятиях к тому, что можно ожидать при попытках задействовать эти знания в реальности. В конце концов какие-то теоретические изыски забудутся после экзамена, а вот реальный опыт, если его удастся донести, осядет надолго.
Дима Н.: Я бы отметил углубленное изучение сложных тем, отсутствие воды в материале. В этой магистратуре действительно учат понимать, что за код ты пишешь, как он работает и зачем это нужно. Я и сам стараюсь следовать этим принципам и, например, при рассказе про какую-нибудь возможность языка не просто показываю, как ею пользоваться, но и объясняю, как она работает под капотом, какие ограничения и возможности имеет. Благодаря этому студенты гораздо лучше понимают суть программ и языковых конструкций, а не просто относятся к ним, как к какой-то магии.
Леша: Я думаю, основное отличие в соучастии и компетентности. У нас есть специальные люди кураторы, которые сопровождают студентов в процессе обучения: помогают решать проблемы, готовят к защите диплома, по многу раз выслушивая докладчиков, регулярно встречаются со студентами (сейчас через Zoom), чтобы собрать обратную связь, и делают еще много всего, что сильно упрощает жизнь студентам и преподавателям все могут сосредоточиться на процессе обучения и не думать о лишнем.
Саша: Нашу программу отличает системность. Ты знаешь, что каждую неделю почти по каждому предмету у тебя будет домашка. Ее надо сделать вовремя, чтобы преподаватель проверил все к следующей паре. Не сделал домашку вовремя недополучил баллы и знания. И так домашка за домашкой! Такой подход хорош тем, что знания с лекций подкрепляются достаточным количеством практического материала и, соответственно, лучше усваиваются. По себе могу сказать: если не потрогать материал с лекции руками, в голове он не отложится.
Я как преподаватель стараюсь сделать так, чтобы студенты не выбивались из ритма домашка-лекция-домашка и им ничего не мешало эти домашки делать: проверяю работы в срок, объективно их оцениваю и оперативно отвечаю на вопросы студентов по условиям задач.
Влад К.: В нашей магистратуре довольно молодые преподаватели! Учиться здесь очень сложно, поэтому я стараюсь создавать для студентов максимально комфортную обстановку, чтобы они не чувствовали себя беспомощно и не боялись активно участвовать в процессе. Я довольно много общаюсь с ребятами, пытаюсь им помогать и направлять в нужную сторону, когда им это необходимо. Ну и сам стиль общения у нас довольно неформальный, что тоже должно помогать. Правда, до обмена мемами конкретно с этими ребятами еще не дошло.
Одним из существенных отличий в нашей учебе мне видится стремление преподавателей действительно научить студентов своему предмету (абсурдно, конечно, что мало где так). Наверное, ребята меня недолюбливают за то, что я часто придираюсь к их решениям и прошу многие моменты подробно прописывать. Но эти придирки служат вполне конкретной цели. Так, в курсе дискретной математики мне важно, чтобы студенты научились грамотно использовать логические рассуждения, не принимали на веру кажущиеся очевидными факты, а выводили их из определений/аксиом.
В случае с алгоритмами ситуация даже более жизненная: на работе нам почти всегда приходится трудиться в командах, поэтому при решении задачи необходимо не просто придумать идею, а объяснить ее товарищам и уметь доказать корректность. Если вы не сможете этого сделать, то здоровый скепсис заставит ваших коллег просто отбросить эту идею, даже если она на самом деле золотая. Поэтому я требую доводить решения до состояния, когда мне точно все в нем понятно. Если я его не понимаю даже зная правильное, другой человек тем более ничего не поймет.
Рома: Мне кажется, что в этой программе принципиально другой уровень отношений между студентами и преподавателем. Когда я учился в бакалавриате, многие преподаватели были в каком-то смысле недосягаемы для меня я никогда не рассчитывал оказаться с ними на одном уровне. Между нами были строго деловые учебные отношения: преподавателю нужно закрыть ведомость, студенту нужно закрыть сессию.
В нашей магистратуре эта граница сильно размыта. Большинство преподавателей работают в продакшене, т.е. когда они не учат программировать, они сами программируют. Это значит, что студенты через несколько лет могут оказаться с ними в одной команде. Это, на мой взгляд, сильно повышает ставки с обеих сторон.
Студент понимает, что его учитель не просто теоретик, который за всю жизнь не написал ни строчки кода, а реальный программист, который пишет код каждый день и зарабатывает этим на жизнь. Поэтому такого человека имеет смысл слушать. А преподаватель понимает, что перед ним его потенциальные сокомандники. И если есть место, в котором он может повысить базовую квалификацию программистов-джуниоров, то оно здесь.
Поэтому я старался взаимодействовать со своими студентами так, будто они мои сокомандники. Мы общались на ты, я не пытался выстроить образ непогрешимого авторитета в их глазах, поскольку на работе это скорее будет минусом, чем плюсом. Я просил их не стесняться задавать вопросы, но при этом стараться как можно больше искать самостоятельно ведь именно таких коллег я хотел бы иметь в своей команде.
В общем, тот факт, что однажды твой студент может прийти к тебе на стажировку или на собеседование и потом будет с тобой работать (а может, и руководить тобой), заставляет взглянуть на ситуацию иначе. Вряд ли преподаватель математики в вузе, натягивающий тройку ленивому студенту, переживает, что этот студент через пару лет вернется в университет и начнет плохо учить других студентов. А в нашей магистратуре это вполне реалистичный сценарий. :)
В осеннем семестре 2020 года командалаборатории Нейробиологии и физиологии развития прочитала курс Вычислительные Нейронауки для студентов партнерских магистратур ВШЭ и ИТМО, а также для заинтересованных вольнослушателей. Курс проводится в рамках образовательных программ JetBrains c 2019 года. В этом году, в отличие от прошлого, формат обучения был, естественно, дистанционный лекции и семинары проводились в виде видеоконференций. В ходе курса студентам был предложен базовый материал для изучения и обсуждения в аудитории, материалы для самостоятельного, более глубокого погружения, интересные практические задания по моделированию нейронов и биологических нейронных сетей.
Цель курса дать студентам представление о том, что и какими способами можно моделировать в нейробиологии и дать им возможность немного попрактиковаться в этом на нескольких относительно простых задачах. Пререквизитами для полноценного усвоения материала являются умение программировать и интерес к биологии, однако, если даже вы не умеете программировать, но интересуетесь вопросами, касающимися работы нервной системы и ее моделирования вам все равно будет интересно послушать эти лекции!
В первой части курса освещены ключевые темы из нейробиологии, которые слушателям необходимо в той или иной степени представлять для того, чтобы пытаться что-то моделировать: рассказывается о структуре и функционировании нервной системы на организменном, тканевом, клеточном и молекулярном уровнях, о биофизических явлениях, лежащих в основе процессов, происходящих при возникновении и передаче сигналов итд. Также рассматриваются модели тех самых биофизических явлений, а также модели генерации и проведения потенциала действия на уровне единичных и на уровне многих нейронов. Еще одна, несколько отдельно стоящая и чуть более приближенная к медицине глава в этой части курса это обработка данных электроэнцефалографии (ЭЭГ). Параллельно с лекциями первой части, студентам предлагаются практические задания реализация классической модели Ходжкина Хаксли, описывающей характеристики возбудимых клеток, работа с реальными данными ЭЭГ и создание модели химического синапса.
Во второй части курса мы рассказываем про то, как информация кодируется и декодируется в нервной системе, что такое пластичность и что ее обуславливает, чем спайкинговые нейронные сети отличаются от классических ИНС и как их можно использовать в биологических исследованиях, как осуществляется биохимическая регуляция работы нейронов и как происходит развитие нервной системы от оплодотворенного яйца до взрослого организма. В заключительной лекции мы говорим о том, как связаны между собой машинное обучение, искусственный интеллект и нейронауки, какие процессы и явления в биологии послужили вдохновением для развития новых подходов в области машинного обучения и как машинное обучение используется в исследованиях работы мозга.
Если вас заинтересовал наш курс или какие-то отдельные темы, которых мы коснулись приглашаем вас в следующем осеннем семестре: будет еще интереснее, поскольку мы постоянно расширяем и дорабатываем контент. Прослушать курс могут все желающие. Вы также можете посмотреть все лекции 2020 года в любое удобное для вас время видеоматериалы доступны наYouTube-каналеJetBrains Research.
Слайд из лекции о кодировании и декодировании информации в НС.