Комментарии 38
Спасибо.
Подскажите, что на верхнем правом графике показано?
habrahabr.ru/post/249657/#comment_8266001
Я не спорю с тезисом, но тему вы раскрыли чуть менее, чем полностью. Хорошим примером может быть, например, история, когда один интерн дома на коленке собрал сеть, которая побила гугловое распознавание речи. Про это было у Джефри Хинтона в AMA. А у вас просто тонкая настройка. Ну и цитата Стиви совсем про другое.
Сам в виде хобби обучаю нейросети генетическими алгоритмами. Стохастика при творческом подходе позволяет выскакивать из локальных минимумов.
А сколько физического времени занимает у вас 500 эпох?
1-ый. Оптимизация градиентным спуском Mini-Batch тоесть элемент стохастики в нём действительно есть, но маленький. Кроме того расспрашивая разных специалистов, в том числе преподающих это дело в международных университетах, я убедился, что никто из них не знает как размер пачки для минибатча влияет на обучение. о том, что он влияет больше, чем скорость в большинстве случаев они не догадывались. Поэтому первый пример — это решение «из коробки», которое вы получите вместе со стандартной библиотекой.
2-ой. Пример с моим домашним алгоритмом. Всего лишь доработанный первый, но какая разительная разница. В этом примере я рассматриваю влияние размеров пачек и другие формы стохастики. Но не потому что предлагаю другим использовать мои алгоритмы, а потому что предлагаю экспериментировать с уже известным.
3-ий. Пример в котором я отказываюсь от слоёв в структуре перцептрона и получаю гораздо лучший результат. Это сделать это можно множеством разных способов. Я сделал одним способом и у меня получилось хорошо. Вы можете сделать десятком других способов и у вас, возможно получится на много лучше. Одна коммерческая контора работающая с большими данными на конференции увидела эту идею с небольшой иллюстрацией, и как я выяснил сегодня на встрече, они уже начали делать свои бесслойные перцептроны, причём не с такой как у меня топологией. Они будут экспериментировать. Это будет хорошо.
Про конкретность тестовой задачи, я гонял на довольно разных картнках, но с похожим типом задач — обратное восстановление сложной функции. Мой алгоритм всегда работал сильно лучше, и если посмотреть на фазовую картинку сети при обучении моим алгоритмом и стандартным можно сделать предположение почему так.
В ближайшее время планирую натравить свои сетки на Ирисы и другие эталонные задачи и надеюсь на хороший результат.
2. Оценивая качество алгоритма, недостаточно показать его эффективность на конкретном примере. Для того же градиентного спуска исследованы случаи, когда он гарантированно приводит в точку локального оптимума, а когда не приводит ни к какому вменяемому результату — тем самым давая возможность исследователю осмысленно интерпретировать результаты и менять свободные параметры алгоритма. При его модификации точно так же исследуют, как изменения параметров влияют на устойчивость и сходимость оптимизирующего процесса, поскольку, как говорят буржуи, «не бывает бесплатных завтраков». Я понимаю, что Ваше исследование носит экспериментальный характер, но чтобы к нему отнеслись серьезно, не плохо бы как привести сам алгоритм обучения, так и показать, что он действительно (гарантированно или хотя бы с допустимой вероятностью) приводит к нахождению удовлетворительного решения на любой задаче некоторой природы. В противном случае на утверждение, что Ваш алгоритм позволяет сильно сократить требуемый объем выборки Вам с полным основанием могут сказать: «Просто повезло в данном конкретном случае — и всё».
3. Увеличивая количество синаптических связей Вы вполне очевидным образом увеличиваете возможности структуры к обучению. Другой вопрос — это количество примеров, достаточное для тонкой настройки синаптических весов, поскольку чем их больше — тем больше пространство поиска, соответственно, задача оптимизации вычислительно сложнее. Учтите, что в практических приложениях размер обучающей выборки всегда сильно ограничен, редко достаточен и почти наверняка имеющиеся данные сильно зашумлены. Чтобы не попасть в капкан проблемы переобучения зачастую приходится находить компромисс между обучающей способностью сети и качеством обучения. Сети прямого распространения как раз являются таким компромиссным решением — не всегда хорошим, но для которого по крайней мере доказаны условия и ограничения, при которых достигается достаточное качество обучения. Вы, разумеется, вольны менять топологию сети — но ожидать, что при этом Вы получите стабильное улучшение по всем значимым характеристикам было бы самонадеенно, и уж точно такое утверждение должно быть доказано или хотя бы обоснованно.
В общем, надеюсь увидеть Ваши сети, алгоритмы и более показательные результаты их тестирования.
В вашем примере предполагаемого зашито сразу несколько ошибочных предположений, которые я проверил и выяснилось, что все они легко обходимы:
Во-первых эффективность обучения можно оценивать не по поведению графика ошибки, где есть сложности, а по поведению диаграммы положения сеты в фазовом пространстве. Эта диаграма, которую я придумал, возможно не первый, удивительным образом как раз и показывает «формы оптимизируемого функционала в пространстве синаптических весов сети». Подробнее можно прочитать в моей статье, ссылка на которую приведена выше.
Во-вторых, ошибочно вот это суждение: «при использовании методов оптимизации первого порядка, к которым относятся градиентный спуск». На самом деле алгоритмом первого порядка градиентный спуск является только при бесконечно-малой скорости или при использовании алгоритмов второго порядка на полных исходных данных, дающих спуск с оптимальной скоростью. Все стахостические алгоритмы, типа минибатча всегда перескакивают через локальные минимумы и ваш результат критически зависит от того, на сколько вы ловко и к месту это делаете. А дистанция «перескока» как раз и зависит от размеров пачки mini-batch. Ближайший локальный мнимум достич можно и легко, но никому не нужно.
В-третьих, «добавляют элементы стохастики. Это известный аспект, актуальный для всей теории численной оптимизации.» Стохастику можно добавлять очень по разному. Если вы добавите стохастику в виде слчайного колебаний, например, у вас получится хуже, чем если бы вы этого не делали, а между тем в численной теории оптимизации чаще всего делают именно так. Потому что методы придуманы давно и специфики сетей не учитывают.
2) См. выше.
3) «Увеличивая количество синаптических связей Вы вполне очевидным образом увеличиваете возможности структуры к обучению» — ещё одно неверное предположение. Вернее не всегда верное, если покопаться внимательнее. Если у сети достаточно много связей она очень-очень часто вместо того чтобы найти одно хорошее обобщение предметной области находит сумму нескольких плохих. При этом, как доказали ещё в 1991-ом году замена одного хорошего глубокого обобщения на несколько попроще с меньшим количеством слоёв ведёт к экспоненциальному росту количества необходимых ресурсов.
3) Или вот вы говорите про проблему переобучения. Но если повнимательнее покопаться в вопросе можно обнаружить что есть две разные проблемы, одна — переобучения, а вторая — суммы плохих обобщений. Первую обычно можно увидеть потому что ошибка хорошая на учебной выборке, но может быть плохой на другой, а вторую проблему можно заметить потому что ошибка хорошая на учебной выборке но может быть плохой на другой. Решаются проблемы по разному при этом. Вместо того чтобы молча принимать этот факт потому что предками данная мудрость завещала я задумался, а можно ли придумать визуализацию, на которой эти проблемы будут хорошо отличаться. И оказывается есть такая визуализация.
В общем, мои алгоритмы вы наверняка ещё увидите, но статья не об этом, а о том, чтобы искать.
Порядок метода определяется порядком входящих в него производных. Параметр скорости, входящий в метод градиентного спуска, всего лишь определяет его дискретную природу — и тем не менее метод имеет первый порядок. При стремлении скорости обучения к нулю оптимизирующий процесс вырождается в непрерывный, который гарантированно приводит в точку локального минимума, но не реализуем алгоритмически, при конечном значении параметра, меньшем некоторого критического — в окрестность локального минимума, при большем — к расходимости оптимизирующего процесса.
Минибач не перескакивает гарантированно локальные минимумы. Данный метод фактически меняет исходную постановку задачи — производится оптимизация не в смысле исходной среднеквадратической ошибки, а в смысле «усредненной по пакетам» среднеквадратической ошибки. Градиент, вычисляемый по пакету, есть градиент по другой, новой поверхности ошибки — не той, которую Вы изначально описывали. В теории она оказывается более гладкой по сравнению с исходной, что и позволяет «пробегать» локальные минимумы с низкими стенками. Однако чтобы такое сглаживание не нарушало требования близости получаемого функционала качества к исходному, пакеты (минибачи) должны, во-первых, сохранять статистические свойства пространства признаков, и во-вторых, иметь размер, достаточный для достижения требуемого уровня гладкости, но при этом не разрушающий важные топологические свойства исходной поверхности. Это напрямую следует из анализа метода. Если те, к кому Вы обращались, этого не понимают — меняйте консультантов.
> методы придуманы давно и специфики сетей не учитывают
Мы о каких методах говорим? При сужении области определения методы обычно корректируются с учетом структурных особенностей целевого функционала. Тот же алгоритм обратного распространения для персептронов есть ничто иное, как стохастический градиентный спуск, редуцированный с учетом формы функции, реализуемой персептроном. Насколько я понимаю, Вы экспериментируете именно с произвольными, не особо системными, изменениями топологии сетей, и не занимаетесь (пока, во всяком случае) переформулированием методов обучения на случай таких изменений. Так что нельзя сказать, что Вы учитываете при обучении специфику сетей на уровне определения алгоритма обучения.
3) А я не говорил, что просто увеличением количества свободных параметров Вы гарантированно добьетесь большей потенциальной точности обучения — это зависит от VC-измерения результирующей машины. Как раз получение плохого обобщения может быть связано с тем, что реализуемое множество аппроксимаций не достаточно богато и не позволяет с достаточной точностью спроецировать на него аппроксимируемую функцию. В этом-то и проблема: меняя топологию сети произвольным образом, Вы тем самым меняете множество реализуемых обучаемой машиной аппроксимаций, притом совершенно неизвестным образом — Вы же не уточняете причин изменения топологии, не делаете анализа последствий и не говорите, как и почему меняете алгоритм обучения. В связи с этим совершенно непонятно, для какого класса задач такое изменение адекватно, а для какого приведет к сложно обнаружимым ошибкам. А в таких вопросах худшее, что может быть — это плавание в вопросах интерпретации результатов.
3.2) Это принципиально разные проблемы. Корень проблемы переобучения заключается в том, что используемые для обучения данные имеют шум, а выборочные статистические характеристики лишь приблизительно соответствуют характеристикам генеральной совокупности. В результате оказывается, что Вам на самом деле нужно решать оптимизационную задачу, закладывая в нее наличие этих погрешностей, что и отличает регрессионную задачу от обычной оптимизационной. Получается, что нужно либо менять формулировку задачи, форму целевого функционала, очень сильно усложняя тем самым задачу, либо закладывать в оптимизирующий процесс некоторые априорные сведения о свойствах подходящих Вам окрестностей минимума исходного, простого функционала. Это зачастую делается эмпирически и иногда — включая в алгоритм оптимизации некоторые стохастические элементы.
Вторая (суммы плохих обобщений) связана с тем, что взятаю обучаемая машина в принципе не может достаточно точно восстановить Вашу функцию — обучаемая машина просто не реализует достаточно точное приближение. Здесь максимум, что Вы можете сделать — найти лучшее из худших, что чаще всего чрезвычайно трудоёмко, либо выбрать другой класс обучаемых машин. Это не «предками данная мудрость», а вполне четко описанная и исследованная еще в ранних работах проблема, и причина пробуксовки в этом вопросе отнюдь не в недостатке теории, а в том, что инженеру, не владеющему в полной мере теоретическими тонкостями, действительно довольно сложно отличить эти два случая. Если Ваш метод визуализации позволит это сделать — будет очень круто, но из Ваших публикаций это не очевидно.
Повторюсь, я согласен с Вашим посылом, в любой области есть принципы и методы, которые приняты не потому, что у них есть достаточное основание, а просто «потому, что». Типа, «работает же». Но не надо думать, что исследователи не понимали, что делали, отдавая предпочтение тем или иным подходам и гипотезам. Думаю, не бесполезно для Вас было бы попытаться также понять их мотивы и только тогда судить о том, были ли их выводы ошибочны.
>> Вообще то, что при пакетном обучении содержание пакета должно удовлетворять критериям статистической выборки, то есть сохранять статистические свойства генеральной совокупности, есть база.
Это есть Стереотип. Он появился потому, что хотелось учить на подвыборке так, как будто учите на полной выборке. В этом был мотив тех, кто вписал это в базу, я его понимаю. Второй мотив, касательно сглаживания я разберу в следующем абзаце. А теперь давайте подумаем: Возьмём стохастический градиентный спуск, когда изменение весов делается после каждого шага. Этот метод работает? Да, работает, это экспериментальный факт. Только скорость нужно сильно меньше взять. Но это по сути своей то же самое, что учить пачками по 1 примеру. Теперь давайте возьмём пачки по 2 примера? Будет работать? Будет. Возьмём пачки по три. Будет? Будет. На самом деле успешным алгоритмом является алгоритм обучения при любом размере пачки между 0 и максимумом, если решить вопрос подбора скорости. Получается, что есть целое семейство алгоритмов, в которых положительные и отрицательные качества стохастических и положительные и отрицательные качества алгоритмов на полных данных постепенно меняются от одного края к другому. А если ещё поизучать их и понять, что на разных этапах роль этих положительных и отрицательных качеств сильно разная, то вообще можно догадаться как я рисую такие красивые картинки. :)
Судя по тому, как упорно вы придерживаетесь представлений о том, что может быть или так или по другому, вам такие полустахостические алгоритмы могут показать много нового и интересного. А если такой стереотип является широко распространённым, то я теперь знаю какой доклад надо сделать для следующей конференции. Только на разных типовых задачках демок наделать. :)
Хотя конечно встречаются задачи и/или способы представления входных данных, на которых стохастический градиентный спуск не работает вообще, там и эта логика может работать плохо. Но что-то мне подсказывает, что ещё Розенблатт доказал, что если у вас есть достаточно времени, то таких задач не бывает.
На счёт сглаживания пространства рискнул бы поспорить. На самом деле этого пространства никто не видел, кроме самых простых и вырожденных случаев по вполне понятным причинам, поэтому если вы или консультант это понимаете, совершенно не факт, что это так на самом деле. Вполне возможно, что тут распологается ещё один стереотип.
Вполне возможно, например, что фича не в сглаживании пространства, а в том, что препятствия в пространстве очень часто носят не характер пиков и ям, а характер гребней и оврагов. Это, кстати, ещё в 2010-ом году показывали ребята, придумавшие совмещать метод сопряжённых градиентов с алгоритмами второго порядка: www.icml2010.org/papers/458.pdf, они это называли pathological
curvature.
А если так, то фича минибатча, весьма вероятно, в том, что на любой подвыборке эти гребни и овраги располагаются под другими углами, чем на полной выборке, и тогда прохождение по подвыборке позволяет преодолевать гребни полной выборки. Как это проверить? Например визуализировать движение сети из одной и той же сети на полных данных и на паре разных подвыборок. Если сеть пойдёт по дну оврага, и дно это будет распологаться под разными углами мы выиграли ещё один доклад на конференцию. :) Попробую ка я, пожалуй, накропать вечером демок на этот счёт.
Вот видите именно так ведётся такой поиск. Находится ограничение или база, которую люди не рассматривают как переменную и задаётся вопрос, а что если это ограничение на самом деле является нестрогим? А что если за него подёргать? В результате на свет божий выпадают интересные результаты.
Я могу точно также подвергать сомнению некоторые другие тезисы в вашем тексте, потому что я вижу как минимум ещё парочку стереотипов, которые не выдержали столкновения с экспериментом. Но гораздо интереснее будет если Вы возьмёте какой-нибудь абзац своего текста и попытаетесь предпринять то же самое что я: Усомниться в ограничении, и попытаться понять, что получится если считать его не строгим. Например вот этот ваш абзац, про который котором я точно знаю, что в нём содержится стереотип. А если вы попытаетесь его самостоятельно искать, то возможно найдёте не тот, который нашёл я и это будет на много круче. Напишем совместную статью на конференцию:
«Как раз получение плохого обобщения может быть связано с тем, что реализуемое множество аппроксимаций не достаточно богато и не позволяет с достаточной точностью спроецировать на него аппроксимируемую функцию.»
Зато если допустить выполнение некоторых дополнительных требований, типа статистической корректности подвыборки, тогда задача поддается аналитическому исследованию, устанавливаются свойства алгоритма обучения и условия его работы. И это вовсе не стереотип, а допущения, при которых выводы остаются справедливыми для широкого класса типовых задач. Да, эти допущения могут быть избыточными и сделанные в их рамках выводы могут быть неверны при более широкой постановке задачи, а результаты могу быть улучшены. Но если слепо использовать декларируемый Вами подход — сделаем, визуализируем и посмотрим на результат, то есть эксперимент без аналитики, то максимум, что из этого можно получить — слабоформализованные эмпирические рекомендации, которые работают 50/50, что в истории науки уже неоднократно доказывалось.
Вы наврядли «увидите» сглаженную поверхность такой, как она есть, какую хитрость не используйте. В этом-то и фишка аналитического подхода — не нужно иметь геометрическую интерпретацию абстрактного объекта, чтобы его себе представить. И верность этих представлений контролируется необходимостью доказательства утверждений о наличии или отсутствии у исследуемого объекта некоторых свойств. Это защищает от таких упреков, как «понимаете, совершенно не факт, что это так на самом деле». Доказано = факт. Да, при ряде допущений, да, только в «узком смысле», но это — реальное, а не кажущееся свойство объекта. С другой стороны, то, что Ваша картинка что-то показывает — это еще не научный факт, который может претендовать на какую-либо общность, и это никак не защищает Вас от ошибок трактования результатов.
Выравнивание оврагов как раз и есть элемент сглаживания. Вы здесь только подтверждаете мои слова, и новизны в этом нет, поскольку, повторюсь — это следует из формулировки метода.
Эксперименты на тестовых задачах — это, конечно, всегда интересно, но попытайтесь подвести под них какую-нибудь аналитику. Только тогда Вы можете говорить о том, что получили какие-либо качественно новые результаты. Вот я Вам сейчас указал, что сделанный Вами вывод вполне вписывается в известные положения, хотя они, возможно, кем-то со временем забылись — и Вы это не смогли опровергнуть, только назвать это стереотипом.
И, если позволите, небольшое отсебятинское пожелание. Добавьте немного самокритики. С Вашей стороны будет ошибкой считать, что вступающие с Вами в критическую дискуссию люди — законченные консерваторы, запертые в своих стереотипах и не способные воспринять модерновые идеи. Обычно всё проще — идеи и результаты, кажущиеся Вам модерновыми и ломающими стандартные представления на поверку зачастую оказываются вполне себе вписывающимися в известные концепции. Хотите спорить с аналитиками — предоставьте им свою аналитику помимо экспериментальных данных.
Думаю здесь мы сталкиваемся с той же ситуацией — В результате строго доказать что-то удаётся только для самых вырожденных случаев. Например никто не может строго доказать, что предобучение глубоких сетей на автоэнкодерах или RMB улучшает результат, это можно только увидеть. Хотя половина прогресса последних полутора десятилетий основана именно на таких методах.
Если этого не понимать, то получится как с одним комментатором моей предыдущей статьи, в которой я говорю, что благодаря тому, что я отказался от простых задач классификации я смог получить замечательный результат, который на классификаторах не видно, а он мне отвечает, что это прекрасно, но если бы я вместо этого решал задачу классификации, то было бы проще применять статистику.
Я понимаю, что чтобы другие увидели то же самое, что вижу я, придётся показывать им это на множестве примеров, причём желательно тех, которые они раньше пытались решать своими способами. Но в этой статье я ставил перед собой немного другую задачу.
Дело в конечном счете не в количестве примеров и не в том, чтобы убедить ими ученую общественность. Скептики останутся, даже если Вы предъявите множество примеров — и я, вероятно, буду в их числе, пока кто-нибудь не приведет удовлетворительное объяснение. В конечном счете важно, чтобы инженер, который решает задачу огромной размерности за малое время был уверен, что не обладая Вашим опытом, не имея возможности сколь угодно долго экспериментировать с параметрами, отслеживать метание сети в фазовом пространстве — и желания смотреть на хитросплетения миллиардов миллиардов свободных параметров, он тем не менее мог быть уверен в том, что получит приемлемый результат за приемлемое время. Поэтому увидеть мало, нужно понять причины, иметь возможность интерпретировать и предсказывать результат — какой бы сложной ни была задача. Вы получили результат, который считаете лучше, чем получаемый стандартными инструментами, но не ответили на вопрос — а насколько этот результат переносим на другие задачи, интересные не только Вам? Будет ли результат столь же хорош на других задачах? И когда алгоритм провалится? Именно для ответа на эти вопросы прибегают к аналитическим исследованиям, поскольку для ответа на них экспериментальных данных уже недостаточно.
И этот пост не про то, что я что-то сделал правильно и не про то, чтобы кому-то что-то доказать, и убедить, что мои идеи стоят Вашего времени. Даже если бы вы хотели ими заняться. Я предлагал каждому читающему посмотреть на эту область, найти свои собственные гипотезы, и попробовать их проверить. Понимаете, не мои, не Хопфилда, не Мейсона, свои собственные.
И лишь надеюсь, что мои картинки помогут людям искать свои собственные гипотезы и мысли.
Я грязью из-под шин плюю
В чужую эту колею.
Эй, вы, задние! Делай, как я.
Это значит — не надо за мной.
Колея эта — только моя!
Выбирайтесь своей колеей.
© Высоцкий
Что-то дернуло меня перечитать комментарии к своей допотопной статье, и это было прикольно. :)))
Во-первых могу посоветовать посмотреть мой доклад на последнем ODSфесте: https://www.youtube.com/watch?v=Npm-awHtfeM, почти всё, о чём я говорил тогда в 2015-ом году прекрасно подтверждается и на типовой задаче кормпьютервижена, в котором, казалось бы, всё изучено вдоль и поперёк. Тут в докладе, я кстати, привожу и строгую математику, описывающую связь размеров батча и стохастики с другими параметрами обучения. Подавляющее большинство людей как не понимали всего вот этого, так и продолжают не понимать. Восемь лет прошло, а мои велосипеды все ещё едут лучше общепринятых. :)))
Во-вторых, вы тут упоминали, что вам не нравятся мои определения "обобщений", вернее то что я вам их не раскрыл тогда в дискуссии. Если вам интересно, то посмотрите свежие статьи про такое явление как гроккинг в нейросетях, обнаруженное совсем недавно. Вот мои обобщения, как я убеждён, это и есть то, что ведёт к гроккингу. Строго я это ещё не доказал, но очень похоже по всем признакам. Если бы тогда в 2015-ом встретил больше заинтересованности от людей, которые занимались уже тогда нейросетями возможно гроккинг был бы открыт в 2016-ом, а не в 2023-ем, и в России, а не за её пределами.
Какой сюда, позвольте узнать, стереотип закрался?
Если сеть обладает достаточной глубиной один к куче миллиардов, что нужное обобщение ей доступно, но вы не можете его найти. Хотя бы потому что не ищите. Вы ищите уменьшения ошибки, а уменьшение ошибки порой быстрее достигается двумя плохими обобщениями, чем одним хорошим. Хорошее обобщение отличается тем, что позволяет достигнуть гораздо лучшей предельной ошибки при тех же размерах, но алгоритм минимизирующий ошибку вас толкает в противоположную сторону.
Либо поясните, что Вы имеете ввиду.
1) Беру описание математики алгоритма, и повторяю самостоятельно всё решение, используя описание алгоритма как подсказку. Это нужно чтобы понимать скрытые условия и необязательные условности алгоритма.
2) Визуализирую в работе алгоритма всё то, что в стандартных либах или стандартных задачах не визуализировано, даже если это самоочевидно. Например то что я сформулировал обратную задачу позволило мне понять больше чем все учебники и половна статей. Но я кроме этого визуализирую ещё очень много что. Спектр производных по синапсам в логарифмическом масштабе, например, интереснейшая картинка. Или Например вести курсором над картинкой с павлином, а на картинке, на которой нарисована сеть цветом отмечены потенциалы нейронов, и смотришь что происходит с сетью когда ты проводишь курсором над цветовой границей. 2/3 придуманных мню визуализаций были бесполезны, но оставшаяся треть открывает мне глаза на вещи, о которых люди в статьях 2010-ого года спорят и догадываются по косвенным данным.
3) Рассматриваю тот же инструмент, но при решении иной задачи. Например, у меня есть управляемая нейросетью конечность. Понятно, что входные параметры на сеть в этом случае меняются в каждый момент времени не на много. Что можно изменить в сети с учётом этого условия.
4) Пытаюсь отбросить какие-то ограничения, которые общепризнаны, и пытаться понять как при этом изменится алгоритм. Важно ли было это ограничение для алгоритма или просто так сложилось.
В общем экспериментирую точно так же как как учёный изучал бы какое-нибудь физическое явление в своей лаборатории.
На самом деле в этом нет ничего принципиально нового. Я сам не занимался ТРИЗ, но на сколько я понимаю именно так положено действовать по ТРИЗ-у.
Давайте изобретать велосипеды