Активные данные. Философское программирование - страница 15



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


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


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



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


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