Boris Burkov
997 subscribers
712 photos
34 videos
2 files
806 links
Download Telegram
О докладах 7 февраля:

Про доклад DeepMind AlphaFold в EMBL-EBI:
https://borisburkov.net/blog/2019-02-07-1

Про доклады Amazon Alexa в Amazon Research Cambridge:
https://borisburkov.net/blog/2019-02-07-2
Continuous Integration/Continuous Delivery (CI/CD)

Я на прошлой неделе ненароком снес сервер, хостивший мой персональный сайт (borisburkov.net), так что вчера вновь был вынужден заняться обзором CI/CD-решений, чтобы его воскресить. Этих решеий по-моему уже сотни, а толку все равно никакого...

На всякий случай, еще одна копия моего сайта хостится непосредственно гитхабом (BurkovBA.github.io).

На днях я разговаривал с товарищем, который много по долгу службы общался с техподдержкой популярнейшего облачного Continuous Integration-сервиса Travis CI и стал их большим фанатом, поскольку они хорошие ребята.

Так вот, недавно их купил какой-то стратегический инвестор (https://www.crunchbase.com/organization/travis-ci#section-recent-news-activity) и в первый же месяц уволил половину сотрудников, даже не сообщив об этом их линейным менеджерам. Так что, по-видимому, Трэвис все =(

А я между тем хочу сказать, что все эти CI/CD может и CI, но ни одно из них нифига не CD.

После надоевшего всем Дженкинса я уже перепробовал GoCD, Github Actions и вот теперь CircleCI, и ни один из них мне так и не нравится.

Concourse еще посмотреть, говорите?
Здравствуйте, мои дорогие дата сайнтисты. Решите задачку о динамике вас и вашей карьеры во времени.

На свете около 10 тысяч исследователей машинного обучения и около миллиона индустриальных дата-сайнтистов. Стало быть, на то, чтобы внедрить в продакшн открытие одного машиниста-исследователя, уходит где-то 100 индустриальных машинистов (потому что всякие банки имеют свои заморочки с безопасностью данных, и просто один раз написать одно общее API на каждую технологию и потом его повторно использовать не выйдет - модели придется в каждом банке писать по новой).

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

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

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

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

Берем лес знаний всего человечества, и на нем отмечаем знания каждого отдельного исследователя машинки. Площадь знаний одного человека мала, лимитирована его продолжительностью жизни и большинство знаний очень сильно повторяются между людьми. Скажем, тот кусок знаний, что покрыт курсом Эндрю Ына будут знать все 10 тысяч человек. А теорию категорий из них знают, к примеру, только 2 тысячи. А топологию - только тысяча.

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

"Не заявляйте в теме диссертации, что собираетесь разработать в аспере специальное железо для машинного обучения. У вас на это уйдет лет 5, и к тому моменту, как вы закончите, закон Мура (https://en.wikipedia.org/wiki/Moore%27s_law) вас догонит и перегонит".

Что-то подобное советовал молодым и Джеймс Уотсон: "Не беритесь за проект, который займет 5 лет. Беритесь только за то, что можно успеть за 2 года и работайте без выходных, потому что этим же занимается кто-то в соседнем институте. Я обхожу свои лаборатории по воскресеньям в полдень. Если сотрудников там нет - что-то идет не так".

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

Еще замечательно сказал по этому поводу Эрик Шмидт, бывший CEO Google: "Мы всегда переоцениваем прогресс на год и недооцениваем прогресс на 10 лет". Человечество огромно, и эффекты от прогресса, достигнутого разными людьми, умножаются.

Я почему-то очень долго жил в иллюзии, что я действую, а мир меня ждет. Все наоборот: мир собирается в команды, каждая из которых производит какой-то продукт, а я барахтаюсь как муравей, отчаянно пытаясь хоть немного поспевать за этими новшествами.
Вероятно вы слышали, как играя в Го с Ли Седолем, AlphaGo произвел удивительный "Ход 37", который все приняли за ошибку, но, как оказалось, спустя много ходов он принес программе победу: https://www.youtube.com/watch?v=HT-UZkiOLv8.

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

Так вот, как-то генетический алгоритм сгенерировал плату с полностью изолированным NAND gate'ом (https://en.wikipedia.org/wiki/NAND_gate). Инженеры подумали: что за ерунда, он ни с чем не связан, давайте его уберем. Плата перестала работать. Оказалось, что работа платы держалась на удаленном взаимодействии электромагнитного поля с этим гейтом, и генетический алгоритм нашел его, хотя никакой рациональный дизайнер PCB такого бы не придумал.

Не могу найти ссылку на эту историю к сожалению, поэтому "почем купил...".
На позапрошлой NIPS'17 Pieter Abbeel, работавший тогда в OpenAI, выступал с очень интересным докладом, где показывал видео еще 2009 года, на котором роботы прекрасно справляются с выполнением тонких манипуляций вроде мытья посуды, уборки, открытия бутылки пива и т.п... когда ими удаленно управляет человек.

https://www.youtube.com/watch?v=TyOooJC_bLY

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

Похоже, доклад произвел большое впечатление на многих, потому что Билл Гейтс в своем недавнем MIT'шном обзоре технологий будущего, за которыми он следит, поставил robot dexterity на первое место: https://www.technologyreview.com/lists/technologies/2019/.

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

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

https://www.vicarious.com/2019/01/18/a-thought-is-a-program/
https://blog.openai.com/learning-concepts-with-energy-functions/

Недавно еще видел забавное видео, где робот складывает бумажные самолетики: https://www.facebook.com/watch/?v=1818684621541763.

Короче говоря, у меня сложилось впечатление, что Deep Reinforcement Learning начал весьма неплохо работать не только в игре в старкрафт, но и в случае роботов.

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

Предположим, вы решаете, в каком возрасте рожать ребенка.

Есть некий ген FOXO3, который может быть представлен одним из 2 вариантов. Один из этих вариантов достаточно сильно продлевает жизнь его обладателю: https://www.nature.com/articles/s41467-017-02183-y.

Технология редактирования геномов CRISPR-Cas9 (https://en.wikipedia.org/wiki/CRISPR) уже достаточно близка к продакшну, моя чуйка подсказывает, что лет через 10 она может быть более-менее доступна богачам, а через 20 - и широкому потребителю.

И вот, вы знаете, что ваш ребенок имеет обычную версию FOXO3, как и вы.

Вы можете подождать с его рождением еще лет 10, подредактировать ему FOXO3 и продлить ему жизнь, скажем, на 5 лет (да и вообще, чем позднее вы его родите, тем дальше успеет убежать научно-технический прогресс за это время).

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

Забавно вообще, что с каждым прожитым годом жизни вы потихоньку накапливаете груз мутаций (за 10 лет жизни отца после достижени им ~15 лет накапливается порядка 1 слабовредной мутации, делающей ожидаемое число потомков его ребенка на 1% меньше). Со временем эти слабовредные мутации тоже станет можно вычищать. Поэтому ребенок в ваши 25 будет здоровее вашего ребенка в 35, но оба они будут более кривые-косые, чем ваш ребенок "с химчисткой" в 50.

Как быть? Старться не думать обо всем этом? 🙂

Кстати, Эрик Лэндер, глава одного из ведущих НИИ в области биотеха Broad Institute, только что высказался за мораторий на генетическую модификацию эмбрионов до того, как будет выработаны общие правила безопасной работы с ними: https://www.nature.com/articles/d41586-019-00726-5
Пока пил кофе, осознал, что DeepMind со своим мультиагентным actor-learner обучением воспроизвел Сверхразум из старкрафта: https://deepmind.com/blog/impala-scalable-distributed-deeprl-dmlab-30/

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

Поэтому вместо этого лучше сделать много тел (actor'ов), которые бестолково обучаются и отсылают информацию одному сверхразуму (learner'у), а тот на основании их опыта выбирает оптимальную стратегию поведения для всего вида - и получается быстрее. А если для одного сверхразума информации слишком много, то делают несколько дополнительных узлов - cerebrate'ов. 😂

Впрочем, в DeepMind'е много команд, и разные команды пробуют разные подходы - а общие библиотечки компонентов разделяют между собой: https://deepmind.com/blog/trfl/.

Забавно, что OpenAI пробует и распреледенный Reinforcement Learning a la MMO (https://openai.com/blog/neural-mmo/), и, как его альтернативу - просто симулировать эволюцию: https://openai.com/blog/evolution-strategies/.

Это все что вы хотели знать о том, что делают геймдевы в кризисе среднего возраста.
Слышал на днях любопытный доклад Алексея Маклакова из University of East Anglia про эволюционное происхождение старения.

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

Есть популярная гипотеза "антагонистической плейотропии" (https://en.wikipedia.org/wiki/Antagonistic_pleiotropy_hypothesis), объясняющая, почему мы все-таки стареем:

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

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

Есть производная от гипотезы "антагонистической плейотропии" гипотеза "отжившей сомы" (https://en.wikipedia.org/wiki/Disposable_soma_theory_of_aging), делающая более сильное утверждение: молодой организм вынужден выбирать, тратить ему ресурсы на создание потомства, или на сохранение собственной функции. Утверждается, что старение вызвано тем, что часто выгоднее первое.

Однако гипотезу "отжившей сомы" в какой-то мере опровергает следующий красивый эксперимент.

Известно, что ограничение калорийности питания продлевает жизнь. В основе этого механизма лежит известный каскад так называемого инсулиноподобного фактора роста IGF-1. Этот фактор стимулирует стимулирует клетки "есть" глюкозу, производить белок и расти. Однако есть побочка: когда этот фактор связывается со своим рецептором DAF-2 на поверхности клеток и запускает рост, в клетках выключается система ответа на стресс и утилизации белкового мусора - и они стареют (см. картинку выше).

Есть червячок, нематода, которая в норме живет 30 дней. У нее тоже есть ген инсулинового рецептора DAF-2. Этот рецептор полезен в молодости, но вреден в старости. Если его поломать до наступления половозрелости, то нематода получится с нарушениями развития, зато долго живет, 60-70 дней.

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

Маклаков утверждает, что этот эксперимент, который в их лаборатории недавно удалось повторить (https://www.biorxiv.org/content/biorxiv/early/2018/08/31/405019.full.pdf), показывает, что возможно старение вызвано не столько необходимостью распределять энергию между сохранением собственной функции и воспроизводством, сколько гиперрегуляцией - ускоренный синтез белков в молодости дает нам краткосрочный буст, который впоследствии нас убивает.
В связи с тем, что в последние пару лет в машинное обучение очень успешно потащили идеи из настоящей математики вроде дифференциальной геометрии или теории динамических систем, я не без содрогания вспомнил классический советский учебник по функциональному анализу Колмогрова - Фомина, думая освежить в памяти матчасть на майских.

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

Я с удивлением узнал, что Фомин умер аж в 1975 году (https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BC%D0%B8%D0%BD,_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D1%8C%D0%B5%D0%B2%D0%B8%D1%87).

И автором он был далеко не таким унылым, как кажется после прочтения Колмогорова - Фомина.

Давным-давно я налетел на его офигенную брошюрку 1987 года "Системы счисления" - там, например, прекрасно объясняется идея троичного комьютера (https://plm.mccme.ru/ann/a40.htm).

А на днях наткнулся на другую его восхитительную книжечку "Математические проблемы в биологии" 1973 года. Просто взгляните на эту прелесть: https://www.library.biophys.msu.ru/FominBerk/main.htm

"Применение ЭВМ в биологических исследованиях", "Модели нейрона. Нейронные сети", "Проблемы искусственного интеллекта и распознавания образов", "Зрительная система и ее функции" - практически, биоинформатика, NIPS, CVPR и ICCV в 1973.

А вы говорите, "хайп" 😉
В Кембридже есть госпиталь Addenbrooke's, который ведет массу совместных биомедицинских разработок с местным биотехом и университетом. Именно там, например, нашли редкую форму Альцгеймера у недавно умершего Терри Пратчетта.

От Addenbrooke's в Wellcome Genome Campus (биотехнологический центр, где находятся Sanger Institute и EMBL-EBI) ведет велодорожка "DNA path", на которой нарисована хроматограмма гена BRCA2: https://vimeo.com/133631594.

Поломка этого гена очень часто ведет к раку груди: https://en.wikipedia.org/wiki/BRCA2. Например, у Анджелины Джоли поломан аналогичный ген BRCA1, что заставило ее принять решение о мастэктомии.

Сегодня коллега ехал по DNA path на работу на велосипеде, и у него сломалась спица.

Все-таки хорошо, подумал я, когда при движении по BRCA2 у вас ломается велосипед, а не ДНК-полимераза 😅 (https://en.wikipedia.org/wiki/DNA_polymerase).
Ода JWT

Математическая статистика - один из самых молодых разделов математики, который по большей части сформировался в 20-ом веке.

Большинство других разделов математики возникли и развивались в связке с физикой в 17-19 веках в основном стараниями французов, немцев, англичан и швейцарцев.

Матстат же создали в основном 2 школы: английская в первой половине 20-ого века (Гальтон, Пирсон, "Стьюдент", Фишер и другие классики - и мотивацией в основном служили практические задачи биологии) и американская, в основном из-за нужд военных во Вторую Мировую. Про самого видного представителя американской школы и идет речь.

Я недавно налетел на великолепную краткую биографию Джона Тьюки (John W. Tukey, "JWT", 1915-2000), и поразился тому, какая же это была глыба! Вы сталкиваетесь с его вкладом в науку каждый день, даже не осознавая, что это был он: https://www.stat.berkeley.edu/~brill/papers/life.pdf.

Кратко:

- переоткрыл Быстрое Преобразование Фурье (Fast Fourier Transform, FFT) в 1960-ые (по-видимому, "бабочка" FFT была известна еще Гауссу в 1830-1840-ые, но алгоритм был утерян за ненадобностью, а понадобился снова только с приходом ЭВМ)
- придумал понятие "бит" (единица информации)
- придумал exploratory data analysis
- придумал "ящик с усами" в статистике
- переоткрыл и развил jackknife в статистике
- развивал спектральный анализ временных рядов с Винером и Моргенштерном
- внес вклад в ANOVA
- популяризовал мем "Как поймать льва в пустыне?" и заставил научные журналы на полном серьезе принимать статьи на эту тему: https://lurkmore.to/%D0%9A%D0%B0%D0%BA_%D0%BF%D0%BE%D0%B9%D0%BC%D0%B0%D1%82%D1%8C_%D0%BB%D1%8C%D0%B2%D0%B0_%D0%B2_%D0%BF%D1%83%D1%81%D1%82%D1%8B%D0%BD%D0%B5
- с 20 до 30 лет придумал кучу всего интересного в топологии и теории множеств: лемму Тьюки-Тейхмюллера, ham sandwich theorem, соответствия Галуа-Тьюки, теорию аналитических идеалов Тьюки, эквивалентность Тьюки, редукцию Тьюки, упорядочение Тьюки, равномерные пространства...
- работал над фотоникой, физикой твердого тела (изучал транзисторы, топологию печатных плат), спутниками, микроволнами, софтом, теорией информации и кодирования
- состоял в сумасшедшем количестве всевозможнных комитетов
- был химиком по образованию; выйдя на пенсию, вернулся к истокам, в частности в 2000 состоял в комиссии Мерка по разработке TaqMan (это был такой популярный биоинженерный метод в 00-ые, названный по аналогии с игрой Пакман, когда Taq-полимераза едет по ДНК и откусывает флуоресцирующий химический агент там, где проехала)

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

"У нас вышла ничья"
- Альберт Таккер (учитель Джона Ф. Нэша и Марвина Мински, автор метода Куна-Таккера, дилеммы заключенного и т.д.) о курсе лекций, который он читал Т
ьюки-студенту

"Один из парней, чувак по имени Джон Т
ьюки, сказал: 'Ты можешь читать и при этом считать про себя, а я не могу. Зато спорим, что когда я говорю, я могу считать про себя, а ты - нет.' Так мы с Тьюки установили, что в головах разных людей происходят совершенно разные вещи, когда они делают одну и ту же простейшую вещь - считают про себя."
- Ричард Фейнман (один из величайших физиков вообще) - они постоянно тусили вместе, поражая всех вокруг своими остроумными забавами

"К концу 1945 я из тополога превратился в статистика"
- JWT о себе

"Научные интересы Т
ьюки имеют невероятную широту. Он одновременно занимается сверхзвуком, вычислительными машинами, теоретической статистикой и частными проблемами биометрии. Его статьи очень понятные, при этом он сочетает методы из самых разнообразных областей науки."
- Уильям Феллер, автор нашего учебника по теории вероятностей

"Статистика - как решение кроссвордов, только ты не знаешь, правилен ли твой ответ"
- JWT как-то подарил аспирантам на рождество книжку кроссвордов, где лист с ответами был выдран и заменен этой надписью
Business Development vs Product Development в AI for Health

С разницей в несколько дней случились 2 такие похожие и непохожие новости:

1) IBM только что свернул свою программу AI for Drug Discovery: https://blogs.sciencemag.org/pipeline/archives/2019/04/18/farewell-to-watson-for-drug-discovery?fbclid=IwAR2zfiszHfKYR1ahuRaijfAwzdM9Bz3Pdvi0hY2tVvesGl5arRSUvJXr25U

Комично при этом что IBM забыл сообщить об этом своим копирайтерам, которые продолжают "продавать" закрытый проект 😂 - похоже на историю с поглощением Travis CI, когда стратегический инвестор после поглощения "порезал" разработчиков, не сказав об этом их менеджерам.

2) BostonGene поднял Round A у NEC аж на $50 миллионов: https://www.finsmes.com/2019/04/bostongene-secures-50m-in-series-a-financing-from-nec.html

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

BostonGene во-многом подражал программе IBM Watson с их шумно распиаренным AI для онкологии. В частности, у IBM был продукт про алгоритм подбора лечения рака - их шумно начавшаяся коллаборация с M.D. Andersen тихо свернулась в 2017: https://blogs.sciencemag.org/pipeline/archives/2017/02/20/an-ibm-watson-collaboration-goes-under.

Кое-кто из бывших сотрудников BostonGene успел после этого поработать в IBM, и говорит, что IBM - это целиком про продажи и бизнес-девелопмент. Основная крутость компании вовсе не в продукте, а в отлаженных каналах продаж. Watson - это просто umbrella term для свалки разных API, написанных их программистами и машинистами. Таким образом, Thomas J. (Watson) как был продажником при жизни, так и продолжает продавать после смерти - во времена, когда software продают as a service, а services продают as a software.

Того же подхода придерживается и BostonGene. Как говорит его основатель Майкл Файнберг, "сделать продукт - это только 10% бизнеса". И вот, Файнберг поднял очень крупный раунд А у того же инветсора NEC, которому ранее продал свой основной бизнес - Неткрекер. Состояние продукта при этом по-прежнему вызывает у меня сомнения.

Итак, что же важнее, продукт или бизнес? Недавно я читал вот такую статью: https://www.kdnuggets.com/2019/01/your-ai-skills-worth-less-than-you-think.html.

В ней бывший ML-исследователь Гугла рассуждает: предположим, на дворе - 2014 год, и у нас есть 2 стартапа с 5 миллионами долларов раунда А каждый.

Первый нанял 7 крутых ML-исследователей (скажем, Лемпицкого и компанию) и 8 топовых инженеров, платит им по $10 тысяч в месяц, и они подпиливают VGGnet на Theano под медицинские цели, запуская их на инфраструктуре из Mesos'а в облаке OpenStack.

Второй нанял 30 студентов и выпускников по тыще долларов на нос пилить продукт (ну и, может, по парочке опытных лидов им в помощь). Зато к ним в добавок наняты 15 продажников и 5 юристов по 5 тысяч каждый, которым удается договориться о партнерстве с госпиталями, заполучить бесплатно несколько датасетов, и еще несколько купить за миллион баксов, а также начать протакскивать продукт через мясорубку всевозможных регуляций.

Проходит 3 года, на дворе - 2017. Даже кастомный VGGnet уступает почти стоковому Inception v3, придуманному стремительно ушедшей вперед мировой наукой. Theano сменилась на Keras и Tensorflow, так что теперь любой студент в два счета клепает новую модель. Видеокарты стали мощнее, Kubernetes задавил Mesos, а OpenStack уступил AWS.
Первый стартап спалил на зарплаты своих спецов $4 800 000. Второй истратил на зарплаты в основном продажников и юристов $3 900 000, еще миллион - на датасет. 2/3 его бывших студентов за это время прокачались, ушли на повышение и заменены свежими, но кто-то все-таки еще остался. Продукты вышли примерно одинаковые, потому что хорошие датасеты для обучения второго стартапа + стоковый Inception + большее количество рабочих рук и свежие головы изворотливых студентов помогли ему не проиграть. Но у первого есть продукт и больше ничего, а у второго - бизнес-контакты, датасеты, юридическая обвязка и первые коллаборации с врачами. В итоге, первый стартап не может поднять следующий раунд и закрывается, а второй источает запах реальных денег и закрывает раунд B.

Позавчера я также пообщался с женой моего российского знакомого-колумбийкой, работающей в Монреале в компании-производителе оборудования для МРТ директором по бизнес-девелопменту в Мексике (глобализация 😳). Та же история - она продала за 3 года их технику в 12 госпиталей, так что полторы тысячи врачей теперь на ней работают. Она на отличном счету, потому что канадцы совершенно не понимают латиноамериканского менталитета и ее шеф совершенно не умеет продавать мексиканцам, и без нее продаж в Латинской Америке бы не случилось.

Короче, у меня все больше складывается впечатление, что медтех - это гораздо больше про бизнес, чем про технологии. Впрочем, и на старуху бывает проруха, как показывают провалы IBM.
https://www.youtube.com/watch?v=W6yDEcLF4NI

Когда в прошлый раз я видел рекламу этой фирмы с год назад, мееркат в ней говорил с явным индийским акцентом. "Эти чуваки играют с огнем" - подумал я тогда.

Теперь меерката зовут Сергей, и акцент стал русским.

Все, что вы хотели знать о месте нашей необъятной в современном мире 🙁

UPDATE: не, вру, мееркаты всегда были русскими по сюжету. Они там целую Санта-Барбару про них наснимали.
https://www.youtube.com/watch?v=CSPbnvjQ4Ww

Геометр Анатолий Фоменко, также печально известный как историк, еще замечателен тем, что прекрасно рисует: https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BA%D0%BE,_%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0%B9_%D0%A2%D0%B8%D0%BC%D0%BE%D1%84%D0%B5%D0%B5%D0%B2%D0%B8%D1%87.

Я наткнулся на мультфильм "Перевал" 1988 года по повести Кира Булычева, который нарисовал (!) Фоменко, Александр Градский пел в нем песню на стихи Саши Черного, а роли озвучивали Василий Ливанов и Александр Кайдановский.

Стиль Фоменко очень самобытен, а от мультфильма в целом веет перестроечным новаторством. Хорошо ли, плохо ли - но ни на что не похоже.
Шальная мысль: нейронки vs топологические инварианты

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

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

Что такое алгебраическая топология в двух словах?

Пример: допустим у вас есть узел. Узел можно по-всякому вертеть в пространстве и деформировать, так что выглядеть он будет совершенно по-разному, но это все еще один и тот же узел: https://en.wikipedia.org/wiki/Trefoil_knot)

Узел слишком сложен для человеческого разума, ведь в наш "кошелек внимания" (https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two) помещаются примерно 7 объектов, а в узле их гораздо больше и вообще он непрерывный, а мы видим дискретное. Как тогда с ним работать?

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

Часто можно найти инварианты, являющиеся алгебраическими объектами - например, многочленами (https://en.wikipedia.org/wiki/Alexander_polynomial). Формально работать с алгебраическими объектами человеки умеют гораздо лучше, чем с геометрическими, поскольку они задействует лишь 3-4 из наших 7 регистров одновременно. Средние школьники вот вполне научаются умножать и делить многочлены.

Ну хорошо, тогда очевидная мысль: это у большинства людей 7 регистров. А бывают аутисты, которые могут посмотреть на город сверху и запомнить в точности расположение каждой машины. Или одним взглядом сосчитать спички, выпавшие из спичечного коробка (вспоминается "Человек Дождя").

А не может ли нейронка, которая тоже не ограничена 7 регистрами, "видеть" какие-то инварианты и объяснять их нам?

Нельзя ли натренировать на разных версиях одного и того же узла (или другого топологического объекта) что-то вроде автокодировщика, который бы находил инварианты? Например, можно представить себе автокодировщик, вектором латентного состояния которого был бы полином Александера, а узел бы сжимался в него и восстанавливался по нему. Реальные автокодировщики наверное найдут что-то другое, интересно было бы посмотреть, что.

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

Я нашел 2 статьи на эту тему, 2016 и 2018, первая делает что-то похожее через представление узлов в виде кос (которые, в свою очередь, записываются через группы перестановок), вторая же пытается работать с узлами как 3D-картинками и натравить на них GAN:

https://arxiv.org/pdf/1610.05744.pdf
https://www.stthomas.edu/media/collegeofartsandsciences/mathematics/pdf/WardCAMFINAL2018.pdf
Вчера я пропустил интересный доклад Морица Герштунга (https://www.ebi.ac.uk/about/people/moritz-gerstung) про то, как анализировать нейросетками изображениями гистологических срезов из the Canger Genome Atlas (TCGA, https://www.cancer.gov/about-nci/organization/ccg/research/structural-genomics/tcga/?redirect=true).

TCGA состоит из 20 тысяч фотографий гистологических срезов опухолей, каждый из которых разбили на несколько сот ячеек - тайлов (что-то вроде 20x20 или 30x30). Кроме того, про большинство срезов известно, рак это или нет, история пациента, его геном (ДНК) и транскриптомика (РНК) раковой ткани.

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

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

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

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

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

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

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

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

Еще забавно, что картинки у них в JPEG'е все с одним уровнем компрессии. Если дать картинку с другим уровнем компрессии, то нейронка тоже перестает на ней хорошо работать.

Интересно, это связано с тем, что сверточная нейронка сильно натаскивается на конкретный размер окна discrete cosine transform (DCT) в JPEG? Вроде бы архитекрута Inception как раз умна именно тем, что там единичный блок состоит из сверточных слоев разной величины, чтобы хорошо работать с разными масштабами - а все равно переобучилась. Возможно, кто-то из наших блестящих специалистов по компьютерному зрению сможет объяснить, в чем было дело? Есть идеи, @yozhikoff?