ИНТЕРЛЮДИЯ СЕДЬМАЯ. О простых вещах #
В 1943 году, посреди войны, невролог Уоррен Мак-Каллок и молодой математик Уолтер Питтс описали простейший вычислительный элемент. Если на его возбуждающих входах набиралось достаточно одновременных сигналов, он срабатывал. Тормозящий вход мог запретить срабатывание. Ни понимания, ни собственной цели у элемента не было; вся его работа сводилась к тому, чтобы при заданных условиях передать сигнал дальше.
Сам по себе такой элемент умел немногое, однако сеть из множества элементов могла выполнять сложные логические операции. Ни один элемент не выполнял всю операцию; результат зависел от того, как они были соединены.
В 1957 году Фрэнк Розенблатт описал обучаемую систему, которую назвал перцептроном. В июле следующего года её работу показали на компьютере IBM 704: после серии примеров он научился различать, с какой стороны карточки стоит отметка. Для отдельного аппарата, получившего имя Mark I, сделали искусственную сетчатку из четырёхсот фотоэлементов, двадцать на двадцать.
Каждый фотоэлемент сообщал, сколько света попало на его участок. Светлый фон и тёмный штрих давали разные сигналы. Сигналы всех четырёхсот составляли грубое изображение карточки. Отдельный фотоэлемент не различал ни буквы, ни её части: и на перекладине А, и на пустом фоне он измерял только освещённость.
От сетчатки сигналы шли к промежуточным, ассоциативным элементам. Каждый был соединён с некоторым набором фотоэлементов и срабатывал при подходящем сочетании входов. Эти соединения могли выбираться случайно. Одному элементу не задавали распознавание перекладины, другому — левой наклонной черты. На выходе получалось множество простых реакций на разные сочетания светлых и тёмных участков.
Дальше вступали в дело веса связей. Сигнал одного сработавшего элемента мог сильно прибавить к итоговой сумме, другого — едва её изменить, третьего — уменьшить. Число, определявшее этот вклад, и называлось весом. Выходной элемент сравнивал сумму с порогом и выдавал ответ.
Чтобы проследить весь путь до буквы, дадим такой системе учебную задачу: отличать карточки с А от карточек с Б. Условимся, что срабатывание выхода означает А, а молчание — Б. Названия букв и смысл ответа здесь задаёт человек. Машина должна научиться выдавать нужный сигнал.
Для простоты оставим три промежуточных элемента. Допустим, на карточке с А сработали два из них, с весами два и один, а элемент с весом минус два остался выключен. Сумма равна трём. При пороге два выход сработает, и прибор сообщит: А. Если на карточке с Б первый и третий элементы сработают, а второй промолчит, сумма будет нулевой. Прибор сообщит: Б. Так из показаний фотоэлементов получался ответ о букве. Ни одному из промежуточных элементов для этого не требовалось распознавать её целиком.
Остаётся главное: откуда взялись удачные веса. В начале обучения они могли давать неверный ответ. Тогда машине показывали правильный. Если на карточке была А, а выход молчал, увеличивали веса связей от сработавших промежуточных элементов. Если на Б выход ошибочно срабатывал, эти веса уменьшали. Поправка касалась тех сигналов, которые участвовали именно в этой попытке. В аппаратном перцептроне веса меняли с помощью регулируемых электрических сопротивлений.
Карточки предъявляли снова, чередуя образцы. После достаточного числа удачных поправок сеть могла различать и те начертания, на которых её не учили. Это проверяли отдельно: правильные ответы на уже показанных карточках ещё не означали, что машина узнает ту же букву в другом начертании. Другой шрифт, сдвиг или поворот могли снова сбить машину, а некоторые наборы образцов выбранная сеть вообще не могла разделить, сколько ни меняй веса.
Когда карточку убирали, световая картинка исчезала. Настройки оставались. Умение узнавать следующую А хранилось в том, насколько сильно одни сигналы влияли на другие.
---