July 29th, 2017

2019

Компоненты и модули: пример

Для тех, кому непонятна моя печаль по поводу неразличения проектными менеджерами функциональных и конструктивных объектов (компонент и модулей) в http://ailev.livejournal.com/1361455.html

1. Функциональный элемент, или компонента рассматривается в ответ на вопрос "как это работает", стадия жизненного цикла "эксплуатация", operations. Если мы хотим понять, как идёт спектакль, в котором вот этот вот человек говорит своё "To-be-or-not-to-be", нам нужно понять играемую им роль в этом спектакле. Нам понятно, что в спектакле он принц Гамлет (а не Вася Пупкин, который его играет, Васю при случае ведь и заменить можно на John Doe для пущей убедительности).

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

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

4. Если вы начинаете по жизни путать принца Гамлета и Васю Пупкина (несмотря на то, что во время спектакля это одно и то же лицо), то вам каюк. Вы будете за кулисами говорить Васе "Ваше Высочество", а на сцене говорить принцу Гамлету "как там твои жена и дети?" -- не понимая, почему на вас смотрят как на идиота.

5. В инженерном мире все железяки и программы, всё вообще играет назначенную инженером роль. Всё то же самое, как с принцем Гамлетом и Васей. Молоток играет роль раскалывателя орехов, эту же роль может играть небольшой микроскоп. Раскалыватель орехов -- роль, принц Гамлет железного мира, а молоток и микроскоп -- Вася Пупкин и Дарья Феофанова, играющие эту роль уж кто как может.

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

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



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

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10210850257346533
2019

Обучение машин, артигогика и нейролингвистическое программирование

Сегодня в центре внимания "обучение машин" вместо "машинного обучения" (machine teaching вместо machine learning), свежая статья Microsoft Research -- https://arxiv.org/abs/1707.06742. While machine learning focuses on creating new algorithms and improving the accuracy of "learners", the machine teaching discipline focuses on the efficacy of the "teachers". Machine teaching as a discipline is a paradigm shift that follows and extends principles of software engineering and programming languages.

Нет пророка в своём отечестве. Вот я писал про артигогику в 2012 году: http://ailev.livejournal.com/1011621.html, и говорил, что я хотел бы учить машины, как раньше хотел их программировать. Майкрософтовцы пишут We believe that in order to meet this growing demand for machine learning systems we must significantly increase the number of individuals that can teach machines.

Похоже, правда? И это ещё майкрософтовцы не начали рассуждать про нейролингвистическое программирование, которое по этой линии рассуждений в исполнении Джона Гриндера похоже на machine teaching до неразличимости, разве что нейроны в нём предполагаются из wetware, а язык предполагается естественный.

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

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

Опять же, проблема модульности для учебных систем как одна из центральных, майкрософтовцев тоже заботит. Вот я тут писал, что это будет центральной проблемой в машинном обучении (и в обучении машин тоже -- с точностью до терминологии): http://ailev.livejournal.com/1294242.html. И вот тут я делал в феврале 2016 доклад с упором на это на DeepHack http://ailev.livejournal.com/1245043.html, а в ноябре на SECR'16, доклад про инженерию машинного обучения -- http://ailev.livejournal.com/1308520.html. Ну, пусть теперь это будет называться инженерия обучения машин, а не инженерия машинного обучения, не суть разница: это тот же набор проблем -- чуть-чуть разных на каждом уровне платформ интеллект-стека. И вопрос появления слова "инженерия" около слова "обучение" тут только вопрос времени. Инженеры-артигоги, ага. Строгие, но справедливые. Нежные к своим болванам, но неумолимые.

Вот ещё одна свежая (сегодняшняя) публикация Carlos Perez с обзором на эту тему методологии разработки систем машинного обучения/обучения машин "Why Teaching Will Be the Sexiest Job of the Future A.I. Economy": https://medium.com/intuitionmachine/why-teaching-will-be-the-sexiest-job-of-the-future-a-i-economy-b8e1c2ee413e

Погоды стоят удивительно предсказАнные.
2019

lytdybr

В ближайшие дни придётся опять идти за самокатами -- вьюнош убил теперь и мой, тем же способом "преломления рулевой колонки". Опять куплю два таких же, потом он опять убьёт свой, потом будет брать попользоваться моим, а потом опять покупать. Это ж уже не первый и не второй раз!

Закончил учитывать замечания бета-тестеров для первой главы учебника. Осталось убрать ссылки в примечания, а ещё выделить вводимые термины жирным и засунуть их в глоссарий. При этом часть текста пришлось переписать, и страниц шесть дописать новых. Сколько при этом я вписал в текст новых ошибок и неточностей, исправляя старые -- неведомо. В любом случае, отзывы оказались более чем продуктивны. Всем огромное спасибо! Текст теперь будет читаться совсем по-другому (хотя и будет порождать не меньшие споры по линии "это не учебник по стилю изложения", "нужно ли вообще включать этот материал в учебник", "нужно озаботиться простотой и красотой изложения"). В любом случае, очень скоро можно будет приступать ко второй главе. Я вот не знаю, рассылать ли бета-тестерам результаты поглавно или просто в конце послать более-менее готовую книжку? Скорее всего, нужно это делать поглавно -- release early, release often. Хотя какое often? С момента моего запроса на тестирование первой главы прошло уже полтора месяца! Такими темпами я рискую в этом году вообще этот учебник не дописать!

В рейтинге пользователей ЖЖ я вдруг сегодня оказался 792 (это я заглянул на страницу собственного профиля, http://www.livejournal.com/userinfo.bml?user=ailev). Обмельчал ЖЖ, если мой непопсовый блог в нём входит в первые восемьсот. С другой стороны, в 2007 году в рейтинге блогов Яндекса я был 1026й (http://ailev.livejournal.com/542156.html), но я тогда ещё регулярно что-то писал на экономические и политические темы, а сейчас воздерживаюсь. Поискал, какие у меня до этого ещё были рекорды в ЖЖ, нашёл только запись, что в 2009 году я стал "тысячнегом": http://ailev.livejournal.com/694798.html. У меня немного с тех пор изменилось (кроме появления разных трансляций ВФейсбук и ВКонтакте, плюс окошка во фрифидик), а вот в ЖЖ изменилось, пожалуй, всё. Ну, с моими лоооонгридами поздняк куда-нибудь метаться, разве что на medium.com -- но за границей телушка полушка, да рубль перевоз. Вдруг вспомнил ещё одну пузомерку: ЕЖЕ. Там я был в 2005 в девятом десятке (http://ailev.livejournal.com/287423.html), а сейчас аж сто тридцатый -- http://www.ezhe.ru/fri/rating.html. Даже интересно, откуда там набралось 203 просмотра моей анкеты за два месяца, и сколько раз про меня там читали люди, а не роботы. Удивительно, сколько разной цифири про тебя считается в Сети.

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

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