Доклад А.Левенчука "Инженерия систем с плохой модульностью и гранулярностью: предприятия, искусственные нейросети, психика" на 112 заседании Русского отделения INCOSE, 23 марта 2016г.
1. Инженерия систем с плохой
модульностью и гранулярностью:
предприятия, искусственные
нейросети, психика
Анатолий Левенчук
23 марта 2016г.
2. Предыстория
• Системный менеджмент / инженерия предприятия
(осень 2015 –зима 2016):
https://www.youtube.com/channel/UCJ0Uq_WB7GLm
Y-NTz2oFoUQ
• Инженерия систем машинного обучения (2 февраля
2016): http://www.slideshare.net/ailev/alevenchuk-
machine-learning-engineering
• Инженерия психики и киберпсихики (28 февраля
2016): http://www.slideshare.net/ailev/ss-58654585
• Декомпозиция системы (2 марта 2015):
http://www.slideshare.net/ailev/ss-59080739
2
3. Логическая (функциональная, компонентная) и физическая
(модульная) архитектуры, компоновка.
На основе
рис.3
в IEC 81346-1
-Модули
=Компоненты
+Места
3
Время изготовления: из чего
собирать, какие интерфейсы,
что взаимозаменяемо и где
брать или как изготавливать.
Время работы: какие функции,
какие связи элементов, теории и
механизмы работы, расчёты
режимов.
Где находится в
физическом мире
(пространстве-
времени).
Троица описаний – это
минимум! Их много
больше, «многерица»,
Функциональная
и логическая
декомпозиция
Модульный
синтез
Компоновка
5. Совмещение логической и физической архитектур по версии ISO 81346-1,
Figure 7 -- должна быть хорошая гранулярность и модульность
5
«Логическая архитектура»
(функциональная
декомпозиция, структура
компонент) итеративно
совмещается с «физической
архитектурой» (продуктная
декомпозиция, структура
модулей)
Идеал: множество
функций назначается на
отдельный модуль
(многофункциональные
модули).
6. Гранулярность
• Гранулярность в функциональных представлениях
практически не обсуждается: «достаточная для
моделирования», «функции должны быть
независимы» – активного обсуждения нет.
• Иногда (редко) обсуждается как комплементарное
модульности рассмотрение – какие объекты языка
адресуются при обращении программы к самой
себе (что находится в AST, уровень детальней
модуля)
• Гранулярность пространственных представлений
тоже не обсуждается («места») – «достаточно для
поиска».
6
7. Критерий разбиения: зависит
от обеспечивающей системы!
• Управление конфигурацией: между менеджментом и инженерией (нарезка
на объекты инженерная, а перемещение готовых объектов – менеджерская
задача)
• Именуются configuration items – то, что будет иметь какую-то логистику:
• Результат отдельной операции (например, отверстие)
• перемещаться между разными моделерами в явном виде в компонентах,
перемещаться по рабочим местам людей и складам, то у чего может быть flow в
обеспечивающей системе
• Инженерных элементов может быть в разы и разы больше – но если они
не выходят за рамки работы одного инженера и у них нет собственной
независимой логистики (например, не участвуют в сборке – фичи какой-то
детали), им имена не даются.
•Так что весь вопрос – в последующей
сборке (интеграции).
7
8. Виды сборки
• Из частей (декомпозиция, аппаратные
платформы)
• Виртуализация (информационные платформы)
• Аппаратура переходит в программы
(микропрограммы, команды)
• виртуальные машины
• Высокоуровневые языки
• Языки описания нейросетей и библиотеки к ним
• Программы нейросетей (универсальные
вычислители!)
• Выученные программы на программах нейросетей
8
9. Методы оптимизации архитектуры
(хорошей модульности)
• Этому учат системных инженеров-архитекторов – но
не предписывая один метод на всех! Обычно знают
один, в крайнем случае два, очень редко три. Часто
вообще не используют в проектах, а только «знают».
• М.Левин, «Технология поддержки решений для
модульных систем»
(http://www.mslevin.iitp.ru/Levin-bk-Nov2013-
071.pdf). В этой книжке также есть краткое
перечисление пары десятков методов модульного
синтеза (включая ТРИЗ).
• ТРИЗ +
• DSM – это типовой, стандартный метод
9
10. Малая связность: ключ к развитию и
совершенствованию
• Модульность: каждая связь имеет цену. Не было
бы цены, не было бы модулей
• http://arxiv.org/abs/1207.2743
• Меньше связность – круче улучшения!
• http://www.pnas.org/content/108/22/9008.full
10
Падение стоимости при
улучшении отдельных модулей
(n), при разном числе связей
каждого из них (d)
Чтобы изменения
улучшали дело, нужно
меньше связей!
11. Пример использования DSM
11
"Design Structure Matrix Methods and Applications“
Steven D. Eppinger and Tyson R. Browning, 2012 Massachusetts Institute of Technology
12. INCOSE VISION 2025
12
Проблемы с модульностью
на высоких уровнях (где
появляются сети, люди –
непонятная связность):
переход от сборки-наладки
к «эволюции»,
«обучению»,
«системообразованию»
13. Проблемные системы: обучение
• В основе всех них коннекционизм/нейросети – distributed
representation
• Отличие коннекционизма от обычной модульности: требуется
обучение (зависимость от данных обучения и учебной
последовательности)
Примеры коннекционистских систем:
• Предприятия (на двух уровнях: команда+человек)
• Системы машинного обучения (интеллект-ёмкие системы)
• Психика
Не только нейросети: другие типы обучения (эволюция, байесовская
статистика, символические программы, похожесть).
13
14. Предпринятие
• Гранулярность – методы, разбиваемые на практики
• Модульность – подразделения (и сервисы в них,
собираемые в процессы)
• Проблемы в знаниевых областях (нет чётких
интерфейсов)
• Проблемы в обеспечении работы коллектива людей:
• Командообразование (обеспечение сотрудничества)
• Семантическая интеграция работы в рамках разных школ
• Частичное решение: формализация предметной
области и информационные технологии:
• структурированные данные, микросервисы их обработки.
• Проблемы сохраняются в части семантической интеграции
данных информационных систем: разница онтологий, ошибки
восприятия людьми.
14
15. Проблемы модульности в
машинном обучении
Le Bottou http://leon.bottou.org/slides/2challenges/2challenges.pdf
• Models as modules: problematic due to weak contracts
(models behave differently on different input data)
• Learning algorithms as modules: problematic due to output
depends on the training data which itself depends on every
other module
Входные данные «не проверишь» при подаче модулю-
модели, у него нет «спецификации»
Нейросеть-алгоритм не специфицируешь, ибо без
обучающих данных (и последовательности обучения –
curriculum learning) это ещё не модель.
15
16. Киберпсихические и киберпсихофизические системы
(cyberpsychic and cyber prhychicphysical systems)
• По мотивам киберфизических систем
(http://www.nist.gov/cps/index.cfm)
• Включает психику с персональными кибер-компонентами (в
персональном экзокортексе) и интерпсихические программы и сети
(например, коллаборативный софт – от простейших issue trackers до
виртуальных коллективных помощников нейронета).
• Киберпсихические системы по определению (и подобию
киберфизических систем) включают сети и являются системами
систем (в силу самопринадлежности отдельных психик им самим).
• С учётом выхода в физический мир (тела, экзотела) системы будут
киберпсихофизическими. Компонента cyber будет
ведущая как для психической, так и для физической частей.
16
А если decision (решение) принимается не
чисто кибернетически, а и психикой тоже?
17. Принципиальная схема операционной платформы
17
Воля
Экзотело
Бессознате
льное Сознание
ЭкзокортексТело
Физический мир
Психика
Вхождение в киберпсихические/киберпсихофизические системы систем
Психический мир групп и
сообществ (интерсубъектность)
18. Платформы психики: как в
программной инженерии
• Интерсубъектность (использующая система) – если
речь идёт о человеке, то до включения в
человечество есть множество уровней (принцип
почтальона). Опосредованность включения
машинными системами (коллективная/групповая
киберпсихика).
• Части личности (гомункулюсы) – прикладная
платформа
• Психика – операционная платформа
• Субстрат (нейросети, модули тела, экзотела,
экзокортекса) – физиологическая/техническая
платформа
18
19. CNN Architecture: это ещё не модель, ибо а) не
тренирована б) не определены гиперпараметры
19
1998
2012
9/2014
2/2015
12/2015
9/2014
http://josephpcohen.com/w/visualizing-cnn-architectures-side-by-side-with-mxnet/
LeNet 28*28
LeNet 28*28
VGG 224x224
GoogLeNet 224x224
Inception V3 299x299
Inception BN 224x224
20. Intellect-Stack
20
Application (domain) Platform
Cognitive Architecture Platform
Learning Algorithm Platform
Computational library
General Computer
Language
CPU
GPU/FPGA/Physical
computation Drivers
GPU/FPGA/Physical
computation Accelerator
Neurocompiler
Neuromorphic driver
Neuromorphic chip
Мало обучения внизу,
много вверху
21. Жизненные циклы обучающихся систем
21
Инженерия психики Инженерия машинного
обучения
Инженерия
предприятия
Системная инженерия
Постановка задачи на
модернизацию (всегда
brownfield)
Замысел и требования Стратегирование Замысел и требования
Намеревание Архитектура Архитектура Архитектура и
проектирование
(выращивание
субстрата)
программирование
ансамбля моделей
Постановка практик:
набор персонала,
закупка технологий
Изготовление и
интеграция/сборка
Дообучение (ибо
всегда brownfield)
Обучение (training), Постановка практик в
части обучения работе
наладка
Автоматизация навыка Передача обучения,
дистиллирование,
ансамблирование (но
ярко выраженной
сборки нет, плохая
модульность)
Merge/aquisition на
уровне предприятий
(но нет «сборки»
отдельных практик,
плохая модульность)
Модернизация
заменой модулей
Аттестация, экзамены,
освидетельствование
Проверка и приёмка Оценка, аттестация Проверка и приёмка
Жизнь Вывод (inference) Работа Эксплуатация
22. Пути улучшения модульности
• Лидер – машинное обучение, глубокие нейросети (быстрый цикл
исследований)
• Перенос обучения – transfer learning
• Обучать не с нуля, а «доучивать». Модули становятся процедурами обучения.
• Мечта о one shot learning (модуль – образец данных для обучения)
• Переход от одной модели к их ансамблю
• Каждая модель унаследует слабый контракт. Ход: надёжная система из
ненадёжных элементов.
• Дистиллирование (distilling knowledge) (http://arxiv.org/abs/1503.02531):
компилирование ансамбля в одну модель – сборка компиляцией,
«аспектное программирование». [личинка и бабочка – две разные
формы для начального и конечного тренинга сети]
• По сути – это варианты аспект-ориентированного программирования
(отдельное выражение crosscutting concerns)
• Трудности с аспект-ориентированностью
(https://developers.slashdot.org/story/05/04/24/0343224/aspect-oriented-
programming-considered-harmful):
• Абсолютно непонятно, как отлаживать: не видно, как места описаний связаны с
работающим кодом.
• Неструктурированно, как с goto (даже хуже: comefrom – обратная к goto
операция!). 22
23. AutoML (http://www.automl.org/)
Оптимизация структуры сети в зависимости от
наличных данных -- Programming by Optimization
(http://www.prog-by-opt.net/)
• Generative design/architecturing of networks
• Bayesian convergence
• Neuroevolution
• Dynamic neural description languages (e.g. Chainer)
23
Automatization of machine learning,
CAMLE (computer-aided machine
learning engineering) is the main trend
of today and tomorrow!
24. Learning to think
(http://arxiv.org/abs/1511.09249)
• Самопостроение через обучение: RNN-based Artificial
Intelligences (RNNAIs), которые «учатся думать»
• Проблема обнаружена давно:
• D. H. Ballard. Modular learning in neural networks. In Proc. AAAI,
pages 279–284, 1987.
• K. Samejima, K. Doya, and M. Kawato. Inter-module credit
assignment in modular reinforcement learning. Neural Networks,
16(7):985–994, 2003.
• «we can implement M as a self-modularizing, computation
cost-minimizing, winner-take-all RNN»
• Модули в составе когнитивных архитектур (encoder-
decoder, игра друг с другом в reinforcement learning,
adversarial networks, M и С в learning to think)
24
25. Модульность через
символическое представление
Почему нельзя «изготовить учебник» и затем
«прочесть учебник»?
• «Мысль изречённая есть ложь»
• Онтологическая интеграция данных крайне
проблематична – онтологии несовместимы
принципиально
• Проблема связывания символических переменных
не решена
• Alan Key: делаются очень сложные модули с плохой
модульностью внутри (как в биологии), а связь
между модулями только через передачу значащих
сообщений, а не через непосредственное
взаимодействие [extremely late binding]
25
26. Итого:
• Мало известно что делать с модульностью в
коннекционистской парадигме: модульность голограммы
проблематична – таблетки знаний нет не только для
людей, но и для машин, и для предприятий.
• Инженерия стремительно выходит к необходимости
работать с системами с коннекционистскими частями – в
людях и роботах (киберпсихофизические системы)
• Акцент со сборки-наладки переходит к процедурам
обучения-дообучения (системы а) делают, б) учат).
• Наиболее активные исследования модуляризации
коннекционистских систем идут в deep learning
• Известная проблема программирования (late vs early
binding) будет и тут – сборка системы «по ходу дела», или
предварительная. Как всегда, решения будут найдены, но
попозже.
26
В христианстве есть довольно сложное понятие троицы: бог представляется одновременно и единым, и существующим в трёх ипостасях (отца, сына и святого духа). Проблема в том, что думать о боге нужно одновременно и о как едином, и как об отдельных ипостасях.
То же самое есть и во многих других религиях, хотя там необязательно троица. Так, в даосизме единое (дао) одновременно представляется как двоица (противоположности инь и янь). Впрочем, некоторые и тут видят троицу.
“Он принял свой аспект и поднял атрибут” ("He has taken on his Aspect and raised up an Attribute” — ”Бог/князь/Lord света”, Роджер Желязны — это уже фантазийные перепевы индуизма и буддизма). Все религии как-то учитывают возможность различных обликов/аспектов/ипостасей для какой-то божественной сущности — и тут нужно добавить, что религиозность и божественность тут не при чём. Но про систему думать об одном как о разном и как об одном и том же вам потребуется.
Трудность мышления в том, что нужно о какой-то системе одновременно думать как о чём-то, совмещающем разные свои ипостаси, так и как об отдельных ипостасях — в том числе при той трудности, что ипостаси этой системы нередко имеют ещё и разные имена, обозначающие систему-как-ипостась (хотя одинаковые имена для разных ипостасей встречаются даже чаще).
Мы уже знакомились с ситуацией, когда Принц Гамлет, народный артист и Черезколеноногузадерищенский могут быть одним человеком, но называться по-разному в зависимости от того, что нам от него нужно — понять, какая фраза будет следующая в его пьесе, когда он планирует выучить новую роль в новом спектакле или есть ли у него дети. То же можно сказать и о системе: “измеритель давления”, “манометр KLM-23 завода “Давижмимонтажавтоматика”” и “датчик в пятом ящике на третьей полке склада номер 4” вполне могут оказаться одним и тем же прибором — но разные имена свидетельствуют о том, что мы планируем совершенно разные действия с этим прибором, поэтому для нас один и тот же прибор выступает в разных ипостасях и имеет поэтому разные имена.
Для разных действующих лиц система будет представляться в своих аспектах-ипостасях совершенно по-разному — но при этом оставаться целостной, холистичной, целокупностью всех своих ипостасей/аспектов.
Хинт: на картинке изображен минимальный набор аспектов – принципиальная схема («как работает»), набор модулей («из чего состоит»), и размещение («где что находится в пространстве»).