В 50 годах 20 века фрэнк розенблатт разработал персептрон розенблатта что это
Перцептрон Розенблатта — что забыто и придумано историей?
На хабре — уже есть несколько статей про искусственные нейронные сети. Но чаще говорят о т.н. многослойном перцептроне и алгоритме обратного распространения ошибки. А знаете те ли Вы что эта вариация ничем не лучше элементарного перцептрона Розенблатта?
Например, вот в этом переводе Что такое искусственные нейронные сети? мы можем увидеть, что о перцептроне Розенблатта пишут такое:
Демонстрация персептона Розенблатта показала, что простые сети из таких нейронов могут обучаться на примерах, известных в определенных областях. Позже, Минский и Паперт доказали, что простые пресептоны могут решать только очень узкий класс линейно сепарабельных задач, после чего активность изучения ИНС уменьшилась. Тем не менее, метод обратного распространения ошибки обучения, который может облегчить задачу обучения сложных нейронных сетей на примерах, показал, что эти проблемы могут быть и не сепарабельными.
Причем это встречается на разный лад в различных статьях, книгах и даже учебниках.
Но это, наверно, самая великая реклама в области ИИ. А в науке это называется фальсификация.
На самом деле все серьезные ученные знают, что такое представление о перцептроне Розенблатта несерьезно. Но они предпочитают об этом писать достаточно мягко. Но когда история нам представляется в существенно искаженном виде, хотя и в столь узкой сфере науки — это не хорошо. Я не хочу сказать, что это было фальсифицировано намерено. Как раз нет, это хороший пример того, как молодые люди не читают оригиналов, или читают их по диагонали, потом делаю вид, что поняли в чем проблема. И решают эту проблему. Затем становятся докторами и получают известность. А уже следующие поколение им верит. Всегда, если серьезно чем то занимаетесь, перепроверяйте классиков по оригиналам. Не верьте перепостам в статьях.
Итак, давайте откроем оригинал, описывающий перцептрон Розенблатта: Розенблатт, Ф. Принципы нейродинамики: Перцептроны и теория механизмов мозга, 1965. Вы там не найдете т.н. однослойного перцептрона — его в природе не существует, как минимум на 1965 год. Его выдумали много позднее.
Там вы сразу увидите элементарный перцептрон, у которого есть скрытый слой А-элементов.
Иногда это объясняют тем, что поменялась терминология. Увы, как слова не меняй — а нужный слой у перцептрона есть и ВСЕГДА был. Более того, сам Розенблатт пишет о том, что рассматривать перцептроны без скрытого слоя нет ни какого смысла. Это на 1965 год было элементарно, и всем известно.
Дальше сюда хотят присовокупить авторитет Минского. Но и он прекрасно знал, что такое перцептрон. И никогда он не доказывал, что перцептрон не может решить линейно не сепарабельные задачи. Он доказывал совершенно другое, связанное с проблемой инвариантности. И эту проблему сейчас не решает ни одна известная ИНС. (но это статья не об этом, если будут желающие — делайте заказ попробую написать об этом. )
В этом отношении разница между перцептроном Розенблатта и многослойным перцептроном по Румельхарту (MLP) только в следующем:
1. Перцептрон Румельхарта обучается алгоритмом обратного распространения ошибки, при этом обучаются веса между входным и скрытым слоем и веса между скрытым и выходным слоем.
2. Перцептрон Розенблатта обучается алгоритмом коррекции ошибки. Этим алгоритмом обучаются только веса между скрытым и выходным слоем. Что же касается весов между входным и скрытым слоем — то он не обучается осознано. Его нет смысла обучать, т.к. этот слой выполняет совсем другую задачу чем второй. Весовые коэффициенты первого слоя, а точнее возбуждающие и тормозящие связи создаются в перцептроне случайно — моделируя тут природу. Задача этого слоя как раз и заключается в том, чтобы не сепарабельную проблему трансформировать к сепарабельной. И входные импульсы проходя через связи первого слоя отображаются на пространство А-элементов. Вот эта случайная матрица и обеспечивает трансформацию в сепарабельную проблему.
Второй же слой как в перцептроне Розенблатта, так и в MLP уже только разделяет полученную после трансформации линейную задачу.
Теперь надеюсь понятно зачем первый слой — он обеспечивает трансформацию из не сепарабельной (линейно не неразделимой) в сепарабельное представление задачи. Это же и делается и в MLP, выбранный алгоритм обратного распространения этого не меняет.
Но если перцептрон Розенблатта использует случайность, то MLP путем своего обучения создает эту случайность. Вот и вся разница.
Есть ряд других отличий, следствий — но эта статья все же не для новичков, а тех кто хотя бы немного в теме. Тут я лишь хотел заметить, что новичкам перцептрон Розенблатта надо изучать по оригиналам.
А что же было забыто?
Совершенно не заслужено фамилию Розенблатта вспоминают теперь чаще в исторических обзорах. Надо отметить, что Розенблатт разработал не какой-то один вид искусственной нейронной сети. Он разработал полную классификацию всевозможных нейронных сетей. Под общие название перцептрон — попадает ЛЮБАЯ ныне существующая ИНС. Есть у Розенблатта и многослойные перцептроны, которые по его терминологии начинаются с двух внутренних слоев, и рекуррентные перцептроны, и много других подтипов. Причем в отличии от современно разрабатываемых их характеристики Розенблаттом просчитаны более тщательно. Именно поэтому просто необходимо вновь разрабатываемую ИНС сравнивать вначале с соответствующим по классификации перцептронов от Розенблатта — если такого сравнения нет, то и эффективность новой ИНС совершенно не ясна. А многие разработчики ИНС — не удосуживаются этого сделать, и как следствие много званых, и не одного призванного.
P.S. Я часто встречался со скептизмом, когда я это рассказывал. Но если вдруг не верите мне, почитайте статью Kussul E., Baidyk T., Kasatkina L., Lukovich V., Перцептроны Розенблатта для распознавания рукописных цифр, 2001.
В заключение даю ссылку, где я помогу изучить перцептрон Розенблатта не по мифам, а по оригиналам: Здесь мы изучаем возможности перцептрона Розенблатта
upd. Тем кто еще находится в плену заблуждений — посвящается — решение перцептроном Розенблатта задачи XOR
upd2. Спасибо все, обучение не знающих и не читающих оригиналы — не входило в мою тут задачу. Захотите нормально поговорить, пишите в личку. На вызывающие комментарии больше не отвечаю, рекомендую взять и прочитать основы.
Персептрон
Материал из MachineLearning.
Содержание
Появление перцептрона
В середине 1958 года Фрэнк Розенблат предложил модель электронного устройства, названного им перцептроном, которое должно было бы имитировать процессы человеческого мышления. Перцептрон должен был передавать сигналы от «глаза», составленного из фотоэлементов, в блоки электромеханических ячеек памяти, которые оценивали относительную величину электрических сигналов. Эти ячейки соединялись между собой случайным образом в соответствии с принципами коннективизма. Два года спустя была продемонстрирована первая действующая машина «Марк-1», которая могла научится распознавать некоторые из букв, написанных на карточках, которые подносили к его «глазам», напоминающие кинокамеры.
Чтобы «научить» перцептрон способности строить догадки на основе исходных предпосылок, в нем предусматривалась некая элементарная разновидность автономной работы или «самопрограммирования». При распознавании той или иной буквы одни её элементы или группы элементов оказываются гораздо более существенными, чем другие. Перцептрон мог «научаться» выделять такие характерные особенности буквы полуавтоматически, своего рода методом проб и ошибок, напоминающим процесс обучения. Однако возможности перцептрона были ограниченными: машина не могла надежно распознавать частично закрытые буквы, а также буквы иного размера или рисунка, нежели те, которые использовались на этапе ее обучения.
Ведущие представители так называемого «нисходящего метода» специализировались, в отличие от представителей «восходящего метода», в составлении для цифровых компьютеров общего назначения программ решения задач, требующих от людей значительного интеллекта, например для игры в шахматы или поиска математических доказательств. К числу защитников «нисходящего метода» относились сотрудники Массачусетского технологического института Марвин Минский и Сеймур Пейперт. Минский начал свою карьеру исследователя ИИ сторонником «восходящего метода» и в 1951 году построил обучающуюся сеть на вакуумных электронных лампах. Однако вскоре к моменту создания перцептрона он перешел в противоположный лагерь.
В соавторстве с южно-африканским математиком Пейпертом он опубликовал в 1969 году книгу «Перцептроны», где математически доказывалось, что перцептроны, подобные розенблатовским, принципиально не в состоянии выполнять многие из тех функций, которые приписывал перцептронам Розенблат. Минский утверждал, что, не говоря уже о роли работающих под диктовку машинисток, подвижных роботов или машин, способных читать, слушать и понимать прочитанное или услышанное, перцептроны никогда не обретут даже умения распознавать предмет частично заслоненный другим. Глядя на торчащий из-за кресла кошачий хвост, подобная машина никогда не сможет понять, что она видит. Эта книга существенно повлияла на пути развития науки об искусственном интеллекте, т.к. переместила научный интерес и субсидии правительственных организаций США, традиционно финансирующих исследования по ИИ, на другое направление исследований — «нисходящий метод».
В 80-х гг. интерес к кибернетике возродился, так как сторонники «нисходящего метода» столкнулись со столь же неодолимыми трудностями. Сам Минский публично выразил сожаление, что его выступление нанесло урон концепции перцептронов, заявив, что, согласно его нынешним представлениям, для реального прорыва вперед в создании разумных машин потребуется устройство, во многом похожее на перцептрон. Но в основном ИИ стал синонимом нисходящего подхода, который выражался в составлении все более сложных программ для компьютеров, моделирующих сложную деятельность человеческого мозга.
Определения, данные Ф. Розенблаттом
Серьезное ознакомленние с теорией перцептронов требует знания базовых определений и теорем, совокупность которых и представляет собой базовую основу для всех последующих видов искусственных нейронных сетей
Виды элементов (нейронов) в перцептроне
Определения и классификация перцептронов
Определения, данные М. Минским
Определения и классификация перцептронов на языке предикатов
Определение. Перцептроном называется устройство, способное вычислять все предикаты, линейные относительно некоторого заданного множества Ф частных предикатов.
С этой позиции перцептроны можно классифицировать следующим образом:
С помощью одного порогового элемента можно реализовать 14 булевых функций, кроме эквиваленции (знак равно) и исключающего или (XOR). Любая булева функция представима в виде построенной из пороговых элементов нейронной сети глубины 2.
Алгоритмы обучения
Классический метод обучения перцептрона — это обучение с коррекцией ошибки. Представляет собой такой метод обучения, при котором вес связи не изменяется до тех пор, пока текущая реакция перцептрона остается правильной. При появлении неправильной реакции вес изменяется на единицу, а знак (+/-) определяется противоположным от знака ошибки.
Кроме того, Розенблатт пытался классифицировать различные алгоритмы обучения, называя их системами подкрепления. В результате он различал следующие виды:
Кроме, классического метода обучения перцептрона Розенблатт также ввел понятие об обучении без учителя, предложив следующий способ обучения:
Возможности и ограничения модели
Исследования перцептронов показали, что перцептроны способны обучаться. Справедлива теорема о сходимости перцептрона, согласно которой независимо от начальных значений коэффициентов и порядка показа образцов при обучении перцептрон за конечное число шагов научится различать два класса объектов, если только существует такая классификация.
Но эта иллюзия вскоре рассеялась. Возможности перцептронов оказались довольно ограниченными. Серьезный математический анализ перцептронов был проведен М.Минским и С. Пейпертом (подробнее см. ниже). В последствии работа Вассермана, вызвала новый всплеск активности в области искуственных нейронных сетей, и применение идей теории перцептронов на новый лад с образованием собственной новой терминологии и становлением науки о нейросетях, но с точки зрения технического приложения в противовес построению моделей мозга. Но к сожалению некоторые неточности в его работе привели к ряду недоразумений. Так, например, Вассерманом была предложена классификация искусственных нейроных сетей на основе подсчета числа обучаемых слоев связей, а не по числу структурных элементов сети. Но такая классификация проблематична, так как не позволяет говорить об особенностях определенного вида нейросетей. Это вызвало ряд недоразумений в последующие годы при определении перцептрона, так как сам автор всегда говорил о нем, как о трехслойном, а классификация по числу обучаемых слоев предполагала называть его однослойным. Но к сожалению, это сказалось не только на терминологии, но и не верном представлении о перцептроне как простейшем пороговом элементе. Так как была не учтена роль первого необучаемого слоя.
Структура, состоящая из нескольких соединенных слоев пороговых элементов называется многослойным перцептроном. Такой термин появился когда был предложен алгоритм обратного распространения, с помощью которого стали обучать (настраивать коэффициенты) более одного слоя. Но такую структуру не стоит прямо сравнивать с перцептроном Розенблатта. Это достаточно разные модели нейросетей, но которые во многом эквивалентны друг другу в общем случае, и специфичны для разного рода задач.
Традиционные заблуждения
В результате популяризации искуственных нейронных сетей журналистами и маркетологами был допущен ряд неточностей, которые, при недостаточном изучении оригинальных работ по этой тематике, неверно истолковывались молодыми (на то время) учеными. В результате по сей день можно встретиться с недостаточно глубокой трактовкой функциональных возможностей перцептрона по сравнению с другими ИНС, разработаными в последующие годы.
Терминологические неточности
Неточность № 1. Перцептрон — нейронная сеть без скрытых слоев.
Вассерманом была сделана попытка определенным образом классифицировать различные виды нейронных сетей:
«Как видно из публикаций, нет общепринятого способа подсчета числа слоев в сети. Многослойная сеть состоит из чередующихся множеств нейронов и весов. Входной слой не выполняет суммирования. Эти нейроны служат лишь в качестве разветвлений для первого множества весов и не влияют на вычислительные возможности сети. По этой причине первый слой не принимается во внимание при подсчете слоев, и сеть считается двухслойной, так как только два слоя выполняют вычисления. Далее, веса слоя считаются связанными со следующими за ними нейронами. Следовательно, слой состоит из множества весов со следующими за ними нейронами, суммирующими взвешенные сигналы.»
В результате такого представления перцептрон попал под определение однослойная нейроная сеть. При этом когда говорят, что перцептрон не имеет скрытых слоев, имеют в виду, что у него нет скрытых слоев обучающихся нейронов (веса которых адаптируются к задаче). Поэтому всю совокупность тех выходов системы из S и A элементов, которые достигают R-элемента (единственного обучающегося) просто логически заменяют набором (модифицированных по жесткому правилу) новых входов.
Но обычное игнорирование необучаемых слоев с фиксированными связми (который имеется в элементарном перцептроне между S и А — элементами) позволяет делать неправильные выводы о возможностях ИНС, так например, Минский поступил очень корректно переформулировав А-элемент как предикат, а например Вассермен уже потерял такое представление и у него А-элемент просто вход (почти эквивалентный S-элементу). Поэтому при такой терминалогической неточности упускается из виду тот факт, что в перцептроне происходит отображение рецепторного поля S — элементов на ассоциативное поле А-элементов, в результате чего и происходит преобразование любой нелинейной разделимой задачи в линейно разделимую.
Функциональные заблуждения
Большенство функциональных заблуждений сводятся к якобы невозможности решения перцептроном нелинейно разделяемой задачи. Но вариаций на это тему достаточно много, рассмотрим главные их них.
№ 1. Перцептрон не способен решить задачу XOR.
Самое несерьезное заявление. На изображении показанно решение и ниже дана таблица поиска соответствующих весов при алгоритме обучения с коррекцией ошибки. Как правило, данное заблуждение возникает из-за того, что неправильно интерпретируют определение перцептрона, данного Минским (см. выше), а именно, предикаты приравнивают входам (параметрам), хотя это разные вещи. Предикат эквивалентен входу только если предикат зависит от одного аргумента. Другая причина возникает из-за того, что перцептрон путают с пороговым элементом Маккалока-Питса.
№ 2. Выбором случайных весов можно достигнуть обучения и линейно неразделимым (вообще, любым) задачам, но только если повезет, и в новых переменных (выходах A-нейронов) задача окажется линейно разделимой. Но может и не повезти.
Теорема сходимости Розенблатта ОДНОЗНАЧНО доказывает, что не может быть ни какого «может и не повезти», при равенстве А-элементов числу стимулов и не особенной SA матрице — вероятность решения 100 %. То есть при отображении рецепторного поля на ассоциативное поле большей на одну размерность случайным (нелинейным) оператором нелинейная задача превращается в линейно разделимую. А следующий обучаемый слой уже находит линейное решение в другом пространстве входов.
№ 3. Если у Вас в задаче размерность входов довольно высока, а обучающих примеров мало, то в таком «слабозаполненном» пространстве число удач может и не оказаться малым. Это свидетельствует лишь о частном случае пригодности перцептрона, а не его универсальности.
Данный аргумент легко проверить на тестовой задаче под названием «шахматная доска» или «губка с водой»:
Дана цепочка из 2N единиц или 0. Если эта цепочка является зеркально симметричной относительно центра, то есть x[1:1:N] = x[2N:-1:N+1] то на выходе 1. Иначе 0.» Обучающие примеры _все_ (это важно) 2²N цепочек. Могут быть вариации данной задачи: Имеем изображение 256х256 пикселей изображение из 2 цветов. Обучаем перцептрон всем возможным состояниям, то есть на вход подаем последовательно координаты x, y и требуем на выходе соответствующий цвет точки. В итоге имеем 65536 различных пар стимул-реакция. Берем изображение такого типа — Если либо x нечетное (0..255), либо y нечетное (но не одновременно), то цвет 1. Иначе — цвет 0. Обучить без ошибок.
Если данный аргумент справедлив, то перцептрон не сможет ни при каких условиях обучится не делая ни одной ошибки. Иначе перцептрон не ошибется ни разу.
На практике оказывается, что данная задача очень проста для перцептрона: чтобы ее решить, перцептрону достаточно 1500 А-элементов (вместо полных 65536, необходимых для любой задачи). При этом число итерациий порядка 1000. При 1000 А-элементов перцептрон не сходится за 10000 итераций. Если же увеличить число А-элементов до 40000, то схождения можно ожидать за 30-80 итераций.
№ 4. В перцептроне Розенблатта столько А-элементов, сколько входов. И сходимость по Розенблатту, это стабилизация весов.
Нет. Это следует из следствия теоремы сходимости.
Следствие 2. Если число стимулов в пространстве Ф равно n>N (то есть больше числа А-элементов элементарного перцептрона), то существует некоторая классификация С(Ф), для которой решения не существует.
Отсюда должно быть ясно, что:
Ограничения перцептрона, описанные Минским
Действительно Минским после серьезных экспериментов с перцептроном и его всестороннего анализа была предпринята его критика. Здесь нужно отметить тот факт, что на то время все известные ИНС назывались перцептроном, и Минский критиковал именно весь класс искусственных нейронных сетей, а перцептрон Розенблатта был наиболее детально проработан теоритически и имел физическое воплощение в устройстве под названием МАРК-1. В то время была слабо развита теория о параллельных вычислениях, а перцептрон полностью соответствовал принципам таких вычислений. По большому счету Минский показал преймущество последовательных вычислений перед параллельным в определенных классах задач связанных с инвариантным представлением. Ниже мы рассмотрим некоторые следствия анализа Минского. Критику Минского можно разделить на три взаимосвязаные темы:
Ограничения, связанные с инвариантным представлением
Минский описывал специальные задачи такие как «четность» и «один в блоке», которые показывают ограничения перцептрона в том, что он не может распознавать инвариантные входные данные (изображения) бесконечного порядка. А в частности, при распознавании четности конечного порядка первый слой перцептрона вынужден становиться полносвязным. В связи с эти есть ограничения на следующие практические типовые задачи.
Типовая задача № 1. Если требуется построить машину для чтения печатных букв или цифр, то возникает естественное желание, чтобы эта машина могла распознавать их независимо от положения на странице, то есть чтобы на решение машины не оказывали влияния элементы группы переносов. Иными словами, восприятие машины должно быть «инвариантно относительно группы переносов», то есть ее решение должно быть одним и тем же для каждого представителя какого-либо класса эквивалентности относительно группы переносов. Итак, более точно первую задачу можно определить как — нахождение геометрического свойства. Вот как описывает Минский понятие геометрического свойства:
«Когда мы говорим геометрическое свойство, мы имеем в виду что-то инвариантное относительно переноса, или вращения, или растяжения. Сочетание первых инвариантностей определяет конгруэнтную группу преобразований, а наличие всех трех дает фигуры подобные в эвклидовой геометрии».
Типовая задача № 3. Распознавание фигур в контексте, то есть, например, содержит ли данная фигура прямоугольник и, быть может, что-то еще.
Так вот, приведенные здесь три типа задач распознавания не рекомендуется решать с помощью параллельных способов вычислений, в том числе и с помощью перцептрона. Более того, проблема не в конкретной архитектуре перцептрона, а в необходимости знания всего глобального контекста. Поэтому как перцептрон, так и любые другие виды нейронных сетей неспособны полноценно решить представленные здесь задачи. Мы не приводим здесь довольно сложные доказательства Минского, важно лишь, что они основываются на том, что перцептрон (равно как и любая другая нейронная сеть) не справляется с распознаванием инвариантных входных данных.
Ограничения, связаные с возможностью прогнозирования
Способности ИНС и в частности перцептрона, не столь велики как рекламируется. И это связано даже не с устройством, или алгоритмом, осуществляющим прогноз, а с самим происходящим явлением. Только в том случае когда во внимание берутся существенные параметры на основании которых будет строится прогноз будет иметь место некоторый успех. Выбором этих параметров занимаются эксперты в определенной области на основании своего опыта и интуиции, и к прогнозирующим машинам это не имеет ни какого отношения. Как только, такие параметры определенны можно начать статистическую обработку данных и построить модель явления. Но данная модель будет лишь показывать зависимость (корреляцию) выбранных входных параметров от выходных, которые имели место в прошлом.
Минский пытался показать, что перцептрон не имеет в этом отношении серьезных преймуществ по сравнению с другими статистическими методами прогноза. И если рассматривать конечный результат он полностью прав. Единственно, разницу составляет то, что классические статистические методы требуют расчета многих сложных уравнений, а перцептрон более естественно решает требуемые уравнения, что связано с его устройством. Если на перцептрон посмотреть глазами математика, то окажется, что перцептрон это по сути способ решения систем уравнений с большим числом неизвестных коэффициентов. Алгоритм поиска этих коэффициетов технически более быстрый чем у аналогичных классических способов решения уравнений.
Построив систему уравнений, охватывающую наиболее значимые параметры (если нам повезет их найти), можно говорит о том, что мы нашли закон, по статусу близкий к законам физики, но только оперирующий большим числом переменных. Именно такие модели позволяют описывать системы с больщим числом состояний — биологические, социальные и т. п. Именно в этом смысле мы и можем говорить о прогнозе.
Качественость сделанного прогноза или точность построенной модели зависит от числа знаний, используемых при построении модели. Если мы хотим, чтобы на основании половины всех необходимых знаний модель была способна достроить (спрогнозировать) вторую половину неизвестных нам знаний, то желательно иметь информацию равномерно распределенную по всему пространству возможных состояний. В таком случае перцептрон способен спрогнозировать неизвестные, но близкие к известным результаты с определенной верояностью правильности. В противном же случае, мы имеем как раз ситуацию с необходимость прогнозировать результат задачи «шахматной доски», которая рассматривалась выше. Но тут главное, что выше вопрос был связан с возможностью обучения этой задаче, теперь же идет речь о необходимости достроить по имеющейся информации — недостающую, то есть спрогнозировать. Человек с такой задачей справляется быстро, так как находит определенную аналогию. Для перцептрона (а так-же для ряда других ИНС) данная задача в полной мере слишком сложна. Это связанно с основным ограничением ИНС — невозможность найти инвариант (см. выше), в следствии этого перцептрон работает только как статистическая машина, но не способен самостоятеьно находить инварианты, которые были бы основой для принятия решений.
Технические ограничения по скорости и объему используемой памяти
Минский показал, что задачи, которые в принципе могут быть решены перцептроном, могут потребовать нереально больших времен или нереально большой памяти. Например, для различения некоторых классов объектов коэффициенты части ассоциативных элементов должны быть столь велики, что для хранения их в вычислительной машине потребовался бы больший объем памяти, чем для того, чтобы просто запомнить все конкретные объекты этих двух классов.