Первый перцептрон, созданный в конце 1950-х гг., имел простое устройство: он включал набор перцептивных элементов (сенсоров), каждый из которых мог воспринимать один простой параметр, и центр принятия решений, который механистически суммировал входные сигналы и выдавал общий выход. В его основе лежала ранняя версия системы распознавания образов со звучным названием «пандемониум», которая была предложена изобретателем Оливером Селфриджем. Перцептивные элементы в этой системе соответственно назывались «демоны». Каждый демон отвечал за восприятие конкретного признака и мог передавать информацию тремя способами: молчать, шептать «Я вижу немного этого признака» или кричать «Я его вижу!» (одно из значений слова «пандемониум» – адский шум и гам; именно это происходило, когда все демоны принимались одновременно выкрикивать свои сообщения).
Перцептрон способен учиться и становиться «умнее». Предположим, вы хотите научить его распознавать дома. Вы показываете ему изображение дома, в ответ на что все перцептивные демоны сообщают центру решений свои фрагменты информации. Затем вы, выступая в роли учителя, сообщаете центру решений: «Это дом» – на основе чего тот оценивает ввод каждого демона, определяя его ценность для вывода системы в целом (ценность выражается в виде весового коэффициента). Например, демон, отвечающий за обнаружение прямых линий, дал ценный ввод (потому что дома содержат много прямых линий); следовательно, в будущем его голосу будет придаваться чуть больше веса. Хотя сам по себе этот демон не может идентифицировать дом, распознаваемый им признак – прямые линии – имеет непосредственное отношение к изображению дома. И наоборот, демоны, воспринимающие не связанные с домами признаки, дали малоценный ввод, поэтому в будущем их сообщениям будет придаваться меньший вес.
На рисунке ниже показана базовая структура перцептрона. На языке машинного обучения перцептрон называется алгоритмом контролируемого обучения бинарных классификаторов.
Это означает, что перцептрон может принимать решения «да – нет» или в контексте распознавания лиц «Это Бет» или «Это не Бет». Хотя это звучит примитивно, параллельная работа множества таких перцептронов – основа распознавания объектов.
Вот как именно это происходит: изображение в цифровом формате демонстрируется набору демонов, каждый из которых избирательно чувствителен к одному конкретному признаку. Каждый демон определяет присутствие или отсутствие своего признака и отправляет сообщение в центр решений, который собирает входные сигналы от всех демонов. Затем учитель сообщает перцептрону «Это Бет» или «Это не Бет». Центр решений запускает процесс, называемый обратным распространением, суть которого – назначить входному сигналу от каждого демона соответствующий весовой коэффициент: демоны, предоставившие информацию, полезную для идентификации Бет, получают более высокие коэффициенты. На рисунке на предыдущей странице величина весовых коэффициентов показана толщиной линий, идущих от демонов в центр решений (вспомните об усилении синаптических связей между нейронами в мозге). В следующий раз, когда перцептрон увидит изображение лица, центр решений будет суммировать входные сигналы от демонов с учетом их «веса»: одни сигналы будут оказывать большее влияние на конечное решение, другие – меньшее. Эта процедура повторяется множество раз со множеством разных изображений Бет (или любого другого объекта) – и с каждой итерацией перцептрон становится все точнее и точнее. Вот, собственно говоря, и все. Оказывается, даже простейший однослойный перцептрон, такой как показан на рисунке, может достаточно точно научиться распознавать простые объекты, а объединение сотен и тысяч таких перцептронов позволяет создавать системы, способные распознавать лица, водить автомобили и делать другие удивительные вещи.
А теперь рассмотрим конкретный пример. На рисунке на следующей странице показан такой же однослойный перцептрон, но с двумя дополнительными детекторами (демонами в классическом пандемониуме). Задача перцептрона – научиться распознавать букву А.
Каждый детектор настроен на обнаружение одного признака – в данном примере линии определенной ориентации. Когда перцептрону показывается буква А, срабатывают два детектора, чувствительные к линиям, наклоненным справа налево и слева направо, а также детектор горизонтальной линии, реагирующий на перекладину буквы А. Затем центр решений получает от учителя сообщение: «Это буква А» – и через процесс обратного распространения увеличивает весовой коэффициент этих трех детекторов.
Обратите внимание, что на рисунке эти три линии, участвующие в распознавании буквы А, – веса В2, В4 и В5 – более жирные, что призвано подчеркнуть их важность. В следующий раз, когда перцептрону покажут букву, он придаст сообщениям от этих детекторов больший вес.