• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Прикладная математика»

Интервью с победителями секции № 1 конференции имени Е.В.Арменского («Математика и компьютерное моделирование»)

В феврале 2017 года прошла ежегодная научная конференция имени Е.В.Арменского. Победителем секции № 1 «Математика и компьютерное моделирование» стала студентка 3 курса бакалавриата образовательной программы «Прикладная математика» Софья Толстоухова с темой «Рекуррентные нейронные сети для классификации белковых последовательностей».

Диплом второй степени получила студентка 4 курса бакалавриата ФКН Чиркова Екатерина.

Сегодня – более подробный рассказ о наших героинях и их работах.

Софья Толстоухова
Cтудентка 3 курса бакалавриата образовательной программы «Прикладная математика»


Итак. Рекуррентная нейронная сеть. Впервые ли вы ее писали? Каковы средства реализации программы?

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


А как вы вообще пришли к этой теме?

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


Где данная разработка может быть применима?

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

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

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

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


Какова роль вашего научного руководителя в работе?

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


Предполагает ли ваш проект финансовые вложения? Если да, то в каких конкурсах на соискание финансирования Вы планируете принять участие? И сразу еще один вопрос: каким объемом знаний в области машинного обучения вы обладали к моменту начала работы?

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


Как вам вообще этот майнор, кстати? Не жалеете о выборе?

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


А почему не нейросети?

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


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

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


Считаете ли вы программирование искусством? Или это, все же, наука?

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

 

Чиркова Екатерина
студентка 4 курса бакалавриата ФКН


Тема: «Апостериорные оценки точности и временной сложности эвристических алгоритмов решения евклидовой задачи коммивояжера»


Можно сначала для таких, как я. О чем работа? Я знакома с задачей коммивояжера, но первая половина темы для меня звучит непонятно совсем.

Стандартная ситуация. Работа о выявлении таких алгоритмов, которые должны быть использованы в условиях ограниченности ресурсов - в данном случае рассматриваются время и точность решения. Т.е. если хочется получить быстрый алгоритм, то в этом случае его точность будет хуже, чем у других, но в каких-то ситуациях точность не так важна (+- 50%), а время играет важную роль. Надеюсь, смогла объяснить на пальцах.


Как пришли к этой теме? Почему именно она?

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


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

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


На каком языке писали?

Все алгоритмы написаны и на C#, и на С++. Но все вычислительные эксперименты были на плюсах (С++)


Много ли пришлось писать с нуля? Или библиотек для всего было достаточно?

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


На протяжении скольких лет вы этим занимаетесь?

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


Где это можно применять на практике? Удастся ли с помощью полученных алгоритмов решать реальные задачи?

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


Здорово! Можно чуть отвлеченные вопросы? Что для вас значит конференция Арменского?

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


Волнуетесь перед презентациями?

Дико!


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

Волнение само по себе спадает в ходе презентации. Я понимаю, о чем говорю, и это главное.


Как вы считаете, отличаются ли женщины-программисты от мужчин, работающих в этой области?

Как ни странно, да. Женщины - это изюминки. Мышление у нас разное.


А как начать кодить? С чего?

С желания! Главный ингредиент.


Мне вот кажется, что уже все до меня написано, сразу отпадает именно это желание.

Стоит зайти на «Headhunter», увидеть зарплаты и понять: раз спрос такой высокий, значит, ничего ещё не написано. И не всегда нужно писать что-то новое, достаточно поддерживать старое.

 

Интервью брала студентка 1 курса Лапшинова Анастасия