4.4.1 Наследие Мак-Каллока и Питтса
Итак, Мак-Каллоку и Питтсу удалось создать первую модель искусственного нейрона, разрешить кажущийся парадокс с петлями, образуемыми нейронными цепями, обнаружить гипотетический механизм, при помощи которого сеть, составленная из искусственных нейронов, могла бы запоминать информацию. Какие проблемы теперь отделяли человечество от умения создавать машины, способные, например, отличить фотографию котика от фотографии собаки?
Искусственный нейрон Мак-Каллока и Питтса через множество входных синапсов получает некоторый набор двоичных сигналов (т. е. нулей или единиц). Сигнал может поступить от рецептора (например, фоторецептора, который реагирует на освещённое пятнышко в некотором месте изображения, выдавая на выход единичный сигнал; Мак-Каллок и Питтс в своей статье 1943 г. называют входные нейроны нейронной сети «периферическими афферентами»[1] — мне нравится этот термин, и я просто оставлю его здесь) или от предыдущего нейрона в цепочке. Каждый из сигналов умножается на некоторый синаптический вес, который может быть положительным или отрицательным числом. Положительный вес соответствует возбуждающему синапсу, отрицательный — тормозящему. Если сумма входных сигналов, перемноженных на соответствующие синаптические веса, превышает порог активации нейрона, то нейрон передаёт на выход сигнал, равный 1, в противном случае — сигнал. равный 0.
Так обычно описывают искусственный нейрон Мак-Каллока и Питтса в современной литературе по машинному обучению. В действительности дело обстояло не совсем так. Статья 1943 г. написана с применением весьма сложной и непривычной для большинства современных читателей нотации. Даже Стивен Клини, работавший со статьёй в 1950-е гг., столкнулся с рядом нешуточных сложностей.
«Настоящая статья является частично изложением их результатов; но мы обнаружили, что часть их [Мак-Каллока и Питтса] работы обращается с произвольными нервными сетями малопонятным [obscure] образом, поэтому мы пошли здесь своим путём», — писал он в 1951 г. Позже, обнаружив явную неточность в одном из результатов, полученных Мак-Каллоком и Питтсом, Клини в конце концов сдаётся: «Этот очевидный контрпример отвратил нас от дальнейших попыток расшифровать третий раздел статьи Мак-Каллока и Питтса»[2].
Первое отличие, которое бросается в глаза внимательному читателю статьи: условие срабатывания нейрона у Мак-Каллока и Питтса сводится к тому, что нейрон i запускается в момент времени t тогда и только тогда, когда ни один из нейронов, имеющих тормозящий синапс к нему, не сработал в момент времени t − 1 и более θ[3] нейронов, имеющих возбуждающий синапс к нему, сработали в момент времени t − 1. При этом целое положительное число θ называется порогом активации нейрона i. Таким образом, возбуждающие синапсы в модели Мак-Каллока всегда имеют единичные веса, а тормозящие всегда имеют отрицательный вес, который по модулю не уступает сумме весов всех возбуждающих синапсов к тому же нейрону минус порог активации (то есть вес каждого из тормозящих синапсов всегда оказывается достаточным, чтобы «перевесить» все возбуждающие нейроны, даже если они сработают все вместе), а θ всегда является целым положительным числом. Впоследствии исследователи отказались от этих ограничений, по сути заменив логику высказываний, лежащую в основе модели Мак-Каллока — Питтса, на нечёткую логику. Кроме того, при помощи нехитрого трюка можно избавиться и от порога активации нейрона как от отдельного параметра. Для этого достаточно добавить в нейронную сеть фиктивный входной нейрон («периферический афферент»), срабатывающий на каждом шаге времени. Этот нейрон должен иметь синапсы к каждому из остальных («непериферических») нейронов, при этом веса этих синапсов будут равны тому самому порогу θ, взятому с противоположным знаком. Однако ничего этого в работе Мак-Каллока и Питтса мы не находим[4], всё это уже более поздние трансформации, проделанные другими исследователями.
фон Нейман так оценивал модель, созданную Мак-Каллоком и Питтсом: «„Функциональность“ такой сети может быть задана путём выделения некоторых входов системы и некоторых её выходов с последующим описанием того, какие входные стимулы для первого должны вызывать какие конечные стимулы для второго… Важным достижением Мак-Каллока и Питтса является то, что такая формальная нейронная сеть способна реализовать любую функциональность, которую можно в принципе определить логически, строго и однозначно при помощи конечного числа слов»[5], [6].
Строго говоря, фон Нейман в данном случае был не совсем прав. Работы Мак-Каллока и Питтса не содержат формального доказательства тезиса о тьюринг-полноте рекуррентных нейронных сетей, Мак-Каллок и Питтс считали его тривиальным.
Именно задачу формально доказать этот тезис и ставил перед собой Клини, когда предпринял попытку разобрать исследование Мак-Каллока и Питтса. В процессе он определил понятие «регулярные события» [regular events] (сегодня называемые «регулярными языками» [regular languages], «рациональными языками» [rational languages] или «регулярными множествами» [regular sets]) и доказал, что сети Мак-Каллока и Питтса могут «представлять» [represent] регулярные события (в современной терминологии они могут «принимать» [accept] регулярные языки)[7], [8]. Именно от этого термина происходит понятие «регулярные выражения» [regular expressions], хорошо известное большинству современных программистов.
Забавно, что термин «регулярные» в отношении событий, языков, множеств и выражений является хорошей иллюстрацией принципа «нет ничего более постоянного, чем временное». В своей работе Клини пишет: «Сейчас мы опишем класс событий, которые будем называть „регулярными событиями“ (мы будем рады любым предложениям относительно более наглядного термина)». Как видим, за 70 лет подходящих предложений не поступило. Прилагательное regular в английском языке имеет несколько значений. Это и «регулярный», и «обычный», и «очередной», и «правильный», и даже «официальный». Что именно из этого имел в виду Клини? Этим вопросом исследователи задаются и в наши дни[9], [10], [11]. По всей видимости, он хотел указать на то, что эти события обязательно происходят всякий раз, когда модель находится в одном и том же состоянии и получает на вход один и тот же сигнал.
В той же статье Клини также определил альтернативный формализм, являющийся обобщением сетей Мак-Каллока и Питтса, позволив «ячейкам» (т. е. нейронам) сети принимать любые из конечного числа внутренних состояний. Клини назвал свой новый формализм «конечными автоматами» [finite automata] и показал, что сети Мак-Каллока и Питтса вычислительно эквивалентны конечным автоматам[12], [13].
В общем, так или иначе, для того чтобы заставить работать сеть, составленную из нейронов Мак-Каллока и Питтса, вам пришлось бы запрограммировать её для выполнения задачи собственноручно. То, каким образом подобная сеть может обучаться, было совершенно неясно. Модель не предполагала, что в процессе работы сети пороги активации нейронов могут изменяться, синапсы менять свой тип (с возбуждающих на тормозящие или наоборот) или, тем более, появляться либо исчезать. Единственной доступной такой сети формой памяти были петли из нейронов, но довольно сложно представить себе механизм обучения, основанный на использовании такого типа памяти.
- ↑ McCulloch W. S., Pitts W. (1943). A logical calculus of the ideas immanent in nervous activity / Bulletin of Mathematical Biophysics, 5: 115 // https://doi.org/10.1007/BF02478259
- ↑ Kleene S. (1951). Representation of events in nerve nets and finite automata // https://www.rand.org/content/dam/rand/pubs/research_memoranda/2008/RM704.pdf
- ↑ * Это буква «тета», а не ноль, перерубленный пополам; я мог бы заменить её на другую букву без перемены смысла, но всё-таки решил оставить её ради аутентичности, а также для того, чтобы читателям, боящимся математических выражений, в этом месте было страшнее.
- ↑ McCulloch W. S., Pitts W. (1943). A logical calculus of the ideas immanent in nervous activity / Bulletin of Mathematical Biophysics, 5: 115 // https://doi.org/10.1007/BF02478259
- ↑ von Neumann J. (1951). The General and Logical Theory of Automata / Jeffress L. A. (1951). Cerebral Mechanisms in Behavior: The Hixon Symposium. Wiley. New York // https://books.google.ru/books?id=0vgMAAAAIAAJ
- ↑ Rosenblatt F. (1961). Principles of Neurodynamics. Perceptrons and the Theory of Brain Mechanisms. Cornell aeronautical lab inc., Buffalo, New York. Defense Technical Information Center // https://books.google.ru/books?id=Tk2tDAEACAAJ
- ↑ Piccinini G. (2004). The First Computational Theory of Mind and Brain: A Close Look at Mcculloch and Pitts's “Logical Calculus of Ideas Immanent in Nervous Activity” / Synthese, Vol. 141 (2) // https://doi.org/10.1023/B:SYNT.0000043018.52445.3e
- ↑ Kleene S. (1951). Representation of events in nerve nets and finite automata // https://www.rand.org/content/dam/rand/pubs/research_memoranda/2008/RM704.pdf
- ↑ Pierpoint N. (2009). Why are regular expressions called “regular” expressions? / StackOverflow, Jun 10 '09 // https://stackoverflow.com/questions/975465/why-are-regular-expressions-called-regular-expressions
- ↑ Wright P. (2012). Why is a regular language called 'regular'? / StackExchange, May 10 '12 // https://cs.stackexchange.com/questions/1771/why-is-a-regular-language-called-regular/1772
- ↑ Weller T. (2016). How did Regex get its name? / StackExchange, Mar 9 '16 // https://ell.stackexchange.com/questions/83917/how-did-regex-get-its-name
- ↑ Piccinini G. (2004). The First Computational Theory of Mind and Brain: A Close Look at Mcculloch and Pitts's “Logical Calculus of Ideas Immanent in Nervous Activity” / Synthese, Vol. 141 (2) // https://doi.org/10.1023/B:SYNT.0000043018.52445.3e
- ↑ Kleene S. (1951). Representation of events in nerve nets and finite automata // https://www.rand.org/content/dam/rand/pubs/research_memoranda/2008/RM704.pdf