Найти тему
Julia Create

Нейросети: принцип работы. Просто о сложном

Человек прикасается к искусственному интеллекту
Человек прикасается к искусственному интеллекту

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

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

Так рисует клетку нейрона нейросеть
Так рисует клетку нейрона нейросеть

Электронные искусственные нейросети работают похоже. Только вся их работа построена на математических формулах и вычислениях. В качестве аксона (клетки-хранительницы информации) используется ячейка, которая хранит в себе определенные значения. А импульсы - это математические формулы и числа.

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

Работа нейросетей глазами нейросети
Работа нейросетей глазами нейросети

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

Однако, насколько бы тренированной не была нейросеть, она никогда не даст вам результат со 100% точностью. Всегда есть возможность ошибки.

Голосовой помощник Алиса от Яндекс в человеческом обличии по мнению нейросети. Алиса - тоже обучаемая нейросеть)
Голосовой помощник Алиса от Яндекс в человеческом обличии по мнению нейросети. Алиса - тоже обучаемая нейросеть)

Как работают нейросети для генерации изображений? Нужно сказать, что изначально разрабатывались текстовые нейросети, по типу ChatGPT, которые анализировали большое количество текстовой информации и выдавали уникальный текст. Потом люди решили, что неплохо было бы к тексту добавлять и картинку, ведь тексты всегда интереснее читать, если там есть изображения или фотографии. Здорово было бы, чтобы нейросеть умела созавать и изображения под текст. Так появилась идея создания нейросетей по типу text to image (из текста в изображение).

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

Большинство нейросетей для генерации изображений по методу text to image (из текста в изображение) тренируются на определенной, очень большой, но все же ограниченной выборке изображений. Именно поэтому нейросети не умеют рисовать конкретных людей - меня или вас, или соседа из третьего подъезда. Исключение - всемирно известные личности: актеры, политики, музыканты, футболисты и т.д. К слову, если попросите нейросеть нарисовать русского актера, то скорее всего она вряд ли вас поймет и справится с задачей. Она обучалась лишь на иностранных публичных личностях.

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

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

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

Человек и искусственный интеллект
Человек и искусственный интеллект

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

PPS: все изображения, использованные в статье, сгенерированы лично мной в нейросети Stable Diffusion. Они абсолютно уникальны и неповторимы.