UX / UI Design / Как работают нейросети в 2023 году: объясняем на бананах

Как работают нейросети в 2023 году: объясняем на бананах

«Копирайтинг — всё», «дизайнеров заменит новая версия ChatGPT» — доносится из каждого второго Telegram-канала и с новостных сайтов. И пусть на самом деле нейросетям далеко до полной замены человека, они действительно очень быстро развиваются.

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

Сегодня мы поговорим о том, как устроены нейросети на самом простом примере — генерации изображений.

Принцип работы нейросети

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

Представим, что мы создали нейросеть, которая определяет бананы на изображении. Сначала нейросеть спросит себя: «Какого цвета объект?». Этот вопрос будет узлом сети. Ответы на этот вопрос — цвета объектов — являются связями между узлами. Если цвет предполагаемого банана — желтый, зеленый или коричневый, то объект с большей вероятностью будет отмечен как «банан».

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

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

image3.png «Желтая», «зеленая» и «коричневая» связи имеют больший вес при определении банана

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

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

Порядок обучения нейросети

Чтобы понять, как все устроено в сложных узлах и связях нейросетей, посмотрим на простой пример с яблоками и бананами.

Шаг 1. Ввод данных. Подаем нашей гипотетической нейросети набор изображений яблок и бананов. Задача нейросети — находить бананы, поэтому на этом этапе мы «скажем» ей, какие картинки с бананами. Нейронная сеть использует полученные данные, чтобы составить прогноз.

Шаг 2. Распространение. Программа, зная, что перед ней картинка с меткой «банан», собирает параметры, почему пользователь дал такую метку этой картинке. Нейросеть начинает прогонять картинку по своим узлам. Сначала веса у связей нет, поэтому первые картинки проходят алгоритм обучения случайным образом.

image2.png Нейросеть сравнивает два помеченных изображения банана и ищет у них общие черты. Так она пытается понять, почему пользователь пометил картинку как «банан»

Узел нейросети будто спрашивает: «Этот предмет желтый?» И первые картинки летят в разные стороны случайным образом. Одни помечаются как желтые, а некоторые — как не желтые, хотя желтый цвет на изображении может и присутствовать.

Шаг 3. Подсчет ошибок. На этом этапе нейросеть сравнивает спрогнозированный результат с фактическим по меткам каждого изображения. Так она подсчитывает ошибки.

То есть все те изображения бананов, которые на этапе определения цвета были отмечены как «не желтые», помечаются как ошибочные, и связь «бананы — желтые» получает больший вес.

Шаг 4. Обратное распространение. Значения ошибок используются для настройки веса искусственных нейронов в сети. Сначала рассчитывается ошибка между прогнозируемым и фактическим выходом. Затем эта ошибка распространяется назад по сети.

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

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

Шаг 5. Распределение веса. Вес нейронов распределяется так, чтобы минимизировать значение потерь при подсчете ошибок. Например, картинки желтого цвета с большей вероятностью будут «бананами».

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

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

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

Уже сейчас нейросеть — это мощный инструмент во многих областях: маркетинге (привет, Coca-Cola), дизайне, программировании и многих других. Даже эта статья на 70% написана нейросетью, но мы сделали ее более понятной. Надеемся, мы помогли вам разобраться в принципах работы нейросети.

Подписывайтесь на наш Telegram-канал, чтобы не пропустить другие наши статьи.