Содержание статьи
Картина сетевым маслом. Как нейросеть видит новостную повестку России
Большая подборка по теме AI (Artificial Intelligence) от Data Privacy Office
Ниже вы видите иллюстрацию того, как нейросеть на более поздних слоях “видит” характеристики одного участка фотографии. Сбоку показано значение функции активации каждого выхода. Таким образом, что нейросеть “видит”, что выбранный участок похож на шею человека или нижнюю часть лица.
Когда нейросеть обучается на данных, она стремится извлечь наиболее важные признаки из этой информации, которые помогут ей делать точные прогнозы или принимать решения в будущем. Однако в процессе этого обобщения она может «помнить» определенные детали обучающих данных в своих весах и смещениях.
И вообще, не то это я так обучила нейросетку, не то у меня просто мозги немного искусственноинтеллектные, но у нас с Kandinsky сходятся взгляды на русскую классику. Вроде задала сетке запрос «Обыкновенная история», даже не стала писать, что это роман Гончарова . И что?
Ужас, тлен и разруха. Причем на первой картине на заднике какие-то античные, кажется, развалины. Типа, от развалин до развалин. Что тут странного? Обыкновенная же история! Вы как хотите, граждане, а я как-то тудыть, ближе к нашему времени, к современной литературе.
На иллюстрации ниже вы можете увидеть пример нейросети, которая анализирует цену за отель, основываясь на площади номера, количестве спален, расстоянии до города и возрасте клиента (на случай скидок для пенсионеров). — вообще, лучше нарисовать свою схему на предыдущем примере:
Нейросети играют важную роль в нашей жизни, но их внутреннее устройство зачастую остается тайной. В этой статье мы погрузимся в мир нейросетей, чтобы понять, как они работают. В качестве примера возьмем нейросеть для распознавания изображений и разберёмся как AI анализирует изображения, находит на них различные признаки и принимает решения.
Процесс визуализации признаков начинается со случайного изображения или шума, которое затем подвергается оптимизации, чтобы максимизировать активацию конкретного “нейрона” или группы “нейронов” в определенном слое нейросети. Это достигается путем изменения пикселей изображения таким образом, чтобы они максимально активировали выбранные “нейроны”.
Как мы можем понять, что “видит” нейросеть?
Вот тут не смогла пройти мимо, захотелось похвастаться: все три генерации блестящи. Глаза Kandinsky даже не всегда делает хорошо (иногда страдает симметричность), но тут, даже если сделать скидку на недостатки сетки, у всех трех барышень очень умный взгляд.
Мне больше всего нравится первая картинка. Лицо юное и взгляд не сфокусирован, но при этом чувствуется упрямый характер девушки.
По мере продвижения изображения через сеть, промежуточные слои начинают агрегировать базовые характеристики, обнаруженные в предыдущих слоях, для распознавания более сложных паттернов. Например, нейроны в этих слоях могут начать формировать комбинации граней для определения более сложных текстур, таких как кожа или волосы.
Одной из основных проблем здесь является то, что разработчики могут не замечать недостатков в обучающей выборке из-за ее большого объема. Представьте, что у вас есть тысячи фотографий, используемых для обучения нейросети. В таких больших объемах данных легко пропустить какие-то мелкие детали или недостатки, особенно если обучение проводится автоматически или с использованием больших наборов данных .
Представьте себе нейронную сеть, которой поручено проанализировать Вашу фотографию, и сделать выводы относительно ее содержания. Например, какого пола человек изображен на фотографии, во что он одет и сколько ему лет. По мере того, как Ваша фотография начинает свое путешествие по этой нейронной сети, она проходит ряд сложных вычислений.
Так как чаще всего для обучения нейросетей, распознающих изображения, используется обучение “с учителем” (подробнее о видах обучения можете посмотреть в моей предыдущей статье), когда путешествие фотографии по сети достигает своей кульминации на выходном слое, прогнозы сети сравниваются с реальным содержанием фотографии, анализируя расхождение. Именно здесь в игру вступает обратное распространени е, позволяя сети учиться на своих ошибках и уточнять свое понимание фотографии.
На графике ниже можно увидеть этот процесс более подробно. Значение W 0 — это желаемый результат вычислений. Это те значения, которые разработчик дает нейросети в конце, говоря “На фотографии с вероятностью 100% был изображен мужчина”. А W e1 — результат, полученный изначально нейросетью: “На фотографии с вероятностью 80% изображена женщина”. С помощью градиентного спуска, нейросеть меняет свои веса таким образом, чтобы приблизится к W 0 . Она вычислит, какой именно фактор повлиял на ошибку и изменит его вес. Например, нейросеть изначально могла “решить”, что у всех женщин острый подбородок, и поэтому у этого признака был суммарно большой вес. После того, как в нейросеть поступит фотография мужчины с острым подбородком, она уменьшит вес этого признака, чтобы он не искажал результат.
1. Входной слой: Это начальный слой, на котором сеть получает внешние данные. Каждый нейрон в этом слое представляет характеристику или атрибут входных данных. Таким образом, если нейросеть получает на вход фотографию, “нейроны” на входном слое разбивают ее на кусочки, которые потом будут анализироваться.
Это давняя шутка: большинство детей считает, что произведение про кладбища и восставших мертвецов. Но когда приходит время, школьник узнает, что готические произведения русских авторов не дошли до школьной программы, русская классика намного более суровое дело, чем какие-то там милые зомби, буа-га-га! Но нейросетка, благослови Боже все ее формулы, возвращает нам тот детский восторженный ужас перед названием!
Кстати, это не единственный раз, когда нейросетка сделала из названия компьютерную игру. Кстати, вот бы во что сыграть. «Девушка, вы из живых или мертвых? Как вас зовут?» — «Я пока не определилась и зовут меня Коробочка!»
Два последних варианта меня дико радуют, так как напоминают попытку нейросетки сделать свою вариацию шкатулку Лемаршана из «Восставших из ада», потерявшуюся в закромах Плюшкина.
Подкаст «Про Приватность»
Часто также выделяют отдельно сверточные слои (convolution layers): Когда фотография проходит через сверточный слой, происходит что-то похожее на сканирование изображения. Нейросеть на этом слое ищет определенные узоры или фигуры, например, края, углы, или текстуры, которые помогают понять, что на картинке изображено. После сверточного слоя фотография разбивается на кусочки из найденных объектов, которые будут меньше размером и их легче будет анализировать.
Нейросети состоят из связанных узлов, иногда называемых “нейроны” (в англоязычной литературе часто используется термин nodes). Эти “нейроны” служат фундаментальными вычислительными единицами , которые обрабатывают и передают информацию по всей нейросети. Подобно биологическим нейронам в нашем мозге, искусственные “нейроны” работают совместно для решения сложных задач. Давайте разберем их работу на примере.
Далее я перешла на книги Стивена Кинга , у него их масса и, что особенно хорошо, у них есть масса странных названий, которые сходу не очень-то точно интерпретируешь. О чём говорит название «Чужак»? Не буду говорить, что умеет монстр из этой книги, чтобы не портить вам интригу первой части. Но монстр будет. Kandinsky это прочувствовал.
Мне кажется, он говорит нам всем: «Добрый вечер»! Добрый вечер, милаш!
Важно понимать, что после завершения обучения нейросеть и все связанные с ней параметры, включая итоговые веса и смещения, сохраняются в файле, который отправляется заказчику. Таким образом, данные, которые были использованы для обучения нейросети, фактически сохраняются (правда, в преобразованном виде) внутри файла и будут отправлены дальше.
2. Абстракция : Нейросеть стремится к абстракции, выделяя особенности, которые ей кажутся важными для различения между классами объектов. Это может привести к тому, что изображения становятся все более абстрактными и трудно интерпретируемыми для человеческого восприятия. То, какие именно особенности ей покажутся важными, во многом зависит от данных, на которых нейросеть обучалась. Например, если все мужчины, которых нейросеть “видела”, были в черных очках, то нейросеть первым делом научится распознавать на фотографии черные очки, а остальные признаки, такие как форма лица или волосы на лице, она будет опускать.
Примечание: В нашей статье мы будем рассматривать градиентный спуск в классическом виде, однако следует заметить, что когда речь идет об анализе изображений в виду большой размерности градиентный спуск в изначальном виде может быть невозможен, поэтому приходится использовать приближенные к нему методы, которые руководствуются похожей логикой.