October 19th, 2016

2019

Машинное обучение: победы сегодня и ежедневно

Сегодняшнее машинное обучение напоминает мне интернет где-то так в 1998 году, когда появлялись первые русскоязычные блоги (web log -- дневники). Они были посвящены главным образом обсуждению новеньких восхититетльных вебсайтов (потом их назовут веб-проектами -- но тогда сленга по обзыванию чего ни попадя "проектами" ещё не было). По машинному обучению множества блогов ещё нет (хотя есть "недельные обзоры", типа https://www.getrevue.co/profile/wildml/issues/the-wild-week-in-ai-31-white-house-report-on-ai-differentiable-neural-computers-how-to-use-t-sne-33021). Потом все эти "блоги о вебе" как-то кончились, ибо появление новых веб-проектов превысило любые разумные границы для осмысленного мониторинга. Вот deep learning, машинное обучение и (пока ещё слабый) искусственный интеллект сейчас на грани такого увеличения числа проектов. Конечно, не так много людей учат нейронные сетки, как на рубеже столетий людей создавали веб-сайты, но уже в разы и разы больше, чем буквально год назад.

Из типичных историй последних дней:
-- распознавание разговорной речи с точностью как у человека, Achieving Human Parity in Conversational Speech Recognition, https://arxiv.org/abs/1610.05256 -- "We have measured the human error rate on NIST’s 2000 conversational telephone speech recognition task. We find that there is a great deal of variability between the Switchboard and CallHome subsets, with 5.9% and 11.3% error rates respectively. For the first time, we report automatic recognition performance on par with human performance on this task". Мы обсуждали прогресс в распознавании речи буквально месяц назад в дискуссии к http://ailev.livejournal.com/1296272.html, и buriy был очень, очень скептичен. А я не был скептичен. Вот тут подробности: http://blogs.microsoft.com/next/2016/10/18/historic-achievement-microsoft-researchers-reach-human-parity-conversational-speech-recognition/. Собственно, подробность проста: “Even five years ago, I wouldn’t have thought we could have achieved this. I just wouldn’t have thought it would be possible,” said Harry Shum, the executive vice president who heads the Microsoft Artificial Intelligence and Research group. И, конечно, для чего это всё: “This will make Cortana more powerful, making a truly intelligent assistant possible,” Shum said. Конечно, до полного понимания говоримого людьми компьютерам, как до Луны, тем не менее.
-- выход на сравнимость компьютера с музыкантами-исполнителями: Maximum entropy models for generation of expressive music, https://arxiv.org/abs/1610.03606. Это мой любимый François Pachet сотоварищи. In this paper, we show how Maximum Entropy (MaxEnt) models can be used to generate musical expression in order to mimic a human performance. As a training corpus, we had a professional pianist play about 150 melodies of jazz, pop, and latin jazz. ... Additionally, we set up a listening test whose results reveal that ... in some cases [а именно, в жанре swing], MaxEnt melodies are almost as popular as the human performed ones. C другой стороны, до реального исполнительского мастерства во всех жанрах компьютерам пока тоже до людей, как до Луны, но помним, что на Луне уже гуляло 12 человек, а на орбите вокруг Луны летало 24 человека. Это "до Луны" может оказаться неожиданно быстро и массово.
-- перевод с четырёх разных языков делает одна сетка, причём с качеством лучше, чем при попарном переводе: Fully Character-Level Neural Machine Translation without Explicit Segmentation https://arxiv.org/abs/1610.03017 -- то, что там перевод делается с быстрой(!) побуквенной моделью языка добавляет интриги. И это при том, что буквально пару недель назад все обсуждали выход предыдущих "научных достижений" (читай: требующих больших вычислительных ресурсов) в машинном переводе на сервера Гугля, https://slator.com/academia/researchers-report-significant-progress-in-real-time-machine-translation/, статья вышла 3 октября 2016: https://arxiv.org/abs/1610.00388 -- для некоторых пар языков (английский-испанский) ошибки трансляции по сравнению с предыдущей версией на серверах Гугля упали на 60%. Это всё работы с участием Kyunghyung Cho, и я уже выучил как писать его имя-фамилию, не подглядывая в оригинал. Но вот фирма SYSTRAN тоже начала участвовать в гонке: и там говорят, что на паре English-Korean в какой-то предметной области их перевод уже лучше человеческого (пункт 6.2, при этом оценку делала независимая фирма): https://arxiv.org/abs/1610.05540

Конечно, Святой Грааль тут (и меня он тоже крайне интересует) -- это связь символического и коннективистского, формального и интуитивного. Поэтому до сих пор активно обсуждается deep symbolic reinforcement learning, https://blog.acolyer.org/2016/10/12/towards-deep-symbolic-reinforcement-learning/, несмотря на то, что оригинальная статья вышла уже месяц как -- https://arxiv.org/abs/1609.05518. Из этой же серии работа с памятью -- differentiable neural computer https://deepmind.com/blog/differentiable-neural-computers/ (и помним про MemNN http://blog.themusio.com/2016/03/09/memory-neural-networks-memnn/, которая хоть и полугодовой давности, но тоже неплохие результаты показала, она в ту же точку бьёт).

Нового материала уже столько, что обзоры читаются как приключенческие романы. Вот, например, история свёрточных сетей -- от начала времён до наших дней, поданная как борьба за глубину: https://habrahabr.ru/company/mailru/blog/311706/. Сюда нужно добавить последний шаг (Xception), сделанный десяток дней назад, https://arxiv.org/abs/1610.02357. И ещё за последние полгода 2016 были альтернативы -- deep networks with stochastic depth http://arxiv.org/abs/1603.09382, FractalNet http://arxiv.org/abs/1605.07648 и dense network https://arxiv.org/abs/1608.06993). Вот тут это всё с примерами из TensorFlow: https://chatbotslife.com/resnets-highwaynets-and-densenets-oh-my-9bb15918ee32#.xnrthbqup

Из обзоров ещё можно выделить перечисление объяснительных (rule extraction) алгоритмов для глубоких нейронных сетей -- https://arxiv.org/abs/1610.05267, это работа из МИСиС (Московский институт стали и сплавов). Ширится, растёт движение!

Ещё мне очень нравится работа по сближению байесовских методов и глубокого обучения, которую ведёт Yarin Gal. Он таки опубликовал PhD диссертацию -- http://mlg.eng.cam.ac.uk/yarin/blog_2248.html (это не первый случай, когда сначала учёный становится знаменитым и известным, и только потом "защищается" уже не пойми от кого).

Разъяснение особенностей t-SNE преобразования для уменьшения многомерности -- это вообще хит последней недели: http://distill.pub/2016/misread-tsne/.
2019

Онтологии и бибинарная модель мышления

Интересно сравнить, что происходит с онтологиями (это я только что закончил рассказ про достижения коннективистов -- http://ailev.livejournal.com/1304964.html). Я бы сказал, что с онтологиями почти ничего и не происходит -- потихоньку наступает онтологическая осень, если не зима.

Вот, например, моделирование 4D в OWL --NdFluents: A Multi-dimensional Contexts Ontology, https://arxiv.org/abs/1609.07102. Утверждают, что могут теперь добавлять выражение в OWL не только измерения/dimension времени, но и любое другое (вау! Именно поэтому NdFluents, хотя обсуждают в статье 4dFluents). ISO 15926 (где тоже пытались добавить в OWL всякое разное для выражения 4D онтологии -- и это кривовато, но получилось) в этой статье даже не поминают, хотя весь список литературы там про 4D в онтологиях.

Или вот ещё забавное: Towards an Ontology-Driven Blockchain Design for Supply Chain Provenance https://arxiv.org/abs/1610.02922 -- там сделали онтологию отслеживания происхождения товара, а затем записали её на языке смарт-контрактов эфириума!

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

На этой неделе я несколько раз разъяснял про своё отношение к онтологиям в эпоху наступившей "вдруг" эпистемологии. Для меня онтологии -- это байесовские priors при начале обучения, начале эпистемологического вопрошания к миру.

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

Даже в форме embeddings (все эти Everything2vec) семантик это всё priors, они используются как инициализация в обучении, но в конечном итоге reasoning идёт не по предварительно выученному формализованному/схематизированному/сжатому онтологическому знанию, а по живой модели, учитывающей и другие онтологии, и нюансы контекста, в том числе динамику во времени:
-- коннекционистская линия тут по мотивам Nando de Freitas в http://ailev.livejournal.com/1240509.html
-- байесовская линия тут по мотивам E.T.Jaynes "Probability theory: the logic of science", http://bookzz.org/book/539703/d8b66c

Системы -- они в глазах смотрящего. Каждый viewpoint (метамодель, онтология) несовместим с другими, просто по определению. Потуги загнать всех а хоть и в тот же ISO 15926 -- это просто потуги, хотя любой локальный успех в этих потугах значим и сильно облегчает жизнь.

Объединить все эти (foundational, upper, middle, domain, ontology modules/microtheories) онтологии можно только деятельностно: только через то, что все эти view (определяемые вполне дисциплинарно, через viewpoints-онтологии как метамодели, как классификаторы) оказываются на один и тот же индивид в реальном мире. Он разный в разных онтологиях, но в реальности-то он один -- и можно договориться, сверяясь с происходящим в реальности. Для этих договорённостей мы переходим на естественный язык, плюс в парадигмальный формализм (ух! если это, конечно, формализм -- но по мере понимания это можно и формализмом считать) непрерывного (а не дискретного Аристотелевского) рассмотрения: байесовский, коннекционистский или любой другой, подходящий для обучения и вывода/reasoning.

Системный подход эпистемологичен, он про деятельное познание мира стейкхолдерами, но через признание viewpoints он даёт шанс и для онтологий. Деятельностный подход, который провозглашает опору на основанные на дисциплинах/теориях (даже если это не совсем теории, а наборы эвристик) практики -- он тоже даёт шанс для онтологий, это часть системного подхода.

Удержание акцента на деятельности в реальном мире удерживает от проваливания в чистый и бесплодный формализм, в классическую метафизику. В системном подходе всё про обучение, эпистемологию, развитие во времени. Это не про онтологию-метафизику с предвечными физическими объектами, из которых состоит мир и предвечными абстрактными объектами -- классификаторами этих физических объектов. Тем не менее, онтология-метафизика в системном подходе важны как установка priors, отправная точка, подарок цивилизации, воплощение её многотысячелетнего опыта, без онтологий и онтик нельзя -- ибо теряешь тяжким цивилизационным трудом полученные оценки вероятности положения дел в мире, теряешь эти самые priors. Если потерять эти priors, то после этого в одиночку пройти в обучении путь цивилизации не дано ни искусственному, ни естественному, ни сверхъестественному/сверхъискусственному интеллекту. Так, чтобы понять, что в природе происходит за тысячу лет, нужно реально следить за природой тысячу лет. В онтологии это знание отражено хоть как-то, без онтологии нужно этому знанию учиться тысячу лет от самой природы. Не хотелось бы попадать в такую ситуацию, хотелось бы унаследовать от цивилизации всё её знание, все текущие картины мира, все наличные онтологии.

Мышление живёт тем самым в виде культурного reasoning в рамках известных priors (мышление по схемам, "по рельсам" в мозгу -- взятым из культуры, из литературы, но когда-то бывшими контринтуитивными, http://ailev.livejournal.com/1013690.html) и всегда существующего дичкового "интуитивного" рассуждения/reasoning -- мимо всех priors разных "культурных дисциплин", в том числе мимо онтологий/priors для самих методов мышления, методов рассуждения (рационального и иррационального). Части мышления можно научить, добиться его автоматичности, эта часть мышления устроена онтологично. Это культурная часть, она растёт по мере развития цивилизации. А части мышления научить "объяснением-тренировкой" нельзя, она учится просто на предъявлении всего материала окружающей жизни -- и, конечно, плюс материала того окультуренного кусочка мышления, которое удалось создать. Культура плюс непонятный и не рефлексируемый, не берущийся интроспекцией дичок, известная и неизвестная части мышления -- мышление едино в этих двух своих частях.

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

А ещё у нас не птолемеевская модель человека, а вполне себе коперниковская. Мышление живёт промеж людей. Коммуникация идёт с максимальным сжатием информации, по возможности в схемах -- при этом коммуникация идёт даже внутри самого человека, мозг сам живёт "промеж людей", он сам себе "коперниковский": это ведь и есть феномен сознания (Attention Schema Theory: сознание это механизм коннекционистского внимания, использующий схему, упрощённое представление того, что происходит в нейросети мозга в целом -- http://ailev.livejournal.com/1193568.html). Разговор с собой -- это тоже разговор, он уже в каком-то смысле сжат, в локальных представлениях, символичен, буквы и слова разговора как сериализации распределённой коннекционистской модели несут на себе какое-то значение из тысяч и тысяч употреблений, в полном соответствии с distributed morphology и прочими распределёнными гипотезами (http://ailev.livejournal.com/1284038.html). Помним про заранее вычисленные embeddings -- хотя в мире людей такого нет, и у каждого буквы и слова и даже предложения и тексты имеют совсем свои значения, тем не менее какие-то общечеловеческие "бесконтекстные значения" вполне могут подразумеваться, их можно обсуждать как priors для последующего содержательного разговора о конкретных жизненных ситуациях, конкретных контекстах. И уж тем более важна формализация для сжатия информации и компактизации разговора с другими людьми по какой-то узкой проблеме, и предварительное обучение значениям слов (см., например, https://wiki.lesswrong.com/wiki/Inferential_distance -- предварительное обучение важно, и оно долго).

Эту ветку рассуждений (про пользу схематизации) я сегодня обсуждал в дискуссии к https://www.facebook.com/photo.php?fbid=10157559879340153&set=a.10150756245230153.722787.658410152. Но когда речь заходит о заранее неизвестной ситуации, "новизне", новом опыте, то формализмы и схемы aka онтологии не работают. Это обсуждалось сегодня в https://www.facebook.com/ailevenchuk/posts/10208334175166051. Для мышления нужно устанавливать дальние связи между наличной информацией о ситуации, а дальние связи берутся только через дополнительные уровни абстракции, часто несколько (http://ailev.livejournal.com/1274014.html).

Если обратиться к формализму для выражения этих "дальних абстракций" (дальних по предметам/дисциплинам/теории или дальним во времени разговора и/или мышления), то будет засада: важные для одних вопросов связи и абстракции оказываются абсолютно неважными для других вопросов. Поэтому:
а) IBM Watson для Jeopardy! (это 2011, http://ailev.livejournal.com/909342.html) исключительно полнотекстовыми материалами пользовался, ничего не кодировал в "граф знаний" -- любая обработка могла отсечь какую-то информацию (в том числе информацию по собственно тексту: в вопросах же часто была игра слов! Поэтому от оригинальных текстов отказываться было принципиально нельзя. Кодирование в соответствии с какой-то foundational и upper ontology могло запросто бы отсечь важную для какого-то вопроса информацию, поэтому ничего не кодировалось, а для полнотекстовой работы использовали суперкомпьютер, чтобы полнотекстовая работа происходила в приемлемое время).
б) все эти "каталоги" и "фолксономии" вымерли, ибо через пять лет после создания вся система рубрикации умирает -- отстаёт от текущих соображений по организации знания. Выживают не каталоги и рубрикаторы, выживает только полнотекстовый поиск. То, что казалось важными отношениями 5 лет назад, полностью теряет свою значимость, и на передний план выступают совсем другие отношения, запросы идут на совсем другую тему, и "рубрикация" и "классификация" прежних лет оказывается не помогающей что-то найти и что-то вспомнить, а наоборот -- не пускающей что-то найти из важного в текущей ситуации, предлагающей находить важное в предыдущих ситуациях. Жёсткая рубрикация-онтологизация помогает выигрывать всегда в прошлой войне, хотя этот выигрыш обычно и крайне эффективен по ресурсам. Искать же новое нужно всегда мимо рубрикаторов, мимо предметных онтологий. Если вы писали и рубрицировали текст, будучи погружённым в одну деятельность, в рамках одной онтологии, то запрос может прийти из совсем другой деятельности, другой онтологии -- и вы тут пропадёте, хотя вся необходимая для ответа на запрос информация в тексте будет. Но она пропадёт при сжатии ситуации или картинки, или текста, при формализации, при создании по ситации или картинке или тексту модели. Модель, схема, онтология -- это всегда неполнота, это всегда акцент на "важном" для какой-то деятельности и потеря важного для другой деятельности.

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

Это всё пока не слишком ясные даже для самого меня рассуждения, но они позволяют сформулировать важность символьных/логических и коннекционистских/байесовских представлений не только через объяснение различных вычислительных проблем с ними (типа "символьный формализм слишком переборный, с ним вывод плохо работает"), но и из каких-то содержательных соображений. И объяснить важность как онтологии, так и эпистемологии, а не шараханья от одного к другому и обратно. И объяснить между ними содержательную связь.

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

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

Вот такая вот бибинарная модель мышления (культурное-дичок, формальнодискретное-непрерывное -- и не нужно поддаваться искушению строить тут из них традиционную матрицу 2*2). Хотя правильно сразу оговориться, что никакой дваждыбинарности у мышления нет. Оно, конечно, полиполинарное. Просто про мышление мы ещё мало знаем, и предложенные мной различалки совсем необязательно будут бинарными оппозициями, арности типологии могут быть самыми разными, моё рассуждение само по себе не слишком формально не претендует на строгую научную теорию мышления.

Так, у Педро Домингоса кроме символистской, байесовской, коннективистской моделей есть ещё эволюционная модель и "по аналогии" (http://www.mann-ivanov-ferber.ru/books/verhovnyj-algoritm/ -- книжка доступна уже по-русски). Тоже отличная типология, и можно пробовать написать альтернативную версию устройства мышления по ней (скажем, разделив в моей версии байесовский и коннекционистский вариант и описав каждый из них более подробно -- у меня в тексте поста они слиты в "непрерывном" варианте логики в оппозиции к дискретному Аристотелевскому). Но я пока не буду писать альтернативных версий. Пусть пока будет бибинарная модель: забавно звучащее слово, заодно оно хорошо сбивает пафос.