Книга Идиот или гений? Как работает и на что способен искусственный интеллект, страница 23. Автор книги Мелани Митчелл

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Идиот или гений? Как работает и на что способен искусственный интеллект»

Cтраница 23

Давайте на минутку остановимся, чтобы обсудить использование слова “карта” в этом контексте. В повседневной жизни “картой” называют пространственное представление географической местности, например города. Скажем, карта дорог Парижа показывает конкретную характеристику города – схему его улиц, проспектов и переулков, – но не включает многие другие характеристики, такие как здания, дома, фонарные столбы, урны, яблони и пруды. Другие карты уделяют внимание другим характеристикам: можно найти карты парижских велодорожек, вегетарианских ресторанов и парков для выгула собак. Что бы вас ни интересовало, вполне вероятно, что существует карта, которая покажет вам, где это найти. Если бы вы хотели рассказать о Париже другу, который никогда там не бывал, можно было бы подойти к задаче творчески и показать ему коллекцию таких “специализированных” карт.

Сверточная нейронная сеть (как и мозг) представляет видимую сцену как коллекцию карт, показывающих специфические “интересы” набора детекторов. В моем примере на рис. 11 в качестве интересов выступают ребра различной ориентации. Однако, как мы увидим далее, СНС сами обучаются тому, каковы их интересы (то есть детекторы), а интересы при этом зависят от конкретной задачи, для которой натренирована сеть.

Карты создаются не только на первом слое сверточной нейронной сети. Как видно на рис. 10, остальные слои имеют схожую структуру: каждый из них обладает набором детекторов, а каждый детектор создает собственную карту активации. Ключ к успеху СНС – опять же подсказанный устройством мозга – заключается в иерархической организации карт: входными сигналами для второго слоя служат карты активации первого, входными сигналами для третьего слоя служат карты активации второго – и так далее. В нашей гипотетической сети, где первый слой реагирует на ориентацию ребер, единицы второго слоя будут реагировать на конкретные комбинации ребер, например углы и Т-образные стыки. Детекторы третьего слоя будут обнаруживать комбинации комбинаций ребер. Чем выше иерархическое положение слоя, тем более сложные признаки выявляют его детекторы, ровно как Хьюбел, Визель и другие ученые наблюдали в мозге.

Наша гипотетическая сверточная нейронная сеть имеет четыре слоя с тремя картами в каждом, но в реальности такие сети могут иметь гораздо большее количество слоев – иногда даже сотни, – причем каждый слой может обладать своим числом карт активации. Определение этих и многих других аспектов структуры СНС – один из шагов к тому, чтобы такая сложная сеть смогла справляться с поставленной перед нею задачей. В главе 3 я описала идею И. Дж. Гуда о будущем “интеллектуальном взрыве”, когда машины сами станут создавать все более совершенные машины. Пока мы не вышли на этот этап, а потому настройка сверточных нейронных сетей требует огромного человеческого мастерства.

Классификация в СНС

Слои 1–4 в нашей сети называются сверточными, поскольку каждый из них осуществляет свертку предыдущего (а первый слой осуществляет свертку входного изображения). Получая входное изображение, каждый слой последовательно выполняет вычисления, и на последнем, четвертом слое сеть формирует набор карт активации для относительно сложных признаков. К ним могут относиться глаза, форма лап, форма хвостов и другие признаки, которые сеть сочла полезными для классификации распознаваемых в процессе тренировки объектов (в нашем случае – кошек и собак). На этом этапе в дело вступает модуль классификации, который на основании этих признаков определяет, какой объект запечатлен на изображении.

В качестве модуля классификации используется традиционная нейронная сеть, похожая на описанную в главе 2 [104]. Входными сигналами для модуля классификации служат карты активации, составленные самым высоким слоем свертки. На выходе модуль дает процентные значения, по одному для каждой возможной категории, оценивая уверенность сети в том, что объект на входном изображении относится к конкретной категории (в нашем случае – кошек или собак).

Позвольте мне подытожить это краткое описание сверточных нейронных сетей. Вдохновленные открытиями Хьюбела и Визеля о работе зрительной коры мозга, СНС берут входное изображение и преобразуют его – посредством сверток – в набор карт активации признаков, сложность которых постепенно повышается. Карты активации, составленные на самом высоком слое свертки, загружаются в традиционную нейронную сеть (которую я назвала модулем классификации), после чего она определяет процент уверенности для каждой из категорий объектов, известных сети. Сеть классифицирует изображение в ту категорию, которая получает самый высокий процент уверенности [105].

Хотите поэкспериментировать с хорошо натренированной сверточной нейронной сетью? Сделайте фотографию какого-либо объекта и загрузите ее в “поиск по картинке” Google [106]. Получив ваше изображение, Google задействует СНС и на основании итоговых значений уверенности (при тысячах возможных категорий объектов) сообщит вам свое “лучшее предположение” о том, что изображено на снимке.

Тренировка сверточной нейронной сети

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

Вот механизм, с помощью которого нашу СНС можно натренировать определять, кошка или собака запечатлена на конкретном изображении. Сначала необходимо собрать большое количество примеров изображений кошек и собак – они войдут в ваше “тренировочное множество”. Нужно также создать файл, который присвоит каждому изображению ярлык – “собака” или “кошка”. (А лучше взять пример с исследователей компьютерного зрения и нанять аспиранта, который сделает это за вас. Если вы сами аспирант, наймите студента. Никому не нравится расставлять метки!) Сначала ваша программа присвоит случайные значения всем весам в сети. Затем программа начнет тренировку: все изображения будут по одному загружаться в сеть, сеть будет выполнять свои послойные вычисления и, наконец, выдавать процент уверенности для категорий “собака” и “кошка”. Для каждого изображения тренируемая программа будет сравнивать выходные сигналы с “верными” значениями: так, если на изображении собака, то уверенность для категории “собака” должна составлять 100 %, а для категории “кошка” – 0 %. Затем тренируемая программа, используя алгоритм обратного распространения ошибки, будет незначительно корректировать веса в сети, чтобы в следующий раз при классификации этого изображения показатели уверенности были ближе к верным значениям.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация