2062: время машин. Тоби Уолш
что нам даже не нужно искать новую программу, потому что компьютер способен сделать это сам. Он сам может научиться решать новые задачи. Даже научиться вести себя разумно.
Машины, которые учатся
Как компьютер может научиться делать что-то новое? По сути, программа – это просто устойчивая последовательность инструкций в виде компьютерного кода. Вообще говоря, термин «компьютерный код» представляется довольно удачным, учитывая, что инструкции программы действительно прописаны шифром. На компьютерах с процессором Z80, например, код 87 означает прибавление одного числа к другому, а 76 – окончание работы программы. На компьютере с процессором 6800 код 8B выполняет функцию прибавления, а DD – функцию закрытия программы[14].
Важная вещь, связанная с кодом, заключается не в том, что он зашифрован, а в том, что это обычные данные – последовательность чисел. Это очень впечатляющая идея. Если мы хотим поменять программу, нужно просто загрузить новые коды в качестве данных. Еще больше впечатляет тот факт, что программа может поменять собственные данные, а значит, поменять сама себя. В этом и заключается суть обучения машины: компьютер может поменять собственные данные и собственный код, чтобы улучшить свои характеристики.
Не столь важно знать, как именно алгоритмы обучения решают, что именно поменять в коде. Некоторые изменения вызваны эволюцией, мутациями и скрещиванием кодов, такими же, как генные мутации и скрещивания в человеческой репродукции. Другие обусловлены самим мозгом, обновляющим связи между искусственными нейронами так же, как наш мозг укрепляет подобные связи в процессе нашего обучения.
В любом случае компьютер оставляет те изменения, которые улучшают его работу, и избавляется от других, которые этого не делают. Это происходит медленно, но компьютеры развиваются.
У нас уже есть один хороший пример создания интеллекта – homo sapiens. Наш интеллект – вещь в большой степени приобретенная. Мы были рождены без языка. Мы не умели читать и писать. У нас не было никаких знаний об арифметике, астрономии или истории Древнего мира. Но мы выучились всему этому и не только.
Обучение станет, вероятно, одной из важнейших характеристик думающих компьютеров. Это затрагивает феномен «бутылочного горлышка», проблему освоения компьютером всех знаний, которые человечество приобрело на протяжении нескольких тысяч лет. Программирование всех этих знаний вручную, факт за фактом – очень долгий и сложный процесс. Но нам и не нужно этого делать, компьютеры могут освоить все это самостоятельно.
Теперь нам окончательно ясно, что компьютеры превосходят людей в обучаемости. Они способны написать программу, которая может улучшить их собственный код, а также поделиться им с другими компьютерами. Так просто! Одновременно это гораздо эффективнее человеческого процесса обучения.
В следующий раз, когда вы попытаетесь научить ребенка вычислять максимум математической функции или склонять
14
Инструкции для Z80-х и для 6800-х микропроцессоров существуют в виде шестнадцатеричных чисел). Десятичная система существует по целочисленному основанию 10: после 9 идет 10, затем 11, 12 и т. д. В шестнадцатеричной системе после 9 идет A (=10), B (=11), C (=12), D (=13), E (=14), F (=15), потом 10 (=16), 11 (=17), 12 (=18) и т. д. Инструкция DD для 6800-го микропроцессора известна как «остановись и гори». До создания таких микропроцессоров компьютеры были большими и ненадежными, а при остановке их работы всегда существовала небольшая угроза воспламенения.