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

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

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


В твоем профиле в соцсети написано «программист-самоучка». Как это получилось?

Семья у меня вся техническая, матушка и батюшка инженеры, я один гуманитарий — точнее, был до 2015 года. А потом поступил в вуз, понял, что мою специальность можно выучить за пять месяцев, и решил: надо учиться чему-то, что может приносить и средства, и что-то более интересное. Вообще, у меня специальность — регионоведение, арабский Восток. Когда я поступал, эта тема была на подъеме. Решил, когда закончу, она еще актуальна будет.


То есть ты оттуда не ушел совсем?

Нет, я синтезирую. У меня на втором курсе была тема курсовой работы «Прогнозирование и классификация терактов методом машинного обучения».


А как возникла тема машинного обучения?

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


Как у тебя вообще проявились способности к программированию?

Знакомство с самым примитивным программированием на BASH у меня началось в апреле 2015 года, когда я расстроенный приехал с финала «Умников и умниц». Я там не выиграл. А я в эту цель очень много сил вложил и после финала ощутил такую гнетущую пустоту. Новой цели не было. Нужна была цель.


Не жалеешь, что не попал в МГИМО?

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


Как ты учился программировать?

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


Это было легко?

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


И как ты справлялся?

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


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


А что ты успел сделать на ниве кибербезопасности?

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


По каким материалам ты все осваивал?

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


А какая-то менторская среда появилась? Когда ты достиг потолка и понял, что самому дальше трудно?

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


Что было самым трудным на стажировке?

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


Как ты попал в «Моторику» — компанию по производству протезов, созданную в «Сколково»?

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

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

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

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

И как ты дошел до решения? С кем-то советовался?

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


А ты откуда знал, что получится?

Просто предполагал, что рано или поздно к чему-то приду. Сидел, тестировал, переписывал — не подходило, брал другой алгоритм, и так далее.


Сейчас ты продолжаешь над этим работать?

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

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


В жизни ты это как применяешь?

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


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

Теракты. Я хочу на диплом выйти уже с полной системой прогнозирования терактов — со сбором данных, с какими-то более сложными алгоритмами. И я хочу, чтобы она была актуальной. Сейчас, я знаю, у АНБ есть PRISM второй, и что-то подобное разрабатывает компания "Палантир".


Твоя система как-то учитывает существующие наработки?

Я на защиту выходил с довольно сырым материалом. С данными, которые мне удалось выкрутить из Global Terrorist Database. Я пытался теракты классифицировать постфактум, находя закономерности в уже случившихся терактах. Данных у меня было не очень много.

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

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


У тебя какая-то обратная связь, среда есть?

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


Что мешает?

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


Но ты хотел бы?

Я не против. Не за, но и не против. Как получится. Понятно, стану невыездным и так далее, но если там платят неплохо — почему нет.


То есть тебя деньги мотивируют?

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


«Материальное бренно» — это у тебя жизненная философия такая? Можешь рассказать поподробнее?

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

Очень показательная история с нефтяным рынком 2014 года. Рынок без поставочных фьючерсов на нефть был просто перегрет и в итоге рухнул. Если мне память не изменяет, фьючерсов было больше, чем нефти. Но та схема, которую предлагает Мейсон, — это откат в начало XX века со странами-автаркиями, которые обеспечивают свою экономику полностью и могут еще что-то на экспорт давать, и странами-сателлитами, которые от этих автаркий зависят. Но если в XX веке это был чугун, сталь и ядохимикаты, то в XXI веке это будут информационные технологии.


Ты одновременно осваиваешь совершенно разные дисциплины. Ты когда-нибудь размышлял над тем, откуда такие разные таланты в тебе открылись?

А зачем? Что это дает? Если я буду думать, приду к какому-то объяснению — я все равно не извлеку ничего для себя нового. Самокопание — бессмысленное занятие, ничего нового для себя из него извлечь нельзя. Мне нравится изучать других людей — ставя перед ними задачи, по каким-то косвенным признакам понимать их.


Какие книжки на тебя больше всего повлияли?

«Социология» Карла Маркса, «Государь» Никколо Макиавелли, учебник «Судебная психиатрия», «Математика покера» Билла Чена и Джеррода Энкермана, «Посткапитализм» Пола Мейсона, «Теория решения изобретательских задач» Генриха Альтшуллера, «Оргуправленческое мышление» Георгия Щедровицкого. Еще очень понравилась одна компьютерная игра, которую я считаю ключевой для становления собственной личности. Это Star Wars: Knights of the Old Republic 2.


Не играл.

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

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

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


Цель оправдывает средства?

Да.


Всегда?

Всегда.