?

Log in

No account? Create an account
Лабораторный журнал -- Day [entries|friends|calendar]
Anatoly Levenchuk

[ website | Лабораторный журнал ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Онтологическая инженерия в 2018 [04 Oct 2018|04:08pm]
Онтологическая инженерия -- это подход и средства, позволяющие описать успешную онтологию. Успешная онтология -- это которая будет затем использована для реализации успешных систем. Такое "словарное определение" я смастерил по образу и подобию определения системной инженерии (Systems Engineering (SE) is an interdisciplinary approach and means to enable the realization of successful systems. It focuses on holistically and concurrently understanding stakeholder needs; exploring opportunities; documenting requirements; and synthesizing, verifying, validating, and evolving solutions while considering the complete problem, from system concept exploration through system disposal. -- https://sebokwiki.org/wiki/Systems_Engineering_(glossary)). Но не системная инженерия ближе всего к онтологической инженерии, а инженерия требований и инженерия системной архитектуры. Инженерия требований выявляет, описывает/документирует и далее использует описание системы как чёрного ящика, инженерия системной архитектуры занимается придумыванием и документированием описания системы как белого ящика. Онтологическая инженерия делает это не с системой, а с более сложным случаем: с какой-то предметной областью, domain. В пределе этой предметной областью является весь мир, но чаще всего это и впрямь одна или несколько довольно узких предметных областей. Какая-то с этим связанная терминология была дана в "Онтике онтологизации" https://ailev.livejournal.com/1427265.html.

Для меня важно сейчас, что методология онтологической инженерии (обсуждение методов онтологической работы) по факту имеет дело с онтологическими описаниями "по форме", а вот содержание этих онтологиxеских описаний может быть крайне разнообразным. Как и в методологии инженерии требований, мы обсуждаем разные форматы документирования требований, разные варианты моделей требований. Как в методологии работы с системной архитектурой разбираемся с формами архитектурных описаний (помним тот же ISO42010). Так и в онтологической инженерии всё то же самое, но акценты другие: описываем не систему, а какой-то промежуточный уровень стека абстракций, описание предметной области (про "глубокий стек абстрактности мышлений" и онтологические уровни см. в https://ailev.livejournal.com/1442975.html, а про абстракции как чеклисты см. в https://ailev.livejournal.com/1446993.html).

Работа с абстракциями, работа с описанием предметных областей ни разу не является прерогативой "настоящих онтологов". Как и с инженерией требований и с системной архитектурой главным образом работают отнюдь не дипломированные инженеры по требованиям и инженеры-архитекторы, так и с онтологическими описаниями работают в абсолютно других местах. Говорит прозой всё население земного шара, но не все знают, что они говорят "прозой". Так и тут: смотрим на деятельность, а не на то, как она называется. Где искать сегодня state-of-the-art онтологической инженерии? Прошлый мой пост на эту тему был ровно два года назад, "онтологии и бибинарная модель мышления" -- https://ailev.livejournal.com/1305176.html.

1. То, что происходит с классическими онтологиями и даже с computational ontology, просто пока сбрасываем со счетов. Там пока ничего не происходит, никаких прорывов. Всё очень трудоёмко и ждёт enablers из других областей (про машинное обучение заговаривают всё чаще). Поэтому тут притормаживаем, интересуемся теми местами, где всё бежит бегом.

2. Стандарты и публичные документы. Стандарты -- это где есть проверка соответствия. Публичные документы -- это где нет проверки соответствия, но в последнее время появляются разные формы проверки на их знание (т.е. они кладутся в основу учебных процессов, ибо в них документируется дисциплина). Все BoK как раз сюда и относятся. Я уже давно говорил, что методологическая/онтологическая работа происходит в области стандартизации -- в 2004 по механизмам стандартизации -- http://ailev.livejournal.com/212819.html, выступление по стандартизации как "месте, где живёт методология" в 2009г. -- http://ailev.livejournal.com/664154.html, или в 2012 я сопоставляю институализацию и стандартизацию -- http://ailev.livejournal.com/982274.html, или обзорчик по стандартизации роботов в 2014 году -- http://ailev.livejournal.com/1103887.html. Прорывов тут нет, она идёт, как идёт. Новые предметные области появляются и по мере созревания документируются в стандартах и публичных документах разной степени формальности, а это и есть онтологическая инженерия.

3. Разработка корпоративного софта -- это текущий state-of-the-art "классической" онтологической работы. Вот некоторая линейка рассуждений:
а) вся разработка корпоративного софта это внесение и исправление многочисленных багов, при этом баги могут появляться и из-за изменений во внешней среде, и приходить от собственных разработчиков. Цикл выпуска новых версий, в которых баги исправляются, сейчас недопустимо длинный. Поэтому DevOps -- это наше всё, непрерывная интеграция и выпуск тут цель и средство. Изменения вносятся маленькими порциями (small batch size) и выпускаются в жизнь очень быстро.
б) микросервисы позволяют ещё уменьшить порции выпусков, а также изолировать распространение ошибок по системе (это же модули!). Микросервисы содержат собственные данные, и они нарезаются так, чтобы как-то соответствовать business capability (оргвозможностям, см. про их связь с практиками в "к онтологии организационного моделирования": https://ailev.livejournal.com/1446903.html. А сами микросервисы (включая моделирование данных в них) делаются с использованием DDD (domain-driven-development), где одно из основных понятий -- это bounded context, поиск модульности в организации. На выходе тем самым мы получаем распределённые данные.
в) дальше мы должны обеспечить методы работы с распределёнными данными (включая изменения в моделях данных), в которых время от замысла до реализации изменения должно стремиться к нулю. Можно обсуждать, как это связано с онтологической инженерией (всё-таки онтологии это больше про типы, но ведь работа с типами бессмысленна, если в какой-то момент мы не обращаемся к индивидам -- и недаром в "классике" индивиды и абстрактные объекты рассматриваются как имеющие общую презентацию, хранящиеся и обрабатывающиеся в одной "базе знаний"). Тем не менее, задача именно такая: найти изменение предметной области, документировать его, далее вывести это документированное изменение в "эксплуатацию". Обычный инженерный цикл. Этот цикл хорошо описан в книжке Edson Yanaga "Migrating to Microservices Databases. From Relational Monolith to Distributed Data" -- http://b-ok.xyz/book/3493751/b6ab98. Тем самым DDD+DevOps+microservices = современная "классическая" онтологическая инженерия, да ещё со смещением акцента с чисто "разработки" к "эксплуатации" и в какой-то мере даже "вывода из эксплуатации" -- то есть просматривается работа с полным жизненным циклом онтологического описания, а не просто "академическое упражнение в описании мира".

4. Работы по машинному обучению, абсолютно неклассическая онтологическая инженерия. Часть работ по этой тематике я указывал в "компьютерной поддержке полного спектра формальности мышления" -- https://ailev.livejournal.com/1438749.html. Конечно, этот "спектр формальности мышления" нужно ещё как-то соотносить с "глубоким стеком абстрактности мышления" из https://ailev.livejournal.com/1442975.html (где вообще я рассказываю об онтологических уровнях как уровнях абстрактности -- и помним, что уровни нейросети выучивают разные уровни абстракции в рамках обучения представлениям, representation learning, http://ailev.livejournal.com/1045081.html). Тут работы идут главным образом по связке "классических онтологий" в виде knowledge graph и нейросетей с attention в этом графе -- это основной поток работ, типа Learning beyond datasets: Knowledge Graph Augmented Neural Networks for Natural language Processing.

Важнейшей чертой "классических" онтологий была возможность логического вывода по ним, всякие пруверы/солверы рассматривались чуть ли не как главное достоинство "формализации концептуализации" -- вплоть до заявлений, что "по чему нельзя логически выводить, то не онтология", появления важнейших новаций в модульности онтологий типа "микротеорий" именно на базе критерия непротиворечивости в части логического вывода. Похоже, что сейчас в этой части будут прорывы, и эти прорывы идут из абсолютно практической задачи создания вопросно-ответной системы, способной ответить на вопросы, относящиеся к разным документам (сделав при этом несколько тактов логического вывода). Это будет происходить, похоже, на базе "соревновательной науки" -- опубликован соответствующий датасет и baseline для отслеживания SoTA -- HotpotQA: https://hotpotqa.github.io/.

Но практическая онтологическая инженерия идёт много дальше этой notebook data science (когда кто-то придумывает очередной алгоритм и очередную архитектуру для представления данных в нейросети или в knowledge graph). И идёт по той же самой линии, которая была заявлена в предыдущем пункте с "классикой" из DDD+DevOps+microservices. В machine learning ключевым словом тут является pipeline -- "Getting Better at Machine Learning" https://medium.com/@rchang/getting-better-at-machine-learning-16b4dd913a1f прямо указывает, что всякие "соревнования" и победы в алгоритмах и представлениях это не вся инженерия! Инженерное решение должно закрывать полный жизненный цикл: от постановки задачи до использования результатов, поддерживаться должен полный жизненный цикл данных и их моделей (которыми можно в том числе считать и выученные на базе этих данных нейронные сети -- новая форма представления вероятностных онтологий, а inference в нейронных сетях -- новая форма использования онтологий). Pipelines (вариант того же самого: plumbing) в машинном обучении, которое мы будем считать одним из видов неклассической онтологической инженерии (там ведь тоже идёт работа с данными и их моделями!), активно сейчас нарезается на практики и получает свои инструменты -- "AI Plumbing: mapping the landscape", https://medium.com/digital-catapult/ai-plumbing-mapping-the-landscape-d213e41842d прямо говорит, что в эпицентре там DataTech, и там нужно как-то организовать данные, поместить данные в базу данных. А это прямая отсылка к классическому моделированию данных, классической онтологической инженерии. Всё в этой онтологической инженерии переплетено и смешано на многих уровнях: дискретные и коннекционистские модели данных поддерживают друг друга -- и в обозримой перспективе будут сосуществовать вместе. И тут появляется уже DataOps (см.также "от DataOps к NoOps" -- https://ailev.livejournal.com/1367897.html).

Ещё один аспект -- это проблемы модульности коннекционистских онтологий ("модульность", https://ailev.livejournal.com/1294242.html), то есть отсутствие "таблеток знаний". Тут огромное количество работ, из самых знаменитых работ последнего времени можно указать, например, использование pretrained language models вроде ElMo https://arxiv.org/abs/1802.05365, ULMFit https://arxiv.org/abs/1801.06146, июньской работы по комбинированию transformers и unsupervised pre-training от OpenAI https://blog.openai.com/language-unsupervised/, и, конечно, BERT -- https://arxiv.org/abs/1810.04805. А ещё бесконечный поток по multitask learning, transfer learning и многим схожим до неразличимости направлениям -- это же тоже ровно оно для коннективистских онтологий, отражение всех этих идей по "микротеориям" в классике онтологии и reference data library в классике моделирования данных. Разделение труда, модульный синтез, все проблемы "моделирования в большом" ("онтологические модели -- это про проектирование/программирование/моделирование-в-большом", https://ailev.livejournal.com/748188.html, я писал это ещё в 2009).

5. Ещё одно направление работы в онтологической инженерии связано с тем, что в причинных моделях всё одно нужно иметь какую-то гипотезу по модели причинности, которую подтверждать или опровергать данными. И эта гипотеза, по идее, строится на онтологии -- её делает subject expert. Это ещё одно место, где можно ожидать интереса к онтологической инженерии ("Ложь, наглая ложь, и причинный вывод" -- https://ailev.livejournal.com/1435703.html). Мне также кажется, что попытка иметь "объяснимые модели" в нейронных сетях (гуглите "interpreting and understanding deep neural networks" -- этих работ огромное количество) это того же поля ягода, это попытка привязать когнитивистскую модель к модели какой-то theory theory "классической" онтологии, а для этого эту самую "классическую онтологию" нужно построить. Вот типичная такая работа: https://www.quantamagazine.org/been-kim-is-building-a-translator-for-artificial-intelligence-20190110/

Одно очевидно:
-- онтологическая инженерия давно уже не существует под привычными для онтологов именами. Как всегда, прогресс приходит "сбоку". Онтологической работой занимаются не онтологи, достижения "олдовых онтологов" используются по минимуму. Это похоже на то, что происходит с философией в целом: инженеры, менеджеры, программисты по-быстрому переизобретают давно известные философские идеи, потому как получить их в приемлемой форме от философов не представляется возможным (те ж начинают не с сути дела, а с Платона и Аристотеля -- и до сути дела уже не добраться). Потом философы приписывают достижения всех этих творцов себе, типа "они ж давно говорили". То, что от их говорения при этом толку не было, не упоминается. "После того -- значит вследствие того" в философии это умолчание, а зря. Вот в онтологии наступают похожие времена: онтологической инженерией занимаются люди, практикующие DDD и моделирование данных, а их заслуги припишут себе академические философы, задним числом.
-- переход от онтологии (и даже онтологики!) к онтологической инженерии сразу даёт 1. выход на понятие жизненного цикла и обращает внимание на прагму: как, когда, в какой форме, кем используется результат онтологической работы, какие инструменты это поддерживают. 2. упор на модульность и модульный синтез как основную решаемую проблему -- уход от ontology engineering-in-the-small (laptop data science) к ontology engineering-in-the-large, со всеми этими идеями разделения труда и непрерывной интеграции в части объединения результатов труда.
-- классическое и когнитивистское онтологическое моделирование/моделирование данных уже сосуществуют, взаимно питают и дополняют друг друга, они отнюдь не отрицают друг друга. Заниматься в онтологической инженерии в 2018 году нужно и тем, и другим.
post comment

Робототехника в 2018 [04 Oct 2018|10:22pm]
Сегодня почти закончилась конференция по умным роботам и системам 2018 года (2018 IEEE/RSJ International Conference on Intelligent Robots and Systems, 1-5 октября 2018 в Мадриде), под лозунгом Towards a Robotic Society (и не пытайтесь перевести, а затем не пытайтесь откомментировать этот лозунг) -- https://www.iros2018.org/.

Что докладывают? То, что вопрос потихоньку смещается из вопроса про возможность-невозможность той или иной работы для робота в вопрос о цене робота -- и вопрос решается "гиперадаптацией", как у людей. Если у робота три пальца, то он всё одно сможет собрать кубик рубика, ибо ну очень эти три пальца ловки, прямо как у человека-инвалида: https://www.youtube.com/watch?v=KVGn8tP9klI. Престидижитаторство развивается у роботов чрезвычайно быстро -- сравни эту трёхпалую руку с обзорчиком в "робот-престидижитатор или экспоненциальные технологии на марше" в https://ailev.livejournal.com/1438640.html.

Если у робота одна нога, он будет прыгать на этой одной ноге так, как прыгает человек-инвалид -- демонстрируя чудеса ловкости -- https://www.youtube.com/watch?v=ZFGxnF9SqDE. У Boston Dynamics появляются конкуренты, было неформальное соревнование этих роботов -- https://www.youtube.com/watch?v=tZnKwOv0FUA. Прыгает там пока только Spot mini, но это ж понятно, что через полгодика будут прыгать-все. Зато после падения поднимается быстрее всего вездеход Anymal, но стабильность держит самый тупой -- Laikago. Собачка через пару лет станет студенческим проектом, как десяток лет назад таким проектом был какой-нибудь сегвей.

И уж если робот антропоморфен, но двигается медленно и поднимает каждой рукой только два с полтиной килограмма, то и такой хиляк всё равно сможет обшить стену гипсоплитами (это, пожалуй, наиболее радующая одних людей и пугающая других людей демонстрация: https://www.youtube.com/watch?v=ARpd5J5gDMk).

Экспоненциальные технологии, каждый раз либо вдвое по результативности при той же цене, либо вдвое дешевле при той же результативности. Кстати, вот версия презентации Тони Себа по подрывным технологиям в транспорте -- июньская 2018 (https://youtu.be/KVm74yE0aUE). Прошла пара лет с 2016 года, когда я писал про его презентацию "чистый подрыв, под всей цивилизацией сразу" https://ailev.livejournal.com/1307264.html, и он не изменил своих цифр, разве что кое-где сделал более резкие заявления. К 2030 году жизнь поменяется драматически, перелом (когда S-образная кривая интеллектуальног электротранспорта резко рванёт вверх и тренд станет заметным -- речь пойдёт о занятии первых 5% рынка) в 2020-2021 годах, а затем за десять лет всё будет кубарем. И это даже безо всяких там роботов. А с роботами, похоже, всё движется к тому же -- замечать-то журналисты будут всё антропоморфное или похожее на животных, но подорвут всю промышленность к чёртовой матери роботы неантропоморфные. Их и роботами-то называть не будут, как те самые "робомобили" или "роботакси" всё чаще и чаще называют "беспилотными", и всё реже реже именуют в каком-то смысле слова "роботами" -- даже если у них появляется голосовой интерфейс (а у чего сейчас нет голосового интерфейса? Алиса и Гугль уже высовывают своё чуткое ухо из любого утюга, и они в этом неодиноки). Граница между электронными фоннеймановскими и коннективисткими мозгами и изменениями в физическом мире стремительно размывается: киберфизические системы сегодня -- экспоненциальная технология.

Моя программа курсов дистантного обучения настоящей робототехнике (не путать с "образовательной робототехникой") вот тут: https://ailev.livejournal.com/1434868.html. Конечно, эта программа не доживёт и до 2020 года, в этой области нетленку не создашь. Всё быстро.

UPDATE: 11 октября вышло обновление достижений -- паркур антропоморфного робота Atlas от Boston Dynamics, https://youtu.be/LikxFZZO2sk
1 comment|post comment

navigation
[ viewing | October 4th, 2018 ]
[ go | previous day|next day ]