А.Левенчук -- плохая модульность

27
Инженерия систем с плохой модульностью и гранулярностью: предприятия, искусственные нейросети, психика Анатолий Левенчук 23 марта 2016г.

Transcript of А.Левенчук -- плохая модульность

Page 1: А.Левенчук -- плохая модульность

Инженерия систем с плохой модульностью и гранулярностью:

предприятия, искусственные нейросети, психика

Анатолий Левенчук23 марта 2016г.

Page 2: А.Левенчук -- плохая модульность

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: А.Левенчук -- плохая модульность

Логическая (функциональная, компонентная) и физическая (модульная) архитектуры, компоновка.

На основе рис.3в IEC 81346-1

-Модули

=Компоненты

+Места

3

Время изготовления: из чего собирать, какие интерфейсы, что взаимозаменяемо и где брать или как изготавливать.

Время работы: какие функции, какие связи элементов, теории и механизмы работы, расчёты режимов.

Где находится в физическом мире (пространстве-времени).

Троица описаний – это минимум! Их много больше, «многерица»,

Функциональная и логическая декомпозиция

Модульный синтез

Компоновка

Page 4: А.Левенчук -- плохая модульность

4

Структурная декомпозиция многоаспектна

Из IEC 81346-1

Модульность – модули и интерфейсыГранулярность – компоненты и порты

Page 5: А.Левенчук -- плохая модульность

Совмещение логической и физической архитектур по версии ISO 81346-1, Figure 7 -- должна быть хорошая гранулярность и модульность

5

«Логическая архитектура» (функциональная декомпозиция, структура компонент) итеративно совмещается с «физической архитектурой» (продуктная декомпозиция, структура модулей)

Идеал: множество функций назначается на отдельный модуль (многофункциональные модули).

Page 6: А.Левенчук -- плохая модульность

6

Гранулярность

• Гранулярность в функциональных представлениях практически не обсуждается: «достаточная для моделирования», «функции должны быть независимы» – активного обсуждения нет.• Иногда (редко) обсуждается как комплементарное

модульности рассмотрение – какие объекты языка адресуются при обращении программы к самой себе (что находится в AST, уровень детальней модуля)• Гранулярность пространственных представлений

тоже не обсуждается («места») – «достаточно для поиска».

Page 7: А.Левенчук -- плохая модульность

7

Критерий разбиения: зависит от обеспечивающей системы!• Управление конфигурацией: между менеджментом и инженерией

(нарезка на объекты инженерная, а перемещение готовых объектов – менеджерская задача)

• Именуются configuration items – то, что будет иметь какую-то логистику:• Результат отдельной операции (например, отверстие)• перемещаться между разными моделерами в явном виде в компонентах,

перемещаться по рабочим местам людей и складам, то у чего может быть flow в обеспечивающей системе

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

• Так что весь вопрос – в последующей сборке (интеграции).

Page 8: А.Левенчук -- плохая модульность

8

Виды сборки• Из частей (декомпозиция, аппаратные

платформы)• Виртуализация (информационные платформы)• Аппаратура переходит в программы

(микропрограммы, команды)• виртуальные машины• Высокоуровневые языки• Языки описания нейросетей и библиотеки к ним• Программы нейросетей (универсальные

вычислители!)• Выученные программы на программах нейросетей

Page 9: А.Левенчук -- плохая модульность

9

Методы оптимизации архитектуры (хорошей модульности)• Этому учат системных инженеров-архитекторов – но

не предписывая один метод на всех! Обычно знают один, в крайнем случае два, очень редко три. Часто вообще не используют в проектах, а только «знают».• М.Левин, «Технология поддержки решений для

модульных систем» (http://www.mslevin.iitp.ru/Levin-bk-Nov2013-071.pdf). В этой книжке также есть краткое перечисление пары десятков методов модульного синтеза (включая ТРИЗ).• ТРИЗ +• DSM – это типовой, стандартный метод

Page 10: А.Левенчук -- плохая модульность

10

Малая связность: ключ к развитию и совершенствованию

• Модульность: каждая связь имеет цену. Не было бы цены, не было бы модулей• http://arxiv.org/abs/1207.2743

• Меньше связность – круче улучшения!• http://www.pnas.org/content/108/22/9008.full

Падение стоимости при улучшении отдельных модулей (n), при разном числе связей каждого из них (d)

Чтобы изменения улучшали дело, нужно меньше связей!

Page 11: А.Левенчук -- плохая модульность

11

Пример использования DSM

"Design Structure Matrix Methods and Applications“Steven D. Eppinger and Tyson R. Browning, 2012 Massachusetts Institute of Technology

Page 12: А.Левенчук -- плохая модульность

12

INCOSE VISION 2025Проблемы с модульностью на высоких уровнях (где появляются сети, люди – непонятная связность): переход от сборки-наладки к «эволюции», «обучению», «системообразованию»

Page 13: А.Левенчук -- плохая модульность

13

Проблемные системы: обучение• В основе всех них коннекционизм/нейросети – distributed representation• Отличие коннекционизма от обычной модульности: требуется обучение

(зависимость от данных обучения и учебной последовательности)

Примеры коннекционистских систем:• Предприятия (на двух уровнях: команда+человек)• Системы машинного обучения (интеллект-ёмкие системы)• Психика

Не только нейросети: другие типы обучения (эволюция, байесовская статистика, символические программы, похожесть).

Page 14: А.Левенчук -- плохая модульность

14

Предпринятие• Гранулярность – методы, разбиваемые на практики• Модульность – подразделения (и сервисы в них, собираемые в

процессы)

• Проблемы в знаниевых областях (нет чётких интерфейсов)• Проблемы в обеспечении работы коллектива людей:

• Командообразование (обеспечение сотрудничества)• Семантическая интеграция работы в рамках разных школ

• Частичное решение: формализация предметной области и информационные технологии:• структурированные данные, микросервисы их обработки.• Проблемы сохраняются в части семантической интеграции данных

информационных систем: разница онтологий, ошибки восприятия людьми.

Page 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

Page 16: А.Левенчук -- плохая модульность

16

Киберпсихические и киберпсихофизические системы (cyberpsychic and cyber prhychicphysical systems)• По мотивам киберфизических систем (http://www.nist.gov/cps/index.cfm)

• Включает психику с персональными кибер-компонентами (в персональном экзокортексе) и интерпсихические программы и сети (например, коллаборативный софт – от простейших issue trackers до виртуальных коллективных помощников нейронета).

• Киберпсихические системы по определению (и подобию киберфизических систем) включают сети и являются системами систем (в силу самопринадлежности отдельных психик им самим).

• С учётом выхода в физический мир (тела, экзотела) системы будут

киберпсихофизическими. Компонента cyber будет ведущая как для психической, так и для физической частей.

А если decision (решение) принимается не чисто кибернетически, а и психикой тоже?

Page 17: А.Левенчук -- плохая модульность

Принципиальная схема операционной платформы

17

Воля

Экзотело

Бессознательное Сознание

ЭкзокортексТело

Физический мир

Психика

Вхождение в киберпсихические/киберпсихофизические системы систем

Психический мир групп и сообществ (интерсубъектность)

Page 18: А.Левенчук -- плохая модульность

18

Платформы психики: как в программной инженерии• Интерсубъектность (использующая система) – если речь

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

• Части личности (гомункулюсы) – прикладная платформа• Психика – операционная платформа• Субстрат (нейросети, модули тела, экзотела,

экзокортекса) – физиологическая/техническая платформа

Page 19: А.Левенчук -- плохая модульность

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: А.Левенчук -- плохая модульность

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: А.Левенчук -- плохая модульность

Жизненные циклы обучающихся систем

21

Инженерия психики Инженерия машинного обучения

Инженерия предприятия

Системная инженерия

Постановка задачи на модернизацию (всегда brownfield)

Замысел и требования Стратегирование Замысел и требования

Намеревание Архитектура Архитектура Архитектура и проектирование

(выращивание субстрата)

программирование ансамбля моделей

Постановка практик: набор персонала, закупка технологий

Изготовление и интеграция/сборка

Дообучение (ибо всегда brownfield)

Обучение (training), Постановка практик в части обучения работе

наладка

Автоматизация навыка Передача обучения, дистиллирование, ансамблирование (но ярко выраженной сборки нет, плохая модульность)

Merge/aquisition на уровне предприятий (но нет «сборки» отдельных практик, плохая модульность)

Модернизация заменой модулей

Аттестация, экзамены, освидетельствование

Проверка и приёмка Оценка, аттестация Проверка и приёмка

Жизнь Вывод (inference) Работа Эксплуатация

Page 22: А.Левенчук -- плохая модульность

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: А.Левенчук -- плохая модульность

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: А.Левенчук -- плохая модульность

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: А.Левенчук -- плохая модульность

25

Модульность через символическое представлениеПочему нельзя «изготовить учебник» и затем «прочесть учебник»?• «Мысль изречённая есть ложь»• Онтологическая интеграция данных крайне проблематична

– онтологии несовместимы принципиально• Проблема связывания символических переменных не

решена• Alan Key: делаются очень сложные модули с плохой

модульностью внутри (как в биологии), а связь между модулями только через передачу значащих сообщений, а не через непосредственное взаимодействие [extremely late binding]

Page 26: А.Левенчук -- плохая модульность

26

Итого:• Мало известно что делать с модульностью в

коннекционистской парадигме: модульность голограммы проблематична – таблетки знаний нет не только для людей, но и для машин, и для предприятий.• Инженерия стремительно выходит к необходимости

работать с системами с коннекционистскими частями – в людях и роботах (киберпсихофизические системы)• Акцент со сборки-наладки переходит к процедурам

обучения-дообучения (системы а) делают, б) учат).• Наиболее активные исследования модуляризации

коннекционистских систем идут в deep learning • Известная проблема программирования (late vs early

binding) будет и тут – сборка системы «по ходу дела», или предварительная. Как всегда, решения будут найдены, но попозже.

Page 27: А.Левенчук -- плохая модульность

27

Спасибо внимание!Анатолий Левенчук[email protected]://ailev.ru

TechInvestLab