В прошлой статье на Хабре «На дворе LLM, а книгу о перцептроне так никто и не открыл!?» я указал, что многие понятия не имеют о перцептроне Розенблатта, но пишут о нем так как будто читали оригинал. И так или иначе в комментариях прошла дискуссия, как минимум с тремя оппонентами, которые тоже находятся в разного рода не знании о перцептроне. Что только подтверждает мои слова, что это массовое явление. Поэтому даже в научной статье мне придётся этому уделить не малое внимание. Свою статью, я еще не опубликовал, да ещё полностью и не написал, хотя все эксперименты были сделаны 15 лет назад, а сейчас их нужно улучшить. Собственно, когда я сам стряхнул пыль с них, я долго не мог по программному коду понять, о чем это, что это дает, так и возникла моя мысль, что это нужно донести людям. И подумал, почему бы мне некоторые разделы будущей статьи, сразу не взять и не опубликовать тут на хабре. Имея широкий охват, это может иметь даже большую пользу, чем публикация в модерируемом издании. Поэтому ниже я дам выдержки из своего черновика статьи «как есть», относящиеся в основном к «утерянной памяти о перцептроне», но т.к. как это часть научной статьи, настоятельно прошу при цитировании ссылаться на меня. Хотя и понимаю, что выдержки не дадут вам полного понимания проблемы, но как минимум расскажут о известных фактах и надеюсь, все же уберегут от поверхностного взгляда. Ну и мало ли — если тут найдется специалист, который публикуется на https://arxiv.org последние 5 лет, мне нужна ваша помощь с рекомендацией, свяжитесь со мной. Тогда полноценная статья выйдет быстрее.
Но прежде, чем начать, я хочу, в отличии от прошлой своей статьи на Хабре, похвалить автора статьи Всё, что вы хотели знать о перцептронах Розенблатта, но боялись спросить, которая вселяет надежду, что люди все таки читают оригиналы, и не живут мифами. А за информацию о биографии Розенблатта — отдельное спасибо, таких подробностей я не знал. Очень рекомендую прежде, чем читать дальше.
Говоря о элементарном перцептроне со структурой S-A-R, Розенблатт писал «такие перцептроны способны заучивать любой набор реакций … [но] у них отсутствует способность к обобщению на новые стимулы, не совпадающие в точности с теми, которые были показаны при обучении». Сейчас бы мы сказали, что перцептрон решает задачи классификации (различения), но не может решить задачи прогнозирования. На практике же это в известной степени не так, в работе [1] для распознавания рукописных цифр на базе MNIST была получена точность распознавания выше 99%.
Интересно, что алгоритм backpropagation изначально тоже не рассматривался его авторами как инструмент прогнозирования, и строгих теоретических оснований для этого до сих пор нет (см. пояснение ниже).
Усугубляло ситуацию в то время ещё и критика Минского [3], который подходил к анализу перцептрона с точки зрения эффективности последовательных алгоритмов против параллельных. Авторы [2] прямо отмечают, что сосредоточились на создании многослойной процедуры обучения, которую они назовут backpropagation, именно потому, что Минский не смог в достаточной мере распространить свою критику на многослойные ИНС. Отвечая Минскому, они пишут:
«Минский и Паперт (1969): возможно, будет открыта какая-то мощная теорема о сходимости, или будет найдена какая-то глубинная причина неудачи создать интересную «теорему обучения» для многослойной машины.
Хотя результаты обучения не гарантируют, что мы сможем найти решение для всех решаемых задач, наш анализ и результаты показали, что на практике схема распространения ошибок приводит к решениям практически в каждом случае. Короче говоря, мы считаем, что ответили на вызов Мински и Паперта и обнаружили достаточно убедительный результат обучения, чтобы продемонстрировать, что их пессимизм относительно обучения в многослойных машинах был неуместен.»
Тем не менее, стоит отметить, что «мощной теоремы сходимости» для многослойных машин до сих пор не существует. На практике же они рассматривали задачи, которые рассматривал и Минский, но совсем не в том аспекте. Если Минский рассматривал задачи с разных аспектов, противопоставляя им простые последовательные алгоритмы для задач “четность”, “симметрия”, “распознавание букв”, то авторы [2] сосредоточились лишь на возможности обучения ИНС, и в своих работах не показывали характеристики перцептрона связанные с прогнозированием. Поэтому мы считаем, что в том контексте, который имел введу Розенблатт, говоря о обобщении в отношении перцептрона, так же справедливо и для MLP, а именно, что у них он отсутствует и носит случайный характер.
В современных же работах по прогнозированию нередко происходит подгонка результатов — часто неосознанно, что связано с методологией обучения-тестирования и феноменом «переобучения». Разумеется, мы не отрицаем, что ИНС способны к прогнозированию, но подчёркиваем, что этот аспект до сих пор изучен меньше, чем используется на практике.
Почему же сам Розенблатт для перцептрона не получил хотя бы de facto, подобные современным? Вероятно, дело не только в количестве слоёв или конструктивных особенностях перцептрона, а в том, что прогнозирование требует большей избыточности, чем классификация. В условиях того времени этот феномен просто не был замечен, а само понятие «обобщения» у Розенблатта трактовалось гораздо строже.
Плавающая терминология из разных дисциплин добавляет путаницы. В дальнейшем, после объяснения основ запоминания перцептроном, мы вернёмся к обсуждению обучения нескольких слоёв и сравнению перцептрона и MLP с backpropagation. Здесь же отметим несколько нюансов.
Авторы [2] поднимали вопрос: «разработанная нами процедура является процедурой градиентного спуска и, как таковая, связана с проблемой локальных минимумов. Даже если бы мы могли гарантировать, что она в конечном итоге найдёт решение, возникает вопрос, сможет ли наша процедура обучиться за разумный период времени» — и ответа на него нет до сих пор. Для перцептрона Розенблатта, напротив, известна строгая теорема сходимости и не только она.
Ранее автором были предложены практические уточнения [4] достаточных условий для того, чтобы перцептрон был в состоянии сформировать пространство, удовлетворяющее гипотезе компактности:
число А – элементов должно быть в идеале равно числу примеров в обучающей выборке
число А – элементов должно быть достаточно большим (100 и более), чтобы первый S-A слой мог случайным образом сформировать необходимые признаки (такие, что G-матрица перцептрона не была бы особенной)
Но на практике, условие о максимуме конструктивных элементов, часто недостаточно, так как их требуется минимизировать, и нужны оценки минимума. А это становится поводом для спекуляции, что ИНС с одним слоем требуется экспоненциальный размер вычислений, в отличии от многослойных [5]. Из-за этой надуманной проблематики в [6] делаются попытки ответить на вопрос: “Оправданы ли иерархические архитектуры с большим количеством слоёв с точки зрения теории обучения?”. Однако получаемые выводы выглядят спорными: создаётся формальный аппарат, который, не вполне отражает особенности реальных ИНС.
Мы условно разделим проблему на две части:
в следующем разделе, покажем, что ИНС может обходится без многослойной архитектуры, и это не влечет за собой экспоненциального роста количества нейронов среднего слоя для того, чтобы запомнить обучающую выборку;
а в разделе «О прогнозировании», вернемся к вопросу оправданности иерархического выделения признаков для прогнозирования.
[дальше по понятным причинам нет разделов с научной актуальностью, и я надеюсь, что в скором времени мне получится их опубликовать. но еще одну ретроспективную пояснительную выдержку я дам ниже]
Роль многослойного обучения перцептрона
Роль многослойного обучения, это проредить общее множество признаков, разделяя их, как мы показали, в прошлом разделе, по кластеризуемым группам. Таким образом, архитектура таких слоев начинается от широкого слоя, скажем в 5000 – нейронов, и затем постепенно сужается – 1000 -> 100 -> 16.
Автору не понятны причины почему, но это малоизвестно. Розенблаттом, еще до критики Минским и появления алгоритма backpropagation, так же предлагался алгоритм, названный им “метод коррекции с обратной передачей сигнала ошибки”. Он существенно вычислительно проще, чем backpropagation, и позволяет получить сравнимые результаты.
Вкратце опишем его, для архитектуры перцептрона S-A-R:
Для каждого R-элемента, так же как и в простом методе коррекции ошибки, установим ошибку Er = R – r , где R – требуемая, а r – достигнутая реакция
Для каждого А-элемента ai ошибка Ei вычисляется, если ошибка Er не нулевая, следующим образом:
Если элемент ai активен и ошибка Er по знаку отличается от веса vir , то с вероятностью p1 коррекция равна -1
Если элемент ai не активен и ошибка Er по знаку совпадает с весом vir , то вероятностью p2 коррекция равна +1
-
Если элемент ai не активен и ошибка Er по знаку отличается от веса vir , то вероятностью p3 коррекция равна +1
3. Коррекцию ошибки Er нужно делать для каждого активного элемента, предыдущего слоя, в данном случае S связанно с рассчитываемым A-элементом.
Смысл этих правил в том, чтобы сделать неактивными те А-элементы, выходы которых увеличивают ошибку R-элемента, и наоборот сделать активными, те А-элементы, которые не активны, причем их выходы могли бы помочь скорректировать ошибку. Кроме того, с меньшей вероятностью p3 учитывается случай, когда не реагирует ни один A-элемент и знак весов всех связей не правильный или равен нулю, то это приведет к возбуждению некоторых A-элементов. Во-вторых, это предотвращает ситуацию, когда A-элемент станет неактивным даже если во время обучения возникнет ситуация, когда все связи будут неправильными.
И Розенблатт, приводит доказательство, что такой метод обучения приведет к нахождению решения. Почему Минский, и последующие исследователи не восприняли эту доказанную теорему, как ту о которой выше мы упоминали “возможно, будет открыта какая-то мощная теорема о сходимости”, автору не понятно, но очевидным образом она была тогда и существует сейчас. Но вместо, этого исследователи чаще используют алгоритм backpropagation, который является неэффективным аналогом того же самого. Дело в том, что градиенты, требуемые для изменения весов, играют ту же самую роль, что и коррекция ошибки в методе от Розенблатта, а именно роль случайного знака подкрепления. А т.н. скорость обучения в backpropagation играет туже роль, что и вероятности p1, p2, p3 .
[И небольшое пояснение про прогнозирование]
Прогнозирование
В разделе, эксперименты по запоминанию, мы стремились уменьшить число признаков (А - элементов), требуемых для решения задачи. И это понятно, т.к. обработка меньшего числа признаков требует меньше вычислительных затрат. Но выделяя только минимальное число признаков (и соответствующих A-элементов), и обучаясь только на части всех возможных примеров, мы рискуем построить слишком грубую модель. Её будет достаточно для решения задачи на обучающем множестве, но она будет плохо предсказывать. Представьте, что мы аппроксимируем окружность, и примеры нам показывают, что это многоугольник и во время прогнозирования мы исходим из того, на сколько углов мы обучили свою сеть. Но если дать, не на столько нагруженные узлы принятия решений, которые мы рассматривали в приложениях ранее, появится возможность предсказывать более плавно. Это объяснение лучше отражает суть происходящего, чем определение термина переобучение ИНС. И его правильно было бы заменить на перенасыщение нейронов.
[1] Kussul E., Baidyk T., Kasatkina L., Lukovich V., Rosenblatt Perceptrons for Handwritten Digit Recognition 2001. — P. 1516—1520.
[2] D. E. Rumelhart, G. E. Hinton, R. J. Williams, Chapter 8. Learning Internal Representations by Error Propagation, 1986
[3] Минский М., Пейперт С. Персептроны, Perceptrons. — М.: Мир, 1971.
[4] Sergejs Jakovlevs, Perceptron architecture ensuring pattern description compactnes, 2009, Scientific proceedings of Riga Technical University, RTU, Riga
[5] Matus Telgarsky, Benefits of depth in neural networks, 2016
[6] Hrushikesh Mhaskar, Tomaso Poggio, Deep vs. shallow networks: An approximation theory perspective, 2016
Комментарии (13)
ValeriyPus
06.09.2025 00:45у них отсутствует способность к обобщению на новые стимулы, не совпадающие в точности с теми, которые были показаны при обучении
Ну да, вы же не пропускаете\не пропускаете сигнал на основе данных с перцептрона, а выполняете преобразования.
Естественно, способность к генерализации падает.
Это интуитивно понятно.
Простое, довольно очевидное преобразование.. Пумы? А если просто пропускать или не пропускать сигнал - получается метод секущих плоскостей (потому что в простейшем случае w1x1+w2x2+w3x3 - уравнение плоскости). И можно отказаться даже от обратного распространения ошибки :) (И это решит все проблемы DeepLearning, да еще без использования этих сложных обратных распространений :) )
И вы получите аналог бустинга\деревьев.
И, да, в этих исследованиях ИИ никто не понимал, что веса - это тангенциальные коэффициенты плоскости, а вы замахнулись аж на основу основ :)
ValeriyPus
06.09.2025 00:45Правда, тут надо смотреть на саму плоскость (w1x1+w2x2+w3x3+...),
нормаль к плоскости (т.е. точки должны находится не просто выше или ниже линии\плоскости, а с нужной стороны (по нормали) )
И пропускать\не пропускать весь вектор\выбранную маску дальше (на следующий слой).
Такая нейросеть не нуждается в обратном распространении ошибки, не подвержена всем известным проблемам DeepLearning, гарантированно находит любые подпространства (и вообще похожа на Word2Vec :) )
VladimirFarshatov
06.09.2025 00:45А есть какое-то доказательство, что плоскостями можно классифицировать (отсекать) все виды классифицируемого? Кмк, возможны более сложные варианты, в статье даже нарисовано на плоскости разделение кругом. Подобные классификационные механизмы есть у Перцептрона или в современных вариантах? Может ограничение метода классификации секущими плоскостями и приводит в тупики переобучений, не?
ValeriyPus
06.09.2025 00:45Плоскостями\полигонами\Гауссовыми ядрами и прочими геометрическими примитивами можно выделить вообще всe. А если еще и операциями с множествами добавить - то еще и неплохо сэкономить в плане количества переменных.
И это довольно очевидно :) Может ограничение метода классификации секущими плоскостями и приводит в тупики переобучений, не?
Нет, в тупик переобучений приводит именно то, что мы не выделяем все точки в пространстве при помощи геом. примитивов, а то что мы применяем нелинейные функции по сто раз подряд (т.е. чуть ли не хэширование выходит :) )
Доходит до того, что изменение 1 пикселя приводит к краху работы классификатора.
ermouth
06.09.2025 00:45мы применяем нелинейные функции по сто раз подряд
Других не завезли в реальный мир, линейных зависимостей по полному диапазону в реальном мире не бывает.
В аналоговом вычислителе честная линейность привела бы к перегрузкам и отказу, в цифровом – вообще невозможна из-за конечности дискретного пространства состояний вычислителя. Отсюда и нормализация, и все эти нелинейные функции активации.
С геометрическими примитивами проблема никуда не уходит, кстати.
ValeriyPus
06.09.2025 00:45Других не завезли в реальный мир
Да вот вам 8 только элементарных.
Отсюда и нормализация, и все эти нелинейные функции активации.
Ну прочитайте хотя бы пару публикаций о персептнонах\перцептронах.
Нелинейность нужна только лишь потому что перцептрон из 1000 линейных слоев прямо математически сводится к однослойному перцептрону :)
Тут абстракции и потекли :)
ValeriyPus
06.09.2025 00:45Корректнее говорить не Исходный сигнал, а исходные координаты многомерной точки\вектора.
После 10-20 таких преобразований, тем более нелинейных, уже тяжело что-то сопоставить. Да и приходится делать обратное распространение ошибки. А если просто рисовать многомерные плоскости - все просто
tac Автор
06.09.2025 00:45Я долго вам не отвечал, я на самом деле так и не понял, что вы хотите сказать. По серьезнее можно?
VladimirFarshatov
06.09.2025 00:45Автору. Спасибо за статью, очень полезно, а также на ссылки. Плюсик Вам в карму.
По мере любопытства слежу за статьями по теме ИИ примерно с 1975года.. и не понимаю, почему эту конструкцию считают аналогом сети нейронов. Кмк, это нечто свое, собственное.
Нейрон - это однотактовый вычислитель, имеющий как принято, два состояния: включен и выключен, но .. так ли это? Если учесть, что весь код ДНК кодируется 4 состояниями, то меня давно гложет сомнение, и вполне возможно их не 2, а 4: "включен - был включен", "включен - был выключен", "выключен - был включен", "выключен - был выключен". Иначе вопрос отслеживания и моделирования временных процессов кмк, проблематичен, но "со стороны" эти 4 состояния будут выражены только двумя.
Эта мысля давно сидит в голове, т.к. основное отличие от группы нейронов тут, кмк в отсуствии моделирования "дендридной части нейрона", которая (на Хабре пробегал цикл статей на подобную тему) может выполнять роль "контекстной памяти" при обработке весов от синапсов и емкость которой там оценивалась в районе 300-500мегабайт, с шириной слова от 70 до 250бит.. цифирьки запомнились. И это не набор "коэффициентов" модели Персептрона .. это "контексты" - картинки (веса) переключений насколько понял тот цикл статей.
Как это учитывается в современных сетях (или моделируется)?
Не специалист, возможно просто не так понимаю всю эту кухню..
tac Автор
06.09.2025 00:45"включен - был включен", "включен - был выключен", "выключен - был включен", "выключен - был выключен"
Не очень понятно из контекста, о чем вы спрашиваете. Простой перцептрон таких состояний не имеет, это больше признак рекуррентных сетей. Настоящие нейроны? Они конечно, на порядок сложнее и да у них есть нечто аналогичное, только еще сложнее. У них есть т.н. рефрактерный период, который позволяет им хранить информацию какое время они не активировались.У меня две связанные с этим статьи, которые показывают как это свойство можно моделировать, и что оно очень важно. Если вам интересно напишите в личку, выложу текст этих статей.
ermouth
06.09.2025 00:45и вполне возможно их не 2, а 4
Если эту мысль додумать с учётом того, что химия нейрона не безынерционна, вам придётся уйти от модели однотактного вычислителя, и строить новую модель на формулах кинетики химреакций. Так что если совсем честно моделить, состояний не 2 и не 4.
Politura
Не очень понятно зачем кому-то разбираться с тем, что такое этот ваш перцептрон Розенблатта, если это глубокая история, которой сейчас никто не пользуется? Если вы считаете, что не пользуются незаслуженно, докажите это на примере: возьмите пусть даже не LLM, а какую-нибудь область, где используются небольшие нейросети, например, распознавание картинок. Натренируйте перцептрон Розенблатта и покажите, что он справился с этой задачей лучше, или пусть также, но более экономично, чем традиционные сети. Все. Смысла в этом будет сильно больше всех ваших остальных статей по этой теме вместе взятых.
Да еще и деньгами вас закидают, как единственного в мире специалиста по этой теме, ибо сейчас деньги бросают во всех, кто может что-то хоть чуть-чуть улучшить в нейросетках.
tac Автор
Это не требует доказательства, это известно. Первая же ссылка в статье