Нейросеть как видит

0
25

Как нейросеть видит известные произведения по их названиям

Подкаст «Про Приватность»

Приложение Lensa можно скачать бесплатно. Но функция «Magic Avatars» платная — за наборы аватарок нужно платить. На момент написания статьи, версия для iOS стоит от 279 до 649 рублей. Версия для Android выдала другую цену, от 189 до 429 рублей. Пожалуй, это единственный минус приложения.

Так, например, первые скрытые слои могут отвечать за распознавание базовых характеристик изображения, таких как грани, текстуры и цвета. “Нейроны” в первом слое могут реагировать на вертикальные или горизонтальные линии на изображении , а другие могут определять области с определенным цветом.

На графике ниже можно увидеть этот процесс более подробно. Значение W 0 — это желаемый результат вычислений. Это те значения, которые разработчик дает нейросети в конце, говоря “На фотографии с вероятностью 100% был изображен мужчина”. А W e1 — результат, полученный изначально нейросетью: “На фотографии с вероятностью 80% изображена женщина”. С помощью градиентного спуска, нейросеть меняет свои веса таким образом, чтобы приблизится к W 0 . Она вычислит, какой именно фактор повлиял на ошибку и изменит его вес. Например, нейросеть изначально могла “решить”, что у всех женщин острый подбородок, и поэтому у этого признака был суммарно большой вес. После того, как в нейросеть поступит фотография мужчины с острым подбородком, она уменьшит вес этого признака, чтобы он не искажал результат.

1. Входной слой: Это начальный слой, на котором сеть получает внешние данные. Каждый нейрон в этом слое представляет характеристику или атрибут входных данных. Таким образом, если нейросеть получает на вход фотографию, “нейроны” на входном слое разбивают ее на кусочки, которые потом будут анализироваться.

Обратное распространение включает в себя расчет градиентов разными методами , которые представляют собой скорость изменения ошибки сети по отношению к ее весам и смещениям (на графике ниже градиент выглядит как угол наклона стрелочки: чем больше разница между желаемым и полученным результатом, тем больше угол наклона). По сути, этот шаг определяет, какой вклад вносит каждый параметр в общую ошибку предсказания, чтобы потом изменить его и приблизиться к желаемому значению.

2. Абстракция : Нейросеть стремится к абстракции, выделяя особенности, которые ей кажутся важными для различения между классами объектов. Это может привести к тому, что изображения становятся все более абстрактными и трудно интерпретируемыми для человеческого восприятия. То, какие именно особенности ей покажутся важными, во многом зависит от данных, на которых нейросеть обучалась. Например, если все мужчины, которых нейросеть “видела”, были в черных очках, то нейросеть первым делом научится распознавать на фотографии черные очки, а остальные признаки, такие как форма лица или волосы на лице, она будет опускать.

Строительные блоки нейронных сетей

Сейчас нас интересует только функция «Magic Avatars», которая запускается через кнопку в левом верхнем углу экрана. Разработчики предупреждают, что на некоторых изображениях будут видны искажения — нейросеть Lensa работает хорошо, но не идеально. Приняв этот риск, нужно нажать на кнопку «Попробовать» в нижней части экрана.

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

Так как чаще всего для обучения нейросетей, распознающих изображения, используется обучение “с учителем” (подробнее о видах обучения можете посмотреть в моей предыдущей статье), когда путешествие фотографии по сети достигает своей кульминации на выходном слое, прогнозы сети сравниваются с реальным содержанием фотографии, анализируя расхождение. Именно здесь в игру вступает обратное распространени е, позволяя сети учиться на своих ошибках и уточнять свое понимание фотографии.

Пример: Представим, что у нас есть “нейрон”, который пытается определить цену за одну ночь в отеле на основе нескольких факторов, таких как расстояние до центра города, рейтинг отеля и количество звезд. Каждый из этих факторов является входным значением для нашего нейрона, то есть информацией, которую он получает. У каждого входа есть свой вес , который представляет собой важность этого фактора для принятия решения. Например, если нейрон посчитает, что рейтинг — самый важный фактор, то ему будет присвоен бОльший вес, чем другим входам, и он будет больше влиять на цену отеля, чем другие факторы. Допустим, рейтинг имеет вес 0.6, расстояние — 0.3, а количество звезд — 0.4. Кроме того, у нашего нейрона есть смещение , которое можно рассматривать как некий уровень чувствительности нейрона. Если смещение высокое, “нейрон” будет более склонен к принятию положительного решения при небольших входных значениях. Напротив, низкое смещение означает, что нейрон будет активироваться только при более значительных входных значениях. В нашем примере смещение можно представить как минимальную цену, ниже которой отель арендовать невозможно. Эта цена будет прибавляться к каждому выходному значению. Теперь, когда у нас есть веса и смещение, “нейрон” суммирует произведения весов и входных значений, добавляет смещение и передает эту сумму функции активации . Так, если общая сумма ниже определенного порога, “нейрон” может решить, что цену определить невозможно и передаст 0. Таким образом, наш “нейрон” анализирует различные факторы (входные значения), учитывая их важность (веса) и изначальные значения (смещение), чтобы принять решение о цене отеля.

ЧИТАТЬ ТАКЖЕ:  Как сделать песню голосом нейросети

Процесс визуализации признаков начинается со случайного изображения или шума, которое затем подвергается оптимизации, чтобы максимизировать активацию конкретного “нейрона” или группы “нейронов” в определенном слое нейросети. Это достигается путем изменения пикселей изображения таким образом, чтобы они максимально активировали выбранные “нейроны”.

Данные, которые «видит» нейросеть, хранятся в ее весах и смещениях. Обучение нейросети заключается в том, чтобы настроить эти веса и смещения таким образом, чтобы они лучше всего соответствовали задаче классификации или распознавания объектов. Когда нейросеть “видит” какой-то признак, который она уже обучена распознавать, определенная группа “нейронов” в ней “загораются” : подобно связям в мозгу, через которые проходит сигнал. То, насколько сильно нейросеть “реагирует” на какое-то изображение, можно увидеть по значениям функций активаций: чем они больше, тем активнее “нейроны” реагируют на изображения, а значит, они его “узнают” .

Как эти данные оттуда извлечь?

Вот как это может происходить: представим, что у нас есть набор фотографий человека для обучения нейросети. Этот набор может содержать различные фотографии с разных углов, в разном освещении и с разными выражениями лица. Нейросеть старается выделить общие черты лица , которые помогут ей распознавать человека на других изображениях. Однако, если в обучающей выборке были какие-то уникальные особенности этого человека, которые не были представлены в достаточном количестве, нейросеть может «запомнить» эти детали и использовать их для классификации в будущем. В таком случае, если мы визуализируем то, что “видит” нейросеть, на экране будет кусочек фотографии этих деталей в первоначальном виде, так как его значение было сохранено в весах и смещениях, а значит именно он будет наибольшим образом активировать “нейроны”, а не усредненное значение всех обучающих фотографий.

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

Каждый “нейрон” передает свое выходное значение следующему, который делает свой вывод, уже основываясь на выходе предыдущего. Например, если бы целью нашей нейросети было сделать вывод о том, стоит ли строить отель в определенном месте, то следующий нейрон использовал бы информацию о примерной цене за ночь в отеле, чтобы сделать свой вывод о рентабельности отеля. “Нейроны” объединяются в группы , которые анализируют какие-то конкретные характеристики , а группы “нейронов” — в слои, каждый из которых выполняет определенную задачу в процессе обработки информации. В нейросетях существует три основных типа слоев:

Нейросети состоят из связанных узлов, иногда называемых “нейроны” (в англоязычной литературе часто используется термин nodes). Эти “нейроны” служат фундаментальными вычислительными единицами , которые обрабатывают и передают информацию по всей нейросети. Подобно биологическим нейронам в нашем мозге, искусственные “нейроны” работают совместно для решения сложных задач. Давайте разберем их работу на примере.

Процесс визуализации признаков начинается со случайного изображения или шума, которое затем подвергается оптимизации, чтобы максимизировать активацию конкретного “нейрона” или группы “нейронов” в определенном слое нейросети. Это достигается путем изменения пикселей изображения таким образом, чтобы они максимально активировали выбранные “нейроны”.

Чтобы визуализировать, что «видит» нейросеть, на какие вещи она обращает внимание, можно использовать технику, называемую визуализацией признаков (feature visualization) . Эта техника позволяет воссоздать изображения, которые максимально активируют определенные нейроны в нейросети.

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

Это давняя шутка: большинство детей считает, что произведение про кладбища и восставших мертвецов. Но когда приходит время, школьник узнает, что готические произведения русских авторов не дошли до школьной программы, русская классика намного более суровое дело, чем какие-то там милые зомби, буа-га-га! Но нейросетка, благослови Боже все ее формулы, возвращает нам тот детский восторженный ужас перед названием!

Кстати, это не единственный раз, когда нейросетка сделала из названия компьютерную игру. Кстати, вот бы во что сыграть. «Девушка, вы из живых или мертвых? Как вас зовут?» — «Я пока не определилась и зовут меня Коробочка!»

Два последних варианта меня дико радуют, так как напоминают попытку нейросетки сделать свою вариацию шкатулку Лемаршана из «Восставших из ада», потерявшуюся в закромах Плюшкина.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь