Файл: Изложение Вся основная информация в одной книге Графы, алгоритмы поиска, ранжирования и многое другое.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 217
Скачиваний: 6
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
146 ГЛАВА 6
размещенные в памяти компьютера, то все необходимые вычисления можно проводить с помощью операций с огромными числовыми матрицами. Ней- рон вычисляет сумму взвешенных произведений своих вводов; как вы, навер- ное, помните из обсуждения PageRank в предыдущей главе, сумма произведе- ний — это суть умножения матриц.
Оказалось, что для этого идеально подходят графические процессоры (англ.
graphics processing units или GPU). GPU — это компьютерный чип, специально предназначенный для создания и модификации изображений внутри ком- пьютера; это родственник центрального процессора (англ. central processing unit или CPU), чипа, который выполняет программные инструкции. GPU рас- считан на работу с компьютерной графикой. Генерация и обработка компью- терной графики требует выполнения числовых операций с большими матри- цами; сцена, сгенерированная компьютером, представляет собой огромную матрицу с числами (вспомните ботильон). Графические процессоры играют роль рабочих лошадок в игровых консолях, занимая наше воображение ча- сами напролет. Но эта технология также ответственна за прогресс в сфере ис- кусственного интеллекта.
Мы начинали с простейшей нейронной сети, состоящей из единственного нейрона. Затем количество нейронов было увеличено и впоследствии доведено до нескольких сотен. Тем не менее нейронная сеть для распознавания образов, которую мы создали, вовсе не является большой. И ее архитектуру нельзя на- звать сложной. Мы просто добавляли один слой нейронов за другим. Иссле- дователи в области глубокого обучения добились больших успехов в проекти- ровании нейронных сетей. Предложенные ими архитектуры могут состоять из десятков слоев, и их геометрия вовсе не ограничена простым одномерным набором нейронов, как в наших примерах. Нейроны внутри слоя могут фор- мировать двухмерные полотнообразные структуры. Более того, слои вовсе не- обязательно связывать плотными соединениями; существуют и другие модели связей. Также необязательно подключать вывод предыдущего слоя к вводу сле- дующего. Мы, например, можем соединить два несмежных слоя. Слои можно объединять в модули и составлять из этих модулей все более сложные конфи- гурации. Сегодня в нашем распоряжении есть целый зоопарк архитектур ней- ронных сетей, каждая из которых рассчитана на определенные задачи.
Но, какой бы ни была архитектура, слои нейронов в ходе обучения обнов- ляют свои веса и сдвиги. Если задуматься, у нас есть набор входов, которые, обучаясь, преобразуют слои. В результате эти слои, внося изменения в свои параметры, вбирают в себя информацию, представленную входными дан- ными. Конфигурация весов и сдвигов слоя является результатом полученных
ГЛУБОКОЕ ОБУЧЕНИЕ 147
им данных. Первый скрытый слой, который контактирует непосредственно с входным слоем, кодирует ввод нейронной сети. Второй скрытый слой коди- рует вывод первого скрытого слоя, с которым он соединен напрямую. По мере того, как мы все глубже погружаемся в многослойную сеть, каждый после- дующий слой кодирует вывод, полученный из предыдущего. Каждое пред- ставление основано на предыдущем и поэтому каждый следующий слой на- ходится на все более высоком уровне абстракции. Таким образом глубокие нейронные сети изучают иерархию концепций, переходя на все более аб- страктные уровни. Вот почему мы называем это глубоким обучением. Мы имеем в виду архитектуру, в которой каждый следующий слой представляет более глубокие концепции, находящиеся на более высоких уровнях абстрак- ции. Если взять распознавание образов, то первый слой в многослойной сети может научиться распознавать небольшие локальные участки, такие как края изображения. Затем второй слой может научиться распознавать концепции, основанные на участках, распознанных предыдущим слоем, такие как глаза, нос и уши. Третий слой может отталкиваться от результатов второго и на- учиться распознавать лица. Теперь вы можете видеть, что наша нейронная сеть для распознавания образов была немного наивной; мы даже не пыта- лись реализовать настоящее глубокое обучение. Повышая уровень абстрак- ции, мы ожидаем, что наша сеть будет находить те же образы, что и чело- век — от грамматических структур до признаков болезни на рентгеновских снимках; от символов, написанных от руки, до интернет-мошенничества.
Тем не менее вы можете сказать, что все это сводится к обновлению про- стых значений в простых составных компонентах — искусственных нейронах.
И вы будете правы. Люди, которые это осознают, иногда чувствуют разочаро- вание. Они хотят узнать, что такое машинное и глубокое обучение, но ответ кажется слишком уж простым: иногда то, что с виду обладает человеческими способностями, можно свести к элементарным по своей сути операциям. Воз- можно, мы предпочли бы получить более запутанный ответ, который поще- котал бы наше самолюбие.
Но не стоит забывать, что, согласно научному подходу, природу можно объяснить с использованием элементарных концепций — настолько простых, насколько возможно. Это вовсе не означает, что из простых правил и состав- ных компонентов нельзя получить сложные структуры и модели поведения.
Искусственные нейроны намного проще биологических, но даже если бы по- ведение последних можно было свести к простым моделям, только благодаря их огромному количеству и взаимосвязанности возникает то, что мы назы- ваем интеллектом.
Искусственные нейроны намного проще биологических, но даже если бы поведение последних можно было объяснить, только благодаря их огромному количеству и взаимосвязанности возникает… интеллект.
Это позволяет взглянуть на вещи под другим углом. Действительно, ис- кусственные нейронные сети могут обладать необычайным потенциалом.
Но, чтобы заставить их работать, требуются неординарная находчивость и потрясающие инженерные умения со стороны людей. Здесь мы лишь слегка коснулись этой темы. Возьмем, к примеру, обратное распространение. Это фундаментальный алгоритм, лежащий в основе нейронных сетей, который позволяет эффективно выполнять вычисления, являющиеся по сути поиском математических производных. Исследователи потратили много времени на создание эффективных вычислительных методик, таких как автомати-
ческое дифференцирование — широко распространенный механизм получе- ния производных. Или подумайте о том, как именно вычисляются измене- ния параметров в нейронной сети. Существуют разлучные оптимизаторы, позволяющие развертывать все более крупные, но в то же время эффектив- ные сети. Если говорить об аппаратном обеспечении, то инженеры проекти- руют все лучшие и лучшие чипы, которые ускоряют выполнение все более сложных нейронных вычислений, но при этом снижают использование ре- сурсов. На смену существующим архитектурам нейронных сетей приходят новые. В этой области проводятся активные исследования и эксперименты; это в том числе касается попыток создания нейронных сетей, которые проек- тируют другие нейронные сети. Поэтому каждый раз, когда вам встречается новостной заголовок об очередном достижении в этой сфере, вспоминайте о тех трудолюбивых людях, благодаря которым это стало возможным.
150 ПОСЛЕСЛОВИЕ
ПОСЛЕСЛОВИЕ
15 июля 2019 года Марк Карни, глава Банка Англии, представил дизайн новой купюры номиналом £50, которую планировалось ввести в оборот двумя го- дами позже. В 2018 году Банк Англии решил посвятить новую купюру ученому и организовал публичный конкурс, длившийся шесть недель. Всего было по- лучено 227 299 голосов за 989 кандидатов, которые соответствовали заявлен- ным критериям. Затем Консультативный комитет по дизайну банкнот сокра- тил этот список до 12 вариантов. Окончательное решение принял глава банка, выбрав Алана Тьюринга. Вот как он это прокомментировал: «Алан Тью- ринг был выдающимся математиком, чей труд оказывает огромное влияние на то, как мы живем сегодня. Работы Алана Тьюринга, отца компьютерных наук и искусственного интеллекта, а также героя войны, были прорывными и имели далеко идущие последствия. Тьюринг — гигант, на плечах которого так многие стоят».
Тьюринг (1912–1954) был гением, который исследовал природу ком- пьютерных вычислений и их пределы. Он предвидел восход устройств, де- монстрирующих разумное поведение, задавался вопросами о том, могут ли компьютеры мыслить, сделал вклад в такие области, как математическая биология и механизмы морфогенеза, сыграл ключевую роль в расшифровке закодированных немецких сообщений во время Второй мировой войны (его участие десятилетиями оставалось засекреченным). В результате трагиче- ского поворота событий Тьюринг покончил с собой. В 1952 году его аресто- вали, осудили и приговорили к обязательной гормональной терапии за гомо- сексуализм, который в Великобритании тех времен был противозаконным.
Официальное помилование состоялось в 2013 году. Его изображение на но- вой купюре — это своего рода реабилитация, которая еще несколько десяти- летий назад была бы немыслимой.
Все алгоритмы в этой книге описывались в виде простых шагов, доста- точно элементарных для того, чтобы их можно было выполнить с помощью ручки и листа бумаги. Учитывая, что алгоритмы реализуются в компьютер- ных программах, понимание того, что они на самом деле собой представляют, поможет понять, какие вычисления в принципе возможны. Для этого необхо- димо глубже погрузиться в природу этих простых шагов. В конце концов, уче- ник начальной школы и выпускник колледжа могут по-разному обращаться с ручкой и листом бумаги. Возможно ли в точности определить, из какого рода
Возможно ли в точности определить, из какого рода шагов может состоять алгоритм?.. В 1936 году
[Тьюринг] разработал модель вычислительной машины, которая определяет, на что способен (любой) компьютер.
152 ПОСЛЕСЛОВИЕ
шагов может состоять алгоритм? Тьюринг предложил ответ на этот вопрос еще до появления первых цифровых компьютеров. В 1936 году он разработал модель вычислительной машины, которая определяет, на что способен (лю- бой) компьютер. Ее сокращенно называют машиной Тьюринга. Она состоит из следующих компонентов.
1. Лента, разделенная на клетки или ячейки. Каждая ячейка может быть пустой или содержать символ из какого-либо алфавита. Она может быть бесконечно длинной.
2. Головка может последовательно двигаться по ленте влево и вправо. Го- ловка может считывать символы в ячейке, которая под ней находится.
Мы называем символ в этой ячейке считанным. Головка может стереть или перезаписать считанный символ.
3. Управляющее устройство, также известное как регистр состояния. Мо- жет находиться в любом состоянии, входящем в конечное множество.
Представьте себе циферблат с состояниями, на любое из которых мо- жет указывать стрелка.
4. Конечная таблица с инструкциями. Каждая инструкция определяет следующее действие машины. Это то, что сделает машина, учитывая текущее состояние и считанный символ.
Машина Тьюринга показана в схематическом виде на следующей стра- нице.
Алфавит этой отдельно взятой машины Тьюринга состоит из 1 и մ. Со- гласно управляющему устройству, машина может находиться в одном из семи состояний, q
0
, q
1
,…, q
6
. В таблице с инструкциями каждому состоянию выде- лена отдельная строка, а каждому возможному символу — отдельный стол- бец; чтобы вы могли видеть пустые ячейки, мы обозначим их как B. Текущее состояние определяется строкой, а считанный символ — столбцом. Каждая запись в таблице инструкций содержит либо тройное значение, описываю- щее действие, либо прочерк, который означает, что машине нечего делать в этом сочетании строки и столбца.
Действие машины состоит из следующих шагов.
1. Машина может изменить свое состояние или оставить его как есть. Но- вое состояние является первым элементом тройного значения в конеч- ной таблице инструкций.
ПОСЛЕСЛОВИЕ 153 2. Она запишет символ в ячейке, размещенной под головкой. Это может быть тот же символ, который там уже есть (в результате существующий символ останется в ячейке). Записываемый символ — это второй эле- мент тройного значения.
3. Головка сместится либо влево (L), либо вправо (R) от текущей ячейки.
Смещение — это третий элемент тройного значения.
1 ... 6 7 8 9 10 11 12 13 14
Г
оловка
У
прав
ляющее ус
тройс
тво
Лента ввода/вывода
Конечна
я таблица с инс
трукциями
Симв ол
Сос тояние
154 ПОСЛЕСЛОВИЕ
Наша демонстрационная машина Тьюринга выполняет алгоритм, кото- рый вычисляет разницу двух чисел, a и b, если a > b; в противном случае воз- вращается ноль. Эта операция называется собственное вычитание, обозна- чим ее как a b. Мы имеем 4 2 = 2 и 2 4 = 0.
Вначале мы помещаем на ленту ввод машины. Ввод — это конечная строка символов из машинного алфавита. Все остальные ячейки на ленте, слева и справа от нее, являются пустыми. В этой машине Тьюринга ввод имеет сле- дующий вид: 1111 մ 11; он представляет числа 4 и 2 в унарной системе счис-
ления, разделенные символом մ.
Изначально головка машины находится в крайней слева ячейке. Управ- ляющее устройство указывает на состояние q
0
. Затем машина начинает ра- ботать и выполнять свои действия. Если проследить первые шесть действий, можно увидеть следующую картину.
1. Мы начинаем в состоянии q
0
, а считанный символ равен 1.
Таблица инструкций дает нам (q
1
, B, R), поэтому машина поменяет свое состояние на q
1
, сотрет 1 и переместится вправо. Головка и лента будут выглядеть так:
2. Для состояния q
1
и считанного символа 1 таблица инструкций дает нам
(q
1
, 1, R). Машина прочитает и запишет 1, оставив ячейку без измене- ний, и переместится вправо, оставаясь в состоянии q
1 3. Машина делает то же самое на шаге 2: считывает и записывает 1, оста- ваясь в q
1
, и перемещается вправо.
ПОСЛЕСЛОВИЕ 155 4. И снова машина прочитает и запишет 1, оставаясь в q
1
, и переместится вправо.
5. Головка перешла к символу մ, оставаясь в состоянии q
1
. Инструкция выглядит как (q
1
,մ, R). Машина поменяет состояние на q
2
, оставит մ
на ленте и переместится вправо.
6. Головка перешла к символу 1, справа от մ, и теперь находится в состоя- нии q
2
. Инструкция выглядит как (q
2
,մ, L). Машина поменяет состояние на q
3
, запишет մ вместо 1 и переместится влево.
Машина продолжит работать в том же духе, выполняя действия, предпи- санные таблицей инструкций. Если взглянуть на весь процесс в целом, то ста- новится очевидно, что машина выполняет цикл. На каждой итерации она на- ходит самую левую единицу и заменяет ее пустым значением. Затем она ищет справа символ մ. Когда машина его находит, она продолжает перемещаться вправо, пока не обнаружит единицу и не запишет вместо нее մ. Таким обра- зом на каждой итерации машина перезаписывает 1 слева и справа от մ. Через какое-то время эта операция станет невыполнимой. В этом случае машина со- трет символы մ и завершит работу. Лента будет содержать значение 11, экви- валент числа 2, окруженное пустыми ячейками. Чтобы просигнализировать о завершении работы, машина войдет в состояние q
6
, в котором, согласно таб- лице инструкций, больше нечего делать, и остановится.
Если предоставить ввод 11 մ 1111, машина будет работать до тех пор, пока лента не заполнится пустыми ячейками, эквивалентными значению
0. Если дать машине любой ввод, состоящий из a единиц, звездочки и b единиц, она будет выполнять свои действия, пока на ленте не останется
a – b единиц (если a > b), или пока вся лента не будет состоять из одних пустых ячеек.