Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Curriculum learning для системного тренажёра

Пару недель назад я выступил с инициативой сделать тренажёр с заданиями по системному мышлению, чтобы тренировать его беглость (http://ailev.livejournal.com/1278095.html). Над заданиями начали работать семеро, и я получил обильную обратную связь в онлайне и оффлайне.

Главной проблемой оказалась последовательность предъявления заданий, последовательность освоения содержания образования. Я назову этот аспект curriculum learning, следуя терминологической традиции, принятой в машинном обучении. Вот тут небольшой обзорчик на тему, как это обсуждается для машин: http://www.cs.cmu.edu/~lujiang/camera_ready_papers/AAAI_SPCL_2015.pdf. Отмечаемый в этой статье overfitting из-за self-paced learning (недостаточное обобщение обучения на разные ситуации, когда ученика допускают самому определять, что ему больше нравится учить -- скажем, зарывается и делает только один проект-кейс) это, кстати, и есть "недостаток фундаментального образования", большинство моих комментаторов упирали поэтому на примат curriculum learning перед каким-либо выходом в проектную практику. По их мнению, адаптивное обучение (https://en.wikipedia.org/wiki/Adaptive_learning, https://www.knewton.com/resources/blog/adaptive-learning/adaptive-learning-around-world/) имеет смысл рассматривать только как адаптация к уже имеющемуся "идеалу". Учитель должен знать и тщательно спланировать, чему учить -- а ученик как "материал" должен гарантированно получить отпечаток содержания предмета.

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

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

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

1. Осознание объектов и терминология: онтологизация. Важным является осознание наличия специальных объектов дисциплины и знание терминологии, чтобы мочь эти объекты обсуждать и решать с ними потом задачи. Практика = дисциплина + технология, так что выдираем из винегрета практики дисциплину (ибо отнюдь не всегда дисциплина задана явно). Задания тут простые, на классификацию и определение отношений. Мыслительных операций по факту не нужно, кроме операции выделения объекта в контролируемых условиях задачи и подведения его под класс, определение отношений между объектами + знания терминологии для описания всего этого. Такой подход требует выучивания всех промежуточных понятий и их терминов, требуемых для полного осознанного описания ситуаций. Например, если система представляет собой (в том числе) 4D-объект aka философский индивид, то вводится понятие такого объекта и тренируется работа с ним даже независимо от системы, а потом ещё и отдельно тренируется, что воплощение системы как раз такой 4D-объект. Если система представляет собой холон, то точно так же: обсуждается независимо от понятия системы, а потом отдельно цепляется к понятию системы для его усложнения Это доведённая до экстремума идея последовательного, конструктивистского построения знания в голове студента: "понять что-то -- это уметь такое сделать, в том числе отмоделировать", то есть построить понятие системы на основе многих его составляющих, уметь об этом внятно рассказать. Все теоремы разбиваются на леммы, каждая лемма и теорема получают свои имена, учится всё -- даже если потом теоремы и леммы нижнего уровня никогда не будут использоваться. Обучение идёт через "рацио": через тренировку нейронной сетки на работу с формальными определениями "снизу вверх" и игр с ними для тренировки, а не через прямую тренировку нейронной сетки многими предъявлениями какой-то проектной ситуации и акцентирования внимания на осознании каких-то объектов (через "непосредственный опыт").

Вот тут главное -- curriculum learning, порядок предъявления объектов, чтобы определение нового объекта можно было строить на базе определений предыдущего. Если все объекты связаны в сеть (по Витгенштейну, мы ничего не можем сказать про объект кроме того, что он как-то относится к другим объектам), то линеаризация (даже не вытягивание сети в "дерево"! обучение-то последовательно!) может быть проведена многими и многими разными способами.

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

Никакой пользы это не приносит. Это не мышление. Это ступенька, которая позволяет потом поддержать осознанность: умение говорить о том, что ты делаешь в уме, уметь называть объекты, с которыми работаешь, о которых думаешь.

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

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

3. Практическая применимость мышления, его беглость. Умение использовать знание в практической (то есть с задействованием технологии) жизни (то есть in the wild). Ситуация тут сложнее предыдущей (с учебными задачками) только тем, что:
-- онтологические объекты в реальной жизни выделить в разы трудней, чем в задаче. В задаче эти объекты уже часто оформлены хотя бы в слова, т.е. даны в локальных представлениях. Даже "кейсы" тут помогают -- они описывают только какой-то сегмент жизни, только релевантное решаемой задачи, в них не так много шума. А в жизни ты видишь пёструю мозаику самых разных предметов из самых разных дисциплин, да и мимо дисциплин вовсе. Кроме того, в задачах тебе обычно сразу говорят, что относится к твоей дисциплине, а что нужно брать из соседних. В теории всё чётко и просто. Тут же онтологические объекты представлены ото всех дисциплин, и нужно ещё догадаться, что речь идёт о целевой дисциплине.
-- объекты реального мира подразумевают не мыслительное действие с ними, а прямое действие. Яблоки из жизни едят, их обычно не считают. Нужно иметь особый выверт ума, чтобы разотождествить предмет действия и предмет мышления. Чтобы рычащего на тебя и брызгающего слюною Женю отождествить со стейхолдером "пользователь", а вялую Сашу отождествить с "системным архитектором" требуется очень нетривиальное умственное усилие -- а окружающий фон будет доставлять в этот момент запредельное число помех. В кейсах это не натренируешь, тут нужны только проекты.
-- в реальной жизни тебе нужно твою хорошо выученную онтологию соотносить с онтологиями других стейкхолдеров. Для этого нужно уметь не только опредмечивать свою предметную область (чему весь этот тренажёрный тренинг и посвящён), но и распредмечивать -- со своим уставом в чужие монастыри-то не ходят! То есть нужно а) опредметиться -- т.е. сообразить, что тут нужно использовать выученные тобой знания, б) поставить задачу (! это главное на данном этапе. Ибо на прежних этапах задачи ты получал уже поставленные, и нужно было только решать задачи!), в) решить теоретическую задачку (это будет легко -- оттренировано на предыдущих этапах. Но неожиданно задачка может оказаться сложней, чем было предусмотрено в учебном процессе на предыдущих стадиях тренинга), г) обсудить её решение с коллегами по предмету (это легко, если знаешь терминологию и помнишь исходные схемы), д) обсудить её решение с коллегами из других дисциплин, для чего нужно будет "распредметиться", отойти от использования с таким трудом натренированной онтики и поплыть в мутных морях распределённых представлений, снов своей нейронной сетки, общежизненного опыта и нетерминологического языка. Этот пункт (обучение в условиях in the wild, в реальной жизни, когда "знать" мало, нужно ещё не растеряться, и применить знание) хорошо иллюстрирует анекдот в http://cartmendum.livejournal.com/214886.html

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

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

Здесь нужно откреститься от обвинений в том, что мы тем самым будем учить старинному системному подходу, который мы видели вплоть до начала 80-х, когда появились работы Чекланда и прочих системщиков, напирающих на определяющее присутствие людей. Это "первое поколение системного подхода", он же системный подход 1.0, а у нас тут современная версия, 2.0. Почему нужно оправдываться? Потому что много людей видели набитые формулами и матмоделями учебники системотехники и системного анализа -- их было огромное число, ибо только кафедр системотехники в стране было 40 штук. И по этим учебникам было бы очень просто организовать обучение как физике или математике: там же всё было по формулам, там было всё формально! Вот наши отличия:
-- нет излишней математизации, и даже формальной логики "в формулах". Но это не означает отсутствие формальности. Мы явно используем логику, как "искусство правильных рассуждений" (слово "искусство" тут обозначает только то, что мы не требуем изложения правильных рассуждений формулами, как в матлогике). Дальше я этот тезис предпочитаю не раскрывать, обращайтесь к литературе по философской логике по связи формульного формального "вывода", и его же, оформленном в виде "рассуждения" на естественном языке (тем более что мы вынуждены включать в курс фрагменты философской логики -- про те же 4D объекты, чтобы дальше иметь возможность работать с понятием системы, формально укоренённой в физическом мире).
-- в силу этого основные наши модели не классические формульные математические, а "схемы" -- онтологические модели, чаще всего выразимые диаграммами. Мы не настаиваем, чтобы эти схемы были представлены в формулах для какой-то из логик (обычно логики первого порядка, но могут быть и разные более хитрые варианты с обращениями к модальным логикам и логикам более высоких порядков). Со схемами (несмотря на их логическую природу) мы работаем в естественном языке, а не формальным выводом с формулами.
-- наш системный подход 2.0, то есть базируется на деятельностном походе (системы задаются субъективно, стейкхолдерами-деятелями. Это не физика с её "объективными" системами). По большому счёту, это довольно много чего меняет -- в том числе существенно размывая границу классического системного подхода, системного подхода для "мягких систем" (начиная с работ Чекланда и далее в менеджмент), подхода для системы систем (которые определяются через независимость входящих в какую-то систему отдельных систем в плане их разработки, развития и эксплуатации, т.е. в определение явно втянуты люди-владельцы этих систем).
-- мы в уме держим (но пока не реализуем) положения по коннекционистской проблематизации системного подхода (http://ailev.livejournal.com/1252230.html), эволюционистской проблематизации http://ailev.livejournal.com/1268678.html и т.д..

А сейчас мы попробуем исходя из этих представлений
-- откорректировать системную онтику (хотя тут ближе к онтологии -- ибо начинаем с upper ontology), вытянутую как-то в curriculum последовательности их изучения. Первый заход в виде списка мышлем я делал в http://ailev.livejournal.com/1278600.html, и эту работу нужно продолжать.
-- привести в соответствие с откорректированной онтикой уже наработанные задания. Ну, и заодно эти задания (которые, как оказалось, сочинялись главным образом для разбирательства с нюансами) сильно огрубить: тренировать не 2*2=2.1,2,2.0,10дв, а 2*2=500,2,БГД (и на этом тоже многие будут срываться).
-- тщательно выстроить из заданий базовую последовательность для curriculum learning (или ряд таких последовательностей -- уж как получится), даже не думая пока о возможностях какой-то адаптации её к возможностям или потребностям разных студентов.
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 5 comments