Ещё в 1894 году Сантьяго Рамон-и-Кахаль выдвинул идею, что определённого рода изменения в синапсах могут быть важны для обучения: «…Использование психических функций способствует бо́льшему развитию протоплазменного аппарата и нервных коллатералей в задействованной части мозга. Тем самым ранее существовавшие связи между группами клеток могут усиливаться за счёт умножения ветвей окончаний… Но ранее существовавшие связи могут также усиливаться за счёт образования новых коллатералей и… разрастаний».
В современном виде эту гипотезу развил в 1948 году польский нейрофизиолог Ежи Конорский, ученик Павлова. Он доказывал, что сенсо́рный раздражитель может вызывать в нервной системе изменения двух типов. Первый тип, который он называл возбудимостью, возникает вслед за прохождением по проводящему пути одного или нескольких потенциалов действия в ответ на сенсо́рный раздражитель. Запускание потенциалов действия на какое-то время повышает порог, необходимый для вызывания новых потенциалов действия в этих нейронах (хорошо известное явление, называемое рефрактерным периодом).
Второй, более интересный тип изменений, который Конорский назвал пластичностью или пластическими изменениями, приводит, как он писал, к «постоянным функциональным трансформациям… в определённых системах нейронов под действием соответствующих стимулов или их сочетаний».
Так возникла идея, что разные формы обучения вызывают нейронную активность разного характера и, что в зависимости от этого определённым образом изменяется сила синаптических связей. Когда такие изменения сохраняются, происходит и сохранение памяти. По мнению многих учёных основным изменением при формировании памяти является развитие новых связей и изменение существующих.
Экспериментальное изучение долговременной синаптической пластичности базируется на постулате Хэбба, сформулированном им в книге «Организация поведения» в 1949 году: «Если аксон клетки А расположен достаточно близко к клетке Б, чтобы возбуждать её, и постоянно участвует в её активации, то в одной или обеих клетках происходят такие метаболические изменения или процессы роста, что эффективность А как одной из клеток, активирующих Б, повышается». В современной формулировке постулат Хэбба понимается так, что изменение эффективности передачи сигнала в синапсе управляется корреляцией силы, необходимой для активации пре– и постсинаптического нейрона.
Первые экспериментальные результаты, подтверждающие постулат Хэбба, были получены в 1973 году. В очень часто цитируемой теперь статье, где Тим Блисс и Терье Лёмо описали совместную работу, проведённую ими в лаборатории Пера Андерсена в Осло. Они обнажали у наркотизированных кроликов гиппокамп и идущие к нему нервные пути и подводили к одному из этих путей – «перфорантному» (perforant) – стимулирующие электроды, а регистрирующие электроды вводили в ту область гиппокампа, где перфорантный путь образует синапсы (в зубчатую извилину). Когда они после этого стимулировали перфорантный путь серией электрических импульсов частотой 10—100 герц и длительностью до 10 секунд, наблюдалось необычайно продолжительное (до 10 часов) усиление активности нейронов зубчатой извилины гиппокампа. Авторы назвали этот феномен долговременной потенциацией (сокращённо ДВП).
Многие нейробиологи сразу же заинтересовались этим явлением. У него был сильно выраженный эффект – специфический, воспроизводимый и, сверх того, поддававшийся физиологическому, а позднее также биохимическому, фармакологическому и морфологическому исследованию. Гиппокамп млекопитающих был уже хорошо известной структурой, его нервные связи, входные и выходные нервные пути подробно картированы и легко распознаваемы на различных препаратах, хотя индивидуальные нейроны не поддавались такой прямой идентификации, как у аплизии.
Продолжительное изменение выходной клеточной реакции на определённое входное воздействие служило по меньшей мере ярким примером нейропластичности; больше того, весьма специфичная форма, которую приобретала реакция, могла рассматриваться как проявление памяти.
ДВП легко вызывать и изучать классическими методами нейрофизиологии, поэтому вряд ли стоит удивляться её популярности в качестве потенциальной модели памяти. В ближайшие годы после первых наблюдений всё большее число исследователей в разных лабораториях стали в мельчайших подробностях изучать физиологию ДВП. Было показано, что этот феномен выявляется не только у наркотизированных и ненаркотизированных кроликов, крыс и других лабораторных животных, но и в препаратах in vitro1.
Теперь пришло время ввести новый термин. Биологическая нейронная сеть – совокупность нейронов головного и спинного мозга центральной нервной системы и периферической нервной системы, которые связаны или функционально объединены в нервной системе, выполняют специфические физиологические функции.
Биологическая нейронная сеть состоит из группы или групп функционально связанных нейронов. Один нейрон может быть связан со многими другими, а общее количество нейронов и связей в сети может быть достаточно большим. Места́ контактов нейронов называется синапсами. Передача импульсов осуществляется химическим путём с помощью медиаторов или электрическим путём посредством прохождения ионов из одной клетки в другую.
Такое представление о нейронных сетях оказало значительное влияние на технологии искусственного интеллекта. В попытке построить математическую модель нейронной сети был создан обширный инструментарий искусственных нейронных сетей, широко используемый в прикладной математике и информатике.
В области искусственного интеллекта существует подход, называемый – коннекционизм. Сторонники его полагают, что информация хранится в синапсах, или даже что носителем информации является сама связь между двумя нейронами. Главный принцип коннекционизма состоит в предположении, что мыслительные явления могут быть описаны сетями из взаимосвязанных простых элементов. Например, элементы в сети могут представлять нейроны, а связи – синапсы.
1 In vitro (с лат. – «в стекле») – это технология выполнения экспериментов, когда опыты проводятся «в пробирке» – вне живого организма. В общем смысле этот термин противопоставляется термину in vivo – эксперимент на живом организме (на человеке или на животной модели).
Некогда модное, а теперь почти забытое слово. Но из истории его не выкинешь. Именно из кибернетики выросли современные идеи нейронных сетей и искусственного интеллекта.
Историки полагают, что первым, кто применил термин «кибернетика» для управления в общем смысле, был древнегреческий философ Платон. Однако реальное становление кибернетики как науки произошло много позже. Оно стало закономерным итогом развития технических средств управления и преобразования информации.
История современной кибернетики началась в 1948 году с публикации Норбертом Винером (Norbert Wiener, 1894—1964) культовой одноимённой книги «Кибернетика».
Винер предложил называть Кибернетикой «науку об управлении и связи в животном и машине».
Кибернетика (от греч. kybernetike – искусство управления, от kybernáo – правлю рулём, управляю), наука об управлении, связи и переработке информации.
Основным объектом исследования в кибернетике являются так называемые кибернетические системы. Такие системы рассматриваются абстрактно, вне связи с их реальной физической природой. Высокий уровень математической абстракции позволяет кибернетике применять общие методы к изучению систем самой разной природы, например, технических, биологических и даже социальных.
Методы кибернетики. Имея в качестве основного объекта исследования кибернетические системы, кибернетика использует для их изучения три принципиально различных метода исследования. Первые два: математико-аналитический и экспериментальный, широко применяются и в других науках.
Зато третий – метод математического (машинного) эксперимента, или математического моделирования появился и стал популярен благодаря кибернетике. Суть его состоит в том, что эксперименты производятся не с реальным физическим объектом или его моделью, а с его математическим описанием. Описание объекта вместе с программами, моделирующими изменения характеристик объекта в соответствии с этим описанием, загружается в память ЭВМ, что делает возможным проводить с объектом различные эксперименты: контролировать его реакции на изменение тех или иных условий, менять те или иные элементы описания и тому подобное. Огромное быстродействие современных компьютеров зачастую позволяет моделировать многие процессы в более быстром темпе, чем они происходят в действительности.
При кибернетическом подходе к изучению мозга как системы нейронов, обычно абстрагируются от их размеров, форм, химического строения и прочего. Предметом изучения выступают состояния нейронов, вырабатываемые ими сигналы и связи между нейронами, а также алгоритмы изменения их состояний.
Есть два способа запоминания информации в кибернетических системах, оно обусловлено: либо изменениями состояний элементов системы, либо изменениями структуры системы. Различие между ними не принципиально. В большинстве случаев оно зависит лишь от выбранного подхода к описанию системы. Например, популярный сегодня взгляд объясняет долговременную память животных изменениями проводимости синаптических контактов, т. е. связей между отдельными составляющими мозг нейронами. Если в качестве элементов, составляющих мозг, рассматриваются исключительно сами нейроны, то изменение синаптических контактов следует рассматривать как изменение структуры мозга. Если же и все синаптические контакты, независимо от степени их проводимости, рассматриваются как составные части мозга, то процесс запоминания сведётся к изменению состояния элементов при неизменной структуре системы.
Прежде всего надо пояснить, что искусственная нейронная сеть (ИНС, нейросеть) это не привычная нам сеть, связывающая некоторое количество компьютеров. ИНС – это математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей – сетей нервных клеток живого организма. ИНС может быть создана и на одном отдельном компьютере. Так что не стоит предполагать, что ИНС «умнее» привычных нам компьютеров. Нет, это просто новый «интеллектуальный» способ обработки данных.
Математическая модель искусственного нейрона вместе с моделью сети, состоящей из этих нейронов была предложена Уорреном Мак-Каллоком и Уолтером Питтсом в 1943 году. В своей фундаментальной статье о логическом исчислении идей и нервной активности эти учёные формализовали понятие нейронной сети. Авторы продемонстрировали, что сеть на таких элементах способна выполнять и логические, и числовые операции. Для создания первых эквивалентов ИНС предлагались электровакуумные лампы в качестве идеального на тот момент технического устройства.
Работая у истоков нейробиологии, Уоррен Мак-Каллок и Уолтер Питтс в своей статье 1943 года «Логическое исчисление идей, присущих нервной деятельности» предложили первую логическую схему нейрона.
Рисунок 44 Базовый нейрон Маккалока и Питтса
Первая нейросеть была создана Розенблаттом и Мак-Каллоком в 1956—1965 годах. Это была попытка создать систему, моделирующую взаимодействие человеческого глаза с мозгом. Устройство, созданное ими тогда, получило название «Персептрон» (Perceptron). Оно реально умело различать буквы алфавита, хотя и было чувствительно к их написанию. Персептрон обрёл популярность – его и сейчас используют для распознавания образов, прогнозирования погоды и т. д.
В то время казалось, что человечество стоит на пороге создания полноценного искусственного интеллекта. Но постепенно в 70—80 годах количество работ по этому направлению стало снижаться. Слишком неутешительны были первые результаты. Авторы объясняли свой скептицизм малой памятью и низким быстродействием существовавших в то время вычислительных систем.
Но прошло два десятка лет и идеи нейро-бионики – создания технических средств на нейро-принципах – снова начали интенсивно обсуждаться. Катализатором стал тот факт, что размеры и количество элементарных ячеек в процессорах компьютеров стало соизмеримо с размерами количеством нейронов в нервной системе, а скорость выполнения операций электронных элементов в миллионы раз превзошла быстродействие биологических систем. В то же время эффективность решения задач, особенно связанных с ориентированием и принятием решений в естественной среде, у живых систем остаётся пока на недостижимо высоком уровне.
Основная концепция. В отличие от традиционных цифровых систем, представляющих собой комбинации процессорных и запоминающих блоков, нейро-процессоры содержат память, распределённую в связях между очень простыми процессорами, которые часто могут быть описаны как формальные синапсы. Тем самым основная нагрузка на выполнение конкретных функций системы ложится на её архитектуру, детали которой в свою очередь определяются межнейронными связями.
Технически искусственная нейронная сеть представляет собой смоделированную на компьютере систему соединённых и взаимодействующих между собой искусственных нейронов. Нейроны в такой системе способны исключительно принимать сигналы от других нейронов, суммировать их и передавать третьим нейронам. Но при всей кажущейся простоте, связанные между собой управляемыми связями нейроны вместе способны выполнять довольно сложные задачи.
Что бы понять, как работает нейросеть, давайте рассмотрим подробнее её составляющие и их параметры.
Что такое искусственный нейрон?
Современная ИНС любой сложности состоит из элементов – нейронов. Нейрон – это элементарная вычислительная единица, способная получать информацию, производить над ней простые вычисления и передавать её дальше. Нейроны бывают трёх типов:
S-нейроны – это слой сенсоров или рецепторов. В физическом воплощении они соответствуют, например, светочувствительным клеткам сетчатки глаза или фоторезисторам матрицы фотоаппарата. Каждый нейрон-рецептор может находиться либо в состоянии покоя, либо в возбуждённом состоянии, в последнем случае он передаёт единичный сигнал в следующий слой, ассоциативным нейронам.
Рисунок 45 Логическая схема элементарной однослойной НИС. Веса S – A связей могут иметь значения —1, +1 или 0 (то есть отсутствие связи). Веса A – R связей W могут быть любыми.
Ассоциативные нейроны (A-нейроны), названы так потому что каждому такому элементу, соответствует некоторый набор (ассоциация) S-нейронов. A-нейрон активизируется, как только количество сигналов от S-нейронов на его входе превысит некоторый порог θ.
Сигналы от возбудившихся A-нейронов, в свою очередь, передаются в сумматор R, причём сигнал от i-го ассоциативного нейрона передаётся с коэффициентом (Wi). Этот коэффициент называется весом A—R связи.
Так же, как и A-нейрон, R-нейрон подсчитывает сумму значений входных сигналов, помноженных на веса (линейную форму).
На выходе R-нейрона генерируется «1», если сумма входящих сигналов превысит заданный порог θ, иначе на выходе будет «—1» или «0». Математически, функцию, реализуемую R-элементом, можно записать так:
У каждого из рассмотренных нейронов есть два обязательных параметра: входные данные «вход» и выходные «выход». В случае сенсо́рного S-нейрона: «вход» равен «выходу». В остальных, на «входы» передаётся суммарная информация «выходов» нейронов из предыдущего слоя которая после нормализации попадает на «выход».
В каждой искусственной сети обязательно присутствуют входной слой – S, выходной слой, который выводит результат, и в зависимости от сложности есть некоторое количество слоёв (A).
Что такое искусственный синапс?
Синапс – это связь между двумя нейронами. У синапсов есть всего один параметр – вес (Wi). Благодаря ему информация между нейронами передаётся с определённым коэффициентом. Допустим, есть три нейрона, которые передают информацию следующему. Тогда мы имеем три веса, соответствующие каждому из их синапсов. Информация, переданная через синапс бо́льшим весовым коэффициентом, окажется доминирующей в следующем нейроне (пример – смешение цветов). На самом деле, совокупность весов нейронной сети или матрица весов – это и есть своеобразный мозг всей системы.
Рисунок46. Логика искусственного синапса
Нейрон имеет один выход, называемый аксоном по аналогии с биологическим прототипом. Но с единственного выхода нейрона сигнал может поступать на произвольное число входов других нейронов через синапсы с разными весами.
При этом, по аналогии со связями между биологическими нейронами, связи с положительным весом называются возбуждающими, а с отрицательным – тормозящими.
Как работает искусственная нейронная сеть?
Теперь, когда у нас есть входные данные и веса́, мы можем получить выходные данные. Получив выходные данные, мы передаём их дальше. И так повторяем для всех слоёв, пока не дойдём до выходного нейрона. Включив такую сеть в первый раз, мы, вероятно, получим результат весьма далёкий от правильного. Это потому что сеть «не натренирована». Чтобы улучшить результаты мы будем её тренировать. Но прежде давайте введём несколько терминов и свойств нейронной сети.
Тренировочный сет – это последовательность данных, которыми оперирует нейронная сеть.
Эпоха. Перед запуском нейронной сети эта величина устанавливается в 0 и имеет предел, заданный вручную. Эпоха увеличивается каждый раз, по завершении всего набора тренировочных сетов.
Ошибка. Этот термин применяется к процентной величине, показывающей расхождение между правильным и полученным ответами. Ошибка формируется каждую эпоху и по мере обучения сети должна снижаться. Для вычисления ошибки разработаны различные алгоритмы (мы их рассматривать не будем).
Важным свойством любой нейронной сети является способность к обучению. Процесс обучения сводится к процедуре настройки весов и порогов, приводящих к уменьшению показателя ошибок.
После обучения сеть может работать в режиме распознавания и обобщения. При этом ей предъявляются ранее неизвестные объекты, а она должна установить, к какому классу они принадлежат.
Обученная нейронная сеть приобретает способность выявлять сложные и даже неочевидные взаимосвязи между входными данными и выходными. Такая сеть сможет выдать верный результат на основании данных, которых не было в обучающей выборке, а также неполных и частично искажённых данных.
Кто будет обучать ИНС? Ответ – компьютер. Откуда компьютер знает? Человек вложил в него информацию. Искусственный интеллект – это по-прежнему абстракция.
Практическое применение
Стоит признать, некоторым вещам научить искусственную нейронную сеть невозможно, например, таким как предсказывать выигрышные номера в лотереях.
Но вот для любителей поиграть на бирже есть примеры решений. Входные данные – курс акций за год. Задача – определить завтрашний курс. Проводится следующее преобразование – выстраивается в ряд курс за сегодня, вчера и позавчера. Каждый следующий набор смещается по дате на один день назад. На полученных наборах обучается сеть с тремя входами (курсы за предыдущие три дня) и одним выходом – курс на следующую дату.
Обученной таким образом сети подаём на вход курсы за сегодня, вчера, позавчера, а сеть выдаёт нам прогноз на завтра. Стоит заметить, что в этом случае сеть просто выведет зависимость одного параметра от трёх предыдущих. Если возникнет необходимость учитывать ещё какой-то параметр, например, разные биржевые индексы, то его надо добавить как «вход», включить в примеры, переобучить сеть и получить новые результаты. И всё бы было здорово если бы удалось учесть все возможные параметры.
Применение этих технологий на бытовом уровне на сегодня пока экзотика, но они вполне доступны любому айтишнику, владеющему современными языками программирования. А в Интернете можно найти и готовые скрипты, и онлайн-сервисы.
Для чего нужны нейронные сети?
Благодаря ИНС, машина обретает способность анализировать и даже запоминать различную информацию. И самое главное, на основе своего опыта система может предполагать результат.
Самыми распространёнными применениями нейронных сетей является:
– Классификация – распределение данных по параметрам. Например, на вход даётся набор людей и нужно решить, кому из них давать кредит, а кому нет. Эту работу может сделать нейронная сеть, анализируя такую информацию как: возраст, платёжеспособность, кредитная история и т. д.
– Предсказание – возможность предсказывать следующий шаг. Например, рост или падение акций, основываясь на ситуации на фондовом рынке.
– Распознавание – в настоящее время, самое широкое применение нейронных сетей. Используется в Google, когда вы ищете фото или в камерах телефонов, когда оно определяет положение вашего лица и выделяет его и многое другое.
Постепенно складывается рынок нейрокомпьютеров. В настоящее время широко распространены различные высокопараллельные нейро-ускорители (сопроцессоры) для различных задач. Моделей универсальных нейрокомпьютеров на рынке мало, отчасти потому, что большинство из них реализованы для спецприменений. Примерами нейрокомпьютеров являются нейрокомпьютер Synapse (Siemens, Германия), процессор NeuroMatrix. С технической точки зрения, сегодняшние нейрокомпьютеры – это вычислительные системы с параллельными потоками одинаковых команд и множественным потоком данных (MSIMD-архитектура). Это одно из основных направлений развития вычислительных систем с массовым параллелизмом.
Искусственная нейронная сеть может передаваться от нейрокомпьютера к нейрокомпьютеру, так же, как и компьютерная программа. Выделяются несколько уровней отчуждения нейронной сети от универсального нейрокомпьютера: от сети, обучающейся на универсальном устройстве, до полного отчуждения без возможностей обучения и модификации, только функционирование обученной сети.
Чем сложнее обученная сеть, тем труднее извлечь из неё явный и понятный пользователю алгоритм решения задачи, поскольку собственно нейронная сеть и является этим алгоритмом.
Для решения этой проблемы создают специальные алгоритмы вербализации, которые помогают извлечь явный метод решения.
На практике вербализация осуществляется при переносе или встраивании обученной и упрощённой нейросети в обычный программный код или электронное устройство, а также для использования результатов в виде явных знаний.
Перспективы
Первоначально искусственный нейрон мог оперировать только с сигналами логического нуля и логической единицы, поскольку был построен на основе биологического прототипа, который может пребывать только в двух состояниях – возбуждённом или невозбуждённом. Развитие искусственных нейронных сетей показало, что для расширения области их применения необходимо, чтобы нейрон мог работать не только с бинарными, но и с непрерывными – аналоговыми сигналами. Такое обобщение модели нейрона было сделано Уидроу и Хоффом, которые предложили в качестве функции срабатывания нейрона использовать логистическую кривую.
Постепенно в нейрокомпьютинге назревает новое направление, основанное на соединении биологических нейронов с электронными. По аналогии с Software – программное обеспечение и Hardware – электронное аппаратное обеспечение, эти разработки получили наименование Wetware.
В настоящее время уже существует технология соединения биологических нейронов со сверхминиатюрными полевыми транзисторами с помощью нановолокон. В том числе, для создания соединений между нейронами и электронными устройствами применяются углеродные нанотрубки.
«Ложка дёгтя». Чрезвычайно популярной стала тема ИНС в кругах чиновников и управленцев высшего звена в 2010-е годы. Как было бы удобно переложить бремя принятия решений на искусственную нейросеть, а заодно и ответственность за возможные ошибки. Но искусственный интеллект будет по-прежнему предлагать правильное решение на основе предыдущих (его же) правильных решений, и, увы, он не родит ни одной гениальной или даже просто новой, оригинальной идеи.
А хакеры будущего вероятно будут не просто воровать деньги с кредиток, они станут генерировать многоходовые стратагемы, приводящие ИНС к нужным им решениям.