Как нейросеть распознает картинки

0
16

30 нейросетей для работы с изображениями и видео

Text-to-video от Google

Часто также выделяют отдельно сверточные слои (convolution layers): Когда фотография проходит через сверточный слой, происходит что-то похожее на сканирование изображения. Нейросеть на этом слое ищет определенные узоры или фигуры, например, края, углы, или текстуры, которые помогают понять, что на картинке изображено. После сверточного слоя фотография разбивается на кусочки из найденных объектов, которые будут меньше размером и их легче будет анализировать.

Сверточная НС имеет специальную архитектуру, которая позволяет ей максимально эффективно распознавать образы. Сама идея СНС основывается на чередовании сверточных и субдискретизирующих слоев (pooling), а структура является однонаправленной. СНС получила свое название от операции свертки, которая предполагает, что каждый фрагмент изображения будет умножен на ядро свертки поэлементно, при этом полученный результат должен суммироваться и записаться в похожую позицию выходного изображения. Такая архитектура обеспечивает инвариантность распознавания относительно сдвига объекта, постепенно укрупняя «окно», на которое «смотрит» свёртка, выявляя всё более и более крупные структуры и паттерны в изображении.

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

Семантическое редактирование изображений с помощью EditGAN от NVIDIA. Можно добавлять области редактирования на изображение и прописывать то, что в этих областях должно находиться (например можно добавить номер на машину или нарисовать птицу с помощью только этих областей). Качество лучше чем у предыдущих методов, но это и понятно, иначе никто бы публиковать подобное не стал.

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

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

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

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

Погружение вглубь нейросети

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

Результаты исследования показали, что детекторы и мапперы лиц, натренированные на синтетических людях показывают практически те же результаты, что и state of the art модели, которые обучались на реальных данных. И вот таким щелчком пальцев можно избавиться от предвзятости нейронных сетей из-за несбалансированного датасета и проблем с этикой.

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

ЧИТАТЬ ТАКЖЕ:  Искусственный интеллект автор кто

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

Google теперь умеет генерировать небольшие видео по входному тексту, при этом сохраняя временную когерентность (то есть кадры переходят друг в друга очень плавно). Правда ИИ с небольшим «костылём», если так вообще можно сказать. Сначала генерируется видео в очень плохом разрешении, а затем с помощью апскейлинга дотягивается до 720p.

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

Важно при обучении научить сеть определять не только достаточное количество и значения признаков, чтобы выдавать хорошую точность на новых изображениях, но и не переобучиться, то есть, излишне не «подстроиться» под обучающую выборку из изображений. После завершения правильного обучения НС должна уметь определять образы (тех же классов), с которыми она не имела дела в процессе обучения.

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

Генерация реалистичных несуществующих людей

Обзор самой новой техники редактирования видео в реальном времени с помощью GAN. Можно приделать себе усы, которые будут весьма натурально шевелиться и перемещаться вместе с вашим лицом (зачем это вам, мы не знаем). Причём редактировать можно не только человеческие лица, а любую отмеченную зону. Ссылка на Google Collab, чтобы провести свои эксперименты прилагается.

InfiniteNature-Zero от Google AI, это улучшенная версия предыдущего метода по генерации изображения «вглубь». На этот раз, для обучения ему нужны только фотографии (а не видеоряд), плюс результаты сильно качественнее и контроль за «полётом вглубь» лучше (можно, например, поворачивать).

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

Google, в дополнение к уже существующим DALLE-2 и StableFusion, добавили ИИ под названием DreamFusion, который умеет по тексту генерировать 3D модели. И не просто 3D модели, их сразу можно использовать в качестве ассетов для игр/видео/куда там ещё можно эту модель запихнуть.

Новый ИИ от Google под названием Muse умеет изменять части изображений, но теперь вам даже не надо рисовать слой-маску, под которым надо что-то менять. Дали изначальное изображение, написали конечный результат (который должен хоть частично напоминать стартовую точку) и получаем изначальную композицию с изменёнными деталями.

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

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

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