bannerbannerbanner
Искусственный интеллект

Роман Викторович Душкин
Искусственный интеллект

Полная версия

Глава 2
Три столпа искусственного интеллекта

Теперь давайте погрузимся в самые глубины методов и технологий искусственного интеллекта. Само собой разумеется, что далее на протяжении этой и следующей главы мы будем рассматривать только искусственный интеллект в его слабом варианте. Но именно это позволит нам немного раскрыть своё сознание и подготовиться к четвёртой главе, в которой мы рассмотрим разные интересные аспекты исследования разума и сознания, в том числе и при помощи методов искусственного интеллекта. Ведь надо помнить, что одной из первичных задач рассматриваемого нами междисциплинарного направления исследований является моделирование как отдельных когнитивных функций, так и всего разума, для того чтобы изучать его на модели. Это и есть главная задача – получить модель, чтобы познать природу человеческого разума.

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

И давайте теперь определим термин «искусственная интеллектуальная система», или проще – «ИИ-система». ИИ-система – это техническая система, которая при помощи методов и технологий искусственного интеллекта решает задачу или набор задач, ранее доступных только человеку. При этом ИИ-системы обладают двумя важными качествами, которые будут дифференцировать их в ряду других подобных систем. Это автономность и адаптивность, так называемые «2А».

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

• Адаптивность – это свойство системы, которое позволяет ей действовать в условиях изменчивости внешних воздействий. Если рассматривается техническая система, то адаптивность подразумевает возможность со стороны системы обрабатывать такие входные данные, которые не предусмотрены её изначальным проектом. Например, для нейросетевых систем это свойство обозначает, что система будет адекватно реагировать на такие стимулы, каких не было в обучающей выборке.

Это два главных свойства ИИ-систем, но они не единственные. Давайте изучим ещё три, и в итоге эти пять свойств будут очень точно описывать каждую ИИ-систему, так что их можно будет классифицировать и, соответственно, делать правильные умозаключения.

Третье свойство – то, в какой реальности функционирует ИИ-система. Тут имеется два варианта: это либо наша объективная реальность, в которой мы с вами живём, и тогда такая ИИ-система называется «роботом», либо это виртуальная реальность, которая сформирована для ИИ-системы программными методами. Виртуальная реальность может быть связана с нашей, а может быть и не связана. Виртуальный помощник функционирует в виртуальной реальности и воспринимает в ней только голосовые команды. Робот-пылесос работает в нашей реальности и воспринимает её многочисленными сенсорами, а также может воздействовать на неё своими исполнительными устройствами.

Четвёртое свойство – общность интеллекта. Здесь тоже имеется дихотомия: искусственный интеллект может быть узким и общим. Узкая ИИ-система решает только одну задачу или один класс задач. Она решает только ту задачу, для которой предназначена. Если ИИ-система играет в шашки, то играть в шахматы она не может, тем более не может водить машину. А вот персональный помощник умеет решать многие задачи, и это первый шаг к построению ИИ-системы общего плана, хотя в этом направлении человечество находится только в самом начале пути.

Наконец, пятое свойство. Это тоже дихотомия, которую мы уже рассмотрели в предыдущей главе, – слабый и сильный искусственный интеллект. Напомню для удобства: слабой называется ИИ-система, которая просто решает поставленную задачу, не задумываясь, не рефлексируя, не осознавая того, что делает. Слабый искусственный интеллект – это просто тот самый набор технологий, который позволяет решать нам задачи, относящиеся к прерогативе человека. Все известные нам на сегодняшний день ИИ-системы являются слабыми. А вот сильный искусственный интеллект обладает самосознанием, он осознаёт себя отдельной разумной сущностью. В этом и состоит его отличие. Проблема в том, что мы пока не обладаем необходимыми инструментами, которые позволяют нам ответить на вопрос, обладает ли ИИ-система самосознанием. Мы не можем этого сделать даже относительно другого человека.

И вот теперь имеется пятимерное пространство, разделённое на тридцать два сектора, т. е. по одному сектору на каждый вариант пяти свойств, каждое из которых может принимать два значения. С одной стороны находится неавтономная неадаптивная узкая слабая ИИ-система, работающая в виртуальном мире. С другой стороны – автономный адаптивный общий сильный ИскИн, живущий рядом с нами. Человек, кстати, тоже находится в одном секторе с ИскИном, если только не принимать во внимание естественность его интеллекта. Ну, кстати, шкала «Искусственность – Естественность» является ещё одним измерением, которое, однако, в рамках темы этой книги никакого особого интереса не представляет.

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

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

Если рассмотреть относительные шкалы для описания и классификации технических систем по степеням их адаптивности и автономности, то можно представить непрерывное двумерное пространство, в котором каждая точка может соответствовать определённой технической системе с заданными степенями адаптивности и автономности от точки (0, 0) – полностью неадаптивная и неавтономная система – до точки (1, 1) – совершенно адаптивная и автономная система. Эта мысль проиллюстрирована следующей схемой.


В качестве типовых примеров систем, которые находятся в квадрантах этого двумерного классификатора интеллектуальности систем, можно привести следующие.

1. Робот-манипулятор на промышленном производстве: обычно такой робот преднастроен на выполнение заданной последовательности действий (низкая адаптивность) и в принципе не предназначен для продуцирования каких-либо решений (отсутствие автономности).

2. Робот-пылесос: этот робот при попадании в незнакомое окружение обследует новое пространство и строит его модель для дальнейшего использования в своей работе (высокая адаптивность), но при этом выполняет только одну функцию уборки помещения с запуском по команде владельца или по триггеру в календаре (низкая автономность).

3. Система поддержки принятия решений в заданной проблемной области: такая система обычно уже преднастроена под определённые ситуации, и добавление новой ситуации требует существенной доработки системы (низкая адаптивность), при этом система сама готовит решения и объясняет их (высокая автономность).

4. Персональный помощник: система для планирования, напоминания, выполнения рутинных действий, которая постоянно обучается во взаимодействии со своим пользователем (высокая адаптивность) и при этом может самостоятельно запускать различные сценарии общения со своим пользователем и в рамках такого общения самостоятельно делать выбор в пользу того или иного варианта решения на основе прошлых предпочтений пользователя (высокая автономность).

Таким образом, интеллектуализация представляет собой процесс перевода (эволюции) технической системы из её текущего положения в пространстве «Адаптивность – Автономность» в четвёртый квадрант как можно ближе к точке (1; 1). Из квадрантов II и III такой переход может быть осуществлён непосредственно, в то время как в квадранте I может существовать три возможные траектории интеллектуализации системы, что показано на следующей схеме.



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

Раздел 2.1. Символьные вычисления

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

 

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

Обычно множество правил вывода какой-либо формальной системы представляет собой набор посылок с заключениями. Другими словами, каждое правило вывода – это формальное синтаксическое преобразование одной формулы в другую. Такое преобразование может быть записано при помощи нотации «ЕСЛИ… ТО…», а это, в свою очередь, обозначает, что правила вывода формальной системы могут быть описаны продукциями в их самом простом варианте без необходимости использования контекста, условий применимости и других более тонких свойств продукционной модели представления знаний.

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

Необходимо отметить, что некоторые формальные системы содержат счётные бесконечные множества аксиом, правильно построенных формул и даже правил вывода. Это значит, что в явном виде их перечислить невозможно. Вместо явного перечисления используются так называемые схемы – аксиоматические схемы и схемы правил вывода. Так что универсальная машина вывода должна иметь возможность работать и со схемами, на основании которых можно создавать счётные бесконечные множества правил вывода и, соответственно, правильно построенных формул.

Итак, ранее уже были упомянуты логические правила вывода, на которых основывается работа универсальной машины вывода. Во-первых, это правило ModusPonens, которое звучит как «Если есть правило, что из некоторого факта А следует заключение Б, и если при этом факт А истинен, то можно сделать вывод, что заключение Б тоже истинно». Это правило вывода предназначено для осуществления прямого вывода, когда есть набор фактов (в случае формальной системы – аксиом) и из них необходимо вывести максимальное количество истинных заключений (в формальных системах – правильно построенных формул).

Во-вторых, есть правило ModusTollens, которое звучит как «Если есть правило, что из некоторого факта А следует заключение Б, и при этом установлено, что заключение Б ложно, то можно сделать вывод, что факт А тоже ложен». Это правило вывода используется в обратной стратегии вывода, когда наблюдается некоторое наличное состояние объекта наблюдения в рамках проблемной области и необходимо понять, что могло бы привести к этому состоянию, какие причины лежат в его основе. Обратный вывод обычно даёт вероятностные оценки возможных причин.

Описанные правила вывода основаны на обычной аристотелевой логике. Эти правила использовались в рассуждениях в виде отдельных типов силлогизмов ещё в античном мире. Реализация машины вывода, которая соблюдает такие правила, является делом достаточно простым. Тем не менее это очень мощный формализм, который позволяет решать многие задачи. Однако в конце XX века были предложены новые формализмы, которые расширяют аристотелеву логику и позволяют ещё более тонко подходить ко многим проблемным областям. Рассмотрим некоторые из них.

Первый важный формализм – нечёткая логика и связанные с ней понятия «лингвистическая переменная» и «нечёткая переменная». По мере осуществления попыток формализовать при помощи аристотелевой логики знания о более или менее сложной проблемной области становилось понятно, что простой «чёрно-белый» вариант логики с двумя значениями истинности не может описать всю гамму возможностей при рассмотрении человеком вариантов решения задач. Дело в том, что человек обычно решает задачи не в идеальном мире, а в условиях неполноты информации, нечёткости определений, неточности измерений и т. д. И все такие НЕ-факторы практически невозможно описать при помощи аристотелевой логики. На помощь пришли многозначные логики и, как их апофеоз, бесконечнозначная нечёткая логика. Последняя, к примеру, позволяет осуществлять логический вывод при наличии фактов, не совпадающих с посылками продукций, но машина вывода с возможностью обрабатывать нечёткость всё так же будет способна получить результат, чаще всего вполне приемлемый.

Нечёткий вывод тоже основан на правилах ModusPonens и ModusTollens, но они несколько модифицированы. Первое выглядит как: «Если есть правило, что из некоторого факта А следует заключение Б, и при этом имеется некоторый факт А*, не совсем совпадающий с фактом А, то можно сделать вывод, что заключение Б должно принять вид Б*». В качестве примера можно рассмотреть такой вывод. Пусть есть правило «Если температура окружающей среды низкая, то длительность прогулки короткая». На вход нечёткой машине вывода подаётся факт: «Температура окружающей среды очень низкая», – и при помощи имеющегося правила и этого факта машина вывода делает вывод: «Длительность прогулки очень короткая». Это довольно тривиальный пример, который тем не менее показывает, что нечёткий вывод при помощи небольшого количества правил охватывает огромное число возможностей, в том числе и таких, которые вообще не были ранее предусмотрены разработчиком базы знаний с продукциями. Нечёткий вывод нашёл широкое применение в системах автоматического управления, но он также применяется и в интеллектуальных системах иных классов.

Другим важным классом формальных логик являются так называемые модальные логики. Это довольно обширный класс, и даже простейшая аристотелева логика может быть представлена в виде модальной. Но формализм модальных логик хорош тем, что при помощи него можно обобщать различные понятия и отношения объективной реальности. В частности, такая частная логика, как темпоральная, позволяет формально рассуждать о вопросах, связанных со временем. В этой логике высказывания также имеют временную привязку – некоторые могут происходить одновременно, другие следовать друг за другом. Другой важной модальной логикой является пространственная логика, которая так же, как и темпоральная, имеет средства выражения пространственных отношений между объектами и высказываниями. Такие высказывания, как «Красный куб находится ближе синего цилиндра», просто формализуются при помощи пространственной логики и очень сложно при помощи аристотелевой. Существуют логики и иных модальностей, но не каждая из них общеприменима, а некоторые эффективны только для каких-либо узких проблемных областей.

Описанные модальные логики имеют важнейшее практическое применение в рамках так называемого пространственно-временного вывода. Чаще всего этот вариант машинного вывода используется в робототехнике, поскольку именно роботы (не только человекоподобные автономные, но и производственные манипуляторы) должны ориентироваться в пространстве и времени. Но также пространственно-временной вывод используется в сложных проблемных областях, в которых требуются рассуждения о том, что было или будет. Чаще всего такие проблемные области относятся к динамическим системам различной природы. В качестве примера можно привести медицину – динамика развития заболевания должна рассматриваться через призму временных отношений, а потому использование временной модальной логики неизбежно.

Важнейшим свойством символьных вычислений является возможность объяснить вывод, полученный при помощи них. Если есть начальные факты, есть последовательность рассуждений и есть множество правил вывода, то можно объяснить, почему из начальных фактов были получены такие-то результаты. Это очень важное свойство интеллектуальных систем, и оно в большей мере соответствует нисходящему подходу в построении искусственного интеллекта.

Раздел 2.2. Искусственные нейронные сети

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

Искусственная нейросеть состоит из множества взаимодействующих друг с другом искусственных нейронов, чаще всего собранных в слои так, что нейроны одного слоя получают информацию только от нейронов предыдущего слоя и передают информацию на следующий слой. Сам по себе искусственный нейрон представляет собой очень упрощённую модель биологического нейрона. У искусственного нейрона есть множество входов, один выход, а также две функции: суммирования и активации. Впрочем, существуют и другие типы искусственных нейронов, в том числе и таких, работа которых зависит от времени. Фактически каждый искусственный нейрон решает задачу простой логистической регрессии (в случае если его функция активации представляет собой сигмоиду).

Первую модель искусственного нейрона предложили Мак-Каллок и Питтс в 1943 году. Эта модель выглядит следующим образом.



Чаще всего в качестве упрощения считается, что входные переменные x1, x2…, xn и выходное значение y принимают значения из интервала [0, 1]. Функция суммирования представляет собой обычную взвешенную сумму, результат которой равен сумме произведений каждого входного значения xi на свой вес wi, а некоторый специальный вес w0 добавляется всегда. Наибольший интерес представляет функция активации, которая может принимать различные формы, так что свойства как искусственного нейрона, так и всей нейросети часто зависят от выбора формы функции активации.

Результат функции суммирования передаётся на вход функции активации. В свою очередь, её результат является выходом нейрона y, который передаётся на вход следующим нейронам. Обычно, как уже было указано, функцию активации подбирают так, чтобы область её значений лежала в интервале [0, 1], хотя это и необязательно. В первых реализациях искусственных нейронных сетей функция активации вообще была дискретной с областью определения {0, 1}, и такие нейросети неплохо справлялись с задачами классификации. Сегодня в сетях глубокого обучения могут использоваться разные функции активации у разных нейронов, но обычно все они входят в класс сигмоид – это и логистическая функция, и гиперболический тангенс, и функция Гаусса, и многие другие. Выбор функции активации зависит от многих параметров задачи, и часто архитектор, проектирующий искусственную нейросеть, должен проявить для этого немалый уровень творчества.

Со времён, когда первые разработчики искусственных нейронных сетей сделали свои первые искусственные нейросети, были созданы многочисленные модификации модели, которые подходят для решения более специфичных задач. Конечно, для погружения в теорию искусственных нейросетей необходимо читать специализированную литературу и изучать курсы, но здесь можно кратко охарактеризовать многие интересные модели и решаемые ими задачи. Так что начнём…

 

Несомненно, первой реализованной моделью искусственной нейронной сети был перцептрон Ф. Розенблатта, который тот предложил в 1957 году. Эта модель была реализована «в железе», первым в мире «нейрокомпьютером» стал компьютер Марк-1, построенный под руководством Розенблатта в 1960 году. Перцептрон – это простая нейронная сеть с тремя слоями: входным, скрытым и выходным. Таким образом, перцептрон реализует простейшую кибернетическую машину с сенсорами (слой входных нейронов), управляющим устройством (слой скрытых нейронов) и аффекторами (слой выходных нейронов). В перцептроне используется пороговая передаточная функция и прямое распространение сигнала. Как математическая модель перцептрон уже был достаточно мощным формализмом для решения большого количества задач, поскольку он на основе обучения позволял классифицировать, кластеризовать и прогнозировать, т. е. решать большинство классических задач машинного обучения. Впрочем, после публикации книги М. Минского и С. Паперта «Перцептроны», в которой авторы показали принципиальную невозможность для перцептрона решить некоторые задачи (сюрприз – задача «XOR», традиционно включаемая в класс нерешаемых перцептроном, на самом деле к таковым не относится), постепенно интерес к перцептрону снизился, и большее внимание стала получать нисходящая парадигма в искусственном интеллекте, при этом сам Марвин Минский был её оппонентом. Тем не менее сегодня с развитием математического аппарата и средств вычислительной техники интерес к перцептрону и его расширениям вновь вырос.


Однослойный перцептрон


Классический перцептрон


Необходимо отметить, что в процессе развития перцептронов появились некоторые расширения первоначальной модели, предложенной Ф. Розенблаттом. Самый простой классификатор основан на подсчёте слоёв в перцептроне: однослойный, с одним скрытым слоем (классический) и многослойный. Все эти типы были в своё время описаны Розенблаттом. Другая авторская классификация включала: элементарный перцептрон, простой перцептрон, перцептрон с последовательными связями, перцептрон с перекрёстными связями, перцептрон с обратными связями, перцептрон с переменными связями. Первые три класса были описаны самим автором, а следующие три развиты в дальнейшем при детальной проработке модели искусственных нейронных сетей.


Многослойный перцептрон


Из-за первоначальной неразберихи в терминологии и повышенных ожиданий, которые появились в отношении перцептрона и модели искусственного нейрона, Дэвидом Румельхартом был предложен новый класс перцептронов, которые сейчас называются «многослойными перцептронами Румельхарта» и отличаются от многослойных перцептронов Розенблатта тем, что для обучения в них используется метод обратного распространения ошибки, в то время как у Розенблатта использовался метод коррекции ошибки. Есть ещё несколько отличий, в частности у Румельхарта в качестве функции активации используется сигмоида, а число обучаемых слоёв больше одного.

Фактически перцептрон – это самый простой пример нейронной сети прямого распространения. Другим интересным примером является сеть ELM, экстремальная обучающаяся машина. В этой нейросети нейроны не располагаются в слои, а связаны друг с другом случайным образом. Выделяются только входной и выходной слои, а остальные нейроны находятся между ними и связаны друг с другом именно случайно. Обучение сети также производится методом обратного распространения ошибки. А вот если обучение производится при помощи обновления состояния нейронов по результатам наблюдения за их работой, за порядком активации, то это уже нейронная эхо-сеть, ESN.

Далее некоторое время модель искусственных нейронных сетей развивалась в сторону тонкого подбора функций активации (например, в сплайн-модели Хакимова функция активации реализована в виде сигмоидального сплайна, либо в сети Брумхеда-Лоу используются радиально-базисные функции), типов весовых коэффициентов между нейронами и других параметров, не влияющих на структуру сетей. Это не позволяло выходить на новые объёмы данных или решать новые задачи, но было обусловлено скорее тем, что на существующих в те времена вычислительных мощностях было затруднительно реализовывать нейронные сети больших размеров.

Однако перцептрон получал развитие и с точки зрения изменения структуры. Так, например, Джефф Элман и Майкл Джордан предложили свои варианты изменения перцептрона и включения в него обратных связей так, чтобы получилась рекуррентная сеть. В варианте Джордана на вход многослойного перцептрона также подаются выходные значения с задержкой от одного и более тактов. В нейронной сети Элмана используется такой же подход, только рекуррентные связи с задержкой в несколько тактов подаются не с выходных нейронов, а со скрытых слоёв многослойного перцептрона. Оба варианта структурного развития перцептрона обладают определённой памятью. Впрочем, различными вариантами памяти обладают все рекуррентные сети.

Ещё один интересный вариант нейросети с небольшим количеством скрытых слоёв – сеть Ворда, в которой имеется только один внутренний слой, но его нейроны разбиты на группы. В каждой группе используется своя передаточная функция, и результаты работы каждого блока передаются на выходной слой, который как бы рассматривает вход с разных точек зрения. Кроме того, входной слой может напрямую замыкаться на выходной, и это тоже позволяет добавить гибкости сети. Топология конкретной реализации сети Ворда определяется количеством блоков в скрытом слое и наличием прямого замыкания входных нейронов на выходные. Сеть показывает отличные результаты для задачи распознавания образов.


Сеть Ворда


Сеть Хопфилда


В 1982 году Джон Хопфилд предложил интересный вариант однослойной нейросети, который позволял достаточно просто решать некоторые задачи оптимизации или предоставлять механизм автоассоциативной памяти. В этой сети имеются только входные нейроны, каждый из которых соединён со всеми другими (т. е. сеть представляет собой полносвязный граф). Обучение сети также своеобразно – для всех связей между нейронами необходимо аналитически рассчитать веса, и это значит, что обучение длится один цикл. Обучение (или аналитический расчёт весов) как бы сохраняет в весовых коэффициентах сети набор эталонных образцов, которые сеть должна запомнить. После того как сеть обучена, её можно запускать в рабочем режиме, и он также отличается от традиционного единичного прогона. Сеть Хопфилда работает до тех пор, пока её следующее состояние не будет равно предыдущему, т. е. сеть должна достигнуть равновесия. Достигнутое равновесное состояние обязательно соответствует одному из запомненных эталонных образцов. Тем самым осуществляется распознавание и даже восстановление повреждённых образцов.

Развитием сети Хопфилда стала так называемая неограниченная машина Больцмана, которая представляет собой стохастический вариант этой сети. Машина Больцмана представляет собой рекуррентную нейронную сеть, которая для обучения использует алгоритм имитации отжига. Неограниченная машина позволяет решать сложные комбинаторные задачи, однако её практическое применение затруднительно или даже невозможно из-за комбинаторного взрыва в части гигантского количества связей между нейронами. Однако если использовать ограничение на количество связей между нейронами, то машина Больцмана становится менее мощной, но её использование вполне возможно. В частности, из каскадов из машин Больцмана составляются глубокие сети доверия – сначала сеть обучается при помощи стандартного алгоритма для машин Больцмана, а потом дообучается при помощи обратного распространения ошибки.


Машина Больцмана


Ограниченная машина Больцмана


Итак, рассмотрим каскадное объединение ограниченных машин Больцмана, при котором скрытые нейроны одной машины становятся входными для следующей. Именно так формируется глубокая сеть доверия. Такая сеть также обучается без учителя, причём обучение происходит послойно. Как и в случае сети Хоп-филда и машины Больцмана, сеть глубокого доверия осуществляет кластеризацию и восстановление входов, а при дополнительном обучении с учителем осуществляется и классификация, которая может быть очень точной. Именно на глубоких сетях доверия были построены первые алгоритмы глубинного обучения.

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21 
Рейтинг@Mail.ru