Добавить в корзинуПозвонить
Найти в Дзене

Урок 7. Генеративные нейросети (GAN): создание изображений и видео с помощью ИИ

Цель урока: • Понять, как работают генеративные состязательные сети (GAN). • Разобраться в структуре GAN: генератор и дискриминатор. • Научиться генерировать изображения с помощью нейросетей. Что такое генеративные нейросети (GAN)? Генеративные состязательные сети (Generative Adversarial Networks, GAN) – это нейросетевой метод, который позволяет ИИ создавать новые данные, похожие на реальные. Например, GAN могут: ✅ Генерировать фотореалистичные изображения людей, которых не существует. ✅ Создавать новые стили живописи. ✅ Улучшать качество изображений и видео. ✅ Делать Deepfake-видео. ✅ Восстанавливать повреждённые фотографии. GAN состоят из двух нейросетей, которые “соревнуются” друг с другом: 1. Генератор (Generator) – создаёт новые изображения. 2. Дискриминатор (Discriminator) – пытается определить, настоящее изображение или подделка. Генератор стремится обмануть дискриминатор, а дискриминатор учится лучше различать подделки. В процессе тренировки GAN обе сети становятся в

Цель урока:

• Понять, как работают генеративные состязательные сети (GAN).

• Разобраться в структуре GAN: генератор и дискриминатор.

• Научиться генерировать изображения с помощью нейросетей.

Что такое генеративные нейросети (GAN)?

Генеративные состязательные сети (Generative Adversarial Networks, GAN) – это нейросетевой метод, который позволяет ИИ создавать новые данные, похожие на реальные. Например, GAN могут:

✅ Генерировать фотореалистичные изображения людей, которых не существует.

✅ Создавать новые стили живописи.

✅ Улучшать качество изображений и видео.

✅ Делать Deepfake-видео.

✅ Восстанавливать повреждённые фотографии.

GAN состоят из двух нейросетей, которые “соревнуются” друг с другом:

1. Генератор (Generator) – создаёт новые изображения.

2. Дискриминатор (Discriminator) – пытается определить, настоящее изображение или подделка.

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

Как работают GAN?

1. Генератор создаёт случайное изображение из шума.

2. Дискриминатор проверяет, настоящее это изображение или поддельное.

3. Если дискриминатор узнаёт подделку – генератор получает штраф.

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

5. После многих итераций GAN начинает генерировать очень реалистичные изображения.

Пример кода: создание изображений с помощью GAN

Для примера мы создадим GAN, который генерирует рукописные цифры (набор данных MNIST).

1. Установка библиотек

pip install tensorflow numpy matplotlib

2. Код GAN для генерации изображений цифр

import tensorflow as tf

from tensorflow.keras import layers

import numpy as np

import matplotlib.pyplot as plt

# Функция для создания генератора

def build_generator():

  model = tf.keras.Sequential([

    layers.Dense(128, activation='relu', input_shape=(100,)),

    layers.Dense(256, activation='relu'),

    layers.Dense(28 * 28, activation='sigmoid'),

    layers.Reshape((28, 28))

  ])

  return model

# Функция для создания дискриминатора

def build_discriminator():

  model = tf.keras.Sequential([

    layers.Flatten(input_shape=(28, 28)),

    layers.Dense(256, activation='relu'),

    layers.Dense(128, activation='relu'),

    layers.Dense(1, activation='sigmoid')

  ])

  return model

# Создаём генератор и дискриминатор

generator = build_generator()

discriminator = build_discriminator()

# Компилируем дискриминатор

discriminator.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# Генерируем случайный шум (вход для генератора)

random_noise = np.random.normal(0, 1, (1, 100))

# Генерируем изображение

generated_image = generator.predict(random_noise)

# Выводим результат

plt.imshow(generated_image[0], cmap='gray')

plt.show()

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

Применение GAN в реальной жизни

Создание реалистичных лиц – сайты вроде This Person Does Not Exist используют GAN для создания несуществующих людей.

Улучшение качества изображений – GAN могут делать из пиксельных изображений HD-версии (суперразрешение).

Генерация анимаций и видеороликов – можно создать реалистичные анимации или сделать Deepfake-видео.

Создание новых стилей живописи – GAN могут превращать фотографии в картины в стиле Ван Гога.

Восстановление повреждённых фотографий – GAN способны дорисовывать отсутствующие части изображений.

Заключение:

Сегодня ты узнал, как работают генеративные нейросети (GAN). Мы разобрали:

• Как генератор и дискриминатор учатся создавать реалистичные изображения.

• Как написать простую GAN-модель для генерации цифр.

• Где используются GAN в реальной жизни.

Домашнее задание:

1. Попробуй изменить параметры генератора (например, увеличить количество слоёв) и посмотри, как это повлияет на качество изображений.

2. Изучи работу современных GAN-моделей, таких как StyleGAN или BigGAN.

3. Попробуй загрузить свой набор изображений и обучить GAN на них (например, генерировать мультяшные лица).

В следующем уроке мы разберём глубокие фейковые видео (Deepfake) и научимся работать с ними