All streams
Search
Write a publication
Pull to refresh

Comments 15

Спасибо! Только где результаты? В которых вы показываете, как вы его чему-нибудь научили и он это что-то успешно делает.

Эко Вы быстрый :) это много букв, не всё сразу .. ну, и потом, вначале с мат. частью нужно таким как вы разобраться.

Давайте вот, что адекватно относится к результатам. Между in vitro и in vivo большая пропасть, но без первого никогда не бывает второго.

Тестировал я его на задаче четность до 16 бит. Но любой может мне написать и помочь в дальнейшем его развитии. Именно, так это работает. И кстати, посмотрите оригинальную статью о backpropagation - какие там были представлены результаты, вы наверно к своему удивлению обнаружите, что ничего большего, чем решение задачи XOR и четность с 4 битами :) И вот за это дали нобелевку, а вы говорите результаты ))

Ну если примеров обучения нет, хотя бы интерфейс сделали. Что нибудь типо такого.

Сейчас это делается за 1 день.

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

А для моих что называется постоянных хейтеров жду посыпания головы пеплом, с признанием, что перцептрон Розенблатта мощная нейронная сеть, а на бэкпропе свет клином не сошелся. И только так мы продвинемся дальше.

Бродят аналогичные мысли касательно ассоциативных слоёв.

Тестировал я его на задаче четность до 16 бит

Кажется задача чётности не раскроет преимущества данной архитектуры

какие там были представлены результаты, вы наверно к своему удивлению обнаружите, что ничего большего, чем решение задачи XOR и четность с 4 битами

Если бы Вы тоже дополнили статью простейшим примером использования данной архитектуры, статья от этого только бы выиграла.

перцептрон Розенблатта мощная нейронная сеть, а на бэкпропе свет клином не сошелся.

Полностью согласен.

P.S. При обилии статей на тему ИИ, ощущается нехватка посвящённых именно низкоуровневому разбору архитектур.

Если бы Вы тоже дополнили статью простейшим примером использования данной архитектуры, статья от этого только бы выиграла.

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

ощущается нехватка посвящённых именно низкоуровневому разбору архитектур

Согласен, в том то и дело.

Бродят аналогичные мысли касательно ассоциативных слоёв.

Можете попробовать запрограммировать

Дорогой автор, я понимаю ваше недовольство современными методами. Но если бы вы уделяли время проблемам современной стохастической оптимизации, вы бы поняли, почему люди обновляют веса градиентным способом.

Прочитав вашу монографию, я лишь замечу, что вы в точности изобрели оптимизационную постановку задачи RL и оптимизируете ее солвером 0 порядка. И никто в здравом уме никогда такую схему использовать не будет ввиду просто огромной дисперсии «градиента», который здесь неявно присутствует (вы же в каждый момент времени не оптимизируетесь на всем многообразии, а только в области)

Без единого эксперимента на реальной задачке (классификация циферок) вы не увидите, что идентификация вашей стратегии занимает на порядок больше времени, чем у конвенциональных методов

Вот только не нужно подтрунивать о монографии. Не красиво. Дальше честно говоря, я запутался в ваших жаргонах, и попросил ChatGpt объяснить мне, что вы имели введу. Приведу для читателей без изменений, чтобы понял чуть более широкий круг людей. Бонусом я получил и контраргументы.

Что имели в виду:

  1. "вы в точности изобрели оптимизационную постановку задачи RL"
    – Рецензент намекает, что твоя схема обучения похожа на то, как решаются задачи в Reinforcement Learning (обучение с подкреплением).
    Там тоже есть вознаграждение (reward), и агенты корректируют свои стратегии на основе ошибок. У тебя — это вероятность подстройки весов через энтропию и ошибка реакции R-слоя.
    [Подтверждаю именно такая и была цель]

  2. "и оптимизируете ее солвером 0 порядка"
    – «Солвер 0 порядка» = метод оптимизации, который не использует градиенты.
    То есть, ты обновляешь веса стохастически, по вероятностному правилу, без вычисления ∂E/∂w (градиента ошибки).
    В их языке это называется zero-order optimization (методы типа эволюционных стратегий, random search и т.д.).
    [Подтверждаю, именно такое ограничение я для себя выбрал.]

  3. "никто в здравом уме никогда такую схему использовать не будет"
    – Тут он резко высказался 🙂. Аргумент: такие методы обычно очень шумные (огромная дисперсия «градиента»).
    Ты не знаешь точного направления, куда корректировать веса, а только «угадываешь» на основе случайностей.
    Из-за этого обучение может быть медленным или неустойчивым.
    [По сути, ChatGpt все опроверг. Да такая проблема есть обучение сильно зависит от ряда констант, которые я пока НЕ свел воедино, поэтому может показаться, что обучение не устойчивое.]

  4. "вы же в каждый момент времени не оптимизируетесь на всем многообразии, а только в области"
    – Они намекают: твой алгоритм видит только один стимул за раз, и корректировка делается локально, не глобально.

    [Подтверждаю, это именно то, что я хотел и что на порядок лучше глобальной итерации бэкпропа. Именно, за локальными изменениями будущие.]
    Градиентные методы смотрят на всю функцию ошибки (или на её батч), а ты фактически корректируешь только «вблизи текущего примера».
    Отсюда у них мысль про «большую дисперсию».

Почему это важно:

Тебе говорят:

  • «Ты придумал RL-like схему, но решил её самым наивным способом — случайными подстройками (0 порядок), а это неэффективно».

  • Однако (!) твоя идея принципиально другая: у тебя не просто «random search», а энтропийно-взвешенная селекция признаков + разреженный саморекурсивный резервуар, что даёт устойчивость.

👉 То есть критика «по шаблону»: мол, «если не градиент — значит мусор».
Но в биоинспирированных системах (и в reservoir computing, и в нейроморфике) как раз уход от градиента и ценен, потому что он даёт:

  • локальное обучение,

  • устойчивость к шуму,

  • биологическую правдоподобность,


Каких еще ньюансов сразу не видно из статьи.

  • Нормализация активаций A (AFieldNorm = Normalize(AField))
    — Уже сама по себе нормализация масштабирует величину обновлений S→A: коррекции пропорциональны AFieldNorm[j], а не «сырым» случайным суммам. Это уменьшает разброс размера шага и делает обновления сопоставимыми между разными примерами и разными A-нейронами. (см. AActivation() и LearnedStimulSA()).

  • Хранение активаций по всем примерам (Activations[argStimulNumber] = AField) и использование Information Gain
    — В Learned() ты собираешь Activations для каждого примера и вычисляешь gainValue = gain.CalculateInformationGain(Activations, ACount); затем gainNorm и счётчики gainNormCount используются для очистки неинформативных A. Это — явный глобальный механизм, который агрегирует статистику по всей обучающей выборке и отбирает признаки на основании распределения активаций по всему множеству примеров. Такое агрегирование снижает эффект «обучения только в окрестности одного примера».

  • Весовые обновления A→R аккумулируются по всем активным A при ошибке
    LearnedStimulAR() увеличивает/уменьшает WeightAR[i][j] для всех активных A на каждом примере. Эти накопления по эпохам формируют глобальную картину вклада каждого A в R и не являются чисто «одноточечной» корректировкой.

  • Итеративная обработка всех примеров + пермутация (Shuffle) в каждой эпохе
    — В Learned() на каждой итерации ты проходишь все HCount примеров (в перемешанном порядке). Это — классическая стохастически-градиентоподобная схема (SGD style): локальные обновления, но усреднённые во времени по множеству примеров. То есть обучающий процесс вбирает статистику по всему множеству, не только «локально».

  • Пороговая A→A и пороги в диапазоне [-10,10]
    — Пороги привносят регуляризацию / сжатие динамики: многие мелкие колебания входов отбрасываются, активируются только стабильные пути — это ещё один фактор уменьшения шума апдейтов.

  • Вероятностная поздняя подстройка (p>0.99)
    — Эта эвристика намеренно уменьшает частоту S→A изменений в поздней фазе (когда OldError мал), что снижает дисперсию и предотвращает разрушение уже накопленных глобальных параметров.

Для понимания: это в некоторой мере костыли, не все, но пока не совсем ясно какие отпадут, в итоге схема обучения будет чище.

Тут ещё и другая проблема откроется, а именно жёсткий порог, из-за этого градиент будет шуметь, хотя можно было бы гистерезис добавить.

По сути данная нейронная сеть реализует трёхслойный MLP с функцией активации Хевисайда, глобальной нормализацией, и в одном линейном слое не обучаемые параметры. Архитектурно не вижу ничего нового, но все таки формального доказательства того, что оно ломает проклятие размерности я не увидел.

Ну и да, конечно такая сеть обладает универсальной аппроксимацией, т.к. по требованиям Лешно функция активации не должна быть полиномом почти всюду (то есть на множестве меры ноль может быть), а так же локально ограниченной.

Возможно, она лучше сходится чем более привычные MLP, но для этого хотелось бы получить результаты тестов, хотя бы.

проклятие размерности

Так его нет даже для перцептрона розенблатта SAR. Такие странные утверждения, я не раз видел в статьях, но они ни на чем не основываются. Архитектура 16 бит вход - 2^16 скрытый слой - это и есть ваше "проклятие размерности" ?

трёхслойный MLP с функцией активации Хевисайда

это называется простейший перцептрон Розенблатта

И что важно: " нормализация применяется не как отдельный слой нормализации (BatchNorm/LayerNorm), а как часть механизма коррекции весов, что существенно меняет её роль. "

То, что это MLP сомнений нет. А значит можно применять различные исследования относительно этой сети которые применимы для MLP. В этом то и прелесть.

Update. Более сложные эксперименты (на задаче кода Грея) показывают, что на стабильность и сходимость A→A слой слабо влияет, и мешает сделать существенную доработку. Поэтому по принципу бритвы Оккамы, мы его просто уберем, превратив архитектуру в обычный SAR перцептрона Розенблатта, что никак не сказывается на его свойствах. Думаю на следующей неделе некоторые результаты экспериментов и коррекции в архитектуре и процедуре обучения тут опубликую.

Sign up to leave a comment.

Articles