?

Log in

No account? Create an account
Лабораторный журнал -- Day [entries|friends|calendar]
Anatoly Levenchuk

[ website | Лабораторный журнал ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

lytdybr [12 Aug 2015|01:56am]
У отрока голос регулярно начал проваливаться на октаву вниз, очень непривычно. Размер глотки таки имеет значение. Ростом он уже с маму, я буду такими темпами обогнан уже меньше чем через год.

Курс алгоритмики у него сейчас на середине пятого урока, но я подозреваю, что всю математику там делает жена -- вот уж кто прилежно учится на полную катушку, иногда даже отрока к компьютеру не подпускает, так её разбирает какая-нибудь задачка. Отрок при этом бегает вокруг и пытается подсказывать что-то ей через плечо и регулярно приходит ко мне жаловаться, что "она не понимает, что там не 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. При этом все тротуары и дороги Москвы сейчас тщательно переделываются, чтобы такие удобные штуки не смогли по ней передвигаться. Вот, тротуары на Большой Ордынке уже тоже не асфальтовые стали, а плиточные. Конечно, все врезки для слепых (на которых мой самокат тоже хорошо так подскакивал) при этом исчезли (как и на Пятницкой) -- а ведь какой был проект, сколько там было денег закатано в асфальт в буквальном смысле слова!
2 comments|post comment

Ситуационное сведение знаний: требования и нормативные акты, curriculum, метод [12 Aug 2015|10:30pm]
Знания -- это информация, которая может быть использована в нескольких разных проектах, в разных ситуациях. Стандарты -- это требования, которые могут быть использованы в разных проектах. Нормативные правовые акты могут быть использованы в разных проектах. Учебники и справочники тоже содержат знания, которое применимо ко многим проектам. Конечно, это не все предметные области с похожими задачами сборки знаний (например, ситуационная инженерия требований -- это ведь про то же самое: метод определяется как свод всех необходимых для выполнения конкретного проекта практик), но достаточно репрезентативная выборка.

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

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

Свод знаний (по аналогии со сводом нормативно-правовых актов -- собрание текущей конфигурации нормативных текстов с учётом всех обновлений, дополнений, исключений, подразумевающий также некоторую полноту охвата предметной области и официальный статус, см., например тут) из каких-то его модулей вовне головы нужен тогда, когда:
-- знания нужно ставить под контроль конфигурации (находить противоречия и дублирование знаний), например в инженерии требований или нормотворческой работе (они ведь про одно и то же, по большому счёту)
-- требуется найти минимальный маршрут в обучении (вытащить то знание, которое нужно для преодоления 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 алгоритмов.
11 comments|post comment

Моя заметка по нейронным сетям для RUSBASE [12 Aug 2015|11:12pm]
Я буду выступать в Москве конференции BigData 18 сентября 2015 (http://icbda2015.org/), и в связи с этим событием вышла моя попсовая заметка "Как устроены нейронные сети?" (название давал не я, и глубокое редактирование текста тоже не моё) -- http://rusbase.com/opinion/neuron-networks/
4 comments|post comment

navigation
[ viewing | August 12th, 2015 ]
[ go | previous day|next day ]