[Проект «Атоми», присвячений талановитим українським науковцям, які творять не лише в Україні, але і за кордоном. Ми розповімо про їхні життєві шляхи, масштабні відкриття, а також проекти та дослідження, які змінюють світ.
Спецпроект створений за підтримки компанії SoftServe]
***
Ми відсуваємо столик у кафе. Дмитро прицілює камеру смартфона на взуття моєї співавторки. Після чого показує нам серію зображень червоних кедів.
— Воно? — питає Дмитро.
— Оце вперше науковець демонструє нам свою роботу просто під час інтерв’ю! — усміхається Олеся.
Нейронні мережі лежать в основі автопілотів для автомобілів та дронів. Нейронні мережі вміють розпізнавати голоси і тексти. Нейронні мережі за даними про швидкість росту ракових пухлин можуть генерувати формули нових речовин, які б пригнічували їхній розвиток. Нейронні мережі передбачають погоду з точністю до хвилини. Нейронні мережі «перемалюють» ваші світлини в стилі Ван Гога чи Рембрандта. Або ж знайдуть, де продається взуття, схоже на те, яке зараз на вас.
Українець Дмитро Мішкін, аспірант Чеського технічного університету, розробляє системи розпізнавання образів на основі нейронних мереж. Один із його алгоритмів допомагає за фотографією будь-якої речі — телефону, стільця, взуття — знайти інтернет-магазини, в яких продають схожі. Поміж фотографуванням купи предметів у київському кафе ми поговорили із Дмитром про принципи комп’ютерного зору, побудову технологічного бізнесу в Україні, а також про те, як можна, навчаючись у Чехії, жити в Києві.
Робот із пилососа
— На початку 90-х, коли була приватизація держмайна, мої батьки теж отримали ваучери. Та не знали, що із ними робити. Врешті продали їх і купили мені на всі гроші одну з енциклопедій видавництва «Аванта+».
З цього і почався інтерес Дмитра до науки. В той час його батько збирав та продавав комп’ютери ZX Spectrum, які під’єднувалися до телевізорів, а дані на них завантажувалися з магнітних стрічок магнітофонів.
— Тому комп’ютер у сім’ї з’явився ледь не раніше, ніж я, і я програмував з дитинства. Років у сім намалював гральні карти, аби друкувати їх на принтері. Потім створив текстовий квест, звісно, із сюжетом рівня семирічного хлопчака, яким я був.
Попри те, що улюбленим предметом Дмитра була хімія, після закінчення школи він обрав інженерну спеціальність — вступив на факультет авіаційних систем до Київського політехнічного інституту. Його бакалаврський проект був присвячений навігаційній системі «наземного робототехнічного апарата». Протестувати описану систему навігації, втім, не було на чому — застосував її на пилососі.
— Я взяв пилосос «Румба» і використав його як платформу. Зверху встановив ноутбук з камерою. Він їздив і примітивно розпізнавав перешкоди, — пригадує Дмитро. — Взагалі керування наземним чи літальним апаратом — дуже схожі процеси. У небі навіть легше — немає перешкод. На тлі інших дипломних проектів моя система обходу перешкод видавалася крутою. Та якщо не варитися в українській науці, а подивитися, що люди у ширшому світі роблять, — на Заході це було б крутим проектом році в 1985-му, а у нас йшли 2008-2010 роки.
Його бакалаврський проект був присвячений навігаційній системі «наземного робототехнічного апарата». Протестувати описану систему навігації, втім, не було на чому — застосував її на пилососі
Робот Дмитра міг розпізнавати контури зображень та вирішувати, чи потрібно їх оминати.
— Ми уявляємо, що контур ніби складається із дроту, який можна змінювати. І що ми робимо? — Дмитро бере чашку і руками показує, як її можна було б уявно деформувати. — Рахуємо енергію, яка потрібна, аби контур розтягнути чи стиснути. Що енергія більша, то більше контури відрізняються. Це дуже примітивний алгоритм, я навіть не хочу розповідати, це сором! Зараз, із сучасним інтернетом, це навіть на курсову не тягне.
Згодом після захисту дипломної роботи дослідник вирішує вступити до Чеського технічного університету, що у Празі.
Комп’ютерний зір
У гумористичному коміксі Термінатор використовує машинний зір, аби розпізнати сорочку байкера як немодну і відмовитися від неї. Та не тільки модні тренди може оцінювати машинний зір.
— Чіткого терміну «розпізнавання образів» немає, це дуже широка сфера. Кожну задачу вирішують унікальним методом.
Дмитро бере тарілку з-під тістечка.
— Для нас це тарілка, зверху це коло, збоку — еліпс. Але це тарілка. І програма має її розпізнати за будь-яких умов.
Нехай є серія фотографій місцевості при різному освітленні, з різних боків. Ми хочемо побудувати 3D-модель. Тоді наша мета — надійно задетектувати шматочки загальної картини при різних умовах, навіть якщо її частини не видно. Можна нормалізувати також освітлення — тобто порівнювати однаково освітлені області. Для кожного шматочка зображення, зони із декількох пікселів, ми шукаємо найближчу схожу область. Потім ставимо їх у відповідність одне одному. Також знаходимо таку геометричну трансформацію, аби найбільша кількість частинок картинки відповідала іншому, зміненому, зображенню. Взяли одну картинку — а якщо її нахилити, то це симулює інший кут зору. Так ми можемо зробити 3D-модель, тобто знати, як усе виглядає з різних боків.
При розпізнаванні образів зазвичай між собою порівнюються дескриптори. Дескриптор — це вектор, тобто набір цифр або ж інших даних, що описує будь-який об’єкт. Між векторами легко знайти відстань — те, наскільки вони схожі. Якщо відстань нульова, отже, картинки однакові. Наприклад, система кольорів RGB — вектор із трьох кольорів, кожен з яких може приймати одне з 256 значень.
— Є і такий підхід: «А, нехай комп’ютер сам придумає параметри». Нейронні мережі можуть створити дескриптор, що буде описувати усе, що нам треба, і усе, що не треба. Але ж ми повинні впливати на це, сказати, чи потрібен нам колір ось цієї книжки, чи ні? — Дмитро бере з полички книжку, крутить її у руках. — Практично єдиним способом, яким ми можемо впливати, — це задавати дані. Шукай таку ж зелену книжку, та не червону. І на виході маємо вектор, який класно описує картинку, музику тощо.
На Майдан із Чехії
В аспірантурі КПІ Дмитро розробляв систему технічного зору для безпілотників, доки не натрапив на програму обміну між університетами Erasmus Mundus. Серед запропонованих університетів він обрав Чеський технічний — там працював відомий спеціаліст із комп’ютерного зору Іржи Матас, чиї алгоритми Дмитро використовував у роботі.
— Я написав трьом професорам, відгукнувся мій майбутній науковий керівник Іржи Матас. Я сказав, що мій середній бал 5.0, розповів, чим займаюся. Подав документи, приїхав туди. Ми зустрілися в пабі за пивом, він простягнув статтю — розбирайся. І надав проміжного наукового керівника — хлопця, який щойно захистився. Ми написали наукову статтю, яку прийняли на конференцію в Новій Зеландії.
Науковий керівник Дмитра — фахівець із комп’ютерного зору і машинного навчання, дуже цитований вчений у цій сфері. Основні напрямки його роботи: програмування пошуку за зображеннями та трекінг — автоматичне відслідковування якогось об’єкта на зображенні (наприклад, конкретного футбольного гравця на матчі).
Коли Дмитро виконав усі формальності й поїхав працювати у Прагу, в Україні саме почалася Революція Гідності.
— Після побиття студентів я склав речі, залишив записку керівникові і полетів сюди, на Майдан. Першого грудня був на мітингу. Науковий керівник зрозумів, чому я поїхав. Він не дуже вірив в Україну у цьому сенсі, але погодився із моїм вибором.
Сфотографуй мені Gucci
— Після Майдану я почав шукати роботу в Україні. Один американець саме шукав досвідченого в темі комп’ютерного зору співробітника. Він співпрацював із Viewdle — українським стартапом, який спершу купила Motorola, а потім поглинув Google. Цей проект займався розпізнаванням облич на телефонах. Продавши проект за десятки мільйонів, американець зрозумів, що в Україні є круті інженери, і заснував власний стартап.
В компанії Clear Дмитро був CTO — директором із розробок. Він відповідав за науку, а також за програмування основних речей. Користувач їхнього додатку міг сфотографувати річ, яка йому сподобалася, і побачити на екрані смартфону, в яких магазинах можна замовити схожу. Подібна послуга була у Amazon, але вона працювала гірше — вимагала ледь не точного збігу із зображенням на сайті.
— Скажімо, я побачив у знайомого iPhone 5 і захотів купити такий і собі. Фотографую його — і система показує найближчі точки продажу. Але є розмитіші забаганки. От хочу я стілець, схожий на цей. — Дмитро вказує на стілець в кафе. — Або ж наплічник, взуття. Це складніше. Тому ми почали працювати над тим, аби програма показувала щось схоже, та все ж не ідентичне.
— Технологію, схожу на нашу, згодом презентували на крутій науковій європейській конференції, — хвалиться Дмитро. — І ще важливий момент: ми не продавали нічого дорожче за 50 доларів. Ми працювали для тих людей, які люблять Gucci, не можуть собі його дозволити, але хочуть щось схоже. Людина фотографує валізку Louis Vuitton — і програма видає кілька варіантів валіз, схожих зовні. Далі, коли людина натискала кнопку «купити», ми замовляли товар у малого виробника, перевіряли, чи все правильно, пакували і відправляли по всій Америці, в якій запустили і тестували сервіс. Усе працювало автоматично. Покупці могли задати категорію власноруч, але це не обов’язково. Наприклад, «Хочу сумочку через плече». Або «Хочу валізу». Принципово ми не продавали ніяких брендів і підробок. І якщо хтось продавав фальшивку під Louis Vuitton, в програмі з’являлася відповідна позначка, за якою алгоритм більше не пропонував цього варіанта.
Нещодавно Дмитро залишив свою роботу в компанії, аби сконцентруватися на науці. Наразі він пише дисертацію для захисту ступеня PhD, іноді читає навчальні лекції, як-от на зимовій комп’ютерній школі Українського католицького університету чи в «Білці» — студентському просторі КПІ.
— Зараз я хочу сконцентруватися лише на науці. До того ж я зрозумів: якщо не захищу наукового ступеня зараз, а піду в індустрію далі, то велика зарплатня, ймовірно, мене розбестить і я не зроблю цього ніколи.
Київ — Прага
Після повернення Дмитра в Україну вони із професором Матасом опублікували ще одну статтю й подали її на конкурс із розпізнавання місць в різних умовах.
— Завдання було таким: я йду, маючи на лобі увімкнену камеру, а потім хтось іде тим же шляхом із камерою ввечері — і треба розробити алгоритм, який автоматично розпізнавав би, як ці місця співвідносяться. Ми перемогли у цих змаганнях. Це була ще класична система комп’ютерного зору, ще до тотального домінування нейронних мереж. Нейронні мережі уже були, але наш алгоритм їх переміг. Та я тоді не мав формального стосунку до жодного університету, і Чехія не могла оплатити мені поїздку на конкурс, тож в Америку я їздив власним коштом. Але воно того вартувало! Мав нагоду зустрітися зі співробітниками Google — із гуру, чиї статті я читав! На такі конференції треба їздити не доповіді слухати (бо ж їх можна і в інтернеті подивитися), а саме спілкуватися із людьми, відчути цей дух.
Після конкурсу Іржи Матас укотре запропонував Дмитру нарешті вступити в їхній університет на PhD. Це стало можливим завдяки гранту, що покриває вартість навчання на англомовному курсі. Крім того, спеціально для Дмитра в університеті розробили схему дистанційного здобуття наукового ступеня.
— Я став першою людиною в університеті за десять років, яка віддалено здобуває PhD!
Через унікальність його випадку Міністерство внутрішніх справ Чехії довго не могло видати навчальної візи — у них просто не було подібних прецедентів. Утім, на думку Дмитра, якщо не мати в Україні роботи, пов’язаної із наукою, треба однозначно їхати за кордон саме на очне навчання.
— Заради атмосфери. Пропрацювавши там лише рік, я зрозумів, як треба робити справи.
Нейронні мережі
Нейронна мережа компанії DeepMind обіграла чемпіона світу з го. Хоча через складність цієї гри і надвелику кількість можливих комбінацій вчені думали, що комп’ютер ніколи не перевершить людини. Те ж саме сталося із покером.
Колись слово «нанотехнології» асоціювалося із купою гучних відкриттів. Тепер, схоже, вислів «нейронні мережі» обходить їх.
— «Нейронні», бо ще в 50-х роках розробили мережу «Персептон», яка імітувала роботу людського мозку. Вчені надихалися біологією. У нейрона є входи — аксони, і один вихід. Між входом і виходом щось відбувається. Дуже грубо кажучи, транзистор можна вважати одним нейроном.
Першим «нейрокомп’ютером» став «Марк-1», створений у 1960 році американським науковцем Френком Розенблаттом на основі його алгоритму «Персептон». Датчики передавали дані в асоціативну пам’ять, а потім вже на елементи, які належним чином реагували на інформацію. Звичайна комп’ютерна оперативна пам’ять працює так, що користувач задає адресу в ній, а вона видає дані. Асоціативна працює навпаки — за даними видає одну чи декілька адрес, де вони зберігаються. Так ніби створюються «асоціації» між закодованими в комп’ютері даними. Це важливо для швидкого пошуку і обробки необхідної інформації.
— Основні принципи нейронних мереж відомі уже років 30. То чому ж вони лише зараз набули такої популярності? Є три причини. Не було такої кількості даних. У дитинстві я мав великий жорсткий диск на 20 мегабайтів. Уявляєте? Тепер терабайти нікого не здивують. По-друге, комп’ютери були повільними. А якщо обчислювати на відеокартах, швидкість взагалі неймовірно зростає. Взагалі, із відеокартами вийшло смішно. Покоління геймерів профінансували майбутні наукові дослідження! Інженери створювали все кращі карти, аби вони «тягнули» вибагливіші ігри. І наразі відеокарта значно швидша за центральний процесор, що допомагає в наукових дослідженнях. Третє — сучасні алгоритми дуже швидкі. Математика за 20 років також пішла далеко уперед.
На думку Дмитра, те, що люди роблять добре, класичні комп’ютери роблять погано. А от нейронні мережі — так само добре, якщо у них вдосталь даних. За його словами, цінність таких мереж у їхній універсальності — однакові принципи застосовуються і для машинного перекладу, і для детектування облич з відео, і для розпізнавання голосу (як у програмі SIRI).
Наука поряд
Наразі Дмитро Мішкін не лише продовжує власну наукову діяльність, а й у міру сил намагається покращувати українське наукове середовище.
— Навіть у радянські часи були замовники із підприємств, яким потрібні були технології. У них був запит, і були інститути, які готували спеціалістів під запит. Зараз це не працює. Ми створили Szkocka Research Group — ланку між замовниками і студентами, аспірантами.
Скажімо, є задача машинного навчання в IT. Замовник звертається до наукових груп, я керував трьома такими групами. І є студенти, аспіранти і просто люди, які хочуть актуальною проблемою займатися. У складі таких груп вони вирішують цю проблему, відсилають рішення на конференцію, і якщо його приймають — група Szkocka Research повністю фінансує поїздку.
— Усім профіт — для своїх магістерської чи кандидатської вони вирішують задачу, їдуть на конференцію. Замовнику добре — його проблему вирішено. Плюс про Україну дізнаються в світі. Нещодавно учасниця нашої групи Настя Міщук закінчила першу статтю і її прийняли на NIPS — одну з головних конференцій з машинного навчання в світі.
Єдина умова такої співпраці — рішення має бути під відкритою ліцензією. Щоб будь-хто міг ним користуватися.
Текст — Олеся Яремчук, Олег Фея