?

Log in

Лабораторный журнал
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Anatoly Levenchuk's LiveJournal:

[ << Previous 20 ]
Friday, September 4th, 2015
1:37 pm
Нейронет-из-НТИ как Олимпиада
Нейронетов сейчас два: "рабочая группа нейронета" (или нейровеба, там сами не знают уже) как самодеятельная научная неформальная тусовка без членства и "официальная рабочая группа нейронета в рамках НТИ под присмотром АСИ, плававшая на пароходе", т.е. кулуары правительства. Я наблюдаю за этими группами (и даже чуть-чуть участвую в их работе) последние полгода через группы в фейсбуке:
-- содержательная группа в https://www.facebook.com/groups/nevronet/ (и я там даже в очных заседаниях пару раз участвовал, там было интересно и футурологично -- типа http://ailev.livejournal.com/1142994.html год назад),
-- кулуары правительства в https://www.facebook.com/groups/1602081160032874/ (да, я отказался участвовать в тамошних очных заседаниях, причины как раз объясняю в этом посте).

Там есть несколько сюжетов, без которых трудно понять происходящее. Вот они:

1. Разлад нейрофизиологов с нейроморфщиками (нейроморф -- "форма нейро", ничего не сказано про содержание!). Нейроморфщики "неживые", но хотя бы чуть-чуть понимают нейрофизиологов. И это новая парадигма, у них новые результаты, в количестве. Нейрофизиологи тормозят и отстают, плохо понимают происходящее. Но их предмет нельзя выкинуть: в конечном-то итоге без живого мозга в частности и всего тела в целом никуда не денешься! По отношению к целевым системам нейроморфщиков у нейофизиологов в руках важнейшая для продуктов нейроморфщиков использующая система. Нейроморфщики это отлично понимают, но строят собственное понятие использующей системы, а затем сами занимаются нейрофизиологией -- но мимо текущих лидеров нейрофизиологов, чтобы не тратить время на лишние споры. Нужно учитывать, что:
-- нейрофизиологи вынуждены будут выйти на геномику уже вот прямо сейчас, улучшение человечьей породы в том числе биологическим а не только киборгическим путём неминуемо (http://nautil.us/issue/28/2050/dont-worry-smart-machines-will-take-us-with-them),
-- лучшие инструменты нейрофизиологам (да и всем остальным) будут сейчас давать именно нейроморфщики, все эти "большие данные" и "научные вычисления" плоть от плоти и кровь от крови нейроморфщиков (вот тут я дал несколько ссылок на эту тему в конце дискуссии: https://www.facebook.com/groups/1602081160032874/permalink/1632214417019548/)
-- плюс слово "нейро" активно используется обеими сторонами, и Гугль сотоварищи никогда не даст им забыть друг о друге.

Думаю, уже можно закупать попкорн и смотреть захватывающее кино о кардинальном переустройстве всей полянки нейрофизиологии -- если вы сами не попали в этот передел, тогда уж барахтайтесь как можете. Полянка deep learning (условно они нейроморфисты, разница в нюансах) будет обустраиваться и переобустраиваться, это не выглядит так драматично как у нейрофизиологов, но изменений в единицу времени там будет не меньше. Авторитеты и социальные связи, ведущие методы исследований и инженерии, ведущие приложения и меценаты -- меняться будет всё, и очень быстро.

Для каждого отдельного человека и отдельной компании развитие событий и проблемы будут существенно отличаться, я тут просто о среднестатистической температуре по больнице, про общие тренды.

Вся интрига группы нейронета-из-НТИ (группы в кулуарах правительства) выстроена вокруг этого -- даже если она и не видна самим участникам интриги. Deep learning появился там очень недавно, буквально "на пароходе", и нейрофизиологи никак не могут смириться с резким изменением ситуации, теряют время на бесполезную борьбу. А нужно дружить.

2. Нейроморфщики принесли с собой смену онтологического вопрошания к миру (и проектирование--конструирование-программирование как основной способ его освоения) на гносеологическое-эпистемологическое. С онтологиями сейчас полный тупик (это я вам как профессиональный онтолог говорю), от произнесения слова "онтология" или даже "онтика" слаще не становится, получение их требует колоссальных затрат ручного (мозгового) труда, а результаты имеют очень узкую применимость. Нейроморфщики предлагают эти самые онтологии (для них это многоуровневые наборы фич) прекратить конструировать-программировать, они предлагают их учить и дальше с ними не разбираться (не давать имён каждой отдельной фиче, работать с безымянными фичами -- объекты онтологии перестают иметь осмысленные значимые имена, у них будут только "адреса в памяти").

На передний план выходит эпистемологическая терминология, в ней "обучение" и "коммуникация" даны в тысячах обличий -- так, уже сегодня в эпицентре проблема "подхода" (переноса метода) и "предобучения" в одной предметной области для последующего переноса знаний в новую предметную область. Известны термины learning to learn, sharing statistical strength, transfer learning, finetuning, domain adaptation, one shot learning -- и это разительно отличается от "классических" методов учесть неопределённость наших знаний о мире и неопределённость мира методами байесовской и частотной вероятности, используя констрирование-проектирование-программирование, например, вероятностные языки программирования (подробней в http://ailev.livejournal.com/1211950.html).

Этот крутой поворот от примата онтологии (обсуждения имеющихся в мире объектов) к эпистемологии (обсуждению метода, которым мы узнаём о мире) взрывает все текущие методы инженерии и науки, но как их пересобирать после этого взрыва -- пока непонятно, причём эта пересборка (как всегда это бывает) будет понята только сильно задним числом, будет ретроспективное придание смысла. Вот тут я подобрал немного ссылок на предмет этой пересборки: http://ailev.livejournal.com/1207563.html. Взрываться будет всё, и в крупных фирмах об этом уже озаботились (вот, например, статья CTO Autodesk, где он говорит про обучение САПР проектированию-конструированию, а не о классическом программировании generative design, как сегодня -- http://lineshapespace.com/how-generative-design-marries-nature-with-technology-to-bring-objects-to-life/).

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

Понятно, что текущие программы нейронета-из-НТИ этого не учитывают, они учитывают опыт традиционных исследований, традиционной инженерии.

3. Но пока непонятно что делать и как, нужно учитывать лучший опыт предыдущих лет. Этот опыт сводится по сути к двум режимам:
-- "финансовый холдинг" (делайте что хотите, только платите оброк -- делитесь прибылью. Можете назвать это "рэкетом", суть от этого не меняется: есть хозяин, ему нужно отстёгивать -- государство по праву сильного, владелец капитала фирмы по праву собственности). Важно, что хозяева (ладно, "стейкхолдеры") не вмешиваются в дела каждой отдельной производственной или научной точки, пока она прибыльна. Неприбыльные выбраковывают (продают, распускают, насилуют до закрытия), прибыльные доят (иногда досуха и они становятся неприбыльными, а иногда нормально -- и тогда они пухнут). Как сорганизованы между собой эти все точки прибыли и как они связаны с окружающей средой, хозяину не важно. Никаких "платформ", "модулей" и прочей инженерной работы, никаких "планирований" и "руления потоком" и прочей менеджерской работы. Только учёт и контроль собственности, покупка потенциально прибыльных точек (независимо от предмета их деятельности) и избавление от ненужных.
-- "производственный холдинг" (делайте не что хотите, а что скажут -- барщина на 100%). Тут важно, что все производственные точки представляют собой конвейер и хозяин его организует. По Голдратту, Lean 2.0 или ещё как с точки зрения менеджмента -- это неважно, важно что прибыль максимизируется не путём сбора её с каждой производственной или научной точки, а глобально по всему конвейеру. А поскольку конвейер должен выпускать качественный продукт, то ещё и системный инженер следит, чтобы в каждой точке этого конвейера были извне заданные правильные преобразования продукта, чтобы на выходе не получилось какого-то автомобиля с тремя колёсами из четырёх, зато с пятью радиоприёмниками в салоне.

Когда я думаю о предметной области нейровеба+глубокого обучения, я прежде всего думаю о необходимости собрать целевую систему, за которую потом можно получить деньги с потребительского рынка. Там нельзя пропустить какие-то части системы или иметь дубль каких-то других частей. Поэтому у меня примат мышления "производственного холдинга" -- часть технических платформ будет делать моя фирма сама, часть я буду покупать с рынка. Я становлюсь озабочен типовой архитектурой такой системы (см. моё видение этой архитектуры: интеллект-стек -- http://ailev.livejournal.com/1210678.html).

А вот надувающийся экономический пузырь (https://en.wikipedia.org/wiki/Economic_bubble) заставляет думать людей в терминах финансового холдинга, при этом близость денег людям сносит крышу. А близость государства сносит крышу ещё круче, там ведь пузырь и госфинансирование в одном направлении дуют.

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

4. Управлять или даже способствовать развитию какой-то обширной предметной области можно так:

а) честно сделав финансовый холдинг: обычный венчурный капитализм, и даже просто -- "обычный капитализм", и не нужно тут никаких приукрашиваний. Госкапитализм просто "венчур" делает за счёт граждан-налогоплательщиков, и граждане имеют всё счастье участвовать в убытках. До прибылей дело обычно в госкапитализме не доходит: чужие деньги инвестировать в проекты это совсем не то же самое, что чьи-то собственные, качество выбора проектов другое. Шанс тут в том, чтобы подсесть долевым образом на чьи-то частные деньги -- тем самым больше шанс вложиться в что-то выигрышное. Именно этот процесс идёт в нейронет-группе кулуаров правительства (НТИ). И не нужно никакой тут риторики про "развитие" того-сего. Для развития "того-сего" нужно глубоко экспертно разбираться, что именно развиваешь, а не лупить по площадям. На уровне лаборатории или коммерческой фирмы это ещё возможно, а на уровне отрасли или страны (и уж тем более мира) -- нет.

Текущий нейронет-из-НТИ с его управляющей компанией примерно туда и катится, в финансовый холдинг. Это накатанный путь Роснано, РВК, Сколково -- и судьба будет такой же: громкий старт с супер-заявлениями про подъём с колен в рамках одной отдельной отрасли одной отдельной страны, потом трата денег на тех, кто лучше сорганизовался (с игнорированием инженерных и научных аспектов, а также синергии всех проектов друг для друга), потом попытка понять "что же всё-таки делать" задним числом, через пару-тройку лет. На втором такте через три-пять лет идеологические супер-заявления снимаются, и остаётся обычный финансовый холдинг: менеджерская рутина, никакой предметной и идеологической окраски, всё серо и буднично, но в разы более эффективно. В самих же предприятиях холдинга начинается какая-то реальная производственная жизнь (вместо показухи первого этапа, в которой эти предприятия должны были не столько "производить", сколько "развивать" что-то такое в отрасли фактом своего существования).

Нет шанса, что удастся сделать нормальную сеть самых разных организаций, координирующих работу многих и многих компаний. Ибо это сложно, это система систем и её понимание выходит за пределы возможностей какого-то плотного "штаба". Инвест-фонд-акселератор сможет вложиться только на самых верхних уровнях интеллект-стека: прикладном и когнитивной архитектуры (причём в когнитивную архитектуру, как стоящую на ступеньку ниже, будут вкладываться только самые отчаянные). От этих двух уровней хорошо виден путь к потребительским деньгам и рынкам. А вот на остальных уровнях стека путь денег потребителей к ним просматривается с трудом, они инфраструктурны, и работа над ними обычно идёт внутри каких-то крупных бизнесов или университетов, и их координация и поддержка устроены по-другому, через многочисленные фонды (см. http://ailev.livejournal.com/1203522.html), а также консорциумы по стандартизации и промышленные консорциумы -- ключевое слово тут "консорциум", как площадка для объединения усилий явных конкурентов. Режим coopetition, классика жанра.

б) честно построив коммерческое предприятие, получив результат. Если частная компания -- то сделав Гугль, построив поиск-всем-поискам-поиск. Это и будет развитие интернета. Или сделав SpaceX, завод по производству дешёвых и надёжных ракет. Это и будет развитие космонавтики. Если это госкапитализм, то это должна быть госкорпорация, которая должна немедленно прекратить быть министерством (что не получилось ни у одной из российских госкорпораций, кстати) и демонстрировать массовый выпуск того самого "развиваемого" -- хотя именно у госкорпораций это получается хуже, чем у частников, и поэтому от госкорпораций многие честные политики стараются избавляться в цивилизованном мире. Хотя даже в цивилизованном мире чиновники стараются эти госкорпорации сохранить, это же их и их детей кусок хлеба с маслом. Вообще, с госкорпорациями всё плохо: ни одна из них ничего не "развивает", они обычно только "обеспечивают" (и именно поэтому проигрывают постоянно в конкуренции) -- почувствуйте разницу.

Это точно не про текущий нейронет-из-НТИ. Ибо нужно сосредоточиться и сказать, какой продукт будет сделан. А потом сделать этот продукт. Сейчас тактика -- "всем сестрам по серьгам", никакой фокусировки на результате.

в) сделав сверхпроект, зримый реальный результат. Типа проекта Манхэттен, который показал результат, подорвав Хиросиму и Нагасаки. Или чисто театральный проект Аполлон, который сделал театральные прогулки человека по Луне. С другой стороны, частный бизнес тоже вполне такие проекты делал -- взять хотя бы The Mother of all Demos (https://en.wikipedia.org/wiki/The_Mother_of_All_Demos). Или IBM с победой IBM Watson на конкурсе Jeopardy! Не нужно быть государством для таких прорывов.

В чём "развитие" в этом случае? В прямом доказательстве, что что-то уже свершилось, существует. Театр, пиар.

Текущий нейронет-из-НТИ обсуждает возможные театральные постановки и гладиаторские бои-для-народа, но это явно не мейнстрим обсуждений. В принципе, там можно было бы сделать проект "железный аватар" -- по мотивам "Аватара" был слеплен проект 2045, а по мотивам "Железного человека" можно добавить туда современности. Итого можно было бы унаследовать какие-то уже известные ходы из проекта 2045 и добавить нейросвежатинки. Из всего тела (оставим полное тело робототехникам, у них там своя пьянка в НТИ) оставим нервы (мозг, спинной мозг, периферию вплоть до снятия сигнала из датчиков и передачи сингнала актуаторам). Вместо физического пространства (тело вполне может отставать) используем виртуальное -- будем плодить нейроботов, вместо замены личности сделаем помощника (Cortana и Siri уже делаются и работают, нужно будет сделать что-то не хуже, это и будет "развитие" а не повторение-погоня за лидером). Далее демонстрация народу и торжественный роспуск за прекращением финансирования.

Ну, из участников проекта кто чему научился, может торговать дальше, но это уже неучитываемая выгода (в том же проекте Apollo довольно много абстрактно интересных технологий были просто забыты за десятки лет с тех пор -- никому абстрактно интересные технологии конкретно не пригодились. Никто и не скрывал цели проекта Apollo: показать этим русским, где гордость американского народа. США отнюдь не империя добра, социализма там хватает тоже). Деньги списываются по статье "народные праздники" и "государственная гордость". Обоснование путём предъявления результата и риторики "мы за ценой не постоим, не все результаты меряются в деньгах". Раньше выставляли народу бочку пива, а теперь Олимпиаду, Крым, Нанотехнологии и Нейронет.

Так что этот театральный вариант "праздника для народа" должен рассматриваться не по научной или производственной, а исключительно по идеологической линии, как Олимпиада. Оно было бы для НТИ естественным и понятным в организовывании, а стоило бы даже дешевле Олимпиады. Странно, что дело ещё не полностью потекло в этом русле и этот пусть обсуждается только в кулуарах кулуаров правительства, а не в самих кулуарах. И да, что потом из обсуждений в кулуарах правительства (где есть ещё живые люди) останется после прохождения через само правительство -- этого вообще нельзя предугадать.
Wednesday, September 2nd, 2015
11:49 pm
lytdybr
Отрок слушает раннюю Агату Кристи в количестве (ибо поздняя она совсем вялая), все эти отечественные крипипасты берут музыку оттуда -- не столько из-за музыки, сколько из-за слов. Урок восьмой кириенковского курса алгоритмики "функции" (http://informatics.mccme.ru/mod/statements/view.php?id=3962) включет в себя редкий раздел математики восьмого класса, проходимый главным образом в физматшколах, а в остальных проходимый мимо -- области определения функций, требующий решения уравнений в неравенствах (задачи C-F). Ну, и нужно оформлять это функциями Питона, этому посвящены первые задачи. Так что занятия пошли по факту по математике и программированию в одном флаконе, велосити всего пара задач в день. Ничего, главное тут не скорость движения, а его непрерывность и неуклонность.

У меня самого последние дни уходили на освежение ситуации с инженерией требований. Итог: все тренды, о которых я говорил, за последнюю пару-тройку лет реализовались, стандарт ISO 15288:2015 (вышел в мае 2015) их задокументировал -- практики жизненного цикла требований чуток поменялись, там есть уже и в явном виде работа с возможностями (в смысле альфы "возможности"), и работа с потребностями стейхколдеров отдельно от работы с требованиями стейкхолдеров (работа с требованиями стейкхолдеров была отделена от работы с системными требованиями ещё на предыдущем такте развития дисциплины). Следующий тренд будет связан с автоматизацией содержательной работы с требованиями (до этого автоматизировалось главным образом управление требованиями), текущие стандарты этого совсем не отражают пока.

Середина следующей недели у меня в Екатеринбурге, буду вести стратегическую сессию по научной работе УрФУ, применять системное мышление на практике. Публичных мероприятий с моим участием там не планируется, насколько я знаю.

Мои тезисы про интеллект-стек и поддержку его инфраструктурных уровней разными видами организаций попали таки в кулуары правительства (через фейсбуковскую группу нейронет-НТИ). Нет, я не надеюсь, что там что-то полезное будет сделано. Я намеренно не вошёл в экспертные приправительственные комитеты. Канифолью на этих встречах не пахнет, как в хакспейсах, архитектуру нейронных сеток не обсуждают, как на хакатонах, научных статей не разбирают, как на семинарах, поэтому содержательной и организационной пользы я усматриваю от этих встреч ноль (помним про обратный закон Конвея -- нельзя обсуждать архитектуру и организацию отдельно), но вот вред от правительства может вылезти в самой неожиданной форме, уж такое у нас сейчас правительство. Будем надеяться, что мои идеи там не дадут каких-нибудь неправильных побочных эффектов (уж не знаю каких, каждый раз изумляюсь этим бодрым чиновничьим головам). Хотя в мире вокруг правительств чего только не делается в интересных мне областях. Вот, NVIDIA открыла R&D центр по глубокому обучению в Сингапуре -- и тамошнее правительство радостно помогло: https://www.digitalnewsasia.com/digital-economy/nvidia-announces-deep-learning-rd-centre-in-singapore. Но помогло, похоже, только советом и любовью, ибо деньги все от самой NVIDIA ($14.2млн). А в блоге у себя NVIDIA популяризирует deep learning на Julia -- и безо всякого правительства: http://devblogs.nvidia.com/parallelforall/mocha-jl-deep-learning-julia/

Настоящие прорывы и прогрессы обычно идут не при помощи чиновников, а вопреки им. Например, тот же Uber переизобретает общественный транспорт, раньше таким только на уровня правительства заморачивались. Его машины начинают всё больше и больше напоминать маршрутки (а мы видим во всех городах, как маршрутки серьёзно конкурируют со всеми остальными видами транспорта). Вот материал об этом с торжественным названием The Uber Endgame -- http://www.theawl.com/2015/08/ubiquity (и мы помним, что самому Uber поддержка его водителей не нужна, он поддерживает пассажиров, и с радостью заменит водителей автомобилями-роботами. То же самое сделает и Lyft, и все другие подобные фирмы). Ну, это делается при содействии правительств? Нет, отнюдь. Вот и с нейронетом, нейроморфным компьютингом и т.д. -- лучшие и самые прорывные вещи будут делаться вопреки правительствам, которые будут приравнивать искусственный интеллект к оружию (как когда-то приравнивали пишущие машинки и криптографию), запрещать компьютерам давать медицинские советы (и врачи будут ходить на демонстрации перед окнами чиновников, чтобы те их поддержали) и т.д.. Ах, есть ещё военная ветвь, для которой всё это будет можно и нужно, и дайте две, но мне не хочется поддерживать очередные мирные украинские и грузинские войны.

Прошлая порция зелёного чая (я в последнее время покупаю его в магазине через дорогу от "Граблей" на Пятницкой-Новокузнеской) оказалась странной: мягкой, когда начинаешь его пить, и очень терпкой при окончании чаепития. Результат: закончился за пару недель, чего давно не бывало -- жене он ну очень уж понравился, она любит более терпкие. Купил опять, удвоив порцию. Продавщица сказала, что она тоже сомневается, что он зелёный. По её мнению, он скорее уж жёлтый. Но Хуан Хуа Чжэнь (солнечные лучи) везде идёт как зелёный! В общем, если хотите странных ощущений -- попробуйте, он ещё и дешёвый. Заодно взял тегуанинь с черенком, на вид это тегуанинь с кусками веток, никогда такого не видел. Обещали более терпкий вкус. Сейчас поглядел в Сети, он идёт везде как бюджетный ("раньше считался полуфабрикатом, не прошедшим все стадии производства"), а продали мне его как элитный -- за необычность в России. )))

Вот это видео я смотрел уже несколько раз, под него хорошо медитируется о человеческом совершенстве (других людей), человеческом несовершенстве (себя любимого), сложности воспитания из себя обезьяны, если у тебя таких способностей нет, бесполезности воспитания из себя обезьяны, ибо не в этом предназначение человека, о несовершенстве собственных представлений о границах возможного и невозможного, о том, как я был неправ, когда в молодости сильно гордился тем, что на велосипеде везде и всегда ездил без рук, другого уровня езда мне просто в голову не приходила -- https://youtu.be/P3WnQ246f1g


Страница героини этого ролика -- https://www.facebook.com/pages/Nicole-Fr%C3%BDbortov%C3%A1-krasoj%C3%ADzda/904808089583787

Открыто штук пятьдесят табов в браузере на достижения AI, типа "Кортана научилась переводить фразы на 38 языков, включая клингонский" (то бишь есть теперь не только гугль и яндекс переводчики, но и виндоуз-переводчик, хотя только в американской и китайской версиях Виндоуз -- https://nplus1.ru/news/2015/09/02/cortana-translate). Но я вам не СМИ и не журналист, я стараюсь воздерживаться от простых повторений новостей у себя в ленте, если мне самому нечего сказать по поводу этих новостей. Хотя по поводу всех этих новостей мне и есть что сказать, только времени на говорение нет.
2:42 pm
Скидка на тренинг системного мышления для моих читателей
19 сентября 2015 у меня будет первый из серии шести однодневных тренингов системного мышления.

Первый тренинг будет по теме "Как определить свою систему среди чужих" -- http://nisse.ru/training1/, с 1 сентября там, как обычно, чуть поднялась цена. Но я договорился с организаторами, что до конца этой недели (до 6 сентября включительно) для читателей моего блога они дают возможность заказа тренинга по старой цене. Для получения персональной скидки нужно написать им письмо на school@nisse.ru и процитировать какой-то ваш любимый пост из моего блога.

Эти тренинги планируются так, что при их последовательном посещении можно будет выходить на использование системного мышления в стратегровании, к шестому тренингу для этого будет уже достаточно материала (а при старании и усердии участников, ещё и достаточно навыков).

Системное мышление часто критикуют за его сложность в освоении и сравнивают в этом плане с высшей математикой. В этой серии тренингов я пытаюсь разбить системное мышление на какие-то отдельные мыслительные приёмы, которые поначалу можно пытаться тренировать независимо. Высшую математику-то тоже так дают, хотя в применении все эти приёмы мышления обычно одновременно и связно участвуют.

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

В тренингах этой серии темп предъявления материала будет чуть ниже, чем у меня обычно бывает, за счёт этого больше времени будет и на мои примеры, и на работу с проектами участников с получением от меня немедленной обратной связи. Так что качество усвоения приёмов мышления должно будет вырасти.
Tuesday, September 1st, 2015
11:09 am
Об день знаний
Мой отрок сегодня высыпается и идёт официально на плановый визит к врачу (а уж мы позаботились, чтобы этот плановый визит пришёлся на первое сентября). Мимо всех этих линеек с кадетами, гимнов, патриотических уроков, батюшек по разнарядке и прочего идеологизированного отсутствия учёбы в первый день. Это не значит, что у парня сегодня не будет учёбы. Нет, свою ежедневную дозу знаний он получит, сполна, как и вчера и каждый день до этого. Вечером он у меня спросил, "а зачем вообще ходить в школу"? Я отвечал очень и очень невнятно, зачем. Причём сбежать с этой подводной лодки пока не получается.

Сегодня в РФ начинает действовать норма об обязательности изучения второго иностранного языка в школе, для всех -- начиная с 5 класса. Мне кажется, что и это тоже профанация: на изучение иностранного языка (впрочем, к другим предметам это тоже относится) нужны совсем не маленькие часы -- при скорости полчаса в день, а больше по факту никто выделять на каждый язык не будет, IMHO сколько забывается, столько и выучивается (метафора "ледяной горки" -- там как останавливаешься, так и сползаешь. Ну, или добычи огня трением: останавливаешься или теряешь скорость -- и весь твой нагрев от трения мгновенно остывает). Надёжно выучивается язык за примерно три часа в день каждый день -- но этого времени для одного языка даже нет, а уж где взять для двух?! Нейронные сетки учатся медленно, это нужно учитывать при составлении программ и стратегических учебных планов ("Как зажечь мастерство" -- http://ailev.livejournal.com/1130190.html).

Я всё больше и больше убеждаюсь, что окружающее меня официальное образование настроено на предметную работу, в нём немного места для тьюторской деятельности (построение индивидуального образовательного маршрута через множество курсов, чтобы была правильная последовательность изучения этих курсов, и времени на "зажигание мастерства" хватало -- хорошо про тьюторство рассказано в докладе Петра Щедровицкого http://youtu.be/g5BKDAT5Gto (35 минут, слайды тут, а мои комментарии к его докладу http://ailev.livejournal.com/1145422.html).

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

Я на эту тему (как собрать все курсы в какое-то осмысленное целое) писал неоднократно, в том числе
-- давал эскиз образовательного проекта в 2011 году http://ailev.livejournal.com/961237.html,
-- недавно прописывал постановку задачи ситуационного сведения знаний, где curriculum был одним из частных случаев http://ailev.livejournal.com/1208826.html
-- прописывал отвязку задачи построения учебной программы от понятия "профессии" (поскольку эта парадигма "профессионального образования" сдохла по факту) http://ailev.livejournal.com/1209566.html, давал иллюстрацию на примере робототехники http://ailev.livejournal.com/1211426.html

Что удалось сделать с тех пор? Мне -- немного. Я попробовал для экспериментов в автоматизации выявления зависимости предметов друг от друга получить в машиннообрабатываемом виде школьный учебник алгебры, учебник матана и ландавшица. Выяснилось, что это сама по себе нетривиальная задача: мультимодальными (формулы, таблицы, графики) текстами никто не озабочен -- все такие тексты в форматах дежавю и пдф, то есть не машинообрабатываемы. Вот они все в одном месте собраны, математика и физика: http://mat.net.ua/mat/

Математические и прочие технические тексты должны быть для машинной обработки, например, в LaTeX. Для надёжного перевода STEM-учебников в такой (или аналогичный по выразительности) формат нужны спецусилия и платный спецсофт (типа http://www.inftyreader.org/?p=166).

Но есть и первосентябрьский позитив: после семи лет разработки и $100млн. инвестиций (по текущему курсу это 6.5млрд.рублей инвестировано в одну компанию, можете себе представить такой проект в области образования у нас в стране?) в сеть вышла адаптивная образовательная платформа -- https://www.knewton.com/ (и никакого там русского языка, понятно, не ждите). Там совсем не всё автоматическое в плане пополнения этой платформы. Всё ручками учителей и методистов-предметников. Автоматическое там как раз тьюторство, совмещённое с преподавательством: платформа не только ведёт маршрут образования по одному предмету, но и пытается отслеживать межпредметные связи (там сейчас математика, физика, английский, историю вот-вот добавят) и подстраивает темп обучения и трудность каждого куска под конкретного ученика. Работа с ВУЗами тоже ведётся, вовсю. В автоматизации тьюторства https://www.knewton.com/ сейчас лидер, хотя там полно и других интересных начинаний -- но все другие интересные начинания ориентированы главным образом на преподавание отдельных предметов (типа как http://solvy.com/ ориентировано на математику).

Ничего, к знаниям мы прорвёмся. Не по-русски, так по-английски. С днём знаний!
Sunday, August 30th, 2015
4:43 pm
lytdybr
Попсовость моих постов удобнее всего оценивать по счётчикам перепостов (не по счётчикам лайков! Лайк как таковой ничего не значит, от слова "вообще") трансляции в фейсбук. Так сказать, "индекс цитирования", а не "индекс любви". В ЖЖ никаких метрик попсовости и цитирования нет. Для себя же я оцениваю свои посты не по их внешней попсовости-цитируемости (ну какая там попсовость у "Лабораторного журнала"!), а по тому, как часто мне потом приходится к ним возвращаться -- как часто их потом поминаю и цитирую я сам. Интересно было бы иметь в постах счётчики самоцитирования, оценку "субъективного вклада в себя".

Это я рефлексирую по поводу вчера-позавчера написанных многабукафф в блог. Это было как "отпуск кондуктора" -- старинная байка психологов про то, как кондуктор из Германии берёт отпуск, в котором едет в Африку и месяц там продаёт билеты в сельском автобусе. Те же "каникулы Бонифация", профессиональный вариант. А почему так получилось? Правильно, на прошлой неделе я написал несколько десятков страниц для клиента -- а записи в блог это и были мои двухдневные каникулы от этой писанины.

Отрок настрополился вместо решения задач смотреть мультики, а для маскировки делать это без включения звука. Сегодня утром он провёл "в размышлениях над задачей" четыре с половиной часа, после чего я не выдержал и продемонстрировал ему историю браузера. "Хвост феи", много серий, все были отсмотрены без звука (какое в этом удовольствие, я не пойму). Ну и две страницы картинок из игры "Копатели". Песни из Five Nights at Freddy's сменились на этой неделе русскоязычными абсолютно аналогичными по стилистике ужастик-песнями (крипипастами, creepypasta -- "страшилками", страшными историями, http://creepypasta.wikia.com/wiki/Creepypasta_Wiki, http://www.creepypasta.com/, http://www.creepypasta.org/ и так далее) серии "Джефф-убийца" (Jeff the killer) -- https://www.google.com/search?q=джефф+крипипаста

Мы сделали эксперимент: продемонстрировали ему разного декаданса -- муми-троль с "Утекай" был забракован, даже в варианте бодрого кавера от Пианобоя, а вот Агата Кристи с "облака в небе спрятались" вполне подошла. И да, традиционный боевой клич пробегания по коридору, который был генделевской "Аллилуйей", стал вдруг генделевской "Крипипастой". Звучит это невероятно свежо, сильно и убедительно, действительно creepy.

Приближающееся начало нового учебного года совместилось с традиционным литовским праздником Обломайтис: вечерняя физматшкола МИФИ, куда мы намылились-нацелились, перестала брать в этом году семиклассников. Там тоже произошли слияния-поглощения, отмена набора семиклассников явилась прямым следствием. В итоге мы выбираем между аналогичными школами бауманки и менее известными, но более удобными в плане дойти-доехать. Нужен традиционный набор: физика-математика (иногда в пакете там ещё и русский и даже изредка в таких школах встречаются информатика и английский). Математику на уровне 7 класса физматшколы наш отрок знает, но вот все остальные предметы ему бы сильно пригодились, при этом очная вечерняя школа нужна главным образом как источник дисциплины: чтобы строгим голосом раз в неделю обязательно требовали предъявить решённые задачи, сбежать было нельзя, а предъявляющие эти решения бодрые одногруппники были бы укором.

В уроке седьмом ("цикл while") осталось три задачи, до начала школьных занятий есть шанс этот урок закончить (хотя там такие задачи, а текущий крипипастовый настрой такой, что окочание не гарантировано). Чуть меньше половины курса (7 уроков из 16) за месяц, при этом результаты (в смысле усвоенных знаний и навыков) мне не нравятся: похоже, что range и for усвоены несмотря на обилие решённых с ними задач чисто формально, шаг вправо-влево на их темы выбивает отрока из колеи. Урок 8 там "Функция, рекурсия", урок 9 "Списки" (http://informatics.mccme.ru/course/view.php?id=156), поэтому я пока не переживаю -- до конца курса должно быть достаточно примеров, чтобы разобраться. Но это уже пойдёт на фоне школьных занятий, т.е. ещё медленней. А в конце сентября начнётся какая-то вечерняя школа с домашними заданиями, и на алгоритмику почти совсем времени не останется. Ну, уж как нибудь. С алгоритмикой оттягивать больше некуда, нужно дожимать. Отрок спросил тут давеча: "Когда эта информатика кончится"? Я ему вежливо ответил, что это другие предметы когда-нибудь кончатся: литература, география. А вот информатика уже никогда не кончится. Он как-то подозрительно легко к этому утверждению отнёсся, наверное не понял.

Наткнулся на чудесную картинку (http://hangmoon.deviantart.com/art/Impressionism-527293603):

Раскопки показали, что это вполне московское произведение искусства (http://hangmoon.deviantart.com/), и сделано оно в изумительном профессиональном художественном редакторе -- http://www.paintstormstudio.com/. Поглядите рекламу фич этого редактора, она сама по себе произведение искусства: https://youtu.be/oXUReniLyqw. Это круто, круто, круто! И всего $19. Аж самому порисовать захотелось, что со мной более чем редко бывает -- графики я больше потребитель, чем производитель. Потребляю же регулярно. Чёрно-белую главным образом в виде манги (http://mangapark.me/), а ещё интересно смотреть акварели и удивляться (их обычно дают в изобилии тут: https://www.facebook.com/groups/446785002149684/).

Активно обсуждается факт, что результаты чуть ли не 80% психологических исследований невоспроизводимы -- https://nplus1.ru/news/2015/08/28/psychology-studies-fail-reproducibility. Кто б сомневался! Вообще, "научно воспроизвести" меня самого утреннего поздним вечером уже трудно, так что там говорить о более общей ситуации!
Saturday, August 29th, 2015
11:56 pm
Делёжка статистической силой, обучение без учителя и вероятностные языки программирования
Когда говорят sharing statistical strength, то имеют ввиду перенос обучения из одной модели на одних задачах в другую модель, которая должна работать с другими задачами. Это словосочетание часто используется в тусовке deep learning. Что-то типа "образования", education (вместо "обучения", training) -- нахождение хороших репрезентаций, пригодных для многих типов задач.

"Statisticians sometimes refer to this phenomenon of inference in hierarchical models as "sharing of statistical strength": it is as if the sample we observe for each bag also provides a weaker indirect sample relevant to the other bags. In machine learning and cognitive science this phenomenon is often called learning to learn or transfer learning. -- http://projects.csail.mit.edu/church/wiki/Hierarchical_Models. Удивительно, но люди в deep learning говорят как статистики, а не как спецы по machine learning или cognitive science -- во всех тьюториалах там именно sharing statistical strength, а не transfer learning или learning to learn. Но пользователи программных пакетов всё чаще изобретают свои собственные имена для этого, с упором не на теорию и результат (знание, статистика), а на метод (т.е. с акцентом именно на "обучение") -- см. дискуссию в http://vk.com/topic-44016343_29508229

Обсуждается это обычно в ситуациях претренинга, все эти unsupervised learning, semi-supervised learning. Но вот определение и объяснение sharing statistical strength находится больше в работах по вероятностным моделям мышления (и связанных с ними работам по вероятностным языкам программирования), а не в работах по deep learning. Глубокосетевики лишь используют это определение, причём у них с этим unsupervising learning больше хотелок и вопросов, чем каких-то результатов (намёк на результаты был лет пять назад и sharing statistical strength до сих пор поминается во всех тьюториалах), но этот намёк так и не был реализован в полной мере). Так что пока никакой делёжки статистической силой не происходит, но идея в массах живёт и ждёт своего часа -- про важность unsupervised learning поминают все, хотя возятся с ним немногие, с supervising learning ведь ещё не наигрались, там результаты проще пока получаются.

В любом случае, это вроде как онтологический язык (поделиться найденной upper ontology -- найденными фичами, которые пригодятся в самых разных ситуациях), а с другой стороны в рамках чисто эпистемологического разговора ("как узнать", про обучение и передачу результатов обучения). Вот этот уход от онтологии (она "какая получилась, такая получилась -- не будем вдаваться в подробности, там просто какие-то коэффициенты, их много, пусть себе живут, фичи есть, работают и нечего на них смотреть") к эпистемологии (как мы получаем эти коэффициенты и что потом с ними делаем -- вот это важно, давайте обсуждать) мне очень симпатичен. Я давно интересовался эпистемологией (http://ailev.livejournal.com/661094.html), потихоньку это начало реализовываться, хотя и немного странно.

Интересно, что обсуждают делёжку статистической силой люди, которых интересуют вероятностные модели мышления -- и далее они идут по линии классического AI и предлагают средства программирования, планирования, вывода: статистические языки программирования, точно так же, как предлагали логические и функциональные языки программирования. Опора на те же онтологии, только вероятностные. Почувствуйте разницу с подходом с опорой на эпистемологию, где интеллект не вероятностно программируется, а вероятностно обучается!

Вот несколько ссылок по теме:
-- иерархические модели в вероятностных моделях мышления: http://projects.csail.mit.edu/church/wiki/Hierarchical_Models (в том числе подробненько про абстракцию как подъем по иерархии, включая вычислительные примеры на Church).
-- книжка по вероятностным моделям мышления ("Probabilistic Models of Cognition" by Noah D. Goodman and Joshua B. Tenenbaum), https://probmods.org/
-- основное гнездо вероятностного программирования: http://probabilistic-programming.org/
-- вероятностный язык программирования Church, http://projects.csail.mit.edu/church/wiki/Church
-- вероятностное программирование (вернее, его пока отсутствие) в Julia -- https://groups.google.com/forum/#!topic/julia-stats/b9koPYTW3os ("A lot of people have worked on ideas for probabilistic programming in Julia, but no one seems to have time to work on it much at the moment" -- главный вывод дискуссии).
-- запрос в Гугле, который выдаёт самые разные тьюториалы по deep learning с shared statistical strength разделом: https://www.google.com/search?&q=%22sharing+statistical+strength%22+deep+learning

Мутно это всё, конечно, но через некотрое время будет важно.
10:20 pm
Антиципация по-русски -- на английском
На английском вышла книжка про советский и российский вклад в антиципацию (anticipation -- предвосхищение, предугадывание, упреждение). В философии и психологии это область исследований про то, как человек предвосхищает будущие ситуации, а в искусственном интеллекте это ровно про то же самое, только занимается этим не только человек, а "и человек тоже" -- агент (https://en.wikipedia.org/wiki/Anticipation_%28artificial_intelligence%29).

Вот книжка: http://www.springer.com/us/book/9783319194455 -- "Anticipation: Learning from the Past. The Russian/Soviet Contributions to the Science of Anticipation", Editor: Mihai Nadin.

Вот ещё в 2014 году вышел спецвыпуск International Journal of General Systems по антиципации -- http://www.tandfonline.com/toc/ggen20/current, там тоже есть работа по советскому и российскому вкладам --
"From Russia with Love / Russian experimental and empirical contributions informed by an anticipatory perspective" by Mihai Nadin & Andres Kurismaa, pages 615-620 -- http://www.tandfonline.com/doi/full/10.1080/03081079.2015.1032074

Вопрос реактивного и проактивного поведения, необходимости иметь модель себя и окружения ровно для того, чтобы предвидеть последствия своего действия или бездействия -- этот вопрос стоит и перед биологами, и перед психологами, и перед когнитивистами, и перед представителями нейронаук, и перед разработчиками систем управления, а сегодня так и вообще перед системными инженерами (особенно, если мы хотим делать resilient system, которая выживет там, где другая система просто сломается). Работ в этой сфере много (в статье в Википедии упор на работу Розина 1985 года, но занимались этим ведь давно -- в русскоязычной статье википедии про антиципацию начинают с "впервые ввёдшего термин в оборот" В.Вундта, но поминаются даже стоики и эпикурейцы как первопроходцы). Конечно, это всё история науки и инженерии (в той мере, в которой AI относится к инженерии), но я знаю, что некоторые мои читатели не только занимаются настоящим и будущим, но и очень любят историю. Им, думаю, будет любопытно.
8:29 pm
Об "курс робототехники" и чему в нём учат "проекты"
Опять ввязался в фейсбуке в разговор про то, что такое "курс робототехники" -- https://www.facebook.com/alx.kornilov/posts/1666426850235544 (пост Алексея Корнилова). Там обсуждалась табличка компетенций программиста (их было много таких, типа http://sijinjoseph.com/programmer-competency-matrix/, но год назад была сделана новая инкарнация, на базе европейской классификации уровней владения языками -- http://science.raphael.poss.name/programming-levels.html).

Дальше обсуждение пошло по линии "всё, что нужно программисту, нужно робототехнику", и "ну и как программирование гироскопа в леговском EV3 продвигает движение студента по этим уровням?", "в чём образовательная фишка курса робототехники"?

Тут я и ввязался с парой комментов, которые я сюда вытащу и лишь чуток отредактирую (более обстоятельно этот вопрос я обсуждал в других местах, прежде всего доклад "Непрерывное инженерное образование. Итоги 2014 года и планы", видео и слайды в http://incose-ru.livejournal.com/50538.html. Разъяснение про "практика=дисциплина + технология" дано в учебнике "системноинженерное мышление", http://techinvestlab.ru/systems_engineering_thinking).

Ключевое различение для ответа на вопрос "где тут образование, если студента учат программировани гироскоп в EV3" следует из формулы "практика = дисциплина + технология". "Гироскоп вообще" -- это понятие (учебной) дисциплины, и пока не определили, что это такое и из какого учебного предмета это понятие, и в каком объеме эти сведения про "гироскопы вообще" нужно изучить и мыслительные операции с "гироскопами вообще"нужно освоить, совершенно бессмысленно обсуждать "гироскоп в EV3" и бессмысленно программировать его -- образовательных следствий такое программирование не имеет.

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

Дисциплины, "гироскопы вообще" -- это образование. Проекты и "гироскопы EV3" -- это не образование, это по факту тренинги (при этом хорошего образования без этих тренингов не получится, будет оторванное от жизни знание теории и неумение решать задачи -- то есть неумение отождествить теоретические объекты с объектами из жизни).

Чем хороша таблица компетенций программиста, приведённая топикстартером в фейбуке? Она в терминах дисциплины и применима к любой технологии (понятие "код", "функция" и т.д. это из дисциплины software engineering), а вот если бы там была Visual Studio и С++ это было бы про конкретные технологии.

Дальше помянули два потенциальных проекта робототехники:
1. Робот-теннисист (см. мой большой текст с описанием возможных дисциплин курса и видео самого робота в http://ailev.livejournal.com/1159346.html),
2. Робот-гимнаст, я просто привёл его видео (там целый канал с этими видео -- http://www.youtube.com/channel/UCYQDHzSrOA6sFVk7gPjnRWg):



Теперь можно пообсуждать: какие знания нужно загрузить в голову студентов, чтобы их можно было использовать в обоих проектах, использующих абсолютно разную элементную базу -- и гимнаста, и теннисиста (а также, по возможности, и всех остальных робототехнических проектов)? Эти знания и будут необходимые образовательные дисциплины. А то, что в этих проектах что различается -- эти знания будут про технологии (типы моторчиков, варианты 3D принтеров или обрабатывающих центров с их инструкциями эксплуатации, умение держать в руках отвёртку или паяльник или паяльную станцию или программатор конкретной фирмы -- это всё технологии, они на каждом производстве, у каждого предприятия разные. А дисциплина, она должна быть из ВУЗа, одна для всех возможных вариаций технологий, надёжно загружена в голову и натренирована на использование с самыми разными поддерживающими эту дисциплину технологиями).

Дальше вопрос был про системотехнику: типа как "это ж отдельная профессия, не робототехника. Студентам нужно чего-то попроще". Мой ответ был в том, что пока не будет надёжно понято, чем системная инженерия отличается от (советской) системотехники -- то ничего вообще не получится. Системная инженерия как раз про создание чего-то законченного ("успешной системы", как сказано в определении системной инженерии), при этом коллективом инженеров, маленьким или большим коллективом это важно, но не приципиально важно. При обучении студентов системной инженерии они как раз законченный проект делают (иногда и в соревнованиях участвуют). Но! Они не просто "целенаправленно, много и тяжело трудятся" (как это обычно понимается при обычном сейчас в России "проектном подходе к обучению"), они рефлексируют этот свой труд в свете образовательной дисциплины, они выполняют всё "по норме", дисциплинированно и независимо от технологии самого проекта.

Так, они реально разрабатывают требования и понимают, что это требования, и записывают их не абы как, а, например, используя форму "из учебника" -- "я как _стейкхолдер_ хочу _свойства-системы_ для того чтобы _польза_. Типа "я как архитектор хочу использовать в коммуникационном модуле протоколы WiFi, чтобы потом мне не мучиться с нестандартными чипами и нестандартным софтом и для беспроводного быстрого подключения целевой системы к операционному окружению в жилой квартире". Для надёжности можно спросить студента, где и как был использован системный подход в таком описании, что этот системный подход даёт. И сурово снизить оценку, если эта теория была не использована в проекте. Ну, или пусть продемонстрируют другую практику работы с требованиями. Но точно будет незачёт при работе "по наитию", "на чистой смекалке", "на коленке" -- зачёт будет только при демонстрации практики (знания дисциплины и владения технологией), имеющей отношение к системному подходу.

Какие знания нужно давать инженерам, кроме специфических дисциплин (ТАУ, электроники, software engineering и т.д.), чтобы они могли справиться с коллективным проектом? Курс системноинженерного мышления (мой учебник, например -- http://techinvestlab.ru/systems_engineering_thinking), курс системноинженерных практик (у меня это второй семестр, во второй версии учебника это скрыто в обзорах литературы по соответствующим практикам) и предметные знания типа тех, что давались в посте для робота-теннисиста (вот они могут быть раскиданы по разным людям). Плюс обязательно системоменеджерские практики, например Lean 2.0 и kanban -- работы ведь нужно как-то планировать и выполнять. Ну, и инфраструктура для всего этого (моделеры, issue tracker). "Инфраструктура" -- это технология, конечно. Ибо опробовать теорию можно только на базе какой-то технологии, не абстрактно.

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

Системная инженерия стремительно сейчас проникает во все другие инженерии, часто рваными кусками и под другими названиями, с использованием другой терминологии. Во всех самых разных инженериях сейчас внимательно относятся к требованиям, управляют конфигурацией, разрабатывают архитектуру, проводят не только проверку (verification), но и приёмку (validation) -- хотя ещё пару десятков лет назад этим вопросам уделяли много меньше внимания.

Так что я не согласен с постановкой вопроса про обучение инженерным специальностям без преподавания им основ системной инженерии. Ещё я не согласен, что системная инженерия это обязательно профессиональная деятельность (см. также про развал понятия "профессия" в последние годы технологий "полнотекстового поиска" -- пост "об профессии и их атласы", http://ailev.livejournal.com/1209566.html). Есть какой-то набор мыслительных и деятельностных знаний и навыков, а также компетенций (например, личностная компетенция честно прочекивать чеклист до конца, и не скипать пункты. Компетенция думать о системе не только по состоянию на момент её разработки, но и про то, что в какой-то момент система будет изготавливаться, а в какой-то момент ещё и эксплуатироваться -- то есть компетенция удерживать в голове весь жизненный цикл, а не зацикливаться только на своей стадии и своей практике). Это и есть системная инженерия, совсем необязательно это должно стать профессией. Я вот пишу практически каждый день, но профессия у меня отнюдь не "писатель". То же и к системной инженерии относится: компетенции по системной инженерии у инженеров есть, и они используются. Но необязательно эти инженеры именно системные инженеры, как необязательно все пишущие -- писатели.

Если человек умеет работать с требованиями, то он системный инженер по определению -- в тот момент, когда работает с требованиями. Это его функциональная роль "инженер по требованиям", подроль системного инженера, но не факт, что это "профессия" (и не факт даже, что у этого человека вообще есть какая-то "профессия" традиционно понимаемая, опять сошлюсь на http://ailev.livejournal.com/1209566.html).

Скучная была дискуссия, по кругу про одно и то же... Неинтересно было отвечать на вопросы. Скажем, на лекции открытой (которая и была когда-то записана на видео аж в 2012 году, сутки рассказа -- http://video.techpred.ru/lecturer/LevenchukAI/), а также в моём курсе сейчас (который отражён в учебнике http://techinvestlab.ru/systems_engineering_thinking) меня меньше всего заботят студенческие учебные проекты. У моих студентов обычно не учебные, а вполне боевые рабочие проекты, в которых они участвуют (подробней я писал о том, как это получается в межвузовских инженерных школах, тут: http://ailev.livejournal.com/1181065.html). Можно обсуждать, плохо это или хорошо, для образования (есть мнение, что для начала нужно тренироваться на игрушечных проектах, и только потом тебя можно будет пускать в проекты реальные), но это так. И ничего, образование работает и с таким подходом: "требования" те же нужно уметь отличать от "планов испытаний" и для спичечных коробков, и для лазеров, и для софта. Дело-то не в размере проекта и не в типе целевой системы! Дело в том, чтобы в любом проекте понималось, что без требований нельзя, без планов испытаний нельзя, и что существует связь между требованиями и планами испытаний. И испытания проверки и приёмки, и не делать испытания приёмки низззя! Это должно оставаться от учебного курса, в голове должна оставаться дисциплина: не делать испытания приёмки низзя! не писать требования хоть по какой-то методе, просто перечисляя что-то на бумажке -- низзя! Образование должно выдавать на-гора дисциплинированного инженера! Дисциплина должна быть натренирована в паре-тройке конкретных технологических инфраструктурах!

В университете Лафборо для системных инженеров курс системного мышления 150 часов, архитектуры тоже 150 часов, инженерный проект -- 600 часов. Я даю сегодня курс системноинженерного мышления 32 часа + ещё 36 часов для практик (всех скопом -- архитектуры, требований, испытаний, управления конфигурацией и т.д., буквально по нескольку часов на каждую практику). И больше часов не предусмотрено, хотя это и универсальное знание, которое обеспечивает целостность инженерного проекта в части объединения знаний всех других дисциплин. Вот и делайте выводы: почему электронщики и программисты, менеджеры и специалисты по ТАУ не могут сформулировать требования, поделить работу на части и собрать результаты, забывают испытать систему, не имеют слов для обсуждения вида жизненного цикла -- и жизненный цикл остаётся необсуждённым.

Часть студентов после этого краткого курса интересуется и дальше занимаются самостоятельно до освоения на очень приличном уровне. Часть просто пропускают материал мимо ушей (я проверял: материал других преподавателей они точно так же пропускают мимо ушей, это не только моему предмету так везёт). Часть осваивают ровно в объеме этих 32+36 часов, но не факт, что используют эти знания потом в работе. На практике в группе примерно по трети каждой категории. Опять же, вопрос такой же, как к курсу математики: какой объем давать инженеру матана? Особенно в эпоху, когда Mathematica берёт аналитически любой интеграл? Тут вопросов на часы и способ обучения математике не возникает, а в отношении системного подхода почему-то возникает! Хотя меня тут же в дискуссии фейсбуковской поправили, что такой же нервный разговор про матан, как и разговор про системную инженерию.

Но если рассматривать то, чему учить именно робототехников, есть много более насущные и сложные вопросы. Скажем, без глубоких нейронных сеток через год (а то и прямо сейчас) робототехника уже не робототехника будет вообще. Когда глубокие нейронные сетки пришли на соревнования kaggle.com, то все другие виды алгоритмов проиграли. На соревнованиях робототехников будет то же самое, в рыночной кокуренции робототехников (по английски тут будет то же слово, что наши "соревнования" -- competition) будет то же самое -- без нейронных сетей роботы будут проигрывать роботам с нейровнными сетями. Всё будет быстро.

Но с deep learning сегодня засада в части инженерного образования. Инженерия нейронных сетей недоопределена, там куча особенностей по сравнению с программной инженерией. Как учить тому, что даже названия ещё не имеет, непонятно, но не учить нельзя: нейронные сетки и дисциплина, и целый букет уже технологий (поглядите на описание интеллект-стека, для робототехников это весьма и весьма актуально: http://ailev.livejournal.com/1210678.html). Вот такое нужно робототехникам для вставки в учебные программы и учебные проекты срочно обсуждать, а не фигнёй маяться по поводу "как совместить курс ТАУ и знания о существовании системного подхода": проблематизацию вообще понимания науки и инженерии и их связи http://ailev.livejournal.com/1207563.html (и раньше я поднимал этот вопрос странного типа инженерии, который появляется при работе с нейронными сетками в http://ailev.livejournal.com/1205999.html).
4:03 pm
Мейкеры делают EM-drive
Я от оч.умелых ручек мейкеров в изумлении. Мейкеры теперь смело берутся за проекты, которые раньше казались доступными только промышленным гигантам и университетским лабораториям.

Так, мейкеры сегодня делают EM-drive -- https://hackaday.io/project/5596-em-drive (идея в том, чтобы резко поднять частоту излучения, и тяга должна стать вполне ощутимой).

А вот сканирующий туннельный микроскоп -- https://hackaday.io/project/4986-scanning-tunneling-microscope, разрешение атомного уровня в домашних условиях (идея в том, как использовать дешёвый пьезоэлектрик вместо дорогого в сканере -- и она сработала).

Там таких проектов море: https://hackaday.io/ -- а ведь это только один из сайтов, поддерживающих мейкеров!
3:43 pm
Игра на нервах
Похоже, западная и восточная медицины таки начали склеиваться. Все эти "акупунктуры" и "остеопатии" потихоньку обретают твёрдую почву под руками (pun intended). Вряд ли отдельные группы исследователей знают о работах друг друга, но понимание того, что через раздражение нервов как-то можно влиять на клеточные процессы в тех или иных органах, растёт:

1. Висцеральная теория сна (http://ailev.livejournal.com/1117514.html) и её трактовка иглорефлексотерапии (http://ailev.livejournal.com/1124869.html). Суть: мозг во время сна производит вычисления по оздоровлению организма -- и для этого он связан с телом большим количеством нервов. Воздействуя на эти нервы в разных местах и разными способами, можно в какой-то степени подавать сигналы мозгу для активизации исправления тех или иных органов.

2. Можно стимулировать нерв (например, нейроимплантом), чтобы снимать воспаление. Нервы таки влияют на клеточные процессы!

There's a single nerve that connects all of your vital organs — and it might just be the future of medicine -- http://www.businessinsider.com/vagus-nerve-stimulation-2015-6.

Это оказывается целым трендом, появляется веб-проект Stimulating Peripheral Activity to Relieve Conditions (SPARC) -- http://commonfund.nih.gov/sparc.

Ещё в 2014 в Nature опубликован roadmap биоэлектронных лекарств (bioelectronic medicines): Realizing the vision of a new class of medicines based on modulating the electrical signalling patterns of the peripheral nervous system needs a firm research foundation. Here, an interdisciplinary community puts forward a research roadmap for the next 5 years. -- http://www.nature.com/nrd/journal/v13/n6/full/nrd4351.html

3. Триггерные точки миофасциального релиза и акупунктурные точки оказались одним и тем же! Этому посвящено довольно много работ: http://www.jpain.org/article/S1526-5900%2809%2900010-8/abstract

Миофасциальные триггерные точки (myofascial trigger point, это которые болят, ежели в них ткнуть пальцем, но бывает и так, что они просто болят уже без тычка пальцем -- https://en.wikipedia.org/wiki/Myofascial_trigger_point) в какой-то момент попытались обезболивать, вкалывая в них обезболивающее. А потом обнаружили, что эффект есть и в том случае, если туда колоть "сухой иглой" (она же игла для акупунтуры) -- http://www.ncbi.nlm.nih.gov/pubmed/20673246

Триггерные точки вполне себе "есть" и инструментально обнаружимы в активном виде -- Active trigger points consist of multiple contraction knots within a muscle, and they can develop due to injury, musculoskeletal dysfunction and overuse. Active trigger points impair a person’s ability to lengthen, strengthen or contract the muscle. As a result, the muscle shortens and compresses the structure around it, causing pain. -- http://www.ptplus.com/trigger-point-dry-needling/.

Так что появились вполне респектабельные статьи, где колят акупунктурными иглами под приборным визуальным контролем. Вот, например, статья даже на русском языке (2010г., Использование "сухого" иглоукалывания триггерных точек под ультразвуковым контролем в лечении дисфункции височно-нижнечелюстного сутстава. Первичный опыт. Клиническая иллюстрация и обзор литературы): http://www.researchgate.net/publication/256089585_Dry_needling_of_trigger_points_under_ultrasound_guidance_for_treatment_of_of_the_temporomandibular_joint_dysfunction._Primary_experience_clinical_illustration_and_literature_review

Результат: лицензированные остеопаты (занимающиеся миофасциальным релизом) и лицензированные иглорефлексотерапевты вошли в конкуренцию друг с другом и обратились к защите государства друг от друга -- вот, например, позиция ассоциации иглорефлексотерапевтов (а вы думаете, что они обрадовались?!): "сухое иглоукалывание" они называют "нелегальной и небезопасной практикой акупунктуры" и требуют для практикующих получения именно лицензии иглорефлексотерапевта: http://acupuncturewisconsin.org/dry-needling-10-facts-you-should-know-2/, это позиция иглорефлексотерапевтов Висконсина. Вот чуть более мягкая позиция у австралийцев: http://www.acupuncture.org.au/Health_Services/Dry_Needling.aspx

Ну, у миофасциальщиков тоже есть своя ассоциация, http://www.myofascialtherapy.org/, вполне западный подход к медицине, и за ними ответы не ржавеют. Они сливаются с остеопатами, которые, похоже задействуют в своих методах очень похожие механизмы связи нервной системы и органов (а поскольку остеопаты ещё и мышцами и костями интересуются, то любят добавить "механическую проблему лекарством не уберёшь" -- ибо если какой-то нерв защемляется, то это механическая проблема, а проявляться она может и на клеточном уровне в определённых органах). Литературы и методов там хватает, есть немного и по-русски: http://osteoway.com/osteopaticheskie-techniki.html

Пока миофасциальщики защищаются от того, чтобы их путали с акупунктурщиками: Although they use the same thin filament needles, acupuncture and dry needling are two very different treatments. In contrast to most schools of acupuncture, dry needling is strictly based on Western medicine principles and research. Acupuncture is used to treat Traditional Chinese Medical diagnoses of visceral and systemic dysfunction, while dry needling is used to assess and treat myofascial pain. Dry needling relieves pain by inactivating trigger points within muscles. Acupuncture achieves pain relief through the release of endorphins and creating balance in the body’s energy levels. Through the release of cortisol, acupuncture can also have an anti-inflammatory effect on the body. At PT Plus, our physical therapists are not licensed acupuncturists and do not practice acupuncture. Trigger Point Dry Needling and other physical therapy procedures are based on scientific neurophysiological and biomechanical principles. -- http://www.ptplus.com/trigger-point-dry-needling/. Но если этих миофасциальщиков порасспросить, они нехотя расскажут, что болят первичные точки и отражённые -- и боль надёжно проходит, только если тыкать иголкой в первичную точку, а не отражённую. Ну, разве что про "каналы" не рассказывают, объясняя связи между отражёнными пусковыми/триггерными точками и первичными.

Но совпадение карт триггерных точек и акупунктурных точек уже найдено, долгосрочные и влияющие на состояние внутренних органов эффекты тоже подтверждены, и продолжать отнекиваться, что "мы тут только местный мышечный спазм снимаем и местное воспаление" миофасциальщики долго не смогут -- а исследования по биоэлектронным лекарствам дадут им новые аргументы и новые инструменты (раздражать нерв иголкой это всё-таки не так хорошо, как раздражать нерв специально разработанным имплантом, или даже действовать на нерв каким-то неинвазивным методом -- типа тех, что используют в приборах магнитного воздействия на нейроны фирмы http://brainsway.com/).

Так что нас ждёт большая игра на нервах -- их будут стимулировать механически руками и иголками, теплом от полынных сигар, электронно и магнитно, и всяко-разно. Главное, становится всё понятней и понятней, как и где эти нервы стимулировать и почему от этой стимуляции в одном месте происходят изменения в органах, расположенных в других местах.

Я как-то получил несколько лет иглорефлексотерапии у плохо говорящего по-русски (ну, или наоборот, хорошо говорящего -- если сравнить с другими китайцами) китайца-даоса, потомственного врача. Так что у меня за всеми этими строчками и ссылками имеются не только чисто читательские впечатления, но и вполне физиологичный личный опыт. Я хорошо помню, что чувствуется, когда в тебя тычут иголкой или тыкают больно пальцем. И этот опыт вполне согласуется с тем, что можно прочесть по ссылкам в этом посте.
1:28 am
Интеллект-стек: что новенького?
Я обсуждаю интеллект-стек как стек платформенных протоколов для всех этих smart и intellectual приложений, которые начали появляться повсеместно. Тут два ключевых слова:
-- стек протоколов/технологий (платформенность-модульность, опора на стандарты. Ситуация примерно та же, какая была в момент появления стека протоколов TCP/IP -- конкурировали и построенные по семиуровневой модели OSI сети, и неведомые частные сети, и сети отраслевых консорциумов и отдельных университетов. Ситуация с пониманием стека протоколов интернета вещей и то лучше -- там уже договорились о том, что должен быть именно стек протоколов, не могут пока договориться, какой именно стек будет превалировать -- https://www.google.com/search?biw=990&bih=1537&tbm=isch&sa=1&btnG=Search&q=IoT+protocol+stack).
-- повсеместность. Это прямое указание на что-то инфраструктурное. Интеллект-из-машины становится повсеместным, значит он превращается в инфраструктуру. Инфраструктура, чтобы стать повсеместной, должна опираться на какой-то стандарт. Качественная инфраструктура опирается на лучшие из конкурирующих реализаций хороших стандартов.

Я обсуждаю технологии глубокого обучения как методолог системной инженерии, поэтому опираюсь в обсуждении этих технологии именно на платформенную архитектуру, которая будет задаваться стеком стандартных протоколов. Стек протоколов структурирует как инженерное мышление, так и проектную деятельность -- можно структурировать и планировать работы по экспериментам с реализациями стандартов, а также работы по стандартизации с оглядкой на такой стек. Всякие roadmaps пишутся с оглядкой именно на такое архитектурное структурирование -- что "наблюдательные" roadmaps окологосударственных "институтов развития", что реальные roadmaps компаний и их консорциумов.

Конечно, в области обсуждения всего интеллект-стека не так много работ, а обсуждение когнитивных архитектур тут лишь маленький кусочек всего стека. Например, похожее рассмотрение в IBM Cortical Learning Center, причём с меньшим числом платформенных уровней, ибо там явно не "платформенности" и множества поставщиков для каждой платформы хотят добиться, а просто создать универсальное собственное решение. Так что уровней там всего по факту три -- "приложение пользователя", "универсальные алгоритмы", "специализированное железо"-- http://nice.sandia.gov/documents/2015/NICE3talkwwwFinal-NO%20VIDEOS.pdf (и чуть словесных объяснений в http://www.technologyreview.com/news/536326/ibm-tests-mobile-computing-pioneers-controversial-brain-algorithms/).

Но всё одно "обозревать" тут почти нечего, и приходится самому влезать в шкуру архитектора. Ну, я и не отказываюсь, я даже какую-то свою (хотя мне кажется, что там немного своего) нарезку на платформы уже недавно давал -- http://ailev.livejournal.com/1207520.html. В этом посте я:
-- добавлю новые ссылки, ибо дождик новых работ превращается уже в ливень. Пузырь-то продолжает надуваться, и к работам по интеллект-стеку подключаются новые и новые тысячи людей. В то же время среди "прорывных технологий" профессиональные "футуристы" обсуждают до сих пор IoT, BigData, Clouds и т.д., но не deep learning -- это они зря, интеллект-стек тем самым подкрался незаметно.
-- добавлю отдельно уровень когнитивной платформы (когнитивной архитектуры)
-- не буду пока обсуждать раскладку стека между облаком и локальными вычислительными ресурсами. Хотя для реализаций это важный вопрос: разные ответы на него дадут в том числе и разную нарезку на уровни и разные предпочтительные протоколы связи уровней стека.
-- пока не буду обсуждать стандартизацию (то есть выпячивать то, что интеллект-стек это стек протоколов). Пока до "войны интеллектов" (войны ИскИнов) нужно дожить. "Война браузеров" в www-части стека протоколов интернета случилась тоже даже не в первый год появления стандарта HTML и первого браузера на его основе. XML как доработка SGML тоже появился много позже, а веб-сервисы так и вообще по историческим меркам совсем недавно. В области компьютерного интеллекта всё будет, конечно, быстрее (интернет помогает новым идеям и их программным реализациям распространяться по миру буквально за ночь) -- но всё-таки не так быстро. Пропитка мозгов разработчиков идеями и тестовый период конкуренции реализаций идей на рынке занимает некоторое время.

Вот мой текущий интеллект-стек:
1. Прикладной уровень
2. Когнитивная архитектура
3. Обучающиеся алгоритмы
4. Вычислительные библиотеки
5. Вычислительные языки программирования
6. Аппаратное ускорение вычислений

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

Итак:

1. Прикладной уровень.
Это целевая система, использующая когнитивную ("соображающую") подсистему -- using system для всего остального стека. Эта целевая система хорошо осведомлена о целевой предметной области, все интерфейсы к пользователю и данным именно тут.

Всё чаще и чаще этот прикладной уровень выступает в форме "интеллектуального помощника", с которым можно поддержать беседу. Так что от когнитивной системы требуется не только умение решать целевые прикладные задачи, но и поддерживать речевой диалог на естественном языке, а то и генерировать реалистичный аватар для этой цели.

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

Социальный ли прикладной уровень (знают ли друг друга когнитивные прикладные агенты-слуги, каждый из которых хорошо знает своего принципала-хозяина) -- это обсуждается, разговоры про privacy и "нельзя позволить Гуглю знать о нас всё" как раз тут.

Основное на этом уровне -- собрать достаточно данных для обучения и понять, как учить. Ибо прикладной уровень занимался своими пользователями и данными предметной области и не знал, что вместо программирования вдруг нужно будет учить программы на специально подготовленных данных -- и хрен обучения оказывается в целом не слаще редьки программирования. Хотя да, результаты могут впечатлять больше.

Амазонский механический турок становится при этом всё более и более востребованным и всё чаще и чаще поминается в статьях (https://www.mturk.com/mturk/welcome). Для воспитания ИскИнов нужны толпы вполне естественных интеллектов. Впрочем, к естественным интеллектам это тоже относится (Маугли ведь даже разговаривать не умеют), просто это как-то незаметно и бесплатно (хотя и очень даже платно, если учить серьёзно), а тут вот нужно приготовиться платить даже за пустяки.

Facebook тут настолько крут, любопытен и богат, что посадил команду людей на сбор данных для тренировки своего "умного помощника" -- http://www.wired.com/2015/08/how-facebook-m-works/ (там идея в том, что часть задач решается сейчас классическим искусственным интеллектом, а часть специально нанятыми людьми с накоплением примеров решения задач, потом глубокая нейронная сетка обучается на этих примерах и заменяет классические методы с резким ростом качества, а люди переключаются на накопление примеров для обучения следующей версии нейронной сетки -- и так постепенно осваиваются всё новые и новые группы задач). Сейчас эксперимент идёт с несколькими сотнями пользователей фейсбука в Калифорнии.

Конечно же, полно приложений, где никаких диалогов не требуется, а нужно "всего лишь" распознать изображения, как-то оценить текст и т.д.. Но задача поддержания диалога на прикладном уровне вырывается на первый план. Это Святой Грааль, ибо позволяет автоматизировать колл-центры, продавцов всех мастей, консультантов-эрудитов (врачей, юристов, спецов по чайным церемониям и т.д.). Люди разговаривают друг с другом, и если на том конце "интеллект", то ожидается, что он поймёт задачу на естественном языке и ответ тоже даст на естественном языке. И переписка тут не главный канал общения (хотя и возможный -- чаты между людьми ведь процветают!), а главный -- устный диалог с одновременным показом картинки на экране и тыканья в картинку пальцами естественного и искусственного интеллекта для уточнения предмета разговора (то есть одновременно речь+жесты). С людьми если говорить, то нужно учитывать их людскую природу. Например, для людей нужно иметь возможность нарисовать глаза и смотреть ими в правильную сторону -- если приложение робототехническое, то это "строить глазки" сильно облегчает взаимодействие (Meet me where i'm gazing: how shared attention gaze affects human-robot handover timing -- http://doi.acm.org/10.1145/2559636.2559656), одного голоса мало, а письменный текст неуместен вообще.

Там несколько задач (из них только часть задач пересекаются с традиционными "развлекательными ботами", проходящими тест Тьюринга):
-- распознавать и генерировать живую речь в real time диалога (по факту эта задача решена)
-- удерживать тему диалога и добиваться цели (сейчас идёт постановка задачи и накопление учебных данных, ибо "добиться цели в диалоге" это слишком расплывчатая формулировка. Работы идут типа Rating Dialogue Success with Neural Networks for Reinforcement Learning in Spoken Dialogue Systems, http://arxiv.org/abs/1508.03386).
-- делать логические выводы, рассуждать (inference, см. ниже).
-- оперировать гигантскими объемами информации, уметь доставать из баз данных и Сети нужное, а не любое (тема внимания и памяти, см.ниже)
-- использовать тело робота или нарисованное тело/лицо виртуального аватара (типа цитированной работы по правильно позиционируемому взгляду), но пока "по одёжке встречают" ещё не является главным критерием. Тупой робот, "которого бы хотелось лизнуть", не является проблемой. Проблемой является интеллект этого робота.
-- правильно выбрать уровень стервозности (помним исследования MS Research, которые были сделаны для определения характера Cortana -- там быстро выяснили, что интеллектуальный ассистент не должен быть бесстрастен как утюг, а должен обладать независимым характером, чтобы нравиться людям: http://news.microsoft.com/stories/people/cortana.html, http://time.com/3960670/windows-10-cortana/).
-- ... тут всего много: общечеловеческое в силу необходимости коммуникации и сугубо предметное, ибо на то он и прикладной уровень, чтобы к чему-то прикладываться.

Напомню, что начиналось всё очень невинно: сначала решили задачи распознавания, которые были манифестированы в знаменитой картине Tasks (http://xkcd.com/1425/):

Вот об этом презентация, вспомнить, как всё начиналось, "задача на один день работы с библиотекой Caffe" (DIY Deep Learning for Vision: a Hands-On Tutorial with Caffe): https://docs.google.com/presentation/d/1UeKXVgRvvxg9OUdh_UiC5G71UMscNPlvArsWER41PsU/

Этот мой пост практически не касается задач распознавания, это уже "проехали", это уже в каждом смартфоне, это уже не интеллект. И это уже работает круче людей. Так, в задаче "миллион лиц" (http://megaface.cs.washington.edu/) нужно уже не просто миллион лиц правильно распознавать, нужно это делать в условиях шума -- побеждает тот, кто будет распознавать зашумленные изображения. Большинство алгоритмов это делают пока похуже человека, но есть уже такие, которые в разы и разы более устойчивы к шумам, чем человеки -- http://megaface.cs.washington.edu/results/identification.html. Но эти новости уже не с первых полос газет, к этим новостям уже привыкли, это уже не "искусственный интеллект". В принципе, сверхчеловеческую результативность получают уже "расчётно". Например, для задач обработки изображений можно увеличить глубину нейронной сетки, слоёв эдак до 19. И если иметь достаточно данных для научения этих слоёв и понимать недостатки человеческого зрения (чтобы их преодолевать целенаправленно), то вот она, сверхчеловеческая результативность -- http://arxiv.org/abs/1508.03929.

Всё, что понятно как делать, немедленно выскакивает из определения интеллекта: когда компьютер не умел играть в шахматы, это было круто и "искусственным интеллектом", а сейчас это просто "шахматы на компьютере". Когда компьютер не умел распознавать изображения и речь, это было "искусственным интеллектом". Сегодня это просто "распознавание изображения и речи". Интеллект-стек тем самым всегда будет не про то, что уже у компьютера получается, а про то, что пока не получается. После этого это будет просто "ускоритель распознавания", "процессор диалога", "платформа нейровычислений" безо всяких подчёркивающих смекалку и сообразительность компьютера эпитетов типа smart, cognitive, intelligent. Хотя маркетологи этому будут сопротивляться. Смартфон так и остался "умным телефоном", хотя сообразительности в нём поначалу, да и сейчас, было не так уж много.

И, конечно, именно на этом прикладном уровне идут демонстрации силы нейронных сеток там, где традиционно пытались "алгеброй гармонию поверить" -- нейронные сетки "интуитивно схватывают" стиль, алгебра идёт лесом, поэтому художественные приложения рулят и пропагандируют использование интеллект-стека среди тех, кто в других предметных областях ничего не понимает, но любит зато помузицировать или посочинять стихи. Лидером последней недели тут серия статей, ведущая к получению "Марша глубокого обучения" (та ещё музычка! её сочинил компьютер в сотрудничестве с человеком на базе народных мелодий, в этом и фишка -- с традиционным вопрошанием: кто тут автор. Народ? Сетка? Композитор, внёсший какие-то правки в результат? -- послушайте, там не слишком тривиально (https://soundcloud.com/sturmen-1/the-march-of-deep-learning):


Интересные объяснения, как получили композицию и другие примеры: часть 1 в https://highnoongmt.wordpress.com/2015/08/11/deep-learning-for-assisting-the-process-of-music-composition-part-1/, часть 2, часть 3, часть 4).

А вот A Neural Algorithm of Artistic Style -- http://arxiv.org/abs/1508.06576, in light of the striking similarities between performance-optimised artificial neural networks and biological vision, our work offers a path forward to an algorithmic understanding of how humans create and perceive artistic imagery. В самой работе демонстрируют, как "читают стиль" с какой-то известной картины при помощи нейронной сетки, а потом применяют его к какой-то фотографии -- получают картину из фотографии (картина дана в уголочке каждой "стильно художественной фотографии", а без картины приведено оригинальное фото):
neuroart


2. Когнитивная архитектура
Укрепляется подход, основывающийся на хитрой обвязке алгоритмов глубокого обучения (а не на логики экспертных систем, в том числе и нечёткой логики, логики высоких порядков на мультиграфах, фреймовых вычислений, онтологий и семантических сетей, решениях традиционных задач планирования и прочих подходов "классического AI 80-х" -- т.е. упор делается не на хитро программируемый и настраиваемый "решатель", solver, а на более-менее автоматическое "обучение"). Мелкое обучение (кластерный анализ, метод главных компонент и прочие простейшие методы одноуровневой, неиерархической работы с данными) уже рассматривается только по инерции, уже слабо трепыхается (и вышло несколько работ, которые теоретически показывают, что глубокие архитектуры лучше -- забивают последние гвозди в крышку мелкого гроба, например http://arxiv.org/abs/1508.04924).

В принципе, лучшие теоретические достижения мелкого обучения сейчас стремительно обогощают deep learning -- то, что связано со сменой парадигмы солверов и пруверов на "обучение" берётся, отдельные алгоритмы тоже берутся как основа "слоя", но в новую глубокую жизнь прорывается отнюдь не всё (чуть-чуть я об этом писал в "машинное обучение и трудные вопросы к инженерии и науке" -- http://ailev.livejournal.com/1207563.html, и там же см. комментарии по поводу "гибридного вывода", ибо обучение обучением, а эффективный логический вывод лучше делать прямо на логических гейтах и в архитектуре фон Неймана, нежели эмулировать логический вывод в нейронной сетке. Не удивлюсь, если лет через десять будет уже не "нейронный ускоритель для фон-неймонавского компьютера", а "фон-неймановский ускоритель для нейроморфного компьютера").

Тренд сегодняшнего момента: повышение универсальности предлагаемых алгоритмов -- декларируется, что один и тот же алгоритм должен сработать на самых разных данных, в самых разных задачах при общей сдержанности риторики в части "похожести на человека", "самообучаемости", "возможностей саморазвития", "сознания" и т.д.. Да, как в старые добрые времена, когда появлялись шапкозакидательные имена алгоритмов типа General Problem Solver (GPS, 1959 год, https://en.wikipedia.org/wiki/General_Problem_Solver).

Вот типичные ссылки:
-- http://aideus.com/research/research.html (там прямо говорится о strong artificial intelligence и универсальных алгоритмах, но без придыхания).
-- https://www.maxima.com/press/ (тут демонстрируется general purpose artificial intelligence, но по факту это просто один и тот же обучающийся алгоритм, который учили на разных данных)
-- https://en.wikipedia.org/wiki/MANIC_%28Cognitive_Architecture%29, http://arxiv.org/abs/1508.00019 -- пример "нечеловеческой" (сознательно не основанной на идеях копирования человека) обучаемой когнитивной архитектуры -- MANIC, a minimal architecture for general cognition.

Никакого "тёплового лампового интеллекта", никаких AGI в части "осознанных роботов". Нет, современная когнитивная архитектура направлена на решение узких задач, как это и развивалось раньше в weak AI. Только подчёркивается, что эти самые разные "узкие задачи" прикладных областей могут быть решены одной и той же когнитивной архитектурой, без перепрограммирования или замены алгоритмов -- только переобучением.

С другой стороны, этот уровень -- явный стык скользкой тематики AGI (artificial general intelligence, strong AI) и чисто алгоритмического уровня weak AI (что реализуется обычно одним "алгоритмом", а не алгоритмической архитектурой, так что у меня это платформенным уровнем ниже). Так что тут фанфары уже убраны, но больше абстрактных заявок, чем реальных результатов. Все результаты сводятся к тому, что "наш общий алгоритм умеет решать разные классы задач не хуже, чем их решали специализированные для этих задач алгоритмы" -- эти результаты пока не столько про архитектуру, сколько про отдельные удачные находки в алгоритмах глубокого обучения.

Почему я выделил слой когнитивной архитектуры отдельно, а обучающиеся алгоритмы отдельно? Потому как хороший обучающийся алгоритм просто используется когнитивной архитектурой (он часть когнитивной системы), а архитектура может использовать несколько обучающихся алгоритмов и варьировать обучение с учителем и без учителя, подстройки своих гиперпараметров. Вспоминаем тут Грегори Бейтсона с его вниманием к эпистемологии и уровнями обучения -- и пытаемся понять, как от онтологических/логических уровней классификации перейти к эпистемологическим уровням обучения (http://core.ac.uk/download/pdf/101767.pdf):
-- Learning IV `…would be change in Learning III, but probably does not occur in any adult living organism on this earth.’
-- Learning III …is change in the process of Learning II, e.g. a corrective change in the system of sets of alternatives from which choice is made.
-- Learning II …is change in the process of Learning I, e.g. a corrective change in the set of alternatives from which choice is made, or it is a change in how the sequence of experience is punctuated.
-- Learning I …is change in specificity of response by correction of errors of choice within a set of alternatives.
Learning 0 …is characterised by specificity of response, which – right or wrong - is not subject to correction.
Именно на этом уровне можно рассматривать всё, что связано с возможностью обучать алгоритмы, а не программировать их вручную или генерировать к ним код. Именно тут вопросы embodied intelligence, именно на этом уровне можно рассматривать обучение без учителя, на этом уровне обсуждается организация рефлексии (например, используя теории схемы внимания http://ailev.livejournal.com/1193568.html).

3. Обучающиеся алгоритмы
Как правило, на сегодня это алгоритмы глубокого обучения на нейронных сетках и их модификациях (архитектура Numenta при этом тоже относится к глубоким, хотя они себя любят отличить от общей тусовки deep learning -- кроме уже приведённой ссылки из доклада IBM см. https://github.com/numenta/nupic/wiki/Hierarchical-Temporal-Memory-Theory).

Чаще и чаще начинают использовать различия в названиях: кортикоморфные (по мотивам живых нейронов и организации мозга, т.е. с советами от нейрофизиологов) архитектуры противопоставляются нейроморфным (где уже не ожидается бионики, нейрофизиологов в глаза никто не видел, и поэтому результат не слишком напоминает мозг -- но успешно работает, и даже иногда понятно, почему). Но терминология пока не устоялась, плюс кроме "учёных" (которые пытаются тут попсеть уж как могут: они разговаривают ведь с использованием этих слов уже не только между собой, но и с грантодателями -- а те уже не вдаются в подробностями) эту терминологию начинают использовать и инженеры, и даже отдельные клочки этой терминологии уже вовсю пропагандируют журналисты. В итоге получится как с BigData -- обзовут "маркетинговым словом", ничего особенного "нейро" обозначать не будет, кроме "мы тут на переднем крае", а "кортико" -- будет означать "мы тут бионикой балуемся, вдруг наш махолёт выгорит?".

Тем не менее связь живого и неживого "нейро" -- это горячая тема. Вот только несколько ссылок на эту тему (большая дискуссия была тут: https://www.facebook.com/groups/nevronet/permalink/535381206628205/?hc_location=ufi). Правильные тут слова biologically plausible/inspired
-- Biologically Inspired Cognitive Architectures Society (BICA society, http://bicasociety.org/ -- в 2017 году будет конференция в Москве, а 22-24 апреля 2016 в Москве школа -- намекают, что она изменит вашу жизнь: http://school.bicasociety.org/),
-- Random feedback weights support learning in deep neural networks, http://arxiv.org/abs/1411.0247
-- Towards Biologically Plausible Deep Learning, http://arxiv.org/abs/1502.04156 (это февраль 2015, и тут хороший обзор литературы, формулировки проблемы и предложение путей решения. Проблема простая: Neuroscientists have long criticised deep learning algorithms as incompatible with current knowledge of neurobiology. Для меня лично это не проблема. С чего бы нейрофизиологам жаловаться, что занимающиеся нейронежитью не дают им ничего полезного? Мало ли кто им не даёт ничего полезного! Но нейрофизикологи -- назову их пока так за неимением лучшего слова -- почему-то отзываются и берутся вместо улучшения своих алгоритмов подгонять их под осуществимые на живых нейронах, "реагируют на критику". Хотя потом они замечают, что для улучшения работы нейроморфных архитектур эти результаты тоже сгодятся -- типа предложение для реактивного самолёта принципов полёта, совместимых с принципами полёта птичек поможет и самолётам. Ну да, ну да. Может и помочь, чего в жизни не бывает. Но я бы не обольщался).

Интересный сдвиг технологий последних пары-тройки месяцев -- в побуквенную работу с текстами (после крышесносительного блог-поста Karpathy -- даже не статьи! статьи становятся теперь важны не для дела, а только для денег-грантов-должностей), особенно для языков с флексиями. Если с текстами работать побуквенно, то сетки можно делать более маленькие (с меньшим числом параметров, т.е. быстрее работающие и быстрее научаемые) и получать результаты лучше, чем при пословной работе -- http://arxiv.org/abs/1508.06615 (Character-Aware Neural Language Models). Более того, если перейти на уровень букв, то можно нейронной сеткой распознавать речь с большими словарями на непрерывном входном потоке без предварительной обработки -- и отказаться от скрытых марковских моделей при резком росте качества и скорости -- http://arxiv.org/abs/1508.04395. Я и сам был в изумлении от того, как сетки учатся синтезировать правильные слова из букв.

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

И тут-то пригождается "память" и "внимание" -- любой механизм, который позволяет "не забыть, что было в начале предложения" и "удерживать внимание на обрабатываемом кусочке"! Например, можно одновременно читать предложение задом наперёд и комбинировать чтение вперёд и чтение назад -- что забыл "вперёдчитатель" как раз хорошо помнит "назадчитатель", и они не теряют внимания -- не путают начало предложения с его концом. И да, качество перевода предложений с использованием такой памяти резко поднимается: https://drive.google.com/file/d/0B16RwCMQqrtdNUptOGtDeDhxZ0E/view (Neural Machine Translation: Progress Report, Kyunghyun Cho -- там эффектная концовка, предлагающая использовать все те же методы для описания изображений: переводить "визуальный язык" на естественный язык, с ипользованием внимания и памяти).

"Внимание" означает просто нарезку входной информации на маленькие кусочки -- если у тебя огромная книжка на входе, то её может переработать только огромная нейронная сетка. Но если сетка маленькая, то можно от этой входной книжки за один раз откусывать только маленький кусочек, это и есть "внимание" к чему-то маленькому, выделенному из большого (или другими словами, внимание -- выделение фигуры из фона, части входной информации из обширного входного потока). Теперь уменьшите "книжку" до предложения длиной 100 слов -- это будет правильное понимание сегодняшнего масштаба бедствия, до книжек пока дело не доходит чисто по объему (в том числе до длинных диалогов), с вниманием на масштабе одного предложения или пары реплик длиной 100 слов бы справиться с нынешними вычислительными ресурсами и известными алгоритмами! В конечном итоге это всё про то, как меньшими вычислительными ресурсами и меньшим объемом обучающих данных получить лучшие результаты, ибо всё содержательное сейчас болтается в районе 100 слов, а бОльший контекст вычислительно недоступен. Попсовое объяснение этого в Unsupervised learning, attention, and other mysteries. How to almost necessarily succeed: An interview with Google research scientist Ilya Sutskever. -- http://radar.oreilly.com/2015/08/unsupervised-learning-attention-and-other-mysteries.html

Темы памяти, внимания и вывода настолько важная, что ей посвящён отдельный семинар (организаторы все из Facebook AI Research), который будет 12 декабря 2015 с суперзвёздным составом докладчиков -- http://www.thespermwhale.com/jaseweston/ram/ (и на этой странице смотри большой список свежей и не очень свежей литературы). Этот семинар будет сразу после Deep Learning Symposium -- https://sites.google.com/site/nips2015deeplearnings/, где соберётся "весь цвет".

Всё это главным образом работа с текстами: "распознавания текстов" (как распознавания изображений и распознавания речи) нет такого, но очень осторожно уже начинают говорить про "понимание текстов" -- при этом вполне в духе конструктивизма предполагая, что ежели компьютер что-то "понял" про текст, то он должен уметь отвечать на вопросы по этим текстам и делать какие-то выводы (reasoning).

Вот, например фейсбуковский bAbI проект -- так и говорят про "понимание текста и рассуждение" (text understanding and reasoning). На тамошней страничке предлагают набор 20 задач для тестирования: тысяча вопросов для обучения, тысяча вопросов для тестирования в каждой задаче -- https://research.facebook.com/researchers/1543934539189348. Задачи -- это истории, в ходе рассказа которых нужно контролировать, что нить повествования не утеряна и текст понимается (помним при этом, что у сеток сейчас проблема с "вниманием" и "памятью"). Вот пример:
1 Mary moved to the bathroom.
2 John went to the hallway.
3 Where is Mary? bathroom 1
4 Daniel went back to the hallway.
5 Sandra moved to the garden.
6 Where is Daniel? hallway 4
7 John moved to the office.
8 Sandra journeyed to the bathroom.
9 Where is Daniel? hallway 4
10 Mary moved to the hallway.
11 Daniel travelled to the office.
12 Where is Daniel? office 11
А вот новый корпус текстов для глубокого обучения в части вывода: главное отличие в том, что он вдесятеро больше по объему, чем обычно используется для бенчмарка вывода в традиционной лингвистике. Тут нужно учить, а не просто тестировать запрограммированный вывод. Этот объем (570тыс. пар предложений, связанных отношениями contradiction, neutral, entailment) впервые дал возможность нейронным сеткам систематически обходить в бенчмарках традиционные лингвистические алгоритмы вывода: http://arxiv.org/abs/1508.05326

Но главная работа последнего времени -- это Towards Neural Network-based Reasoning, http://arxiv.org/abs/1508.05508. Потому как cначала они ругают за простоту только что помянутые 1 Mary moved to the bathroom. 2 John went to the hallway. 3 Where is Mary? bathroom 1 -- чтобы перейти к самым сложным задачам из предлагаемых bAbI. И далее пишут, что Our empirical studies show that Neural Reasoner can outperform existing neural reasoning systems with remarkable margins on two difficult artificial tasks (Positional Reasoning and Path Finding) proposed in [bAbI]. For example, it improves the accuracy on Path Finding(10K) from 33.4% [6] to over 98%. Что такое Path Finding? Вот такое:
1.The office is east of the hallway.
2.The kitchen is north of the office.
3.The garden is west of the bedroom.
4.The office is west of the garden.
5.The bathroom is north of the garden.
How do you go from the kitchen to the garden? south, east, relies on 2 and 4
How do you go from the office to the bathroom? east, north, relies on 4 and 5
Про эксперименты с базами данных субтитров (взять рекуррентную сетку и натренировать её на диалогах из фильмов. После чего давать ей какую-то строчку и просить сгенерить продолжение -- потом развлекаться "диалогом") я молчу, сейчас этим занимаются все подряд. Мне это кажется тупиковым (хотя тут надеются, что можно научить сетку на диалогах из реальных записей колл-центров и протоколов хелп-десков, но я думаю, что это не получится: сетка просто не обладает сегодня нужной памятью и вниманием, чтобы не выдать вам кусок помощи для одного кейса в разговоре про другой кейс -- особенно, если эти кейсы плохо различимы, типа помощь в настройке телефонов близких моделей но с каким-нибудь хитрым отличием. Клиент называет модель в самом начале диалога, это нужно запомнить и каким-то чудом вытащить потом фразу помощи для фичи именно для этой модели уже в конце диалога, при том что диалог во всём остальном похож на диалог для другой модели -- отличаются они какой-то одной кнопочкой, и это различие нужно помнить. С памятью же в рекуррентных сетках сегодня без специально принимаемых мер плохо. И с количеством примеров, на которых это тонкое различие может проявиться: нынешние сетки не умеют учиться пока на малом количестве примеров. Так что эксперименты с субтитрами из фильмов и диалогами из художественной литературы -- это баловство, развлечение, художественное творчество).

Мечта -- это "обучение без учителя", unsupervised learning. Идея в том, что если ты поиграешься сам с входной информацией, изучишь мир как-то сам, то потом тебя можно будет быстрее чему-нибудь в этом мире научить. Но это только мечта, про это сегодня говорит каждый, результатов пока особых нет. И обратите внимание, что есть и прямо обратная тема, поднимаемая Вапник сотоварищи: "обучение с умным учителем", ибо сегодняшнее "обучение с учителем" -- это обучение с тупым роботом, который не обращает на тебя внимания, просто даёт известные ему ответы. Умный учитель понимает, чего ты не понимаешь, и это позволяет давать такие примеры, по которым можно научиться быстрее, сэкономить время. И я бы больше ставил сегодня на вапниковское intelligence learning, чем на прорывы в unsupervised learning.

Ну, и полным полно работ по повышению эффективности и предложению новых вычислительных архитектур, в том числе с выходом на максимально массово-параллельные вычисления, уменьшение числа параметров при сохранении качества, замены пропуска данных их зашумлением (dropout меняют на dither -- и говорят, что становится сильно лучше, http://arxiv.org/abs/1508.04826),

Результаты оформляются в виде библиотек, библиотеки выкладываются в github, или не выкладываются, а под них берутся деньги и организуется очередной завоёвывающий мир стартап -- о многих работах в этой области мы пока не знаем. Вот тут пытались собрать некоторое количество ссылок на библиотеки -- http://vk.com/topic-44016343_29211791, но этих библиотек с разными особенностями море разливанное, тысячи их, всех не соберёшь, не упомянешь.

Из новостей
-- появилась библиотека Strada на Julia (по факту это Caffe, mocha.jl там тоже учтена, но в этой есть даже рекуррентные сетки): https://github.com/pcmoritz/Strada.jl
-- начался рефакторинг самого Caffe (Caffe2 -- https://github.com/Yangqing/caffe2)
-- питоновский Theano-Lights включает алгоритмические новинки -- https://github.com/Ivaylo-Popov/Theano-Lights
-- порт примеров использования deeplearning4j из Scala -- https://github.com/kogecoo/dl4j-0.4-examples-scala (и помним, что есть ещё просто Scala wrapper for deeplearning4j https://github.com/deeplearning4j/deeplearning4s)
-- ...этих библиотек, портов, wrappers выходит каждую неделю по много штук. А старые пополняются новыми алгоритмами, которые выходят в arXive тоже по многу штук в неделю.

4. Вычислительные библиотеки
Тут никаких пока особых новостей нет. Библиотеки "научных вычислений" (главным образом такого или сякого умножения матриц) пухнут, пытаются как-то эффективно использовать все возможности нижележащих в интеллект-стеке языков программирования и вычислительных ускорителей, чтобы вышележащие по интеллект-стеку алгоритмы обучения нейронных сеток работали быстро. Тем не менее, сетки работают медленно, крайне медленно.

Времена поменялись, и теперь вместо классического обсмеивания традиционной долгой "компиляции" (http://xkcd.com/303/):


сегодня хихикают над долгим "обучением" (http://pekalicious.com/blog/training/ -- обратите внимание, это картинка ещё апреля 2011 года, и её актуальность никуда не пропала, вычисления по-прежнему идут с черепашьей скоростью, суперкомпьютерные задачи пытаются решать на десктопах, тут уж ничего не поделаешь):


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

Подробней я про вычислительную математику писал в http://ailev.livejournal.com/1207520.html -- и не буду повторяться, сногсшибательных новостей тут новых не появилось, всё инфраструктурно и медленно.

5. Вычислительные языки программирования.
По факту, сегодня в интеллект-стеке играют C++, Lua, Python. А все остальные (Java, Julia и т.д.) пока маргинальны. Почувствуйте разницу со старинным "искусственным интеллектом", в котором главными были Lisp и Prolog.

Я уже много раз писал про Julia (http://julialang.org), как язык, к которому в этом плане нужно присмотреться: его дизайн-цель как раз обеспечить быстрые вычисления. Языков с такой целью мало, так что шансы Julia занять существенное место в интеллект-стеке довольно велики -- если на нём кто-нибудь возьмётся организовать написание чего-то типа JuliANN. Именно организовать написание, написать такие вещи кому-то одному обычно не получается и качественно, и в обозримое время.

Опять же, никаких особых новостей, ибо в языкостроительстве быстро вообще ничего не бывает -- новые новости ещё не созрели.

6. Аппаратные ускорители вычислений
Мейстрим стремительно уходит в FPGA. Очередная новость трёхдневной давности: LeCun told The Platform that Google is rumored to be building custom hardware to run its neural networks and that this hardware is said to be based on FPGAs -- http://www.theplatform.net/2015/08/25/a-glimpse-into-the-future-of-deep-learning-hardware/. Майкрософт это давно делает -- http://www.theplatform.net/2015/08/27/microsoft-extends-fpga-reach-from-bing-to-deep-learning/ (вот тут я писал подробней, какие там используют хитрые чипы, это не совсем обычные FPGA -- http://ailev.livejournal.com/1207933.html).

Из забавностей -- появление китайских FPGA, пока на чудовищных проектных нормах, маленьких и относительно дешёвых. Мейкеры их уже обсуждают, но с deep learning пока никто их не ассоциирует: http://hackaday.com/2015/08/24/two-new-fpga-families-designed-in-china/. Мне в этом важен тренд: FPGA из сугубо эзотерической чисто промышленной технологии потихоньку превращается в чуть-чуть более попсовую технологию. Хотя суть тамошнего обсуждения -- "запредельно сложно, вряд ли мейкеры массово начнут этой технологией пользоваться".

Пока же слайд LeCunn наиболее информативен в части аппаратного ускорения:


Последние тренды в GPU (текущий мейнстрим) показывают прогресс в три раза по скорости за последние 9 месяцев -- мало кто такой прыти ожидал от оптимизаторов: https://github.com/soumith/convnet-benchmarks/issues/56#issue-103818583
Thursday, August 27th, 2015
10:18 am
Связь системной инженерии и проектного управления
Опубликовано моё часовое интервью с Михаилом Софоновым "Системная инженерия и проектный менеджмент":

Получилось довольно безалаберно, ну так это и не лекция была. Зато бодро и весело. Через полчаса записи вдруг вышло солнышко -- и я думал, что никакого видео уже не получится. Нет, всё на видео получилось, современные вебкамеры контрастом не собьёшь (интервью было по скайпу, так что камера и микрофон были моего ноутбука. Ну, и звук вопросов иногда проваливается).
Sunday, August 23rd, 2015
5:27 pm
lytdybr
Сходил в пятницу вечером на вечеринку в хакспейс "Сталь", там по-прежнему "после лекции в клубе танцы", только народ собирается такой, что танцев не было -- все разошлись в 23:30 после просто разговоров на разные темы. "Лекцией" было открытие "Венчурной академии создателей" (то бишь начало обучения мейкеров в стартапах). Посмотрим, что там будет: учить можно и мейкерству-инженерии (чего сейчас никто не делает), а можно учить питчить-презентовать (чем заняты все поголовно, все эти стартап-кемпы кроме презентаций и поиска бизнес-моделей не учат ведь тому, как управлять инженерной частью проекта и как разработкой заниматься). Вроде как заявления прозвучали, что учить будут именно мейкерству-инженерству, но кончилось всё традиционно "питчами", про инженерию было мало. Посмотрим, как всё будет развиваться.

Атмосфера, конечно, в этом хакспейсе правильная, и разговоры тоже правильные. Я бОльшую часть времени прообсуждал неинвазивные нейроинтерфейсы на оптической (инфракрасные диоды) основе -- рассматривали уже закупленные комплектующие для https://en.wikipedia.org/wiki/Near-infrared_spectroscopy (в том числе 32-битную крохотульку-АЦП от TI -- зачем он там такой точности?! А ещё такие компоненты не только малошумящие, но и дешёвые -- http://www.ti.com/product/ads1262). Вообще, речь шла о беспроводном мультимодальном (ЭЭГ плюс NIRS) шлеме. В хакспейсе было достаточно людей, чтобы с одними обсуждать паяльные станции, с другими пропускную способность разных радиоинтерфейсов, с третьими особенности нейроинтерфейсов, с четвёртыми возможную организацию работы в таком проекте. Понятное дело, такой перспективный проект (это ведь по факту ход на дешёвую томографию! https://en.wikipedia.org/wiki/Diffuse_optical_imaging, https://en.wikipedia.org/wiki/Medical_optical_imaging#Diffusive_optical_imaging_in_neuroscience, https://en.wikipedia.org/wiki/Optical_Tomography) сразу получил предложение на место в коворкинге -- главный разработчик глубоко задумался: он живёт на другом конце города.

Я дообсуждал там мои предложения по платформенному стеку, который может помочь и нейрофизиологам и нейрофизикологам (как ещё называть спецов по deep learning?): в обоих случаях нужна сильная платформа для массово-параллельной численной математики. Нужно, конечно, уточнять -- насколько float там могут быть короткими (в deep learning они согласны чуть ли не на 8 бит, почти довольны 12 и просто счастливы от 16, двойной точности там заведомо не нужно -- но непонятно, что нужно нейрофизиологам в этом плане. Хотя если там тоже будут распознавать сигналы глубокими сетками, а не работать с традиционным DSP, всё слипнется и склеится быстрей). Я по сравнению с набором платформ из http://ailev.livejournal.com/1207520.html предложил прикладной уровень разбить на собственно прикладной и когнитивной архитектуры. А на следующее утро оформил это предложением в совместную тусовку нейрожити и нейронежити -- они там как раз озабочены непонятками в организации работ. Без архитектуры/платформенности нельзя применить обратный закон Конвея, следовательно любая организованность работ будет произвольной. Ну, я прикинулся архитектором и дал предложения: https://www.facebook.com/groups/1602081160032874/permalink/1632214417019548/

А ещё я предложил MH-metaphor (в пандан к H-metaphor) в дискуссии по поводу человеко-машинных интерфейсов -- https://www.facebook.com/groups/1602081160032874/permalink/1632214417019548/ (в работе 2003 года http://ntrs.nasa.gov/search.jsp?R=20040031835 была предложена H-metaphor, метафора лошади для человека-оператора -- учёт того, что все современные управляемые системы киберфизические, то есть умные сами по себе. Так что это всё будет не непосредственное руление, а наездничество. Но если поглядеть, как человек устроен внутри себя, так там тоже есть низкоуровневая моторщина на базе древних нейронных систем и высокоуровневое управление этой более-менее моторщиной, часто рефлексивное. То есть все эти "управления лошадьми" больше сводятся к управлению более-менее понятливыми обезьянками, которые потом управляют менее понятливыми, но всё ещё более-менее автономными лошадьми моторных структур. Дальше по вкусу раскидывайте этих обезьянок и лошадей по компьютерным и живым нейроструктурам -- получайте разные архитектуры управления). Очень ценная дискуссия, много ссылок!

Нравится мне Julia, а приходится писать на Python -- написал на двадцать с небольшим строчек решение задачи http://rosalind.info/problems/gc/ (чтобы доказать жене, что там всего один цикл и три условных оператора -- и всё!). Дальше жена будет это растолковывать отроку, ибо у того произошёл некий ступор: предметное биологическое содержание переплелось с вычислением процентов (помним, что тема процентов у школьников обычно вызывает вопросы, даже если это простые проценты) и максимумов, переплелось с относительно новой для него обработкой строк, переплелось с винегретом управляющих структур и тем самым оказалось слишком много разных тем из разных предметов в одном флаконе: ровно то, что я хотел -- сборка межпредметного знания прежде всего, сборка знания из разных тем одного предмета, что тоже не так часто. Тренируется решение многих (десяток, два десятка) маленьких задач в одной задаче -- а не как в школьных задачках, "решение в три действия". Что мне обидно, так это выяснилось полное отсутствие переноса навыков работы с циклами и условными структурами у отрока с курса на КуМире на курс на Питоне. За прошедшее с того курса время (лето-осень 2012 года, например http://aalev.livejournal.com/1122.html) навык отроком был полностью потерян, обучение идёт буквально с нуля.

Возвращаясь к Julia и изучению языков: похоже, что основной фишкой этого языка идёт его максимальная приближенность к пакетным языкам (они мелькнули буквально лет на пять: все эти Ada и Modula -- а дальше были буквально смыты объект-ориентированностью). У инженеров и математиков есть шанс свои матричные операции и взятие интегралов выражать в этих языках без суровой ломки мозга на объект-ориентированную и функциональную парадигмы. Этот язык именно что продолжатель традиций Фортрана и Матлаба, да Питона в их процедурных частях. Но для желающих мультипарадигмальности там есть метапрограммирование, и в нём уж делается всё что душеньке угодно. Вот, например, реализация функционального программирования в Julia -- https://github.com/one-more-minute/Lazy.jl. Вот cheatsheet (краткий обзор) для Julia 0.3 -- https://dl.dropboxusercontent.com/u/8252984/julia.html, а вот недельной давности выложенное видео с обзором планов по развитию языка -- https://youtu.be/xUP3cSKb8sI

У меня почему-то сложилось впечатление, что DeepMind собрал всех инженеров-изобретателей в нейронных сетках -- и там будет массовый выход в физику (роботы, гуглемобили, дроны, и виртуальная физика -- игры). А Facebook собрал всех "опровергателей основ" (то есть там ведут фундаментальные исследования, приводящие к смене парадигмы). А Baidu просто прикладная лавка, там просто без затей и особой новизны просто будут выводить на рынок приложение за приложением. Из этого наблюдения я бы делал ставку на фейсбук: что-нибудь абсолютно крышесносящее может появиться именно оттуда. Но это чистые догадки, конечно. И вообще, это не футбол, а я не болельщик.

А про продолжающийся надуваться пузырь глубокого обучения немного инфографики тут: https://medium.com/@VentureScanner/the-state-of-artificial-intelligence-in-six-visuals-8bc6e9bf8f32
Friday, August 21st, 2015
12:57 pm
Тренинг системного мышления "Как определить свою систему среди чужих"
Мой очередной однодневный открытый тренинг системного мышления в Москве будет 19 сентября 2015 (суббота): http://nisse.ru/training1/, название отражает тот кусочек системного мышления, который я буду пытаться натренировать у участников за день: "как определить свою систему среди чужих", а менее попсово -- "как определить целевую систему в использующей".

Landing page в этот раз намеренно сделана попсово. Содержание тоже подкорректировано: рассказа про системы там будет меньше (например, материал по жизненным циклам будет отсутствовать, говорить будем только о системах времени эксплуатации), но этот материал будет более тщательно разжёван, будет больше задач про определение системы, и больше времени будет на работу самих участников с их проектами.

Мой опыт показывает, что никакое чтение книжки с подробным рассказом про системное мышление (вот она, в свободном доступе: http://techinvestlab.ru/systems_engineering_thinking) не позволяет начинать системно мыслить. Это как игра на рояле: можно долго читать учебники музыки и продолжать не уметь играть. Так и тут: нужно не читать про системы, а пробовать думать в терминах систем -- сначала решать задачки в простых типовых ситуациях (и я дам такие задачки), а потом (после обратной связи по решению простых задач) пытаться подобные задачки решать для своей системы из своего проекта.

Это огромная проблема: люди редко понимают, что же именно они в своих проектах делают -- неточно название целевой системы, размыта использующая система, стейкхолдеры даны как "физические лица" и поэтому их поведение невозможно спрогнозировать, вместо системы как физического объекта вдруг всё центрируется на описаниях и это приводит к неожиданным проблемам при приёмке, проверка и приёмка не различаются, в проекте упакован десяток разных проектов, а ресурсов нет даже для одного -- но перечислить этот десяток целевых систем никто не удосуживается. Этот список можно продолжать и продолжать. Хуже всего то, что это "неосознанная некомпетентность": когда люди рассказывают о своих проектах и целевых системах, они не осознают, что там коленвал мышления, который нужно выпрямлять. Зато после выпрямления этого коленвала сразу становится понятно, в чём были затыки, и что нужно делать дальше. Плюс в разы улучшается коммуникация со стейкхолдерами.

Основная задача этого тренинга -- заставить мозг участника думать всегда минимально о паре систем (целевой и использующей) и стейкхолдерах-ролях (а не должностях и конкретных людях или организациях). Подробности и программа -- читайте http://nisse.ru/training1/

На выходе тренинга должен быть если не мыслительный автоматизм ("неосознанная компетентность"), то хотя бы "осознанная компетентность" (то есть умение провести соответствующее размышление под жёстким контролем собственного сознания) для самых разных типов систем -- простых изделий, сложных продуктов, софта, сервисов, процессов, предприятий, инфраструктур, систем систем. Это основной мыслительный навык, это ещё до всякого понимания вида жизненного цикла, до всяких там архитектурных описаний и прочих продвинутостей.

По моему опыту, это ключевое умение: выделить и назвать свою систему (в контексте использующей!). И даётся оно огромным мозговым трудом (ибо мозг привык всегда рассматривать систему и её части сначала, а тут нужно разворачивать направление рассмотрения -- систему саму как часть использующей системы, плюс привыкать к субъективности такого рассмотрения). За день продвинуться в этих вопросах можно, хотя и сложно. Но если такого начального навыка системного мышления не появляется, если нет умения определить целевую систему своего проекта, всё остальное развесистое и объемное "системное знание" идёт не впрок, оно остаётся книжным.
12:20 am
lytdybr
Отрок закончил сегодня шестой урок кириенковского курса (работа со строками), и я дал ему пощупать первые три задачи по биоинформатике -- http://rosalind.info/problems/list-view/. Я использовал это для того, чтобы показать разницу между прикладным программированием и "программированием для программирования". Так, задачи со строками стали содержательными, и переменные там нужно называть не просто a, b, c, d, а хотя бы A, C, G, T. В четвёртой задаче числа Фибоначчи (он про эти числа уже пару раз задачи решал), но в этом курсе биоинформатики это не про безымянные ряды -- там про размножение кроликов, на которых Фибоначчи этот свой ряд придумывал. Результат урока? Предложение немедленно заняться размножением кроликов, а то одному нашему кролику на кухне скучно, а тут такая удача -- Фибоначчи, биоинформатика, все будут при деле. Но кроликов он готов заменить на кошечку, так и быть, но тогда без Фибоначчи.

Для удобства я решил подарить Space Engineers не через почту, а через Steam напрямую -- получил неожиданный бонус: Стим аккуратно предупреждает, когда мой отрок (а заодно и Виталик) появляются в сети и во что они играют. Стиму всё равно, друган я, или родитель -- сдаёт за милую душу. Заодно я получил статистику: в стимовские игры он играл 9.7 часов за последние две недели. Но нестимовские игры в неё не вошли -- там было ещё огромное количество роблокса, при этом всё более и более сложных игр. А из стимовских игр рекорд -- Garry's Mod. Сегодня они там с Виталиком строили в нём какую-то огромную "Базу" и обильно от кого-то отстреливались при этом. Но после этого у него в статистике появилась награда Bad Coder (даётся за 500 Lua ошибок) -- он таки забрался куда-то в скриптование, а поскольку Lua он не знает, то 500 ошибок получил в один миг.

Пока писал многабукафф отчёта клиенту, участвовал в обширных дискуссиях по поводу картирования мозга вот тут (там больше десятка моих довольно длинных комментов) -- https://www.facebook.com/groups/1602081160032874/permalink/1626835187557471/. Затронута куча тем (путаница разных "нейро" из жити и нежити, игра в азартные игры с государством, научение сеток без backpropagation, архитектурный и "конкурсный" подход к обеспечению финансирования -- вечный раздрай целей между "давайте сделаем что-нибудь хорошее" и "давайте поддержим/создадим отрасль", разница между всёпонимающими, грантоотгрызающими, грантодающими и в итоге непричастными к грантам результатополучающими, НЛП которое нейролингвистическое программирование и deep learning, и т.д.). Вытаскивать из комментов это всё лень, пусть там всё останется, невелика потеря.

Я никогда не пойму, почему в момент опубликования моей книжки по системноинженерному мышлению в апреле я получил 58 лайков и 12 шеров (не поленился, нашёл тот пост -- https://www.facebook.com/ailevenchuk/posts/10204524014594418), а вчера Александр Дубинин дал буквально одну строчку "кто ещё не видел книжки, обратите внимание" (хотя и с моим фото чёрно-белым -- интересно, где он его взял? -- https://www.facebook.com/photo.php?fbid=10204366551997191&set=a.1082638399476.13017.1631845510&type=1) -- и бабах те же 58 лайков, но аж 41 шер. Наверное, эта книжка как пуэр или коньяк -- чем больше выдержка, тем становится вкуснее.

В сообществе Julia всё медленно, но движется. Сейчас тестируют написание сишных библиотек на Julia. То есть они по формату сишные (откомпилированные!), а написаны таки на Julia. То есть у вас появляется выбор: писать какое-нибудь хитрое перемножение матриц для какого-нибудь Питона на сях, или же на Julia -- целевой Питон разницы не заметит. Учитывая, что формат обмена данными моделирования (для всяких там Modelica) тоже сишный, Julia вполне там тоже подойдёт. В сообществе там шутят, что "это заодно решает проблему подготовки .exe модулей для Julia". Ага, "заодно"! Я боюсь, что я ещё многое узнаю про Julia неожиданного. В версии 0.5 главная фича будет -- аккуратная переделка реализации проверки границ массивов (уметь выключить проверку сильно помогает при разгоне численных задач).

Начали засвечиваться новые машинки на Skylake архитектуре -- вот рабочие станции на 2.5кг, проектные нормы 14нм дают возможность загнать в ноутбук процессоры Xeon: http://www.theverge.com/2015/8/11/9129681/lenovo-skylake-xeon-notebooks-p50-p70. И выпуск их уже в четвёртом квартале 2015 (хотя и не удивлюсь, если только к самому Новому Году). Ноутбуки с 64GB оперативной памяти. Ноутбуки! Весом 2.5кг!

И тут как раз подоспела новость про Dwave -- их квантовые компьютеры с 1000+ кубит на чипе доступны, налетай, кто хочет. Заодно там бенчмарки сделали (в которых, как всегда, без поллитры не разобраться -- недаром там споры идут нешуточные по поводу "правда ли, что такие компьютеры могут быть лучше классики". Похоже, выпуск нового чипа эти споры ещё не прекратит, но заявки там как обычно: "мы в сотни раз быстрее классики") -- http://www.dwavesys.com/blog/2015/08/announcing-d-wave-2x-quantum-computer

На http://vk.com/deeplearning какой-то сбой: раньше там был ежедневный дайджест статей по deep learning с arxive.org, а уже несколько дней дайджеста нет. Вот они, ненадёжные роботы. Ну, или ненадёжные люди: все учОные ушли в отпуск и перестали постить тексты на arxiv.

Пару дней у меня звучали рождественские песни. Я опять переключился на pandora.com, чего не делал аж с рождества. Поэтому станция там у меня так и осталась рождественская и я честно слушал Christmas carols. Удивительно освежающе в это время года. Хотя после обеда я врубил Pizzicato Five Radio -- на базе godfathers of the Shibuya-kei scene, Tokyo kitsch-pop deconstructionists.
Saturday, August 15th, 2015
12:50 am
Об профессии и их атласы
Я тут поучаствовал в фейсбуке в обмене комментами на тему атласов и прочих кодификаторов профессий (https://www.facebook.com/alx.kornilov/posts/1662583163953246). Мне кажется, что следует уже уходить от обсуждений в терминах "профессий": жизнь изменилась. Вот несколько моих реплик из той дискуссии:

1. Атласов и тарифно-квалификационных справочников, стандартов и прочих классификаторов профессий хватает -- традиционный пример тут "Обкатчик клюквы" из единого тарифно-квалификационного справочника работ и профессий рабочих (ЕТКС). Выпуск №51, Утвержден Постановлением Минтруда РФ от 05.03.2004 N 30 -- http://www.aup.ru/docs/etks/etks-51/144.htm

Но это только раньше можно было расчитывать стать обкатчиком клюквы или вебмастером на всю жизнь, и так в этой профессии и проработать и даже стать основателем рабочей династии. Сегодня профессии так долго не живут, рынок труда структурирован по-другому.

2. Профессия -- это роль, а в организации -- оргместа в оргструтктуре. В любом учебнике по архитектуре предприятий (и, кстати, в ArchiMate 2.1) написано, что одно оргместо ответственно за выполнение нескольких ролей, а одна роль обычно ответственна за выполнение одной практики (возможно, сложной и бьющейся на меньшие подпрактики -- да и роль тогда будет тоже разбита на меньшие роли). Профессии-роли привязаны к людям (это вообще третья сущность: исполнители ролей, занимающие оргместа) по нескольку штук. И сюрпризы идут тут уже за пределами ролей, а в части сочетания разных ролей одного исполнителя в рамках организации. Организация же ориентирована меньше всего на профессиональные классификаторы. Отсюда проблемы: готовят логиста-аналитика, а затем его посылают на жёсткие переговоры (ибо берут не на профессиональную деятельность, а на имеющийся фронт работ). Профессионального обкатчика клюквы запросто могут направить на сбор клюквы или продажу клюквы, на профессию никто при этом не посмотрит (хотя за слово "клюква" зацепятся, может быть). Программисты от этого страдают: потому как "программист" это вроде и профессия, но если спеца по PHP послать чинить SAP, то мы много чего интересного узнаем про профориентацию, справочники профессий, тарифные сетки, кадровиков, дураков-менеджеров.

3. Есть множество фронтов работ в организациях, они требуют каких-то наборов знаний и навыков и личностных компетенций. Необязательно, чтобы у этих наборов знаний и навыков даже было название "профессии". Вот, например, создатели нейронных сетей (сетьмастера? инженеры глубокого обучения? учёные данных? по-старинке инженеры-программисты?): http://ailev.livejournal.com/1205999.html

4. Мне кажется, что тут будущее такое же, как у веб-каталогов (типа yahoo, каталог Яндекса и т.д.) -- раньше это было круто, а потом полнотекстовый поиск их вытеснил. Так и с профессиями: наборы навыков и умений вкупе с компетенциями будут браться в розницу, по потребности "полнотекстовым поиском" -- а как они называются пачкой, "пакетом для профессии", это никого не волнует.

Когда очередной клиент просит мне дать текст на какой-нибудь джоб.ру для поиска сотрудника, занимающегося архитектурным моделированием на Modelica, то название профессии идёт сразу мимо. И появляются странные сочетания типа "не потерял вкус к математике", "базовая инженерная подготовка" и т.д. -- мимо всех этих справочников и атласов. А ведь это и есть реальный опыт связи рынка работы с рынком желающих поработать.

В CV уже никто и никогда не пишет про профессии, и это не случайно.

Есть и альтернативные описания/классификации навыков и знаний -- в виде учебных программ, и ситуационная ориентировка в море курсов -- тьюторство (помощь в выборе множества и последовательности изучения курсов, которые можно отхватить и не подавиться за заданное время обучения).

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

Так что не задавайте вопрос себе "какой я профессии". Лучше подумайте о тех практиках, которыми вы можете заниматься -- для выполнения которых у вас есть навыки и знания, а также хватает личностных компетенций. Тогда у вас не будет проблем "смены профессии" или "судьбоносного жизненного выбора". Знания и навыки приходят и уходят, это не проблема -- учимся и переучиваемся всю жизнь, это же понятно. Проблема, если вы вдруг попытаетесь думать о них как о чём-то стабильном, как о "профессии". Не нужно об этом думать, это засада.

UPDATE:
Cайты по поиску работы -- это много похожей на правду о том, что с профессиями сейчас и что грядёт, особенно если смотреть не на "классические" сайты, которые когда-то как биржа труда с государственного классификатора начинали, а реальные сайты для торговли разнообразным трудом. Все они тихо от каталогов ползут к полнотекстовому поиску, от критерия "название профессии" к многокритериальным выборкам. Онтологии и формальные семантики вместе со всякими классификаторами и разбиениями на предметы тихо помирают (хотя они очень хороши, если нужно не столько что-то сделать, сколько быстро кого-нибудь научить -- они нужны не для дела, а для накопления и передачи знания), им на смену идёт племя младое незнакомое -- племя работы с полным текстом, многоаспектным мультимодальным описанием в его полноте, а не в его вписывании в конкретную ячейку "научно обоснованной" и "объективной" классификации. Классификаторы для образования, предложения работы и запроса работы разные по принципу, и объединять их через "профессии" можно только на самом верхнем уровне -- с такими широкими квази-профессиями как "врач" (с дантистами и гинекологами вперемешку) и "инженер" (с электронщиками и строителями вперемешку).
12:15 am
lytdybr
Яндекс прицеливает свою рекламу не по отдельному компьютеру, а по внешнему айпи домохозяйства. В результате я хорошо знаю, что планирует на компьютере в соседней комнате купить моё семейство. Например, всё утро Яндекс соблазнял меня на моём компьютере трикотажными пиджаками для школьников. К вечеру жена с отроком вернулись из похода по магазинам, и доказали, что Яндекс прав -- принесённые пиджаки заставили мерять и меня (на мне даже пуговицы застегнулись. Такие крупные детки нынче идут в седьмой класс, мда). А ведь Яндекс точно так же информирует семейство о том, чем интересуюсь я. Двойной агент в доме, хех. Можно утешиться только тем, что технология сближает людей, открывает их друг другу, уж как может.

Отрок зарегистрировался в Project Euler и решил там первые две задачи, на третьей сломался. Жена очень заинтересовалась, и затем заставила объяснять меня решение третьей задачи (нахождение наибольшего простого множителя какого-то числа). В два часа ночи. Ученье в это время -- тьма.

Останкинская башня из окна видна на фоне чистого-чистого неба, никак не могу к этому привыкнуть, уже пару месяцев. Похоже, что никто никуда ничего в Москве не везёт, торговля идёт разве что школьными пиджаками, на старых запасах, воздух чист и прозрачен. Ну, или торговля идет исключительно информационными товарами и сервисами, всё перевозится по оптоволокну, вот так резко. Может в США тоже такой же процесс идёт: экспорт по оптоволокну, импорт морем (http://www.cassinfo.com/en/Transportation-Expense-Management/Supply-Chain-Analysis/Transportation-Indexes/Ocean-Freight-Index.aspx -- интересная картинка, правда?).

Случайно наткнулся на цифры мусульманских войн -- вау, там миллионы и сотни тысяч за одну войну погибали, а войн этих штук шесть больших было. И там же рядом интересный урок холокоста: "запомните навсегда, ..., что если кто-нибудь где-нибудь обещает вас убить - поверьте им" (http://newrezume.org/news/2015-08-06-10706).

Вернулся к бразильской музыке. Она крута и разнообразна.

Пишу по десятку страниц в день -- если не в блог, то для клиентов. При этом лучше не задумываться, сколько человек это всё прочтёт, и скольких человек это всё осчастливит. С другой стороны, самые дешёвые в части оплаты страницы -- это которые читают тысячи и тысячи людей. А самые дорогие -- это которые читают буквально несколько человек. Такая вот контринтуитивность текстописательства.

Поговорили вчера с другом-психологом. У неё очередная человечья классификация в фаворе, http://humandesign.pro/. До этого были MMPI, Сонди, Люшер, астрология, крайон, и сейчас этот "дизайн человека" (с намеренно встроенной противоречивостью в каждом пункте: явная опора на ба-гуа). Собственно, у неё есть некоторое своё внутреннее представление о человеке, на нейтральном по отношению ко всем этим внешним представлениям внутреннем языке -- и дальше она вовне просто коммуницирует это представление в терминах той или иной системы как говорила бы на китайском или испанском или турецком. Ибо без разницы какая именно психологическая онтология, она просто оформляет свою чуйку психолога в каком-то заданном языке, делает мэппинг (и да, целевой язык тоже влияет на мышление и эту самую чуйку, поэтому билингвы тут часто выигрывают, они могут разотождествить себя с выбранным языком). Почему такая эзотерика превалирует в выбранных языках психологической работы? А что ещё делать ей, как университетскому преподавателю психфака, если все "официальные" и "научные" системы бедны онтологически, бедны языково, зациклены на какой-то одной идее (то есть несистемны, редукционистичны) и поэтому плохо позволяют коммуницировать важные и сложные психологические проблемы? Особенно, если не хочется работать "по форме", "процессно", как принято в НЛП, а хочется и в содержание тоже забираться. В данном случае мне интересно наблюдать, как у неё все эти языки и методы потихоньку со временем меняются, уже почти три десятка лет с изумлением наблюдаю. И да, про онтологии-логики-рациональность у неё всё в порядке, просто некоторые методологические выборы делаются другие.

Служба знакомств продолжает съедать разные старые социальные сетки с сохранившимся моим профилем (типа модной когда-то spring.me) и после этого слать мне предложения от всяких почти шестидесятилетних дам из далёких от Москвы городов. Сейчас эта служба съела очередную соцсетку, и почти каждый день они взывают к моему либидо. Да, щаз.

Эфириум запустился. Сам запуск хитромудрый децентрализованный, с попытками управлять неуправляемым и чинить непочиняемое -- http://bitnovosti.com/2015/07/31/ether-annonce-start-date/ и http://bitnovosti.com/2015/07/30/frontier-is-coming/. Почему-то эфириум и его блокчейн мне интересней биткойна и его блокчейна. Lycos и Altavista ведь тоже были пораньше Google, это нужно помнить.

Для ситуационного сведения знаний хороший был бы кейс: даны учебник алгебры, учебник матана и ландавшиц. Требуется написать/научить программу, которая сможет их прочесть и расположить в правильном для изучения порядке.
Wednesday, August 12th, 2015
11:12 pm
Моя заметка по нейронным сетям для RUSBASE
Я буду выступать в Москве конференции BigData 18 сентября 2015 (http://icbda2015.org/), и в связи с этим событием вышла моя попсовая заметка "Как устроены нейронные сети?" (название давал не я, и глубокое редактирование текста тоже не моё) -- http://rusbase.com/opinion/neuron-networks/
10:30 pm
Ситуационное сведение знаний: требования и нормативные акты, curriculum, метод
Знания -- это информация, которая может быть использована в нескольких разных проектах, в разных ситуациях. Стандарты -- это требования, которые могут быть использованы в разных проектах. Нормативные правовые акты могут быть использованы в разных проектах. Учебники и справочники тоже содержат знания, которое применимо ко многим проектам. Конечно, это не все предметные области с похожими задачами сборки знаний (например, ситуационная инженерия требований -- это ведь про то же самое: метод определяется как свод всех необходимых для выполнения конкретного проекта практик), но достаточно репрезентативная выборка.

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

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

Свод знаний (по аналогии со сводом нормативно-правовых актов -- собрание текущей конфигурации нормативных текстов с учётом всех обновлений, дополнений, исключений, подразумевающий также некоторую полноту охвата предметной области и официальный статус, см., например тут) из каких-то его модулей вовне головы нужен тогда, когда:
-- знания нужно ставить под контроль конфигурации (находить противоречия и дублирование знаний), например в инженерии требований или нормотворческой работе (они ведь про одно и то же, по большому счёту)
-- требуется найти минимальный маршрут в обучении (вытащить то знание, которое нужно для преодоления inference distance для понимания какого-то аргумента -- http://wiki.lesswrong.com/wiki/Inferential_distance), задача составления учебной программы (задача тьюторства -- http://ailev.livejournal.com/1145422.html, curriculum mining).

Для того, чтобы помочь сводить какие-то знания "в голове", нужно занять позицию конструктивизма: знание в голове строится только путём приращения к уже имеющимся в голове знаниям, по кусочку за раз. Если для одного человека "номинальный диаметр" это чёткое указание на известный ему стандарт, то для другого человека это малопонятное знание. Если для одного человека "статистический вывод" это чётко определённое понятие из знакомых ему современных учебников, тьюториалов и статей (поскольку даже учебников по этой теме сейчас ещё немного), то другой человек вообще не поймёт о чём речь. Сведение знаний ситуативно не только потому что предметная область каждого проекта имеет разный охват для каждого проекта, но и потому как для каждого отдельного человека граница его знания и незнания проходит по-разному -- и для одного человека потребуется свести три документа, а для другого тридцать три, чтобы после их усвоения эти люди обладали сравнимым пониманием. Так что что для одного pandect (a treatise covering all aspects of a particular subject), т.е. какой-то свод, то для другого может оказаться загадочными письменами, для расшифровки которых требуется добавить довольно обширное дополнительное знание. Своды субъективны, как и любые другие определения: "свод в глазах смотрящего".

Все эти знания обрывочны: иногда требования явно поминают использующийся стандарт, а иногда просто используют термин из стандарта (типа "номинальный диаметр") -- и для понимания нужно затем подтягивать знания из стандарта по номинальному диаметру (а эти знания ещё и разные для России и США), затем подтягивать знания стандартов по метрологии, а для самых тупых придётся ещё и подтягивать знания из учебника геометрии (ибо что такое "диаметр" тоже нужно определять!). Так что верхний уровень пирамиды взаимоопределяющих знаний свода ещё как-то можно определить, а вот низ обычто "в тумане". Например, свод знаний по механической инженерии включает в себя знания по сопромату, которые могут включать в себя знания матанализа, а они могут потребовать знаний алгебры (и современные ВУЗы в России с этим в сведении curriculum уже сталкиваются: я писал, что в ЛЭТИ отдают первый семестр нормальному обучению школьной программе вместо обучения программе ВУЗовской).

Согласованную сборку части всего доступного знания из кусочков -- сведение знаний в одно целое -- нужно делать не только "в голове", но и вовне головы: нас ведь интересует не только воплощение целевой системы (головы со всеми новыми уже усвоенными знаниями, или даже целого коллектива, если мы понимаем про неизбежность разделения труда -- все необходимые для выполнения проекта знания в одну голову ведь не упакуешь!), нас интересует также определение целевой системы. Для этого мы должны сначала отмоделировать совокупное знание вовне головы, собрать его каким-то образом из модулей -- прописать явно интерфейсы и указать порядок сборки.

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

Ситуационный свод знаний довольно трудно получить, ибо знания существенно переплетены, плохо ставятся под контроль конфигурации и сводятся в какое-то содержательное целое обычно только "в голове". Например, знания:
-- о требованиях раскиданы по фрагментам требований из ТЗ, стандартам, техрегламентам, справочникам и учебникам (определения базовых понятий). Инструментальные системы управления требованиями как раз помогают осуществлять ситуационный свод требований. Но если брать требования стандартов, то своды стандартов существуют главным образом как наборы текстовых документов и плохо ставятся под контроль конфигурации, плохо сводятся.
-- законодательстве раскиданы по отдельным нормативно-правовым актам. Справочно-правовые системы типа "Консультант Плюс" или "Кодекс" осуществляют только самые общие функции по сведению таких знаний, а уж о ситуационном сведении пока только можно мечтать (хотя всякие "семантические информационные системы" предлагают именно такого сорта сервисы)
-- магистерской специальности раскиданы по разным учебникам, конспектам лекций и справочникам, и далее по всем интернетам. Никакого распространённого (да и не распространённого) инструментария для свода знаний учебной программы (curriculum), состоящей из множества содержательно связанных между собой отдельных курсов, нет. Ну, разве что совещания с устными согласованиями программ отдельных учителей-предметников. Но в ВУЗах и таких совещаний нет, курсы авторские и магистерские, например, программы составляются "по наитию" -- в надежде, что "образовательный салат" (http://ailev.livejournal.com/1160014.html) будет дан в правильном порядке и затем как-то слипнется в головах студентов в хоть как-то сведённое вместе знание.

В любом случае, речь идёт сейчас не столько о создании какой-то автоматической системы по сведению требований, норм, учебных курсов, описаний методов работы и прочей подобной автоматической знаниевой работе, сколько о помощи человеку для работы по сведению знаний -- прежде всего:
-- постановке под контроль конфигурации исходного знания и сведённого для какой-то конкретной технической или учебной задачи знания (случай со сводом законов, в котором сводится всё законодательное знание -- это предельный случай, мы его не рассматриваем. Всегда мы из какого-то "мешка со всем имеющимся несведённым знанием, потенциально могущим пригодиться" мы достаём некоторое заведомо меньшее число необходимых знаний и конструируем/сводим их соответственно ситуации). Контроль конфигурации позволит перейти от "творческого беспорядка" к какой-то инженерной проработке.
-- контроль коллизий (противоречивость, дублирование) знаний в своде, обеспечение ревизии знаний. Конечно, речь идёт только о каких-то определённых классах коллизий, при полном понимании, что сегодня до автоматической работы с коллизиями -- как до луны. В принципе, инженерные коллизии в современных САПР тоже обнаруживаются отнюдь не все, но даже то, что обнаруживается сейчас, даёт существенный выигрыш в усилиях по разработке.

Для примера помощи в ситуационном сведении знаний можно взять curriculum mining -- этот термин сегодня имеет два значения:
-- одно означает что-то типа process mining для знаниевой работы: как студенты пробегают через учебные модули. Curriculum mining includes three main kinds of tasks: (i) actual curriculum model discovery, i.e. constructing complete and compact academic curriculum models that are able to reproduce the observed behavior of students, (ii) curriculum model conformance checking, i.e. checking whether the observed behavior of students match their expected behavior as defined by the previously discovered or pre-authored curriculum model, and (iii) curriculum model extension, i.e. projecting information extracted from the observed data onto the model, to make the tacit knowledge explicit, facilitate better understanding of the particular academic processes and enable decision making processes. (http://files.eric.ed.gov/fulltext/ED537074.pdf и там стр. 230, CurriM: Curriculum Mining. Страница проекта -- http://www.win.tue.nl/~mpechen/projects/edm/index.html#currim, там прямо говорится о родстве с process mining).
-- второе ровно то, что нам нужно: to construct a curriculum network from a large sample of academic and quasi-academic (non peer-reviewed) resources on the web by relying on local (linguistic surface features) and global (network structure) cues. The network can then be used for the tasks of targeted curriculum path recommendations. (Это пишет Игорь Лабутов, http://creativemachines.cornell.edu/igorlabutov, заявляя тему "Automatic curriculum extraction from quasi-academic texts, а страница проекта -- http://creativemachines.cornell.edu/curriculum_mining). Mining там уже не процессов (поведения студентов), а веба (знаний) -- как раз на предмет сведения воедино нужных для какого-то цельного курса знаний.

Главная проблема понятна: модулей знаний (lecture excerpts from courses, book chapters, Scholarpedia pages, and "quasi-academic" sources, such as tutorials, technical blogs, Stack Exchange posts, Wikipedia вдобавок к учебникам и полновесным курсам типа встречающихся в Coursera) раскидано заведомо больше, чем нужно для освоения какого-то материала -- но и тут нельзя быть уверенным, что не пропустил какого-то модуля с определением важного для конкретного студента понятия. Даже в случае взаимной перелинковки друг с другом гиперссылками такой набор текстов ни разу не даёт основы для образования: образование требует некоторой последовательной проработки, разворачивания какого-то маршрута на знаниевом графе (я обсуждал этот вопрос несколько раз -- гиперкниготексты в 2003 с обсуждением разных view для читателя и писателя: http://ailev.livejournal.com/103692.html, эскиз образовательного проекта в 2011 -- но там с упором на задачи и упражнения и меньшим упором на curriculum: http://ailev.livejournal.com/961237.html).

Как же сшивать модули в определении знаний? Для этого нужно ввести направленные отношения между фрагментами текста (часто с картинками и таблицами), в котором какое-то знание определяется, а в другом используется. Когда всё знание не будет содержать неопределённых по отношению к какому-то базису фрагментов (мы считаем что-то уже известным изначально), процесс останавливается -- мы вытащили ровно те модули, которые нужны для полного понимания в случае образовательных программ или полной определённости в требованиях или нормах. Ну, или нам придётся признать наличие дублирования в определениях, противоречий в определениях, а также отсутствие каких-то определений (то есть упущенные стандарты, учебники, нормы) -- и тогда выйти на инженерные задачи свода знаний (так, предварительным необходимым условием создания Свода законов является осуществление ревизии законодательства).

В принципе, довольно легко сказать, что в одном тексте какое-то понятие используется, а в другом определяется -- хотя в реальной ситуации сплошь и рядом понятие А из одного учебника будет определяться через понятие Б из другого, а для понимания объяснения в учебнике Б будет требоваться учебник С, который без понятий из учебника А будет невоспринимаем. Учебник тут слишком большая единица, учебники нужно бить на какие-то более маленькие единицы-компоненты и учиться работать с ними -- весь вопрос в том, что это за такие функциональные единицы.

Конечно, эти функциональные единицы (определения, объяснения, упражнения) нужно будет как-то совмещать с единицами модульности текста (параграфами, главами, разделами, учебниками) -- то есть тут стоит традиционная задача архитектурного синтеза.

Сегодня довольно легко выявить определения в тексте -- как классическими лингвистическими технологиями (даже Гугль может такое: попробуйте поискать какое-то слово, снабдив его префиксом "define:"), так и новыми технологиями машинного обучения (при этом начальный учебный корпус можно делать в том числе и при помощи классических технологий -- см., например, как обучали нейронные сети распознавания голоса в Гугле, http://googleresearch.blogspot.ru/2015/08/the-neural-networks-behind-google-voice.html -- we developed a delicate iterative pipeline to retrain the models. Using improved acoustic models, we could recognize existing voicemails offline to get newer, better transcriptions the language models could be retrained on, and with better language models we could recognize again the same data, and repeat the process. Step by step, the recognition error rate dropped, finally settling at roughly half what it was with the original system!).

Конечно, тут предстоит ещё изобрести множество эвристик, но даже скромные результаты тут будут лучше, чем никакие. Сведение знаний -- типовая практика, требует какого-то типового инструментария, имеет множество приложений. Свод знаний нельзя готовить впрок, это неподъемная и ненужная работа. Свод знаний ситуативен. Технологии машинного обучения сегодня уже позволяют говорить о какой-то автоматизации, каком-то компьютерном инструментарии для этой практики. Я знаю о том, что самые разные команды по всему миру берутся за очень похожие задачи -- от свода требований для классического системноинженерного проекта с помощью IBM Watson до того же curriculum mining с использованием уже ставших классическими word embedding алгоритмов.
1:56 am
lytdybr
У отрока голос регулярно начал проваливаться на октаву вниз, очень непривычно. Размер глотки таки имеет значение. Ростом он уже с маму, я буду такими темпами обогнан уже меньше чем через год.

Курс алгоритмики у него сейчас на середине пятого урока, но я подозреваю, что всю математику там делает жена -- вот уж кто прилежно учится на полную катушку, иногда даже отрока к компьютеру не подпускает, так её разбирает какая-нибудь задачка. Отрок при этом бегает вокруг и пытается подсказывать что-то ей через плечо и регулярно приходит ко мне жаловаться, что "она не понимает, что там не 2n, а просто n!". Через полгодика этот курс нужно будет для отрока повторить, но при этом без подсказок со стороны мамаши. Математика в этом курсе алгоритмики таки для восьмого класса, то есть кусочки математики тоже приходится объяснять -- типа уравнений в неравенствах (хотя этим летом они уже встречались, их неожиданно дали в июньской физматшколе МФТИ).

Space Engineers закуплены, но практически не играются. Играются разнообразные военные Tycoons на Roblox. Оказывается, это крутой социальный навык: найти какую-то более менее крутую игру на этом роблоксе и сообщить о её существовании другу. Это даёт статус знатока и благодетеля. Space Engineers такого статуса так просто не даёт, тем более что этой игры ни у кого из друзей не оказалось. Коварные планы по оснащению всех друзей копиями этих космических инженеров (за мой счёт -- подарками) уже свёрстаны и завтра будут приводиться в исполнение. Игры сейчас дешёвые, подарить всем игру дешевле, чем накормить обедом.

Этим летом мы ещё не катались на пароходиках по Москве-реке, нужно будет не забыть это сделать до конца лета. А в парк погулять с друзьями в эти выходные выбрались, и даже неподъёмный Nikon D800 вытаскивали. Вот я на этой прогулке страдаю по поводу недоедания мороженок в этом году:

museon_8aug15

За эту вылазку я съел всего три мороженки, но если бы это было в прошлом году, я бы их там съел пять. Или восемь. И вообще я часто обедал в прошлом году полукилограммовой пачечкой какого-нибудь "грецкого ореха с кленовым сиропом". А в этом году что-то не заладилось: ларёк, где я закупался самым разным мороженым, снесли, а в "Перекрёстке" любимые сорта исчезли.

Как-то незаметно счётчик просмотренных глав манги перевалил за 10тыс. -- когда голова работает чересчур бодро, я играю на пианинке, а когда чересчур тупит -- просматриваю мангу, вместо того чтобы лечь спать сразу. Для осознанного действия "лечь спать сразу" нужно сначала перестать тупить. Так эти десять тысяч глав и накопились. Но не спрашивайте меня о прочитанном: имена, сюжеты, а иногда даже и рисовка в голове не остаются. Впрочем, когда я всякую фантастику в количестве читал, там был такой же эффект: в голове такое у меня не задерживается почему-то. В любом случае сейчас на мангу, а раньше на аниме (а раньше на всяких кастанед) времени у меня уходит меньше, чем раньше уходило на одни только танцы.

Зато я практически не читаю газет, журналов и не смотрю телевизор -- новостей нет, ибо там погоды (увы) стоят предсказАнные. Помните, 1964 год: "-- Вы заметили, сэры, какие стоят погоды? -- Предсказанные, -- сказал Роман. ... О вы, пропитанные духом западного материализма, низкого меркантилизма и утилитаризма, чье спиритуальное убожество не способно подняться над мраком и хаосом мелких угрюмых забот... ... По чьей-то рассеянности ему удалось продвинуться в заведующие отделом Предсказаний и Пророчеств, потому что во всех анкетах он писал о своей непримиримой борьбе против империализма янки еще в раннем средневековье, прилагая к анкетам нотариально заверенные машинописные копии соответствующих страниц из Марка Твена. Впоследствии же, в связи с изменением внутренней обстановки и потеплением международного климата, он был вновь переведен на свое место заведующего бюро погоды". Ну, и что поменялось с 1964 года, когда понедельник начинался в субботу? Мерлин опять, наверное, в завотделах, судя по обстановке.

Фейсбук аккуратно отжирает киберпространство: не запускать его уже нельзя, потому как чатиться люди предпочитают уже там, а не в скайпе. Хотя комменты в ЖЖ продолжают быть в разы и разы содержательней и полезней. Но и в фейсбуке бывают дискуссии, хотя очень редко, с короткими комментами и чаще всего недоступные для приглашения кого-то не из числа взаимных тамошних френдов. А то б я вам дал ссылку на дискуссию про статистический вывод, в которую я ввязался -- ибо в современных книжках по статистике приводят фразу "корреляция не означает причинности" как неправильный афоризм, дезинформирующий о текущих находках статистиков в области определения направления причинно-следственной связи в корреляции, прежде всего работы http://arxiv.org/abs/1412.3773 (декабрь 2014 года, но обновление там было как раз пару недель назад).

Не удержусь от сравнения форсайтных пароходов с философскими. Сплавал пароход -- и всё, содержание уехало, идёт чисто административная работа. Так, нейронет сплавал на пароходе, и теперь обсуждение идёт вместо собственно нейропроблем исключительно про состав "рабочих групп" и выстраивание позиции омбудсмена, который должен будет бодаться с министрами, отстаивая распределение этими рабочими группами "ресурсов на развитие". Этот омбудсмен от технарей будет с тем же заранее понятным итогом деятельностью на посту, что и у других обмудсменов (пара показательных выигранных кейсов, и полный обвал ситуации в целом на вверенном участке). Так что я там теперь на встречах не появляюсь, хотя темой потихоньку продолжаю интересоваться. Интересно, что в deep learning никакого интереса государства не замечено, никаких институтов развития нет, партия и правительство о них не знают, ровно поэтому эта сфера сейчас активно развивается и с ней знакомится довольно много людей. Страшно подумать, что будет, когда появится омбудсмен машинного обучения, готовый самоотверженно бодаться с министрами и "организовывать рынок машинного обучения" через переориентацию на это направление могучих институтов развития!

Наконец-то сделали правильный электроскейт, который может стать удобней самоката: http://hi-news.ru/technology/yaponec-sozdal-karmannoe-transportnoe-sredstvo.html. При этом все тротуары и дороги Москвы сейчас тщательно переделываются, чтобы такие удобные штуки не смогли по ней передвигаться. Вот, тротуары на Большой Ордынке уже тоже не асфальтовые стали, а плиточные. Конечно, все врезки для слепых (на которых мой самокат тоже хорошо так подскакивал) при этом исчезли (как и на Пятницкой) -- а ведь какой был проект, сколько там было денег закатано в асфальт в буквальном смысле слова!
[ << Previous 20 ]
About LiveJournal.com