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

Post on 14-Jan-2017

6.403 views 2 download

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

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

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

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

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

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

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

-Модули

=Компоненты

+Места

3

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

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

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

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

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

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

Компоновка

4

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

Из IEC 81346-1

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

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

5

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

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

6

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

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

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

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

7

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

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

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

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

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

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

8

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

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

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

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

9

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

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

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

10

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

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

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

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

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

11

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

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

12

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

13

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

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

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

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

14

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

процессы)

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

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

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

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

Проблемы модульности в машинном обучении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 будет ведущая как для психической, так и для физической частей.

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

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

17

Воля

Экзотело

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

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

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

Психика

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

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

18

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

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

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

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

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

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

Мало обучения внизу, много вверху

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

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 операция!).

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)

25

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

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

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

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

26

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

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

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

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

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

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

27

Спасибо внимание!Анатолий Левенчукailev@asmp.msk.suhttp://ailev.ru

TechInvestLab