Интеллект-стек: как создаётся Deus ex Machina
Клуб «Щепотка соли»Москва
24 сентября 2015г.
2
Моя историяShallow learning (http://ailev.livejournal.com/710976.html):
• 1977, купил книжку Джурс П., Айзенауэр Т., «Распознавание образов в химии», мягкая обложка, 230 с.
• 1978 – поиск знающих слова «регрессионный анализ», активное программописательство.
• 1980 – победа на конкурсе студенческих научных работ химфака РГУ: «Распознавание каталитической активности хелатных соединений» (обучение с учителем).
Internet:• 1991 -- почта ([email protected])• 1992 – выпуск акций Релком (http://relcom.ru)• 1994 – Первый вебсайт http://libertarium.ru
Systems engineering:• 2007 – узнал о существовании• 2008 – создал Русское отделение INCOSE (http://incose-ru.livejournal.com/)
Deep learning:• 2012 – начал отслеживать и комментировать deep learning с 2012 (http://
ailev.livejournal.com/1044735.html, http://ailev.livejournal.com/1045081.html) – мой интерес был в автоматизации онтологической работы.
• 2012 – заметил, что по deep learning надувается инвестпузырь (пункт три в http://ailev.livejournal.com/1051479.html)
Онтологии и AI:
• Первый редактор онтологий – 1986 год, последний – 2014 (https://github.com/TechInvestLab/dot15926)
• 2013, 2014 – организатор хакатона в Ontology Summit (http://ailev.livejournal.com/1113111.html).
3
Сплошное надувательство: интернет
4
Oops!... I did it again
• Основные инвестиции приходят после того, как пузырь лопнул• Продукты появляются через год-два-три после вложения денег• Сравните: первый WWW-сайт появился в 1991, пузырь лопнул в 2000
5
Сегодня: $1 000 000 000 инвестировано в deep learning
https://medium.com/@VentureScanner/the-state-of-artificial-intelligence-in-six-visuals-8bc6e9bf8f32
6
Новости последней недели• Глубокая попса 16 сентября 2015: драм-треки -- http://
www.inquisitivists.com/2015/09/16/using-autoharp-and-a-character-based-rnn-to-create-midi-drum-loops
• Fujitsu 17 сентября 2015 достигла сверхчеловеческой точности в распознавании китайских иероглифов (96.7% по сравнению с человеческими 96.1%) http://en.acnnewswire.com/press-release/english/25211/fujitsu-achieves-96.7-recognition-rate-for-handwritten-chinese-characters-using-ai-that-mimics-the-human-brain
• Google 24 сентября 2015 года перешёл к «промышленной эксплуатации» распознавания голоса на новой архитектуре нейронной сети – ещё точнее, ещё меньше вычислительных ресурсов. Распознавание идёт прямо на телефоне, достижение тут – достигнута скорость real time (0.3 секунды рассматривалось как серьёзная задержка!) -- (http://googleresearch.blogspot.ru/2015/09/google-voice-search-faster-and-more.html).
Эксплуатация и инженерия: mining / big data (ремонт по состоянию, security alerts, process/log mining)
• Boeing Company: 85% отказов оборудования происходят невзирая на своевременное календарное обслуживание
• Emerson: 63% запланированного обслуживания задвижек не были необходимыми, поэтому перестало это делать.
• Традиционные методы предсказания поломок работают плохо.
• Методы машинного обучения работают удивительно хорошо – особенно deep learning. Ключевые особенности: – Обработка миллионов измерений от самых разных
датчиков– Хорошее отделение «сигнала» от «шума»
• Первые применения: непрерывные производства (нефтянка, электростанции, химические производства, фармакологические фирмы)
7
http://www.mtell.com – condition-based monitoring
Automated, state-of-the-art predictive analysis using machine learning for early detection of equipment degradation.
8
Круче интернета: вся промышленность, наука и искусство, а не только транспорт
Интернет• телефон-на-стероидах,
газета-на-стероидах, телевидение-на-стероидах, библиотека-на-стероидах – логистика (транспорт и склады).
• Управление информацией (информацию не меняем): максимизировать поток релевантной информации оттуда, где она есть туда, где она нужна.
Нейронные сетки:• Софт-на-стероидах (какая-то
обработка информации, «обрабатывающая промышленность», «наука», «искусство»).
• Инженерия информации (информацию меняем, создаём новую): понять потребности, сформулировать требования, придумать решение, сформулировать результат, проверить результат на соответствие требованиям и потребностям
Синергия: инженерия и управление обычно тесно связаны, одно без другого не бывает. Промышленные центры и железные дороги неразрывны. Нейронные сетки и интернет существенно дополняют друг друга.
9
А не блеф ли это? • «50 лет ничего не происходило, и вдруг началось?! Нет, уже много раз было
“волки, волки!”, значит и сейчас всё скоро утихнет». Нет, не утихнет.• Нейронная сетка универсальна: эквивалентна машине Тьюринга, а также
аппроксимирует любую функцию -- http://neuralnetworksanddeeplearning.com/chap4.html
• Это не статистика! Работает физика эволюции: так же устроено сворачивание полимеров/белков и спиновые стёкла -- http://ailev.livejournal.com/1197148.html. И уже поминают идеи из неравновесной термодинамики -- http://jmlr.org/proceedings/papers/v37/sohl-dickstein15.html
http://arxiv.org/pdf/cond-mat/9904060v2.pdf
Эволюция: не ловится в локальном минимуме, а ползёт дальше!
10
Но если там нет «интеллекта», то в чём тогда крутость?!• Можно обсуждать, когда точность компьютерного
диагноза превысит точность диагноза, поставленного опытным врачом. Обсуждать примерно так же, как обсуждается точность замера лазерным дальномером по сравнению с точностью глазомера опытного строителя. • Только лазерный дальномер не подскажет, как строить.
А нейронная сетка сможет подсказать, как лечить. И как строить. Только и всего, ничего человеческого. • Этого хватит, чтобы жизнь поменялась круче, чем с
приходом интернета.
11
Надуется и лопнет, как всегда?• Да, обязательно надуется и обязательно лопнет (а центральные банки
этому только помогут)• Но не факт, что дальше рост будет «как всегда»:
• решения начнут принимать не только люди, всё станет быстрее и точнее и решений будет приниматься больше
• Производительность труда вырастет, работать будут не только люди• Суть экономики (economics, наука) не изменится, в основе там аксиомы. • Структурные перестройки экономики (economy) неизбежны, но они
всегда шли – тот же народившийся вновь «интернет» тому пример, но и сгинувший «несетевой» Kodak пример не меньший.
• Помним, что все эти роботы кому-то принадлежат (не сами себе) – и капитал сегодня акционерный. Работы будет меньше, её результаты достанутся всё одно людям.
• Когда начнётся движение за права конкретных роботов, тогда и поговорим. А пока не забиваем себе голову.
Дилемма инноватора: мужики-то не знают!(Clayton Christensen из Гарварда)
12
Характеристики
Время
Лучшие технологии
Прорывные технологии
Характеристики лучших продуктовНа рынке
Характеристики худших продуктов на рынке
http://web.mit.edu/6.933/www/Fall2000/teradyne/clay.html
13
Мои любимые примеры• Это не rocket science, студенты справляются!• Требования к аппаратуре для нейронных сетей
во многих задачах реально ниже, чем при любых других архитектурах!
• Локатор для роботов: 10 градусов при трёх микрофонах, разнесённых на 10см – стоимость всей аппаратуры <$50.
Недостаток (вернее, НЕДОСТАТОК)
• Нейронную сеть нужно учить, для этого нужны данные.• Данных нужно МНОГО. Не BigData, А GiantData
(миллионы примеров)
•Данных для обучения обычно нет!• С этим работают, но пока не очень успешно.• Обязательное чтиво на эту тему:
http://habrahabr.ru/company/meanotek/blog/266961/
14
Системная инженерия: борьба со сложностью
15
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.
http://www.sebokwiki.org/1.0.1/index.php?title=Systems_Engineering_%28glossary%29
16
МЕЖДИСЦИПЛИНАРНОСТЬИнтеллект-стек – это только одна ипостась системы
На основе рис.3в ISO 81346-1
-Модули
=Компоненты
+Места
Платформы, интерфейсы и их видимость – слои
Стек
17
Платформы (наборы модулей)
Интеллект-стек1. Прикладной уровень2. Когнитивная архитектура3. Обучающиеся алгоритмы4. Вычислительные библиотеки5. Вычислительные языки программирования6. Аппаратное ускорение вычислений
http://www.life-prog.ru/1_41934_protokoli-TCPIP-i-model-OSI.html
http://www.w3.org/2001/12/semweb-fin/w3csw
http://ailev.livejournal.com/1210678.html
18
Ителлект-стек• «Как сделать», но не «как работает» и не «где
расположено»• Интерфейсы и протоколы: стандарты (де-юре и
де-факто)• Модули взаимозаменяемы: • На одном интерфейсе-стандарте• Переходники интерфейсов (wrappers)
• Модули взаимоувязаны (платформы, библиотеки)• «Видимость» обсуждается, но нет чётких границ
19
Интеллект-стек (сентябрь 2015)1. Прикладной уровень2. Когнитивная архитектура3. Обучающиеся алгоритмы4. Вычислительные библиотеки5. Вычислительные языки программирования6. Аппаратное ускорение вычислений
http://ailev.livejournal.com/1210678.htmlЭто и есть мой вклад в deep learning
20
6. Аппаратное ускорение вычисленийПочему сейчас?Оборудование: enabling technology
Интернет • Линии связи позволили
передавать картинки на дом (т.е. стало можно использовать WWW)
• Дисплеи смогли картинки показать
• Процессоры смогли картинки обработать
250Kb веб-страница• 56Kbps – 36 секунд• 1Mbps – 2 секунды• 100Mbps – 0.2 секунды
Нейронные сетки• Процессоры сумели выдать терафлоп,
нужный для научения сетки за обозримое время
• Связь и память смогли дать достаточно (миллионы) картинок для научения
• 1TFLOP -- 200млн. человек по 14 вычислений на калькуляторе в день каждый, за год
• GTX Titan X – 7TFLOPS (single preсision)• Intel Knights Landing Xeon Phi – 6TFLOPS (
http://www.zdnet.com/article/intels-next-big-thing-knights-landing/, http://arxiv.org/abs/1506.09067)
• FPGA: эксперименты до 10TFLOPS и до 6x меньше TFLOPS/Watt
http://www.theguardian.com/technology/2011/jul/06/broadband-speeds-uk
21
Особенности «железа» для deep learning• Низкая разрядность плавающих, но не один бит (не
«настоящие нейроны»)!• x2 за последние 9 месяцев в 2015г. за счёт программной
оптимизации доступа к аппаратуре (софт и хард не независимы!)• Путаница «настоящих нейронов» и «алгоритмических»
(«нейроморфная аппаратура» против CPU, GPU, FPGA/DSP и т.д.). Помним о software everything (включая software radio)!• Битва CPU-GPU-FPGA/DSP• Суперкомпьютеры, квантовые компьютеры, мемристоры и
прочая экзотика
• Итого: цена входа около 20тыс.рублей (NVIDIA GTX 970)
22
5. Вычислительные языки программирования
• Scientific computing• Fortran, C++, MATLAB, Python, R, Lua, Wolfram, Julia• Отдельный уровень (wrapper’ы для библиотек).
• Обратите внимание: Julia (http://julialang.org/) • Оптимизирован под вычислительные задачи• Скорость как С++, но писать легче (как на Python)• Совместим с библиотеками на C• Быстрее Python, но мощнее Lua• Учитывает параллельные вычисления• Не объект-ориентирован! Multiple dispatch• Версия 0.4 RC (язык молодой!)• …
23
4. Вычислительные библиотекиScientific computing • Frameworks (library, platform, package) – тысячи их!!!• Очень условно разделимы с «deep learning frameworks» (для них deep
learning просто пополнение ещё одним классом алгоритмов)• Не так уж и привязаны к языкам (wrappers)• Open source виден, но нельзя недооценивать невидимую «в
интернетах» часть (Mathematica, Maple и т.д.)• символьных вычислений (включая символическое
дифференцирование, нужное для backpropagation)• Поддержка GPU и параллельности, кластеры и прочая забота о скорости
• Scikit (NumPy, SciPy, and matplotlib)• Torch• Theano• Nd4j (n-dimentional arrays for Java)• библиотеки Julia
24
3. Обучающиеся алгоритмы • Обучающиеся алгоритмы – или обучающиеся данные, а алгоритмы
обучающие?! Что, вообще, там учится?!• Называются чаще всего frameworks, ибо идут комплектами• Часто только часть больших вычислительных frameworks
(«зависимости»), указывают также язык разработки-использования (но часто используются из других языков, а иногда и сами написаны на чём-то типа С++)
• Предметно-специфические (deep learning – это как раз они!!!)
• Подразумевают частые изменения, свои в каждой команде – с ритмом выхода статей
• «Возьми под ключ» против «сделай свой алгоритм сам» (разным командам нужно разное)
• Наборы данных в комплекте – именно для оценки и сравнения этих алгоритмов!
• Фреймворки глубогоко обучения содержат «джентльменский набор»: CNN, RNN, … (а остальное даётся «пакетами» над вычислительной частью фреймворков)
25
С чего начать:• Torch (и куча «пакетов» в нём)• Theano (и куча «пакетов» в нём)• Caffe• … их огромное количество: как веб-движков в эпоху
окончания эры вебмастеров• Strada.jl («по мотивам» Caffe)
Осваивать предметную область программистам нужно именно на этом уровне. Например, тьюториал http://cs231n.stanford.edu/syllabus.html
Список литературы: https://github.com/robertsdionne/neural-network-papers
26
2. Когнитивные архитектуры• Молчим про AGI (и тем самым пытаемся избегать дискуссии про «что
такое интеллект и почему вам не удастся повторить человеческий интеллект», а также не возбуждаем обывателей с их дежурными голливудскими страшилками).
• Когнитивный = знаниевый. Знание – информация, использующаяся в разных проектах, разных ситуациях.
• Ни один алгоритм не работает в одиночку, ни одна структура данных не существует сама по себе без алгоритмов.
• Ансамблирование алгоритмов deep learning – это дальние подходы к когнитивной архитектуре.
• Главное тут даже не «обучение», а «вывод» (reasoning)
• Когнитивная архитектура: один набор алгоритмов и данных – множественность применений (типичная «платформа»)
27
Гибридный вывод и перенос знания
• Онтология и эпистемология• Hard computing (в том числе символический) и soft
computing (в том числе коннекционистский)• Statistical strength sharing, learning to learn, learning transfer,
…• Наука или инженерия?• Обучение без учителя• Обучение с умным учителем (а не самому)• Мультимодальность (символы и картинки, плюс звук и
ароматы)
•Это тема отдельного доклада: прорывы нужно ожидать тут
28
Бионика или чистая инженерия?!• Традиционный флейм: повторять человеческий мозг или решать
задачи• Идеал: один простой алгоритм, который решает все задачи,
включая задачу собственной настройки• Для мозга: множество попыток объяснить интеллект (первая
architecture for cognition – Саймон и Фейгенбаум, 1960, EPAM – Elementary Perciever and Memorizer)
• На страничке википедии 37 «хорошо известных» – а менее известных сотни, у всех какие-то программные реализации
• Тренд: всё больше архитектур «не от мозга»• Память, внимание, сознание – но не память, внимание, сознание
человека• IBM Watson – «просто добавь ещё» (включая deep learning)• Есть полностью игнорирование мозга: MANIC• Именно в архитектурах использование И deep learning, И shallow
(machine learning), И классических методов.
29
Пример: MANIC A Minimal Architecture for General Cognition (http://arxiv.org/abs/1508.00019)
• Ключевые слова: действия, планирование, наблюдения, решения, знания, …
30
1. Прикладной уровень
• Инновации (продажи тут: killer application)• Все хотят: интеллектуальный помощник (M,
Google Now, Siri, Cortana, Alexa, … -- они развиваются более чем быстро)• Менее массовые, но не менее важные (не
«помощники», а «эксперты»): медицина, колл-центры, учителя
31
Почему важен весь стек (1-6)• Инновации обеспечиваются (enable) с разных уровней стека –
необязательно целевого.• Самолёт на композитах, или электросамолёт – это инновации с
более низких платформенных уровней. Но самолёт при этом будет другим!
• Сами нейронные сетки смогли выйти в мейнстрим на прикладном уровне из-за инновации на уровне 6 (использование GPU)!
• Промежуточные сборки («коробочные решения») – NVIDIA DIGITS 2, уровни 6-3 (до алгоритмов, + UI).
• Ни одна фирма не потянет весь стек
Прогнозы:• Интерфейсы уровней стека будут стабилизироваться, ходить
«мимо интерфейса» будет всё дороже и дороже• Явного победителя в каждом уровне стека не будет, будет
конкуренция (как и конкуренция людей)