April 14th, 2020

2019

Искусственная эволюция искусственных мозгов, и как эти идеи использовать в образовании

Я много лет с собой таскал в конце концов затёртую до дыр бумажку с описанием accretion model of theory formation от Douglas Lenat, описывающую learning by discovery (обучение через открытие/выявление) как квазиэволюцию некоторого набора эвристик (см. этот алгоритм 1983 года в конце поста https://ailev.livejournal.com/469995.html). Я был в восторге от элегантности алгоритма и тамошних успехов. Learning by discovery, играть с природой (абстрактной или физической, это неважно) -- вот же ключ к интеллекту! И Eurisco, которая реально была крутой программой -- это ж было ну очень круто! После этого Ленат сказал, что он пошёл кодировать общечеловеческое знание и основал проект CYC (https://www.cyc.com/). И там он накодировал прямо вот руками (руками сотен людей) один из самых любопытных knowledge graphs, которые сегодня существуют в мире. А игры с эволюцией закончил. Программа линии Eurisco не получила развития, а всё внимание было сначала на "экспертные системы" (где никакой эволюции, а опять же всё руками), а потом была зима AI и никакого внимания вообще ни к чему не было, хотя CYC потихонечку рос, хотя и не умнел: хвастаться было нечем.

Впрочем, в 2009 году в LessWrong появилась инициатива реализовать Eurisco на новых технологиях, прошло ведь 30 лет! Вот: https://www.lesswrong.com/posts/t47TeAbBYxYgqDGQT/let-s-reimplement-eurisko -- и первый же там коммент от Юдковского: "вы не должны этого делать, это ведь будет не Friendly AI, а самый обычный AI. Человечество опасносте!". Побузили, и так ничего не сделали.

В 2011 году на GPU догадались исполнить алгоритм обучения нейронной сетки 1987 года, и в 2012 году нейросеточники выиграли соревнование ImageNet. Eurisco и похожие алгоритмы никто на GPU в те годы не реализовывал: ясно ведь сказали, что не хватает общечеловеческих знаний, и все ушли на фронт их кодировать в разных "онтологиях" и knowledge graphs. Разгон графовых баз данных на GPU появится позднее (https://ailev.livejournal.com/1345004.html). А нейросетки вроде как этим общечеловеческим знаниям сами учились, их главное достоинство и было -- не нужно людям гадать о фичах. А эволюция в те поры не слишком развивалась в направлении обработки изображений и работы с естественным языком, результаты были не так наглядны, так что эволюционщики временно ушли в тень.

А потом вдруг оказалось, что эволюционные алгоритмы хороши для создания самих нейронных сеток -- это не такой большой объём данных, хотя и огромный объем вычислений. И тут начала впахивать группа Quoc Viet Le из Google Research. Сам Quoc вышел из сельских районов Вьетнама, где не было электричества в доме, а ещё он не боится AI (https://tuoitrenews.vn/news/features/20190215/meet-le-viet-quoc-a-vietnamese-talent-at-google/48939.html, https://www.technologyreview.com/innovator/quoc-le/): "I believe AI and deep learning aren’t so dangerous as are perceived in movies. They are actually tools for programming to experts. In the past, programming was done by complicated laws, but now it’s done with handling input and output. Look at it from this perspective: AI and deep learning are really dangerous when humans use them for dangerous purposes. The situation is no different from that created by inventions of human beings such as fire and electricity". И он занялся эволюцией нейронных сеток.

Сначала сетки пытались найти, эволюционируя некоторые наборы слоёв нейронной сети -- и таки нашли: покрутили архитектуру сетки Transformet и ещё в начале прошлого года получили Transformer-EL (The Evolved Transformer), https://arxiv.org/abs/1901.11117. Эта придуманная уже компьютером модификация Transformer оказалась лучше оригинала, и существенно. Но это была эволюция на достаточно высоком системном уровне: известно было, из каких блоков строится нейронная сетка, и нужно было просто создать сетку получше. Кирпичи даны, из них нужно сделать кладку попрочнее.

А месяц назад они решили попробовать: можно ли придумать кирпичи, которые дали бы на выходе кладку? То есть можно ли взять какие-то математические операции и попробовать эволюционировать с нуля нейросетку, которая могла бы обучаться? Чтобы компьютер придумал всё вот это нейросетевое? Придумал backpropagation? Попытка удалась, нейросетку компьютер придумал -- достижение, вполне сравнимое с достижениями эпохи accretion model of theory formation Лената. Эстафета подхвачена, вот AutoML-Zero: https://arxiv.org/abs/2003.03384, https://arxiv.org/abs/2003.03384, и алгоритм изобрёл и backpropagation, и dropout и многое другое. Это IMHO полностью аналогично тому, что Ленат своим алгоритмам поручал изобрести интересную математику -- и какие-то начальные теоремы там были получены.

А вот на прошлой неделе команда Quoс Viet Le решила изобрести из простых операторов не сразу сетки, а строительные блоки для них. Чудо-кирпичи, которые лучше предыдущих вариантов, и из которых потом собрать уже известные кладки. Вот результат: https://arxiv.org/abs/2004.02967. In this work, we jointly search for normalization and activation layers as a unified computation graph consisting of low-level primitives. Our layer search method leads to the discovery of EvoNorms, a family of layers with novel design patterns, achieving clear gains across image classification, instance segmentation and GANs. Our results suggest a promising usage of AutoML to discover universal modules using layer search, in contrast to the predominant practice of specializing networks using architecture search.

Вот оно, машинное творчество. Или эволюцию нельзя назвать творчеством? Если нет Творца, который создал клопа, кошку и человека, то это не творчество? Если в компьютере прошла эволюция и получился совсем-совсем простой искусственный мозг -- это не машинное творчество? А, собственно, что изменится, если назовём это не творчеством, а чем-то другим?! "Что значит имя? Роза пахнет розой, Хоть розой назови ее, хоть нет. Ромео под любым названьем был бы Тем верхом совершенств, какой он есть" -- назовите это как хотите, но эволюция в компьютерах сегодня становится по-настоящему интересной. Я считаю, что дело Eurisco продолжено: и алгоритмы похожи, и исполняются они на современной аппаратуре (современных GPU).

Но я бы всё равно поигрался с идеями самой Eurisco: там эволюция касалась и эвристик для целевой предметной области, и самих эвристик для эвристик (эвристик алгоритма эволюции). Хотя что это я говорю про "бы"? Это вполне делают в Uber, совсем недавно у них вышел алгоритм Enhanced POET, https://arxiv.org/abs/2003.08536 -- там то же самое learning by discovery, но под более модными сегодня именами (а именно, речь идёт об open-ended Reinforcement Learning, при котором последовательность проблем, с которыми справляется алгоритм, эволюционно генерируется самим алгоритмом -- automatic curriculum learning/building, то самое learning by discovery или self-supevising learning. И этим занимаются сегодня множество групп, вот небольшой свежий обзор: Automatic Curriculum Learning For Deep RL: A Short Survey, https://arxiv.org/abs/2003.04664). Почему нужно выделить Enhanced POET? А потому что этот алгоритм порождает новые проблемы в том же стиле, что accretion model of theory formation -- всё сложней, сложней, сложней, сложней, в том числе с выходом в те проблемы, которые человеку и в голову не придут и получение для них решающих эти проблемы алгоритмов, которые тоже человеку в голову не придут. И open-endedness гарантирует, что это не закончится, эти алгоритмы будут круче и круче, универсальней и универсальней, мощней и мощней.

Sam Lightstone [IBM fellow] сказал: "Artificial intelligence technology won't replace humans, but humans that use artificial intelligence will be replacing humans that don't" (https://searchsoftwarequality.techtarget.com/podcast/Tanmay-Bakshi-talks-programming-with-Julia-and-Swift). Я использую искусственный интеллект ещё одним странным образом: я считаю, что тамошние идеи нужно использовать как неплохой старт для размышлений по обучению людей. Ибо это идеи по обучению, грех не воспользоваться.

Я бы выделил тут три практики обучения (ну, или "научения" -- по-русски "научиться ходить, писать, плавать" ведь всё равно, учитель тебя учил, или сам учился), плавно переходящие одна в другую:
-- естественная эволюция, тут делать нечего. Интеллект у людей врождённый, priors уже намертво зашиты в мозг. Тут главное -- не навредить этому вычислителю, то есть хорошо кушать, крепко спать, укреплять иммунитет. А ещё нужно заниматься физкультурой, иметь body control (ага, embodied intelligence и extended mind thesis со всеми их изводами, гуглите. Мышление не внутри мозга, это нужно всегда помнить -- и не всегда learning by discovery делается человеком только умственно. Даже разговор -- это мышечная работа! Стучать по клавиатуре -- мышечная работа! Плюс если у вас проблемы с суставами, у вас сосредоточение будет ноль -- вы же этого не хотите?). И пейте кофе, это тоже помогает мозгам (хотя некоторые и разные вещества кушают, но там край карты изведанного, "там драконы" и дальше биохакерство обсуждать не будем).
-- постановка state-of-the-art интеллекта, "хорошо образованный интеллект": обучение с учителем трансдисциплинам, на разработанном нами учебном плане/curriculum. Это мы учим priors, которые ускоряют мышление в десятки тысяч раз (идея описана в "Наш способ ускорить разбирательство с непонятками в жизни: дать людям цивилизационные priors", https://ailev.livejournal.com/1510630.html). И тут же обучение в том числе деятельностному common sense, выдача некоторого цивилизационного кругозора, "как делаются дела" -- это что-то типа программы того же CYC. Как учим? Адаптивное обучение, конечно, учебный план генерируется "на лету". Собственно, это уже делается для школьной программы, называется "адаптивное обучение", вот один из лидеров: https://www.knewton.com/. Но у нас абсолютно другая учебная программа -- мы по-другому определяем цивилизационные priors, нежели школьные учителя. Мы усиливаем интеллект, готовим человека к тому, что он сможет быстрее других "учиться открытиями", выполнять learning by discovery во взрослом проектном мире. Мы сейчас тут, реализуем эту программу.
-- и вот тут наши выпускники продолжают учиться, но в режиме self-supervising learning, learning by discovery. Они переходя к творчеству, бесконечному развитию. Open-endedness развития человечества тут, и наши выпускники принимают в этом непосредственное участие. Человек со всеми state-of-the-art цивилизационными priors и его экзокортекс придумывают себе проблемы и придумывают способы их решения (learning by discovery и open-endedness), принимая участие в глобальной эволюции, поднимая планку достижений человеческой цивилизации. Научаются бороться с коронавирусами, идиотизмом чиновников, и т.д. При этом, конечно, наши выпускники работают с искусственными интеллектами совместно, со всеми этими нейросетевыми, символическими, эволюционными, вероятностными и т.д. алгоритмами. И работают в learning organizations, и даже трансформируют свои организации в такие learning organizations, мы же их как раз этому учим! Peter Senge (https://mitsloan.mit.edu/faculty/directory/peter-m-senge) тоже ведь имел ввиду в своих книжках под обучающимися организациями не обучаемые учителями организации, а те самые learning by discovery организации, self-supervising learning организации.

Так что мы сознательно готовим наших выпускников к бесконечному самостоятельному развитию в кубарем эволюционирующем современном мире, просто даём некоторый волшебный пендель в виде мощных priors-2020 и common sense-2020, учим трансдисциплинам и даём ролевой/деятельностный кругозор (https://ailev.livejournal.com/1512294.html). Это я буду рассказывать на очередном курсе "образование для образованных", 16 мая 2020.
При этом у меня на занятиях всё больше и больше появляется людей, которые уже работают с искусственным интеллектом, которые уже на цивилизационном фронтире. И они сходу понимают, чем это мы в ШСМ занимаемся, мы с ними сразу говорим на одном языке. Они ультрасовременны, но и мы не хуже.

Кого как, а меня всё происходящее вдохновляет.