Download - А.Левенчук -- плохая модульность
![Page 1: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/1.jpg)
Инженерия систем с плохой модульностью и гранулярностью:
предприятия, искусственные нейросети, психика
Анатолий Левенчук23 марта 2016г.
![Page 2: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/2.jpg)
2
Предыстория• Системный менеджмент / инженерия
предприятия (осень 2015 –зима 2016): https://www.youtube.com/channel/UCJ0Uq_WB7GLmY-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
![Page 3: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/3.jpg)
Логическая (функциональная, компонентная) и физическая (модульная) архитектуры, компоновка.
На основе рис.3в IEC 81346-1
-Модули
=Компоненты
+Места
3
Время изготовления: из чего собирать, какие интерфейсы, что взаимозаменяемо и где брать или как изготавливать.
Время работы: какие функции, какие связи элементов, теории и механизмы работы, расчёты режимов.
Где находится в физическом мире (пространстве-времени).
Троица описаний – это минимум! Их много больше, «многерица»,
Функциональная и логическая декомпозиция
Модульный синтез
Компоновка
![Page 4: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/4.jpg)
4
Структурная декомпозиция многоаспектна
Из IEC 81346-1
Модульность – модули и интерфейсыГранулярность – компоненты и порты
![Page 5: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/5.jpg)
Совмещение логической и физической архитектур по версии ISO 81346-1, Figure 7 -- должна быть хорошая гранулярность и модульность
5
«Логическая архитектура» (функциональная декомпозиция, структура компонент) итеративно совмещается с «физической архитектурой» (продуктная декомпозиция, структура модулей)
Идеал: множество функций назначается на отдельный модуль (многофункциональные модули).
![Page 6: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/6.jpg)
6
Гранулярность
• Гранулярность в функциональных представлениях практически не обсуждается: «достаточная для моделирования», «функции должны быть независимы» – активного обсуждения нет.• Иногда (редко) обсуждается как комплементарное
модульности рассмотрение – какие объекты языка адресуются при обращении программы к самой себе (что находится в AST, уровень детальней модуля)• Гранулярность пространственных представлений
тоже не обсуждается («места») – «достаточно для поиска».
![Page 7: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/7.jpg)
7
Критерий разбиения: зависит от обеспечивающей системы!• Управление конфигурацией: между менеджментом и инженерией
(нарезка на объекты инженерная, а перемещение готовых объектов – менеджерская задача)
• Именуются configuration items – то, что будет иметь какую-то логистику:• Результат отдельной операции (например, отверстие)• перемещаться между разными моделерами в явном виде в компонентах,
перемещаться по рабочим местам людей и складам, то у чего может быть flow в обеспечивающей системе
• Инженерных элементов может быть в разы и разы больше – но если они не выходят за рамки работы одного инженера и у них нет собственной независимой логистики (например, не участвуют в сборке – фичи какой-то детали), им имена не даются.
• Так что весь вопрос – в последующей сборке (интеграции).
![Page 8: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/8.jpg)
8
Виды сборки• Из частей (декомпозиция, аппаратные
платформы)• Виртуализация (информационные платформы)• Аппаратура переходит в программы
(микропрограммы, команды)• виртуальные машины• Высокоуровневые языки• Языки описания нейросетей и библиотеки к ним• Программы нейросетей (универсальные
вычислители!)• Выученные программы на программах нейросетей
![Page 9: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/9.jpg)
9
Методы оптимизации архитектуры (хорошей модульности)• Этому учат системных инженеров-архитекторов – но
не предписывая один метод на всех! Обычно знают один, в крайнем случае два, очень редко три. Часто вообще не используют в проектах, а только «знают».• М.Левин, «Технология поддержки решений для
модульных систем» (http://www.mslevin.iitp.ru/Levin-bk-Nov2013-071.pdf). В этой книжке также есть краткое перечисление пары десятков методов модульного синтеза (включая ТРИЗ).• ТРИЗ +• DSM – это типовой, стандартный метод
![Page 10: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/10.jpg)
10
Малая связность: ключ к развитию и совершенствованию
• Модульность: каждая связь имеет цену. Не было бы цены, не было бы модулей• http://arxiv.org/abs/1207.2743
• Меньше связность – круче улучшения!• http://www.pnas.org/content/108/22/9008.full
Падение стоимости при улучшении отдельных модулей (n), при разном числе связей каждого из них (d)
Чтобы изменения улучшали дело, нужно меньше связей!
![Page 11: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/11.jpg)
11
Пример использования DSM
"Design Structure Matrix Methods and Applications“Steven D. Eppinger and Tyson R. Browning, 2012 Massachusetts Institute of Technology
![Page 12: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/12.jpg)
12
INCOSE VISION 2025Проблемы с модульностью на высоких уровнях (где появляются сети, люди – непонятная связность): переход от сборки-наладки к «эволюции», «обучению», «системообразованию»
![Page 13: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/13.jpg)
13
Проблемные системы: обучение• В основе всех них коннекционизм/нейросети – distributed representation• Отличие коннекционизма от обычной модульности: требуется обучение
(зависимость от данных обучения и учебной последовательности)
Примеры коннекционистских систем:• Предприятия (на двух уровнях: команда+человек)• Системы машинного обучения (интеллект-ёмкие системы)• Психика
Не только нейросети: другие типы обучения (эволюция, байесовская статистика, символические программы, похожесть).
![Page 14: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/14.jpg)
14
Предпринятие• Гранулярность – методы, разбиваемые на практики• Модульность – подразделения (и сервисы в них, собираемые в
процессы)
• Проблемы в знаниевых областях (нет чётких интерфейсов)• Проблемы в обеспечении работы коллектива людей:
• Командообразование (обеспечение сотрудничества)• Семантическая интеграция работы в рамках разных школ
• Частичное решение: формализация предметной области и информационные технологии:• структурированные данные, микросервисы их обработки.• Проблемы сохраняются в части семантической интеграции данных
информационных систем: разница онтологий, ошибки восприятия людьми.
![Page 15: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/15.jpg)
Проблемы модульности в машинном обучении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
![Page 16: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/16.jpg)
16
Киберпсихические и киберпсихофизические системы (cyberpsychic and cyber prhychicphysical systems)• По мотивам киберфизических систем (http://www.nist.gov/cps/index.cfm)
• Включает психику с персональными кибер-компонентами (в персональном экзокортексе) и интерпсихические программы и сети (например, коллаборативный софт – от простейших issue trackers до виртуальных коллективных помощников нейронета).
• Киберпсихические системы по определению (и подобию киберфизических систем) включают сети и являются системами систем (в силу самопринадлежности отдельных психик им самим).
• С учётом выхода в физический мир (тела, экзотела) системы будут
киберпсихофизическими. Компонента cyber будет ведущая как для психической, так и для физической частей.
А если decision (решение) принимается не чисто кибернетически, а и психикой тоже?
![Page 17: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/17.jpg)
Принципиальная схема операционной платформы
17
Воля
Экзотело
Бессознательное Сознание
ЭкзокортексТело
Физический мир
Психика
Вхождение в киберпсихические/киберпсихофизические системы систем
Психический мир групп и сообществ (интерсубъектность)
![Page 18: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/18.jpg)
18
Платформы психики: как в программной инженерии• Интерсубъектность (использующая система) – если речь
идёт о человеке, то до включения в человечество есть множество уровней (принцип почтальона). Опосредованность включения машинными системами (коллективная/групповая киберпсихика).
• Части личности (гомункулюсы) – прикладная платформа• Психика – операционная платформа• Субстрат (нейросети, модули тела, экзотела,
экзокортекса) – физиологическая/техническая платформа
![Page 19: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/19.jpg)
19
CNN Architecture: это ещё не модель, ибо а) не тренирована б) не определены гиперпараметры19982012
9/2014
2/2015
12/2015
9/2014
http://josephpcohen.com/w/visualizing-cnn-architectures-side-by-side-with-mxnet/
LeNet 28*28LeNet 28*28
VGG 224x224
GoogLeNet 224x224
Inception V3 299x299
Inception BN 224x224
![Page 20: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/20.jpg)
20
Intellect-Stack
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
Мало обучения внизу, много вверху
![Page 21: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/21.jpg)
Жизненные циклы обучающихся систем
21
Инженерия психики Инженерия машинного обучения
Инженерия предприятия
Системная инженерия
Постановка задачи на модернизацию (всегда brownfield)
Замысел и требования Стратегирование Замысел и требования
Намеревание Архитектура Архитектура Архитектура и проектирование
(выращивание субстрата)
программирование ансамбля моделей
Постановка практик: набор персонала, закупка технологий
Изготовление и интеграция/сборка
Дообучение (ибо всегда brownfield)
Обучение (training), Постановка практик в части обучения работе
наладка
Автоматизация навыка Передача обучения, дистиллирование, ансамблирование (но ярко выраженной сборки нет, плохая модульность)
Merge/aquisition на уровне предприятий (но нет «сборки» отдельных практик, плохая модульность)
Модернизация заменой модулей
Аттестация, экзамены, освидетельствование
Проверка и приёмка Оценка, аттестация Проверка и приёмка
Жизнь Вывод (inference) Работа Эксплуатация
![Page 22: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/22.jpg)
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 операция!).
![Page 23: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/23.jpg)
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!
![Page 24: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/24.jpg)
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)
![Page 25: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/25.jpg)
25
Модульность через символическое представлениеПочему нельзя «изготовить учебник» и затем «прочесть учебник»?• «Мысль изречённая есть ложь»• Онтологическая интеграция данных крайне проблематична
– онтологии несовместимы принципиально• Проблема связывания символических переменных не
решена• Alan Key: делаются очень сложные модули с плохой
модульностью внутри (как в биологии), а связь между модулями только через передачу значащих сообщений, а не через непосредственное взаимодействие [extremely late binding]
![Page 26: А.Левенчук -- плохая модульность](https://reader035.vdocuments.net/reader035/viewer/2022062522/587928731a28ab7c448b4d39/html5/thumbnails/26.jpg)
26
Итого:• Мало известно что делать с модульностью в
коннекционистской парадигме: модульность голограммы проблематична – таблетки знаний нет не только для людей, но и для машин, и для предприятий.• Инженерия стремительно выходит к необходимости
работать с системами с коннекционистскими частями – в людях и роботах (киберпсихофизические системы)• Акцент со сборки-наладки переходит к процедурам
обучения-дообучения (системы а) делают, б) учат).• Наиболее активные исследования модуляризации
коннекционистских систем идут в deep learning • Известная проблема программирования (late vs early
binding) будет и тут – сборка системы «по ходу дела», или предварительная. Как всегда, решения будут найдены, но попозже.