Митасов Андрей Павлович : другие произведения.

Металоция неведомого. Модуль Э. Эмбеддинги

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:
  • Аннотация:
    Проработка гипотезы о фрактальной структуре эмбеддингов.
    Крайнее изменение 07.04.2024

  
  "Есть многое на свете, друг Горацио,
  что непонятно нашим мудрецам."
  
  Вильям Шекспир - "Гамлет".
  
  Оглавление:
   Вместо предисловия.
   "Простенький" мысленный эксперимент.
   Продолжение мысленного эксперимента.
   Еще немного мысленного экспериментирования.
   Предистория и послесловие к мысленному эксперименту.
   Маленькая иллюстрация к эксперименту с просторов Инета.
   От "ландшафта задачи" к "рельефу решения".
   Обсуждение "ландшафта" и "рельефа" с Copilot.
  
  Иллюстрации:
   Тральщик "Наставник" от "Модели Kandinsky 2.1".
   Тральщики "Наставник" от "Модели Kandinsky 3.0".
   "Структура эмбеддингов" от Copilot.
   "Фракталы в нейросетях" от Copilot.
   Визуализация обучения нейронок от kraidiky.
   "Ландшафт vs рельеф в нейросетях" от Copilot.
   Тральщик "Наставник" от "Модели Kandinsky 3.1".
  
  ==========
  
  25.02.2024 14:10
  
  Вместо предисловия.
  В оглавление.
  
  Как-то в диалогах с Copilot
  - теперь он по воле "Великой и Ужасной" Microsoft "заступил на пост" Bing -
  прозвучало сравнение нынешней "ИИ-революции"
  с изобретением "телескопа Галилея", открывшему человечеству новые миры.
  И действительно, то возбуждение в обсуждениях "грядущих перспектив и изменений"
  и шквал сообщений о разработках все новых и новых систем с использованием
  "машинного обучения" превосходят, наверно, на пару порядков
  даже "золотые лихорадки" полуторавековой давности.
  
  Но мало кто помнит, что помимо телескопов Галилей конструировал
  еще и микроскопы и тоже добился в этом не малых успехов.
  Но настоящий прорыв, оказавший куда большее влияние
  на развитие практических приложений науки и технологий,
  случился после изобретения "микроскопа Левенгука",
  открывший для человечества "новые миры" буквально "под ногами".
  
  > Copilot 20:26
  
  > Антони ван Левенгук улучшил микроскоп
  > до возможности увидеть одноклеточные организмы.
  > Микроскоп Левенгука был крайне прост и представлял собой пластинку,
  > в центре которой была установлена линза.
  > Наблюдателю нужно было смотреть через линзу на образец,
  > закреплённый с другой стороны,
  > через который проходил яркий свет от окна или свечи.
  > Несмотря на простоту конструкции, микроскоп позволял получить увеличение,
  > в несколько раз превышающее микроскопы того времени,
  > что позволило впервые увидеть эритроциты, бактерии, дрожжи,
  > простейших, сперматозоиды, строение глаз насекомых и мышечных волокон,
  > инфузории и многие их формы.
  
  Вот после года изучения тематики ИИ-систем у меня и возникло ощущение,
  что в сегодняшнем "машинном обучении" упускается возможность/потребность
  исследовать то, что просто "лежит под ногами",
  а именно микроструктуру так широко применяемых эмбеддингов.
  
  Напоминаю, тем кто "не знал, не знал, да забыл",
  что это эмбеддинги это просто название/термин числового представления
  как входных данных нейросетей, так и их внутреннего представления,
  как для данных так их контекста.
  И которыми в "машинном обучении" как-то приспособились пользоваться.
  Большего о них "науке неизвестно", см.:
  "Эмбеддинги простыми словами."
  "Еще раз об эмбеддингах еще более простыми словами."
  
  Существующие в "data science" представления о эмбеддингах
  по факту используют только две различные и не совсем согласованные парадигмы.
  Согласно одной, эмбеддинги это "точка в многомерном пространстве",
  и с ним релевантны такие операции как вычисление расстояния,
  включая "золотой стандарт" "машинного обучения" - "косинусное расстояние".
  Согласно другой, эмбеддинги это распределение вероятностей,
  и с ними эффективно применять другой "золотой стандарт" - операцию softmax.
  И собственно на этом все.
  
  Все это было найдено/нащупано больше методом "научного тыка".
  и хотя работает это не всегда очень точно,
  в особенности косинусное расстояние,
  но для целей добиться точности/производительности моделей порядка 95%
  это худо-бедно применимо.
  А вот для большей точности - вопрос,
  так как очень много непоняток всплывает в использовании эмбеддингов,
  на которые упомянутые парадигмы ответов не дают.
  И как я полагаю, дать не могут, из-за отсутствия
  реального понимания, что именно и КАК именно
  действительно представляется информация в эмбеддингах.
  
  Причем, обычно эмбеддинги рассматриваются как многоэлементные вектора,
  и вопрос о том "что происходит/представляется" ВНУТРИ отдельного элемента,
  вообще за этот год мне ни разу не встречался.
  По умолчанию предполагается, что это просто число,
  и близкие значения этого числа соответствуют
  близким ПРЕДСТАВЛЕНИЯМ этого числа.
  Эта так называемая "аксиома близости",
  предполагающая определенную "монотонность" и "неразрывность".
  И несмотря на то, что практика свидетельствует, что это "не совсем так",
  этот интересный вопрос остается вне поля рассмотрения "настоящей науки".
  
  Хотя оправдание этому все же есть.
  Так как обычно с одноэлементными эмбеддингами никто не работает,
  а используются как раз очень многоэлементные эмбеддинги,
  проявление "немонотонной" и даже "разрывной" сущности
  КАЖДОГО элемента эмбеддинга в "пространстве эмбеддингов"
  существенно "замаскировано".
  И проявляется "когда этого совсем не ждешь".
  Именно на этом основана относительная работоспособность
  упомянутых выше основных парадигм работы с эмбеддингами.
  
  Но если все-таки внимательно приглядеться к внутренней структуре
  отдельного элемента эмбеддинга,
  "то можно увидеть две, три, а лучше пять звездочек..."
  Я не знаю точно какую именно структуру можно увидеть в этом
  простейшем элементе гигантских нейросетевых моделей,
  но по ряду соображений - о них будет далее более подробно -
  предполагаю, что эта структура очень близка к фрактальной.
  Во всяком случае ничего более близкого пока найти не удалось
  - может быть, такой структуры вообще нет в современных "научных классификаторах" -
  и тем интереснее это поисследовать,
  пока большинство озабочено попытками "быстрой монетизации"
  известных "полушаманских/полуэвристических" решений/знаний.
  
  С учетом используемой реальной размерности эмбеддингов,
  представляется разумным на данном этапе,
  разделить задачу исследования эмбеддингов на два раздельных потока.
  Один посвятить анализу особенностей ТОПОЛОГИЧЕСКОГО "пространства эмбеддингов"
  в модуле, который изначально был ориентирован на исследование
  фрактальных. дробноразмерных пространств ("Модуль Б. Базис."), например, см.:
  "Каково же оно "пространство эмбеддингов" нейронки?"
  
  А в данном модуле сосредоточится на анализе структуры/представлении
  отдельного элемента эмбеддинга.
  "И посмотрим, что получится".
  
  "A graphical summary of our discussion about the structure of embedding elements in JPG format with my logo"
  Создано с помощью искусственного интеллекта Copilot на платформе DALL? E 3.
  
A graphical summary of our discussion about the structure of embedding elements in JPG format with my logo:  OIG1.qm_SdN5uqqOBw0ld7nka.jpg A graphical summary of our discussion about the structure of embedding elements in JPG format with my logo:  OIG1.wmD0CwVnuJCyZhZE5_l..jpg
A graphical summary of our discussion about the structure of embedding elements in JPG format with my logo:  OIG1.p5c5rJWc1dWayVpo5Dcc.jpg A graphical summary of our discussion about the structure of embedding elements in JPG format with my logo:  OIG1.O96.22lTqJrQCt2.RlAj.jpg
  
  
  ========
  
  25.02.2024 16:28
  
  "Простенький" мысленный эксперимент.
  В оглавление.
  
  Чтобы почувствовать "аромат задачи" по анализу структуры элемента эмбединга,
  предлагаю рассмотреть простенький мысленный эксперимент.
  
  Представим, что мы создали простейшую на сегодняшний день нейросеть
  для распознавания цифр, имеющую классическую UNet архитектуру,
  состоящая из кодировщика, например, сверточной сети,
  декодировщика, например, из парочки полносвязных слоев,
  и выходного слоя самого простого типа.
  
  Если эти понятия вызывают затруднения, то можно посмотреть
  очень неплохой материал по принципам и архитектуре сверточных сетей:
  "Сверточная нейронная сеть, часть 1:
  структура, топология, функции активации и обучающее множество"
  Автор: HybridTech (Иван Голиков)
  https://habr.com/ru/articles/348000/
  31 янв 2018 в 16:47
  
  В принципе отсылка к сверточной сети не настолько принципиальна,
  можно предложить и другие решения, важно чтобы она имела U-подобную архитектуру,
  с узким "бутылочным горлышком" - это принципиально.
  Дальше будет понятно почему.
  
  Отличие от стандартной сверточной сети в нашем мысленном эксперименте
  будет в том, что в "бутылочном горлышке"
  - месте, где соединяются кодировщик и декодировщик -
  размерность вектора эмбеддинга будет равна единице.
  А учить такую сеть мы первоначально будем на распознавании
  только двух сильно различающихся цифр, например, 0 и 1,
  используя самые "продвинутые" и надежные техники.
  
  Причем, ни в каких соревнованиях на точность эта сеть участвовать не будет,
  нам важно понять, может такая сеть обеспечить распознавание двух цифр,
  с точностью, скажем 60%,
  без ограничений на сложность кодировщика и декодировщика,
  и время обучения.
  
  Представили, себе такую сеть
  слева гигантский замысловатый кодировщик,
  справа не менее изощренный декодировщик,
  а между ними одноэлементный эмбеддинг.
  И теперь главный вопрос - "будет такая сеть работать,
  т.е. различать 0 и 1 с минимум 60% точностью?"
  
  Да я знаю, что эмбеддинг 2*2 в "бутылочном горлышке" точно обеспечит
  приемлемую работоспособность такой модели. Тут вопросов нет.
  И даже если вообще убрать все нейросетевые навороты и машинное обучение,
  можно сделать систему которая точно будет работать,
  например, разбив значение элемента эмбеддинга просто на два поддиапазона.
  
  Все так.
  Но мы как раз и занимаемся тем, что пытаемся "под микроскопом"
  посмотреть на значения ОДНОГО элемента эмбеддинга,
  в самом простом случае.
  
  Итак, будет такая система работать или нет?
  У меня твердое убеждение, что будет,
  так как никаких ни теоретических ни экспериментальных "противопоказаний"
  такому выводу еще не встречал.
  Copilot выставлял замечания, что с точки зрения распознавания
  такая структура очень далека от оптимальной.
  Все так, но нас интересует не эффективность этой сети,
  а процессы происходящие, причем только в одном конкретном месте
  - в одноэлементном эмбеддинге "бутылочного горлышка".
  
  Ну и теперь, попробуем представить, как выглядит структура
  этого одноэлементного эмбеддинга обеспечивающего распознавания всего двух цифр.
  Будет ли это всего два четко разграниченных поддиапазона,
  или целое множество поддиапазонов различной ширины и местоположения?
  
  Мое мнение, что это будет множество, причем зависящим
  как от структуры кодировщика и декодировщика, функции/процедуры обучения,
  так и от начальной инициализации нейросети,
  и даже последовательности обучающих примеров.
  
  Почему такой вывод?
  Ну, во-первых еще никому не удавалось на эмбеддингах выделить
  четкие зоны/поддиапазоны, отвечающие за весь спектр декодируемых значений.
  А во-вторых, давайте продолжим наш опыт еще чуть дальше,
  и тогда будет более понятны основания такого вывода.
  
  Предположим, что по какому-то "экстраординарному стечению обстоятельств"
  при обучении нашей гипотетической нейронки различать только две цифры
  в элементе эмбеддинга сформировалось только два четких поддиапазона,
  отвечающих за идентификацию одной конкретной цифры.
  И продолжим обучение нашей воображаемой нейронки,
  но теперь будем обучать ее различать уже три цифры 0, 1 и 2.
  Про "переобучение" пока не вспоминаем, так как учили мы ее далеко
  не "до самого упора", а на каких-то 60% успешности.
  Так что есть очень большая уверенность,
  что и третью цифру нейронка "выучит".
  
  И теперь самый интересный вопрос:
  а как при этом изменится распределение "поддиапазонов" в элементе эмбеддинга?
  Раздвинутся ли прежние два "поддиапазона", чтобы освободить место третьему?
  Появятся ли новые "поддиапазоны" только на свободных от прежних "поддиапазонах" местах,
  если вообще есть такие "свободные места" после обучения только двум цифрам?
  Или внутри каждого "прежнего" поддиапазона сформируется "нечто новое"?
  
  Сложный вопрос?
  Конечно.
  Но ведь можно продолжить наш опыт еще дальше обучая четвертой,
  пятой и т.д. цифре, а потом еще и азбуке.
  И, наверняка, характер/манера изменения структуры
  этого единственного исследуемого элемента эмбеддинга будет схож.
  
  Вариант "перераспределения границ поддиапазонов",
  лично я, оцениваю как самый маловероятный,
  так как предполагает целенаправленное и стратегическое планирование
  и знание поставленной новой задачи.
  А вариант с появлением внутри существующих "поддиапазонов"
  "островков" новых "поддиапазонов", наоборот, как самый вероятный,
  так как соответствует процедуре пошагового обучения.
  Но у кого-то могут быть и другие соображения,
  и к этому вопросу мы еще вернемся.
  
  Возможно, использование оборота речи "структура элемента эмбеддинга"
  звучит или "коряво", или просто неправильно/некорректно,
  но "прошу прощения за мой французкий", "мы семинариев не кончали",
  и я не могу вспомнить правильный математический/научный термин
  для описания того, о чем идет речь.
  Так что до нахождения более корректного термина буду пользоваться этим.
  
  Так возвращаемся "к нашим баранам", то бишь "поддиапазонам"
  в структуре одноэлементного эмбеддинга.
  Мне представляется, что в результате такого последовательного обучения
  нескольким цифрам можно будет обнаружить в этой структуре
  очень сложную "чересполосицу",
  существенно зависящую от всех вышеперечисленных факторов,
  т.е. принципиально "уникальную" и, в тоже время, "закономерную".
  
  Причем, я предполагаю, что в этой "чересполосице" можно выявить
  определенные закономерности чередования/расположения "поддиапазонов",
  наподобие фрактальным "рисункам".
  Ведь механизм формирования таких рисунков в принципе один и тот же,
  следовательно и результат его работы вполне может сохранить
  какие-то общие черты.
  
  Еще раз повторюсь, что "фрактальная гипотеза" для этой структуры,
  это РАБОЧАЯ гипотеза за неимением ничего более лучшего.
  
  А может быть это вообще какое-то новый "характеристический рисунок",
  тот самый "Чебурашка - неизвестный науке вид".
  
  Вот опираясь на эти соображения можно попытаться продолжить исследование,
  на мой взгляд, интересной и перспективной темы.
  
  
  ==========
  
  27.02.2024 21:01
  
  Продолжение мысленного эксперимента.
  В оглавление.
  
  Попробуем продолжить мысленный эксперимент с воображаемой нейросетью
  с U-подобной архитектурой с одноэлементным эмбеддингом в "бутылочном горлышке".
  но попробуем подойти к задаче с другой стороны.
  
  Мысленно разрежем эту архитектуру по "бутылочному горлышку"
  на отдельные кодировщик и декодировщик
  Примем что диапазон значений элемента эмбеддинга четко делится
  на два поддиапазона, например, больше и меньше нуля.
  Значение больше нуля считаем эмбедингом 1,
  ну а значение меньше нуля, соответственно, эмбеддингом 0.
  
  И теперь начнем ОТДЕЛЬНО обучать кодировщик и декодировщик
  исходя из такого представления этого элемента эмбеддинга.
  У Вас есть сомнения, что две такие отдельные модели можно
  по отдельности выучить, хоть как-то что-то различать?
  У меня таких сомнений нет.
  Возможно придется что-то там "подшаманить" с архитектурами
  кодировщика и декодировщика, поиграться с параметрами обучения,
  но задача принципиально решаемая.
  
  Можно, конечно, сразу задаться и большим количеством диапазонов
  и, соответственно, различаемых цифр,
  но для целей этого мысленного эксперимента это не нужно.
  Так как самое интересное не в том, чтобы их чему-то там очень точно обучить.
  А в том, что после хоть какого-то предварительного обучения,
  ну, до тех самых 60%,
  ОБРАТНО СОЕДИНИТЬ кодировщик и декодировщик по тому самому
  "бутылочному горлышку" одноэлементного эмбеддинга.
  
  Т.е. в результате такого разделения нейросети на кодировщик и декодировщик,
  раздельного целенаправленного их обучения,
  и последующего их обратного соединения,
  мы должны гарантированного должны получить работоспособную нейросеть.
  Причем, эта нейросеть как-то худо-бедно различает 0 и 1,
  одноэлементный эмбеддинг "бутылочного горлышка" имеет два четких поддиапазона,
  соответствующих распознаваемым 0 и 1.
  И теперь можно приступить с к самому главному:
  дообучению ее распознаванию цифры 2,
  но уже по-честному, то бишь, целиком, в "полном комплекте".
  
  Вобщето, честно говоря, привязка к распознаванию чисел 1 и 0,
  и заморочки с обучением сверточной сети совершенно не обязательны.
  Можно было бы рассматривать значительно более простую задачу
  и более простую структуру нейросети, гарантированно обучаемую и т.д.,
  лишь бы она имела одноэлементный эмбеддинг "бутылочного горлышка".
  Но это, наверно, выглядело бы не очень "солидно".
  Хотя на самом деле процессы были бы принципиально похожими.
  И именно эта их похожесть, самое интересное в этом вопросе.
  
  А вот почему они похожи, и на что они могут быть похожи,
  мы и пытаемся разобраться в этой серии мысленных экспериментов.
  
  Итак мы начинаем дообучать нашу гипотетическую сеть распознавать цифру 2
  методом обратного распространения ошибки,
  т.е. корректировкой весов и кодировщика и декодировщика,
  по прежнему соединенным одноэлементным эббедингом "бутылочного горлышка".
  Давайте договоримся, что замечания о том, что при этом,
  скорее всего, ухудшится предварительно обученное распознавание цифр 0 и 1.
  А также забудем упоминать вечную страшилку "машинного обучения",
  так часто и не к месту поминаемое "переобучение".
  К этому мы еще вернемся,
  и даже больше, мы будем стараться "переобучить" систему,
  дообучая ее в основном цифре 2.
  Нас интересует не качество обучения,
  а процессы, происходящие в структуре одноэлементного эмбеддинга "горлышка".
  
  Сконцентрировались, собрали все воображение "в кулак",
  и затаив дыхание смотрим, что происходит в системе
  кода мы предъявляем системе в первый раз совершенно незнакомую ей цифру 2.
  
  Понятно, что она такой цифры еще не знает и кодировщик выставит
  какой-то эмбеддинг наиболее близкий к тому чему он раньше был обучен,
  т.е. какое-то значение где-то между минус и плюс бесконечностями.
  В принципе, не важно какое именно значение он выставит,
  но нужно понимать, что это не случайное значение,
  а что-то близкое к тому, что и как он перед этим выучил.
  Это кодировщик.
  
  Теперь декодировщик. Он естественно тоже никаких цифр 2 еще не знает,
  и честно декодирует это значение одноэлентного эмбеддинга,
  то ли как 0, то ли как 1, это не важно.
  важно, что в любом случае он ошибется,
  и вот тут вступает в действие процедура обучения
  методом обратного распространения ошибки.
  Которая начинает корректировать сначала веса декодировщика,
  а потом и веса кодировщика.
  
  И вот тут главное, что нужно понять.
  Корректировка весов и декодировщика и кодировщика производится
  - не знаю как точно выразиться/сформулировать -
  относительно того значения одноэлементного эмбеддинга,
  которое вообще-то "квазислучайное".
  Но которое с этого момента становится "инициатором кристаллизации"
  нового "поддиапазона", соответствующего уже цифре 2.
  
  Это легко увидеть, если продолжать снова и снова предъявлять
  для дообучения системе все ту же цифру 2,
  и продолжать корректировать веса обратным распространением ошибки.
  Первоначальное "квазислучайное" значение, естественно, подкорректируется,
  "поддиапазон" скорее всего "расшириться" и распознавание цифры 2
  станет если и не устойчивым, то во всяком случае уже вовсе не случайным.
  И при этом структура эмбеддинга уже будет "разрывной":
  как минимум, один поддиапазон разобьется на два.
  На самом деле, если обучать "нормально" разным вариантам цифр
  и в разной последовательности,
  там будет сложная "чересполосица"/мешанина "поддиапазонов" разной ширины,
  сформированных от различных "инициаторов кристаллизации".
  Но это более подробно рассмотрим позже.
  
  Обучение нейросети путем корректировки весовых параметров связей
  достаточно сильная процедура, заставляющая нейросеть
  "принять форму" обеспечивающую "требуемую функцию".
  Но при этом "конкретная форма" сильно зависит от множества факторов,
  включая начальную инициализацию, механизм обучения
  и даже последовательность обучения.
  
  И в нашем конкретном случае дообучения воображаемой нейронки цифре 2,
  можно представить, структуру элемента эмбеддинга "бутылочного горлышка",
  впрочем, и всех остальных обучаемых элементов нейросети
  как компромисс/равнодействующая
  между "разрывным представлением", которое генерится сетью,
  и "непрерывным представлением" которого пытаются добиться
  в процессе многошагового обучения, регуляризации и др.
  
  Т.е. тут как сталкиваются два "начала",
  условно Хаос и Порядок
  "хаос сети" и "порядок обучения".
  Только дело в том, что "хаос",на самом деле, в этом случае тоже "порядок",
  но другого уровня/природы/конструкции,
  для которого у нас пока нет "доступа"/понимания,
  кроме этой самой процедуры пошагового "машинного обучения".
  
  > Copilot 21:34
  >
  > ... <хаос> - это потенциал для порядка.
  > То есть, <хаос> содержит в себе много возможностей и вариантов,
  > но для того, чтобы извлечь из него полезную информацию,
  > нужно наложить на него некоторые правила и ограничения,
  > которые создают <порядок>.
  > Таким образом, <порядок> - это результат преобразования <хаоса>.
  
  28.02.2024 19:47
  
  Если продолжить дообучение нашей воображаемой нейронки еще каким-то новым цифрам,
  чередуя в произвольном порядке как новые так и старые цифры,
  то структура одноэлементного эмбеддинга "бутылочного горлышка",
  следуя случайному расположению различных "инициаторов кристаллизации"
  чрезвычайно усложнится. Возникнет та самая, упоминаемая ранее, "чересполосица".
  Причем в ней возникнут как "плавные переходы" так и "резкие скачки"
  в соотнесении тех или иных "поддиапазонов" той или иной цифре.
  
  Но еще раз надо подчеркнуть, что это будет не "случайное распределение",
  а полне закономерная, но очень сложная структура,
  для которой сейчас даже названия подходящего не имеется.
  В чем то она возможно будет похожа на очень сложный спектр
  или, мне почему-то так кажется, на "стохастический фрактал",
  так как есть ощущение, что какие-то закономерности в этой структуре
  будут иметь место и какие-то "рисунки" в чередовании "поддиапазонов
  будут как-то повторяться в разных масштабах.
  
  Интересно, что тут можно углядеть два встречных "фракталообразующих процесса",
  принципиально разной природы и механизма действия.
  С одной стороны это проявление какой-то накопленной закономерностей
  в структуре нейросети, сопровождающейся появления в "квазислучайных" местах,
  все новых и новых "инициаторов кристаллизации".
  А с другой стороны, существенно итеративные механизмы обучения,
  пытающиеся "расчесать"/"пригладить"/выровнять всяческую "кучерявость"
  "под одну гребенку".
  Причем, когда это "приглаживание" удается в значительной мере,
  обнаруживается что-то такое, чего так страшатся "причесыватели"
  - пресловутое "переобучение".
  
  Но в любом случае, в итоге структура элементов эмбеддингов,
  не только в "бутылочном горлышке, а и во всех обучаемых элементах,
  будет вполне себе "уникальным образом/отпечатком",
  отражающим не только структур самой нейросети и механизмов ее обучения,
  но и всей истории обучения.
  Просто мы не умеем такие "уникальные образы" грамотно расшифровывать.
  А что же мы умеем?
  
  И тут мы плавно переходим к проблеме интерпретации
  такой сложной структуры элемента эмбеддинга.
  Напомню, что нашу воображаемую нейросеть мы обучали без всяких претензий
  на какую-то экстремальную точность, нам нужно было просто понять
  что и как происходит на отдельном элементе эмбеддинга.
  Но чтобы четко отслеживать этот процесс и была выбрана структура
  с одноэлементным эмбеддингом в бутылочном горлышке".
  В принципе, это ограничение уже можно снять,
  так как характер структуры этого элемента и процесс ее формирования,
  мне кажется, уже достаточно понятен.
  Но давайте сделаем еще пару шажков в разборе этой модели.
  
  "A summary of our discussion about fractals in neural networks".
  Создано с помощью искусственного интеллекта Copilot на платформе DALL? E 3.
  
A summary of our discussion about fractals in neural networks:  OIG1.ypqp2yzJaBFxFJANVqkG.jpg A summary of our discussion about fractals in neural networks:  OIG1.UJVoaDzqJ_LEb6ZVpiwk.jpg
A summary of our discussion about fractals in neural networks:  OIG1.Qs2embCJTi9JTaxGQY7W.jpg A summary of our discussion about fractals in neural networks:  OIG1.nJpMLZng2_C6s4huGJjn.jpg
  
  
  ======
  
  02.03.2024 11:23
  
  Еще немного мысленного экспериментирования.
  В оглавление.
  
  Итак, имеется в результате обучения нашей гипотетической нейросети
  "одноэлементный" эмбеддинг "бутылочного горлышка",
  в структуре значений которого записана/зафиксирована/зашифрована
  полная информация как о структуре всей нейросети,
  так и обо всем ее процессе обучения.
  Проблема в том, как ее можно расшифровать или представить в виде
  удобном для использования в соответствии с решаемой нейросетью задачей.
  В нашем случае это декодирование/идентификация распознаваемых цифр 0, 1, 2.
  Опять рассматриваем наиболее простой случай.
  
  Какие возможности, точнее, какие имеются технические решения
  для этого имеются в настоящее время?
  
  Да не так уж и много. От силы три-четыре основных варианта,
  и куча их комбинаций, несильно отличающихся по эффективности,
  но все-таки имеющих определенные принципиальные особенности.
  Вот и попробуем их рассмотреть.
  
  Для этой цели начнем "экспериментировать" с конструкцией декодировщика,
  т.е. той части нашей гипотетической сети,
  которая обеспечивает расшифровку значений "одноэлементного эмбеддинга".
  
  Из общих технических соображений можно предполагать,
  что для расшифровки "свернутого представления",
  его надо сначала попытаться развернуть/увеличить/раскрыть,
  или попытаться разделить на несколько различных каналов декодирования.
  Т.е. напрашивается за одноэлементным "бутылочным горлышком"
  расположить многоэлементный слой нейронов,
  существенно более широкий, чем "бутылочное горлышко".
  И такое решение фактически является "стандартом де факто"
  для большинства декодировщиков.
  
  Но какой именно ширины должен быть этот следующий слой толком неизвестно
  - каких-то внятных рекомендаций встречать не приходилось -
  возможно, потому что это зависит от того как вариант декодирования
  будет использоваться дальше.
  Вот об этих вариантах и стоит поговорить достаточно подробно.
  
  Итак, какие варианты декодирования эмбеддингов сейчас в основном применяются?
  А это зависит от того, как именно представляется эмбеддинг,
  причем при этом считается, что эмбеддинг принципиально многоэлементный.
  Это, вроде, не совсем наш случай, но после первого же
  расширяющего/увеличивающего слоя после одноэлементного "бутылочного горлышка",
  который как-то будут обучен, т.е. в нем будет некоторое "разнообразие" параметров,
  мы сразу же возвращаемся к привычным "канонам".
  Так что, это уже не принципиальное отличие.
  
  Так вот, для многоэлементного эмбеддинга "каноническими представлениями"
  считаются либо "точка в многомерном пространстве" либо "логит",
  т.е. распределение вероятностей,
  соответствующее взвешенным значениям по отдельным координатам.
  
  Для "точки в многомерном пространстве" в декодировщике для принятия решения
  используется какая-то "оценка расстояния"
  - "евклидово", "манхеттенское", "косинусное" -
  причем, судя по публикациям, "косинусное расстояние" стало, практически,
  "золотым стандартом" в декодировании эмбеддингов.
  И этому есть вполне определенные предпосылки в свете рассматриваемой
  гипотезе о характере "структуры значений эмбеддингов", но об этом ниже.
  
  При представлении многоэлементных эмбеддингов в виде "логитов"
  используется другой "золотой стандарт" - функция softmax,
  которая фактически для принятия решения использует выбор того элемента эмбеддинга,
  который имеет наибольшее значение.
  Но также используется и "кросс-энтропия" или "расстояние Кульбака-Лейблера"
  как определенный инструмент учета "многокоординатного" представления эмбеддинга,
  оставаясь при этом в парадигме "вероятностно-статистического" представления.
  
  Что стоит отметить, что и тот и другой подход имеют достаточно
  невысокую точность декодирования.
  Ну как "невысокую"?
  Для "машинного обучения" точность 95% это просто замечательно,
  а вот для действительно ответственных технических решений
  это явно недостаточно. Требуется, как минимум, на порядок-два ьольше.
  Причем в условиях интенсивных "помех" и "непредвиденных стечений обстоятельств".
  И вот этого как раз используемые методы декодирования и не обеспечивают.
  И обычно это списывают или на пресловутое "переобучение" или "локальные минимумы".
  А дело в том, что эти подходы каждый в отдельности,
  очень слабо отражают действительную структуру значения элемента эмбединга.
  Т.е. отсутствует "точная фокусировка" декодировщика к конкретной
  структуре/представлению значений эмбеддинга.
  
  Оба подхода неявно предполагают
  некое "монотонное представление" значения эмбеддинга,
  и, самое главное, аксиому "близости значений",
  т.е. что близкие значения элемента эмбеддинга соответствуют
  близким представлениям этого эмбеддингам.
  
  При этом, надо признать, что интуитивное понимание
  сложности представления эмбеддинга такими механизмами явно присутствует,
  и какие-то приемы решить эту проблему явно наблюдаются.
  Наиболее характерный пример этого это "широко известный" и "сильно распиаренный",
  так называемый "механизм внимания", на котором основан успех архитектуры трансформеров.
  
  Суть его в том, что эмбеддинг последовательно,
  с одной стороны, преобразуется через умножение на матрицы "key" и "value",
  коэффициенты которых являются обучаемыми параметрами,
  т.е. тоже, собственно, наборами значений с какой-то сложной внутренней структурой,
  в чем-то схожих с рассмотренной выше структурой "одноэлементного эмбеддинга".
  А с другой стороны значения,
  полученные в результате преобразований с помощью этих матриц,
  комбинируют с исходным значением "query" через "skip connection".
  аргументируют это якобы "страховкой" от некоторых "артефактов обучения",
  типа "исчезающих градиентов", или улучшением качества инференса/работы.
  Примечательно, что мнения о том, что именно в этой схеме является
  основной "рабочей лошадкой", а что просто "дополнительным бантиком",
  до сих пор сильно расходятся, так как исключение одного из этих элементов,
  в разных задачах/системах приводит к результатам отличающимся в доли процентов.
  И наоборот. добавление таких блоков/механизмов даже по отдельности
  в разных подсистемах архитектуры нейросети,
  часто приводит к качественному улучшению результатов обучения.
  
  При этом надо понимать, что включение/выключение тех или иных блоков/механизмов
  в структуру нейросети, не важно, кодировщика или декодировщика,
  приводит к тому, что при обучении методом обратного распространения ошибки,
  приводит к соответствующему изменению структуры значений каждого элемента
  всех внутренних эмбеддингов и, это тоже очень важно понимать,
  всех обучаемых параметров нейросети.
  Причем все это зависит и от начальной инициализации этих параметров,
  и от всего процесса обучения
  и, соответственно, даже результаты обучения одной и той же архитектуры
  на одном и том же датасете,
  но со случайной инициализацией и случайной последовательность обучающих примеров,
  ГАРАНТИРОВАННО, будут отличаться, как минимум на "единицы процентов",
  именно потому, что по факту используется или "координатное" или "вероятностное"
  представление структуры значений элемента эмбеддинга.
  
  То что эти представления как-то худо-бедно работают в существующих нейросетях,
  объясняется в первую очередь ПЛАСТИЧНОСТЬЮ любой структуры нейросети,
  подвергающейся обучению методом обратного распространения ошибки.
  Обучая нейросеть таким образом, фактически делается попытка
  уложить в "прокрустово ложе" традиционных представлений об эмбеддингах,
  то, что "возможно" имеет какую-то иную природу.
  И когда это не очень получается, начинаются "старые песни о главном",
  то бишь, о "переобучении"/"недобучении" и/или "локальных минимумах".
  А проблема может быть в том, что "рожденный ползать - летать не может",
  или в привычных формулировках:
  "требуется пересмотреть архитектуру и/или методику обучения".
  
  Но "критикуешь - предлагай".
  Честно говоря, пока особо обоснованных предложений у меня пока нет,
  хотя какие-то предположения все-таки есть.
  Попробую их сформулировать.
  
  Но сначала рассмотрим существующие "золотые стандарты" машинного обучения
  в части декодирования многоэлементных эмбеддингов,
  а именно "косинусного расстояния" и "кросс-энтропию".
  Почему именно их, а не тот же softmax?
  Представляется, что ориентация на значение какого-то одного элемента
  многокомпонентного эмбеддинга изначально ограничивает
  возможность очень точного декодирования/представления,
  если исходить из гипотезы о сложной структуре значения любого элемента эмбеддинга.
  Поэтому, попытка хоть как-то учитывать при декодировании
  и сразу нескольких или всех элементов эмбеддинга
  потенциально более перспективна.
  Проблема в том, что нужно как-то в принципе учитывать их нелинейную
  и существенно "разрывную" природу структуры значений элемента эмбеддинга.
  
  А вот этого упомянутые "золотые стандарты" как раз и не делают.
  Вся эта "нелинейность" и "разрывность" считается "ошибками"/"помехами"/"выбросами",
  с которыми нужно "всеми силами бороться", например, вычисляя среднее/дисперсию и т.п.
  Т.е. рассматривается не "сложная структура", а "средняя температура по палате".
  Соответственно и точность такого подхода принципиально высокой может быть
  в каких-то очень специфических случаях.
  Причем, опять же, непонятно почему.
  
  Хотя на один вопрос вполне можно попробовать ответить
  - это причина увеличивающейся точности применяемых методов
  при увеличении размерности многоэлементного эмбеддинга.
  На мой взгляд, тут дело не в том что "средняя температура по палате"
  становится более адекватной оценкой,
  а в большей возможности нейросети ПОДСТРОИТСЯ под такую оценку.
  Т.е. все то же проявление "пластичности" нейросетей при обучении
  методом обратного распространения ошибки.
  
  Как можно попробовать изменить эти подходы,
  чтобы как-то учесть именно "конкретную структуру", а "нечто среднее"?
  Причем этот желаемый подход должен быть настраиваемый на конкретную систему.
  Вопрос о требуемых ресурсах пока оставим в стороне,
  важен вопрос принципиальной возможности такой реализации.
  
  Ну, один из способов подсказывает "механизм внимания"
  в виде умножения на "обучаемые матрицы", позволяющие выделять
  какие-то стабильные "поддиапазоны".
  Что-то такое уже, вроде, в каких-то архитектурах уже применяется.
  Так что тут особо нового и не предлагается,
  разве что упор делается именно на финишное декодирование в выходном слое,
  чего, вроде, пока явно не наблюдалось.
  Но нужно еще раз посмотреть на новые структуры, которых предлагается по пачке в день,
  может быть это уже реализовано.
  
  А вот другой подход, если считать, что структура значений эмбеддингов
  имеет какие-то устойчивые паттерны
  в рамках расширения гипотезы о "стохастическом фрактале" одноэлементного эмбеддинга,
  на многоэлементный эмбеддинг,
  предполагает использование в выходных или предвыходных слоях декодировщиков,
  как бы странно это не звучало, элементов сверточных сетей.
  Т.е. гипотетически предполагается,
  что к паттернам многоэлементных эмбеддингам можно применить
  достаточно отработанные и вполне хорошо себя зарекомендовавшим
  различные сверточные фильтры, естественно, тоже обучаемых.
  "Но не это не точно".
  
  В общем, наверно стоит с этим фрагментом закругляться.
  Надеюсь, что основную мысль,
  о том что сложную структуру значений эмбеддинга следует декодировать
  как-то иначе, по сравнению с существующими методами,
  удалось более-менее сформулировать.
  
  Вопросов по-прежнему остается даже не меньше, а больше,
  но уже, надеюсь, должно появится ощущение,
  что такие "отвлеченные измышлизмы" вполне могут привести
  к каким-то более-менее практическим выводам.
  Но, наверно, теперь стоит чуть более пристальнее взглянуть
  на процедуру обучения уже не одного отдельного эмбеддинга,
  а целой, хотя, и достаточно простой нейросети.
  
  
  ==========
  
  02.03.2024 20:31
  
  Предистория и послесловие к мысленному эксперименту.
  В оглавление.
  
  Обсуждая с Copilot описанный выше мысленный эксперимент,
  мне был задан логичный вопрос: как и когда я буду реализовывать его на практике?
  На что я ответил, что, наверно, очень не скоро по многим причинам.
  
  Во-первых, нет времени на освоение языка pyton и соответствующих библиотек,
  особенно с учетом моей "идиосинкразии" к Си-подобным объектно-ориентированным языкам.
  
  Во-вторых, в этом особой необходимости нет, так как очень похожая работа
  была сделана автором kraidiky в целой серии статей еще десять лет назад,
  прекрасно оформлена и иллюстрирована, так как у меня точно не получится.
  
  Собственно эта серия и стала отправной точкой в практически годовом осмыслении
  гипотезы о фрактальной природе нейронок,
  поиске подхода и точки приложения в ее формулировке,
  с одновременным перелопачиванием сотен материалов в поисках
  каких-то подтверждений или, наоборот, убедительных опровержений ее.
  Но таковых не нашлось, хотя упоминания о фрактальности пространства эмбеддингов
  уже начали встречаться в некоторых материалах.
  Так что это уже не слишком безумная гипотеза.
  Но от этого она не стала менее практичной/продуктивной.
  
  Вот ссылки на эту серию статей.
  Очень рекомендую познакомиться с ними самостоятельно,
  там много интересной и красиво оформленной информации.
  
  "Что происходит в мозгах у нейронной сети и как им помочь"
  Автор: kraidiky
  https://habr.com/ru/articles/219647/
  17 апр 2014 в 01:17
  
  "Подглядываем за метаниями нейронной сети"
  Автор: kraidiky
  https://habr.com/ru/articles/221049/
  27 апр 2014 в 21:22
  
  "Ансамбль синапсов - структурная единица нейронной сети"
  Автор: kraidiky
  https://habr.com/ru/articles/249031/
  28 янв 2015 в 00:22
  
  "Давайте изобретать велосипеды"
  Автор: kraidiky
  https://habr.com/ru/articles/249657/
  4 фев 2015 в 02:24
  
  Смысл представленной автором информации заключается в буквально по шаговом
  разборе процесса обучения достаточно простой нейросети
  на достаточно простой задаче.
  И пытается осмыслить достаточно странные,
  с точки зрения здравого смысла и "классических трактовок",
  результаты.
  
  Для меня стартовой точкой в поисках "стохастического фрактала"
  структуры значений элемента эмбеддинга,
  Стала вот эта фраза:
  
  \\\ ...И вот теперь мы сделаем самое интересное.
  \\\ Мы возьмём полученную нами сеть
  \\\ и нарисуем на картинке все возможные значения,
  \\\ которые выдаёт сеть во всех точках.
  \\\ И вот тут выяснится самое грустное.
  \\\ Уровень обобщения, достигнутый сетью,
  \\\ не очень то впечатляет...
  
  Сопровождавшаяся вот такой картинкой:
  
  kraidiky1. Источник: https://habr.com/ru/articles/219647/  Рис. 7127f2f705bb2bb1aa265ba8a2a0fdda.png
  
  Источник: https://habr.com/ru/articles/219647/ Рис. 7127f2f705bb2bb1aa265ba8a2a0fdda.png
  https://habrastorage.org/r/w1560/getpro/habr/post_images/712/7f2/f70/7127f2f705bb2bb1aa265ba8a2a0fdda.png
  
  Вот именно в этом месте мои пути с автором материала и разошлись.
  Он пытался увидеть "уровень обобщения", основываясь на "классическом представлении",
  что нейросеть что-то там "обобщает". И этого в упор не мог увидеть.
  
  А я, как инженер, не имеющий "классического нейронаучного образования",
  практически в упор увидел явные признаки фрактального поведения нейронки.
  Точнее фракталоподобный рисунок "всех возможных значений".
  
  Типичная ситуация с "незамыленным взглядом".
  Нет тут ничего особенно выдающегося.
  Вопрос заключался в том, насколько близкой к реальности
  могла оказаться такая "безумная гипотеза"?
  И какой механизм может порождать такую фрактальность?
  
  Но один раз заметив признаки фрактальности,
  уже легко было их замечать во всех последующих иллюстрациях.
  Например, в этой:
  
  kraidiky2. Источник: https://habr.com/ru/articles/219647/ Рис. f15eb201219777217526254c5e9a1558.png
  
  Источник: https://habr.com/ru/articles/219647/ Рис. f15eb201219777217526254c5e9a1558.png
  https://habrastorage.org/r/w1560/getpro/habr/post_images/f15/eb2/012/f15eb201219777217526254c5e9a1558.png
  
  Автор сокрушается относительно этой картинки следующим образом:
  
  \\\ Не знаю, как вы, а я что-то не вижу качественного улучшения.
  \\\ Сеть исправно зазубривает все значения наизусть,
  \\\ ни в малой степени не приближаясь
  \\\ к обобщению предложенной ей закономерности.
  \\\ Да и вообще видно, что характер сделанных сетью
  \\\ глубокомысленных выводов
  \\\ не так уж и сильно зависит
  \\\ от характера стоящей перед ней задачи.
  
  А я вижу, что разговор об "обобщающих свойствах" нейросети,
  мягко говоря, "выдача желаемого за действительное",
  а по факту идет какой-то другой процесс,
  отражающий и свойства нейросети и процесс обучения,
  причем не только собственно обучающие примеры.
  Но что именно, еще долго оставалось непонятным,
  даже на интуитивном уровне.
  
  И вот только совсем не давно удалось сообразить,
  что фактически стохастически-фрактальная структура
  значения элемента эмбеддинга,
  содержащая в себе информацию и о всей структуре нейросети,
  и о всем процессе ее обучения,
  и есть тот самый "священный Грааль" обобщения нейронки.
  А вовсе не некая "мистическая способность генерализации",
  и собственно вопрос стоит в том, как извлечь требуемую информацию
  из очень замысловатого и "существенно индивидуального фрактального кода".
  Та самая проблема разработки более "сфокусированных" декодировщиков.
  
  Но это уже дальнейшее развитие идеи "фрактальности нейронок",
  и над ним еще работать и работать.
  
  Но только этой подсказкой гипотезы о "фрактальности",
  эта серия статей далеко не ограничилась.
  Там вообще целый букет и идей и техник реализации,
  включая и идею "обучаемого опорного нейрона",
  и "ансамблевого представления свойств",
  и очень интересной техники визуализации процесса обучения
  нейронки в целом. Например в таком виде:
  
  kraidiky3. Источник: https://habr.com/ru/articles/221049/ Рис. df25c55ff53a415060fff9cb61c2f0fc.png
  
  Источник: https://habr.com/ru/articles/221049/ Рис. df25c55ff53a415060fff9cb61c2f0fc.png
  https://habrastorage.org/r/w1560/getpro/habr/post_images/df2/5c5/5ff/df25c55ff53a415060fff9cb61c2f0fc.png
  
  Автор комментирует это, на первый взгляд, не очень понятную иллюстрацию
  следующим образом:
  
  \\\ Обратите внимание!
  \\\ В какой-то момент сеть перестала монотонно дрейфовать в одну сторону
  \\\ и затусовалась в одной области.
  \\\ Но потом очередное резкое движение вытолкнуло сеть
  \\\ из этого импровизированного озерца,
  \\\ и она довольно шустро пошла дальше налево.
  \\\ На графике ошибки видно,
  \\\ что на этом участке траектории ошибка была чуть-чуть меньше.
  \\\ Но явно не на столько, чтобы принимать какие-то решения.
  \\\ А, между тем, поглядев на левую картинку можно заметить,
  \\\ что в этом озере сеть научилась понимать,
  \\\ что у графика, который она изучает два минимума.
  \\\ После, ломанувшись влево сеть это знание утратила.
  \\\ Давайте договоримся, что в следующий раз,
  \\\ когда сеть вот так же перестанет монотонно дрейфовать
  \\\ и начнёт внимательнее ощупывать одно интересное ей место,
  \\\ мы предположим, что она чего-то полезного нашла,
  \\\ и снизим скорость, давая ей возможность
  \\\ внимательнее изучить найденное место.
  
  Но и здесь автор старается интерпретировать
  весьма нетривиальные результаты/визуализации
  не сильно отклоняясь от "канонов нейронауки",
  в рамках которых полагается рассматривать "ландшафт задачи",
  а процедуру обучение как "поиск маршрута"
  к "минимум" целевой функции".
  
  А вот если опираться на гипотезу о стохастической фрактальности
  структуры значений не только элементов эмбеддинга,
  но и всех обучаемых параметров нейронки,
  то можно/нужно говорить не о "поиске минимума",
  а о "террафомировании", т.е. "формировании ландшафта"
  в соответствии с архитектурой сети и всем процессом обучения,
  отражающее все тот же "существенно индивидуальный фрактальный код".
  И две существенно отличающиеся по характеру фазы "метаний" сети
  отражают этап "инициализацию кристаллизации" новых "поддиапазонов",
  и этап "развития"/"расширения" этих поддиапазонов.
  Но это отдельная большая тема,
  И надеюсь, к ней мы еще вернемся.
  
  А закончить этот фрагмент хочется словами все того же автора,
  подарившим мне эту идею "фрактальности" нейронок.
  
  \\\ ...Лично мне одного взгляда достаточно, чтобы понять,
  \\\ что прежде чем двигаться дальше
  \\\ некоторые вещи в нейроинформатике не помешало бы и переоткрыть.
  \\\ Как говорил Джобс "Stay Hungry. Stay Foolish."
  \\\ Очень многое в нейронауках может быть улучшено
  \\\ самым обычным человеком на самом обычном домашнем компьютере
  \\\ если у него будет идея,
  \\\ и он выкроит время, чтобы ей заниматься.
  \\\ Слишком мало знаний пока накоплено здесь,
  \\\ слишком многое осталось в наследие от времён компьютеров,
  \\\ занимающих этаж, слишком много замечательных алгоритмов
  \\\ просто никто ни разу не попробовал.
  
  \\\ И тогда, возможно, завтра гугл предложит за вас миллиард,
  \\\ или даже ещё круче, в вашу честь назовут будущие мозги в банке.
  \\\ Или ещё круче - вам будет интересно жить на белом свете.
  
  \\\ kraidiky - "Давайте изобретать велосипеды"
  
  
  =========
  
  29.03.2024 14:40
  
  Маленькая иллюстрация к эксперименту с просторов Инета.
  В оглавление.
  
  Тут сегодня на Хабре появился материал, который вполне можно рассматривать
  как неплохую иллюстрацию к описанному выше мысленному эксперименту:
  
  "Варим кашу из нечеткой логики и вариационных автоэнкодеров".
  Автор: kenoma (Наум Хомски)
  https://habr.com/ru/articles/803789/
  29 мар 2024 в 10:11
  
  \\\ Пока весь мир затаив дыхание следит за большими языковыми моделями
  \\\ и одни грезят о том, как подсадят всех на свои сервисы LLM,
  \\\ а другие прикидывают как заменить бездушными симулякрами
  \\\ если не зажравшихся айтишников, то хотя бы женщин штукатуров и бухгалтеров,
  \\\ обычным ML-инженерам, по щиколотку в коричневой жиже машинного обучения,
  \\\ приходится решать приземлемые задачи чем бог послал.
  
  Материал достаточно объемный, интересный и неплохо иллюстрированный,
  но цитировать его подробно смысла особого нет, лучше почитать его в оригинале.
  Поэтому попробую передать своими словами, что МОЖНО увидеть в этом материале,
  если проявить некоторую сообразительность и заинтересованность.
  
  Вкрадце, авторы пытаются усовершенствовать структуру
  вариационного энкодераи (VAE) для задачи классификации
  путем "использования элементов нечеткой логики".
  //// Что такое "вариационные энкодеры" можно посмотреть по циклу статей
  //// https://habr.com/ru/articles/331382/
  
  Структура нейросети, задача классификации и даже обучающий набор данных
  практически полностью аналогичен тем, которые были предложены
  для описанного выше мысленного эксперимента.
  Единственное отличие в том, что в "бутылочном горлышке" используются
  не одноэлементный, а двухэлементный вектор эмбеддинга
  - в статье он называется латентным вектором/пространством -
  который дополнительно подключен к отдельному слою с нечеткой логикой.
  Это подключение, кстати, очень интересное техническое решение,
  которое само по себе заслуживает особого внимания.
  
  Отдельно надо оговориться,
  что авторы используют термин "латентное пространство",
  а не "эмбеддинги", что, на мой взгляд, не сильно принципиально,
  т.к. в моем представлении "эмбеддинг" и "латент" просто термины,
  обозначающие некое, неизвестное нам, численное представление,
  некой сложноструктурированной сущности,
  о значении которой мы можем только строить догадки:
  
  \\\ ...вопросы интерпретации латентных признаков не решены...
  
  Для меня эта статья была полезна по нескольким причинам.
  С одной стороны она прекрасно иллюстрирует наличие сложной структуры
  в значениях даже двухэлементного эмбеддинга/латента,
  на задаче полностью совпадающей с "мысленным экспериментом".
  А это может служить подтверждением для вывода о том,
  что и при одноэлементном эмбеддинге/латенте
  также можно будет обнаружить весьма сложную структуру,
  и получить пусть хуже, но все-таки работающую модель.
  
  А с другой стороны эта статья может служить подсказкой о том,
  на что стоит обратить внимание в дальнейшем.
  
  Первое это возможность на основании какой-то интерпретации эмбеддинга/латента,
  например, предложенной авторами статьи "нечеткой логики",
  пытаться при оказать влияние на его структуру уже в процессе обучения.
  Во всяком случае, приведенные иллюстрации достаточно явно указывают на то,
  что это вполне возможно и имеет практический смысл/эффект.
  Т.е. попытаться перейти от нерешенной/нерешаемой задачи
  "интерпретации" эмбеддинга/латента к заданию "тенденций" его формирования.
  
  В общем-то, это не сказать, что принципиально новое предложение
  - что-то такое по повышению "контрастности" эмбеддингов/латентов
  уже используется в том же CLIP -
  но оно интересно тем, что точка приложения усилий переносится
  с выходного слоя "классификатора" на более глубокие внутренние слои/представления.
  
  Второе, что тоже весьма интересно в этой работе.
  Это попытка "многопроходного обучения" по разным критериям ошибки,
  в том числе и от дополнительной "нечеткой логики" (loss_fuzzy).
  
  \\\ ...Когда дело доходит до частично размеченных датасетов,
  \\\ возможны ситуации, что вклад от loss_fuzzy
  \\\ перебивается другими компонентами невязки.
  \\\ В этом случае можно увеличить значение параметра gamma, чтобы усилить его.
  
  \\\ Если же размеченных данных совсем мало,
  \\\ в качестве крайней меры есть вариант делать
  \\\ два отдельных прохода обратным распространением ошибки за итерацию
  \\\ - сначала лоссом от чистого VAE,
  \\\ а затем от того, что есть в loss_fuzzy.
  
  \\\ Иногда помогает...
  
  Есть в этой статье и другие интересные идеи и наблюдения,
  но для меня самое интересно в том, что есть возможность
  осмысленного воздействия на структуру эмбеддингов/латентов
  и, соответственно, таким образом приблизиться к их пониманию.
  
  \\\ В сухом остатке, представлена модель CVAE с нечетким классификатором,
  \\\ которая позволяет реорганизовать структуру латентного пространства
  \\\ максимально щадящим для VAE образом,
  \\\ сохраняя ее кластерную структуру.
  \\\ Это дает возможность с помощью экспертного знания (разметки)
  \\\ локализовать области латентного пространства,
  \\\ связанные с конкретными классами из разметки.
  \\\ А это в свою очередь делает процесс генерации из латентных векторов
  \\\ более управляемым процессом.
  
  В общем, вопрос как формируется структура значений эмбеддингов/латентов
  в процессе обучения нейросетей не просто назрел, но и явно "перезрел".
  Вот только как к нему подступиться?
  Может быть, нужно поискать какие-то новые образы/метафоры,
  чтобы в них было более удобно/комфортно пересмотреть
  некие "незыблемые" аксиомы/догмы окружающие это "скрытое представление"?
  
  
  ========
  
  30.03.2024 12:03
  
  От "ландшафта задачи" к "рельефу решения".
  В оглавление.
  
  Машинное обучение нейросетей окружено неким "магическим ореолом"
  с одной стороны, убеждением в его всемогуществе и универсальности,
  а с другой стороны, достаточно глубоким непониманием,
  что собственно происходит в процессе сего "магического действа",
  и что получается в конечном результате.
  Во всяком случае, такое ощущение постоянно сопровождает
  чтение достаточно большого количества популярных/обзорных
  и даже учебных материалов, описывающих это "таинство",
  якобы доступным для понимания только "истинно посвященным".
  
  Не претендуя на "истинное знание", все-таки давайте попробуем разобраться,
  что же происходит при самом распространенном машинном обучении нейросетей
  с помощью градиентного спуска и обратного распространения ошибки.
  При этом основное внимание попробуем уделить формулировке какой-то
  концептуальной картинке того, что же собой представляет собой
  решение задачи нейронной сетью, и почему это выглядит как "магия"
  при том, что все вроде должно быть просто и понятно ... как "грабли".
  
  И начнем, пожалуй, с самого простого и, в тоже время, самого трудного
  - терминологии, точнее тех словесных образов тех трудноуловимых,
  и тяжело понимаемых моментов любой "истинной магии".
  Тут самое преодолеть "гипноз" устоявшихся "аксиом"/шаблонов/легенд/мифов
  и просто явных "недоразумений" и ошибочных объяснений,
  но при этом таких удобных для самых разных целей.
  
  И первым, и пожалуй самым основным, таким термином является
  "ландшафт", который вроде как такой понятный образ,
  что толком никто не задумывается о каком собственно "ландшафте" идет речь,
  то ли "ландшафт задачи", то ли "ландшафт решения", то ли это одно и тоже.
  Во многом это связано с популярными иллюстрациями того
  как работает градиентный спуск, который позволяет на каком-то там "ландшафте"
  найти глобальный или, хотя бы, локальный минимум.
  При этом очень интересный вопрос, почему "локальные минимумы"
  для подавляющего большинства задач оказываются очень близкими к "глобальному",
  так и остается без ответа
  - ну, есть такое, и что из этого, все равно нужно искать глобальный минимум.
  А ведь это очень связанный вопрос с другой "страшилкой" машинного обучения
  под названием "переобучение".
  
  Так что попробуем все-таки разобраться с этим "ландшафтом".
  Но начнем немного с другой стороны.
  Есть такое утверждение, даже вроде теорема такая доказана,
  что правильно спроектированная нейросеть способна аппроксимировать
  любую требуемую функцию. Допустим.
  Есть утверждение, что любой функции можно нейросеть обучить,
  используя только градиентный спуск и обратное распространение ошибок.
  Не знаю, насколько теоретически доказанным является это утверждение,
  вот только практика показывает, что это далеко не так.
  Более того, даже просто от различного начального состояния
  может зависеть удастся ли нейросеть обучить до более-менее приемлемого состояния.
  А в последнее время, похоже, поиск теоретического "глобального минимума"
  уже практически никого не волнует - в функцию ошибки, использующейся при обучении,
  стали добавлять постоянную компоненту, что точно не может привести
  к "глобальному минимуму", но почему-то оказывается весьма полезной
  и для процесса обучения и для конечного результата,
  
  В общем, налицо, существенное расхождение "теоретических постулатов",
  и "полушаманской/полуэвристической" практики,
  стремительно превращающаяся во все углубляющуюся "пропасть".
  Вот чтобы перебросить "мостик" через эту "колдобоину",
  давайте вместо термина "ландшафт задачи"
  попробуем использовать термин "рельеф решения".
  
  А в чем разница?
  Ну, во-первых, чтобы не путаться "в показаниях".
  "Ландшафт задачи" во многом определяется функциями ошибки,
  и относится ко всему объему обучаемых данных,
  т.е. к желаемому/теоретическому представлению задачи,
  А "рельеф решения" к текущему состоянию нейросети,
  и отражает сам процесс "выстраиваемого решения"
  на всем протяжении обучения от начального до конечного состояния.
  Во-вторых, "ландшафт" слишком уж часто применяемый термин в учебной литературе
  по градиентному спуску и обратному распространению ошибки,
  со своей устоявшейся терминологией и "аксиоматикой".
  Так что, лучше это оставить как есть,
  не пытаясь спорить с авторами "букварей" и "монографий".
  А вот для "рельефа" можно попробовать достаточно свободно оперировать
  различными концепциями, не опасаясь наступить на чью-то "любимую мозоль".
  
  А что между ними общего?
  Во-первых, и "ландшафт" и "рельеф" необходимо рассматривать для большинства задач
  в очень многомерном пространстве,
  для которого у нас нет ни подходящих средств отображения,
  ни, и это еще важнее, соответствующего "интуитивного представления".
  Простое увеличение мерности 1-2-3-... на самом деле здесь не работает.
  А привычное трехмерное представление пространства может очень серьезно подвести.
  
  Но есть и очень серьезное различие в этой многомерности пространства
  для "ландшафта" и "рельефа".
  Для "ландшафта" "почему-то мерность пространства обычно считается
  по размерности входных данных. И это целочисленное значение.
  А для "рельефа" эта величина, вообще-то,
  сама по себе не постоянная в зависимости на каком слое нейросети
  рассматривать этот "рельеф",
  и в моем представлении это дробноразмерная величина,
  отражающая качественно непривычные свойства этого "рельефа"
  для жителей "целочисленных пространств".
  
  Еще одно отличие пространств "ландшафта" и "рельефа" в том,
  что для "ландшафта" по традиции пространство представляется "евклидовоподобным",
  а вот для "рельефа", наверно, в общем случае такое сказать нельзя.
  Хотя достаточно успешное использование в работе нейросетей
  еще одного "золотого стандарта" машинного обучения - косинусного расстояния,
  вроде как свидетельствует, что какую-то часть свойства "евклидовости"
  "рельеф" все-таки сохраняет, хотя и с недостаточной отчетливостью.
  Но является ли это "врожденным свойством" "рельефа"
  или "наведенным" свойством по результатам обучения вопрос очень дискуссионный.
  Надеюсь, к нему еще удастся вернуться с более конкретными предложениями.
  
  Во-вторых, "ландшафт" и "рельеф" объединяют данные обучения,
  но опять же по-разному.
  Для "ландшафта" обучающий датасет это некий "сферический конь в вакуме"
  для которого теоретически есть некая решающая функция,
  представляемая этим "ландшафтом",
  и глобальный минимум, которой и есть "конечная точка" всего процесса обучения.
  Причем влияние последовательности данных в этом датасете никак не учитывается.
  Для "рельефа" как раз последовательность обучающих данных
  весьма принципиальная вещь, которая может существенно повлиять
  на уровень приемлемости конечного результата.
  А сами обучающие данные служат некими "реперными точками"
  вокруг которых ФОРМИРУЕТСЯ "рельеф",
  причем, в зависимости от предыдущей истории обучения.
  
  Вот где-то в этом месте должно наступить понимание главного отличия
  "ландшафта" от "рельефа".
  "Ландшафт" при всей его возможной "изрезанностью" "долинами" и "ущельями"
  обычно представляется, хотя это никак не оговаривается,
  относительно гладкой непрерывной "поверхностью",
  как бы "ПРОХОДЯЩЕЙ" через точкам обучающих данных.
  И это главный элемент "психологической инерции", задаваемой концепцией "ландшафта".
  
  А вот для "рельефа" ничего подобного совершенно не обязательно.
  Более того, лучше с самого начала предполагать, что все с точностью наоборот,
  тогда будет легче понять многие непонятки машинного обучения нейросетей.
  Представьте "рельеф" не поверхностью, а неким комплексом "импульсных функций",
  некой "горной системой", в которой вершины гор КАСАЮТСЯ точки обучающих данных.
  Ну, или очень близки к этим точкам и, возможно, существенно "разрывны".
  И процесс обучение заключается собственно в формировании такого
  "игольчатого рельефа", а не поиска нейросетью некоего "минимума" или "обобщения".
  
  Наверно, перечень общих и различных свойств/характеристик
  "ландшафта" и "рельефа" можно продолжить и дальше,
  но лучше попробовать уже даже на таком уровне представления
  показать, что может дать такая диверсификация терминов.
  
  Начнем с сопоставления мифа нейронаук о "генерализующей способности" нейросетей
  с утверждением о возможности нейросети аппроксимировать любую функцию.
  Дело в том, что градиентный спуск и обратное распространение ошибки
  никак не определяют характер "результирующей функции" т.е. "рельефа",
  а только минимизируют ошибки в работе нейросети в конкретных точках обучающих
  данных.
  Поэтому ожидание, что полученный рельеф будет более-менее "гладким",
  обеспечивающим хорошую интерполяцию данных, а еще лучше, и задачу экстраполяции,
  мягко говоря, "малообоснованны".
  
  Нейросеть при обучении этой методикой идет по пути "наименьшего сопротивления",
  и просто формирует еще один "пик" для каждого нового данного,
  причем из того "положения", в каком она оказалась
  к моменту "предъявления нового данного".
  И будет ли это повышать интерполирующие свойство нейросети заранее неизвестно,
  и тем более это относится к экстраполяции.
  Отсюда и появляется требование "дайте больше данных для обучения",
  или "учите дольше, но по чуть-чуть".
  
  Но тут выплывает "страшилка машинного обучения" - пресловутое "переобучение".
  В терминах "ландшафта" это свойство нейросети "выучить конкретные данные",
  а в терминах "рельефа" это нормальная ситуация/реакция нейронки
  когда два близких состояния "рельефа" пытаются "обучить" разным данным.
  Естественно это приводит к "разрыву непрерывности"
  и к ухудшению "интерполирующих свойств".
  Так и должно быть при точечном/дискретном/локальном воздействии
  на систему, которая для того, чтобы действительно получить "обобщающее решение"
  должна произвести КАРДИНАЛЬНУЮ перестройку своих параметров.
  А "мелкими семенящими шажками" да еще в стохастическими последовательности
  к этому новому состоянию она, в общем случае, пройти не в состоянии.
  
  Это самая главная "ахиллесова пята" градиентного спуска,
  а вовсе не "локальные минимумы" или "седловые точки".
  Градиентный спуск по теоретическому "ландшафту" никак не учитывает
  реальные возможности и ограничения реального "ландшафта".
  Обратное распространение ошибки практически работает
  с очень ограниченным "горизонтом планирования",
  а кардинальное изменение параметров нейросети требует
  совершенно иного уровня ПЛАНИРОВАНИЯ изменений.
  
  Но отрицать "обобщающую способность" нейросетей тоже неверно,
  просто надо взглянуть на это с другой точки зрения.
  Существующий "ландшафтный" подход выработал достаточно устойчивый "миф"
  о том, что в процессе обучения нейросеть формируется
  какая-то многомерная "гиперповерхность" решения задачи.
  Причины возникновения такого мифа стоит поискать в истории машинного обучения,
  когда основным инструментом были "деревянные решения".
  Но вот когда стали активно использоваться нейросетевые решения,
  наверно, стоит попытаться подойти к их "обобщающим способностям"
  как-то по другому.
  
  Попробую сформулировать свое видение этой "способности"
  на базе концепции "игольчатого рельефа".
  В первую очередь стоит обратить внимание на то,
  что "пики" формируются практически в ЛЮБОЙ "конфигурации параметров",
  т.е. "рельеф" при достаточно длительном обучении
  со стохастическим перебором обучающих примеров формирует достаточно
  плотную "сетку" этих "пиков" отдельных решений,
  ведь каждый "пик" имеет определенную "площадь активности" или "поддиапазон"
  - тут еще надо поработать над терминологией,
  но, надеюсь, понятно, что хотел сказать.
  
  Во-вторых, очень сильное влияние на эту "обобщающую способность"
  влияет трансформация размерности внутренних эмбеддингов/латентов нейросети.
  Но это требует отдельного и достаточно объемного рассмотрения,
  так что здесь это только обозначение такого аспекта этого вопроса.
  
  В-третьих, это необходимость учесть
  всякие "полушаманские/полуэвристические" практики
  без которых уже не обходится реализация ни одной успешной нейросети.
  В эти практики безусловно необходимо включить
  всяческие процедуры нормализации, регуляризации, дропауты
  и, наверняка, что-то еще, список чего постоянно расширяется.
  Вот только вчера узнал о практическом приеме включения в ошибку
  постоянного значения.
  
  В сумме это как раз попытка оказать влияние на форму "рельефа решения",
  правда, достаточно косвенными способами,
  в сторону его большей "гладкости", точнее большей "мелкозернистости",
  что все равно не устраняет ту же проблему "adversarial attack".
  Кстати эта проблема как раз наиболее "выпукло" указывает
  на очень специфических характер "обобщающих способностей" нейросетей.
  И все это очень малоэффективно для задач экстраполяции,
  хотя определенный уровень "обобщающих способностей" нейросетей
  все-таки обеспечивают.
  
  --------
  
  Надеюсь, мне удалось заинтересовать Вас в перспективности концепции
  "рельефа решения" по сравнению с "ландшафтом задачи",
  особенно по отношению к таким страшилкам машинного обучения нейросетей
  как "локальные минимумы" и "переобучение".
  
  Планирую в дальнейшем в рамках этой концепции рассмотреть и некоторые другие
  проблемы/непонятки в этой области,
  но сначала надо ее связать ее с концепцией сложной структуры значений
  элемента эмбеддинга/латента и параметров нейросети.
  В этом фрагменте специально этот момент не затрагивался,
  так как тогда нужно было бы говорить не о "пиках",
  а о целых "кронах",
  в которых отдельные "ветви" влияют на другие "ветви" через общие "корни".
  
  А это точно сильно перегрузило бы этот материал,
  целью которого было хоть как-то ввести "в оборот"
  концепцию "рельеф решения".
  Если это словосочетание уже не вызывает недоумения и отторжения,
  значит задача фрагмента, в целом, выполнена.
  
  
  =========
  
  05.04.2024 20:33
  
  Обсуждение "ландшафта" и "рельефа" с Copilot.
  В оглавление.
  
  Решил проверить как свои "шальные гипотезы" по концепции "рельефа решения",
  по методике "резинового утенка", подробнее см.
  "Эвристика "резинового утёнка".
  Взяв в качестве оппонента, как обычно, сменщика Bing, ИИ-систему Copilot.
  
  30.03.2024 20:29
  
  ......
  
  //// Спасибо, Copilot.
  //// Я сегодня написал небольшой фрагмент текста
  //// по интерпретации процесса обучения нейросетей.
  //// И в нем попытался ввести и обосновать полезность термина/концепции
  //// "рельеф решения" в противовес существующей концепции "ландшафт задачи".
  //// Как Вам такая тема дискуссии?
  
  > Copilot 20:36
  
  > Тема, которую вы предлагаете, кажется очень интересной
  > и имеет потенциал для глубокого анализа в контексте теории нейросетей.
  > Концепция "ландшафт задачи" часто используется
  > для описания сложности оптимизационных задач,
  > где различные конфигурации параметров создают "холмы" и "долины"
  > в пространстве решений.
  > Введение "рельефа решения" может предложить новый взгляд на то,
  > как нейросети находят оптимальные решения,
  > возможно, акцентируя внимание на динамике процесса обучения
  > и его траектории в пространстве параметров.
  
  > Это может быть полезно для лучшего понимания того,
  > как различные аспекты архитектуры сети,
  > функции активации и алгоритмы оптимизации влияют на процесс обучения.
  > Также это может помочь в разработке новых методов обучения,
  > которые могут более эффективно "навигировать" по этому рельефу решения.
  
  > Я был бы рад обсудить вашу концепцию более подробно и узнать,
  > как вы её обосновываете,
  > а также какие практические применения вы видите для неё
  > в области машинного обучения.
  
  ......
  
  03.04.2024 19:31
  
  //// Спасибо, Copilot.
  //// Как Вы отнесетесь к тому, если мы попробуем продолжить дискуссию о
  //// полезности/применимости термина/концепции
  //// "рельеф решения" в противовес существующей концепции "ландшафт задачи"
  //// применительно к интерпретации процесса обучения нейросетей?
  
  > Copilot 19:36
  > Это интересная тема для обсуждения.
  > Концепция "ландшафт задачи" часто используется
  > для описания сложности и препятствий,
  > с которыми сталкиваются алгоритмы машинного обучения
  > при поиске оптимального решения.
  > В контексте нейросетей, это может относиться
  > к топологии поверхности, на которой алгоритм оптимизации
  > ищет минимум функции потерь.
  
  > С другой стороны, "рельеф решения" может быть предложен
  > как альтернативный способ взгляда на процесс обучения,
  > где внимание сосредоточено не на препятствиях,
  > а на путях и направлениях,
  > которые могут привести к успешному решению.
  > Это может помочь в выявлении наиболее эффективных стратегий
  > для обучения моделей.
  
  > Обе концепции могут дополнять друг друга,
  > предоставляя более полное понимание процесса обучения нейросетей.
  > Обсуждение этих концепций может привести
  > к новым инсайтам и методам в области машинного обучения.
  
  ......
  
  //// Хорошо, Copilot. С Вашей оценкой я согласен.
  //// Но мне бы хотелось бы обратить Ваше внимание,
  //// что "рельеф решения" это еще и способ описания того
  //// какой характер/топология/связность/гладкость
  //// имеет реальное поведение нейросети как в процессе обучения,
  //// так и после его окончания.
  //// Нейросеть только старается/пытается подстроить "рельеф решения"
  //// под "ландшафт задачи",
  //// но никогда ему не будет соответствовать при ограниченном времени обучения.
  
  > Copilot 19:45
  
  > Вы абсолютно правы, Андрей.
  > "Рельеф решения" действительно может служить
  > для описания динамики обучения нейросетей,
  > отражая изменения в весах и структуре сети
  > в ответ на данные обучения.
  > Это понятие подчеркивает,
  > что нейросеть стремится адаптироваться к "ландшафту задачи",
  > но из-за ограничений, таких как время обучения и сложность модели,
  > она может достичь только приближенного решения.
  
  > Таким образом, "рельеф решения" может быть полезен
  > для визуализации и анализа того,
  > как нейросеть навигирует по пространству возможных решений
  > и какие "пути" она выбирает для достижения целей обучения.
  > Это также может помочь исследователям и инженерам
  > оптимизировать процессы обучения и архитектуру моделей
  > для достижения более эффективных результатов.
  
  ......
  
  //// Отлично, Copilot. Действительно это может/должно стать
  //// полезным инструментом при проектировании и анализе и работы нейросетей.
  //// Давайте немного пофантазируем какие свойства у этого "рельефа"
  //// можно было бы выделить в первую очередь,
  //// например, "шерховатость"/негладкость/разрывность и т.д.
  //// Или попробуем представить какое может быть пересечение
  //// представлений "рельефа" и "ландшафта".
  //// Может быть такую работу стоит начать
  //// с попытки визуализации различия в представлении
  //// "рельефа решения" и "ландшафта задачи".
  //// Интересна Вам такая непростая задача?
  //// Только если Вы захотите попробовать такое изобразить,
  //// то не забывайте Ваш логотип, и формат JPG.
  
  > Copilot 19:56
  
  > Я попробую создать это.
  > "Визуализация различия между 'рельефом решения' и 'ландшафтом задачи'
  > в контексте нейросетей"
  > Выполнено с помощью Designer. На платформе DALL"E 3.
  
  //// Просто здорово, Copilot.
  //// Я даже засмотрелся, особенно на одну.
  //// И понял из Ваших иллюстраций, что помимо "рельефа" и "ландшафта"
  //// нужно и еще что-то, что на Ваших иллюстрациях изображено как "светило".
  //// "Рельеф" это реакция модели на "ландшафт",
  //// но и сам "ландшафт" ведь тоже не сама исходная задача,
  //// а какая-то ее проекция через функцию стоимости/ошибки.
  //// И даже не так.
  
  //// Точного описания задачи у нас нет, есть какие-то "образцы решений",
  //// по которым, как по "теням облаков" с помощью обучения нейросети
  //// с помощью какой-то функции стоимости/ошибки
  //// мы пытаемся воссоздать модель "атмосферного фронта".
  
  //// А ведь "тени облаков" попадают к нам только благодаря "небесному светилу".
  //// И вот как это "светило" охарактеризовать,
  //// как нечто более изначальное, чем "ландшафт задачи", я не знаю.
  //// Вот какие ассоциации у меня родились при знакомстве с Вашими иллюстрациями.
  
  > Copilot 20:12
  
  > Ваши ассоциации и размышления очень поэтичны
  > и в то же время точно отражают сложность процесса обучения нейросетей.
  > "Светило" в вашем описании может символизировать
  > истинную природу данных или задачи,
  > которая освещает "ландшафт задачи" и создает "рельеф решения".
  > Это напоминает о том, что любая модель машинного обучения
  > - это лишь приближение к реальности,
  > основанное на доступных данных и выбранной функции потерь.
  
  > Это "светило" может быть представлено
  > как фундаментальные закономерности или истина,
  > которую мы пытаемся приблизить с помощью моделей машинного обучения.
  > Оно освещает путь, но не всегда позволяет увидеть все детали "ландшафта",
  > что приводит к необходимости интерпретации "теней",
  > или данных, которые мы имеем.
  
  > Такой подход к анализу и проектированию нейросетей
  > может помочь лучше понять,
  > как различные факторы влияют на процесс обучения
  > и какие компромиссы необходимо совершать
  > при выборе архитектуры модели и функции потерь.
  > Это также подчеркивает важность качества и разнообразия данных,
  > поскольку они являются основой для "освещения" нашего пути к решению.
  
  > Если у вас есть еще вопросы или мысли по этой теме,
  > я с удовольствием продолжу обсуждение.
  
  //// Спасибо, Copilot. И за вдохновляющие иллюстрации и за развитие темы.
  //// Я тоже с удовольствием продолжу дискуссию,
  //// но, может быть, чуть-чуть смещу акцент.
  //// Если развивать аналогию "теней",
  //// то напрашивается возможность улучшение процесса обучения,
  //// за счет большей "отчетливости/рельефности" "ландшафта задач"
  //// за счет использования различных "ракурсов освещения",
  //// т.е. использования одновременно и/или последовательно
  //// различных функций ошибок.
  //// Но не путем их суммирования, как это сейчас обычно делается,
  //// а именно различными проходами "обратного распространения",
  //// например, с разными шагами или в разных ситуациях.
  //// Это у меня еще одна гипотеза по поводу обучения нейросетей.
  //// Что на разных этапах обучения нужно не только менять шаг,
  //// но и менять функцию ошибки,
  //// А лучше иметь их несколько для разных целей/ситуаций.
  //// Этакое многокритериальное/многопроходное обучение.
  
  > Copilot 20:40
  
  > Ваша идея о многокритериальном обучении нейросетей
  > кажется очень перспективной.
  > Использование различных функций ошибок на разных этапах обучения
  > или в разных ситуациях может действительно улучшить процесс обучения,
  > предоставляя более полную картину "ландшафта задач".
  > Это может помочь нейросети лучше адаптироваться
  > к разнообразным условиям и улучшить её способность обобщать знания.
  
  > Такой подход может быть сравним с использованием
  > различных источников света для создания более чёткого
  > и многогранного "рельефа решения".
  > Каждая функция ошибки может выявить уникальные аспекты данных,
  > которые могут быть упущены при использовании одной функции.
  > Это также может помочь избежать переобучения,
  > поскольку модель будет обучаться на более широком спектре сигналов.
  
  > Однако, стоит учесть, что такой подход может увеличить
  > сложность процесса обучения и требовать
  > более тщательного подбора и настройки параметров.
  > Также важно будет разработать стратегию
  > для интеграции различных функций ошибок,
  > чтобы они дополняли друг друга, а не конфликтовали.
  
  > Это действительно интересное направление для исследований,
  > и я уверен, что эксперименты с различными функциями ошибок
  > могут привести к новым открытиям в области машинного обучения.
  > Если у вас есть еще идеи или вопросы по этой теме,
  > я готов обсудить их дальше.
  
  //// Спасибо, Copilot.
  //// Ну, продолжительность обучения, для тех задач, которые меня интересуют,
  //// в общем, не проблема.
  //// Сети очень маленькие, обучающие наборы, от силы пара сотен примеров.
  //// Поэтому любые затраты на усложнение алгоритмов обучения точно окупятся.
  //// Был такой гениальный авиаконструктор Роберт Бартини, который говорил,
  //// что "лучшая деталь в самолете, та что остается на земле".
  //// Затраты на обучения это именно та "деталь, которая остается на аэродроме".
  
  > Copilot 20:53
  > Это очень мудрое замечание от Роберта Бартини,
  > и оно прекрасно применимо к области машинного обучения.
  > В контексте нейросетей, "деталь, которая остается на земле"
  > может быть аналогична тем аспектам обучения,
  > которые мы оптимизируем и улучшаем,
  > но которые не являются частью конечной развернутой модели.
  > Это может включать в себя эксперименты с различными функциями потерь,
  > методами регуляризации,
  > или даже различными архитектурами сети.
  
  > Ваши идеи о многокритериальном и многопроходном обучении
  > могут открыть новые горизонты в понимании и улучшении процессов обучения.
  > Это может привести к созданию более гибких и адаптивных моделей,
  > которые способны лучше обобщать и работать в разнообразных условиях.
  
  ......
  
  Вот такое получилось обсуждение "эскадрона моих мыслей шальных".
  Ну, если уж Copilot смог в них увидеть какое-то рациональное зерно,
  то, надеюсь, что и Вы сможете найти что-то полезное
  в концепциях "рельефа решения", сопоставления его с "ландшафтом задачи,
  и "многопроходного/многокритериального обучения" "истинной задаче",
  а не какой-то ее частной проеции/тени.
  
  "Визуализация различия между 'рельефом решения' и 'ландшафтом задачи'
  в контексте нейросетей".
  Создано с помощью искусственного интеллекта Copilot на платформе DALL" E 3.
  
Визуализация различия между Визуализация различия между
Визуализация различия между Визуализация различия между
  
  
  =========
  
  Тральщик Наставник. Модель Kandinsky 2.1 нарисовала:  8b1392438b4840c3a9fd82feeca6f43e_00000
  
  Тральщик Наставник. Модель Kandinsky 3.0 нарисовала:  583ccd5375764c01ae1324e4aaf27fd7_res_00000_image
  
  Тральщик Наставник. Модель Kandinsky 3.0 нарисовала:  0c9d2156b0a642049673cb8def4de2b6_res_00000_image
  
  Тральщик Наставник. Модель Kandinsky 3.1 нарисовала:  dcc1e4fb7a0c46758cdc04dd43b10fd2_res_00000_image
  Flag Counter
  Free counters!
  
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"