120 практических задач

на главную

Жанры

Поделиться:
Шрифт:

1. Построение простой полносвязной нейронной сети для классификации

Задача: Классификация изображений рукописных цифр (MNIST).

Для построения простой полносвязной нейронной сети для классификации изображений рукописных цифр из набора данных MNIST можно использовать библиотеку TensorFlow и Keras.

```

Полносвязные нейронные сети, также известные как многослойные перцептроны (MLP), представляют

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

Для задачи классификации изображений рукописных цифр из набора данных MNIST используется полносвязная нейронная сеть. Датасет MNIST состоит из 60,000 обучающих и 10,000 тестовых изображений размером 28x28 пикселей, представляющих цифры от 0 до 9. Архитектура сети включает входной слой, преобразующий каждое изображение в одномерный массив длиной 784, один или несколько скрытых слоев с функцией активации ReLU для моделирования сложных зависимостей, и выходной слой с 10 нейронами, использующими функцию softmax для получения вероятностей классов.

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

Основные элементы модели включают полносвязные слои (Dense Layer), активационные функции (например, ReLU и softmax), функцию потерь (например, sparse_categorical_crossentropy) и оптимизатор (например, Adam). Полносвязные нейронные сети эффективны для задач классификации благодаря своей способности учиться на данных и выявлять сложные паттерны. В случае с MNIST, целью является обучение модели распознавать рукописные цифры, что достигается путем обучения на большом количестве примеров и корректировки весов нейронов для минимизации ошибки.

Код

```python

import tensorflow as tf

from tensorflow.keras import layers, models

import numpy as np

import matplotlib.pyplot as plt

# Загрузка и предобработка данных

(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data

train_images = train_images / 255.0

test_images = test_images / 255.0

train_images = train_images.reshape((60000, 28 * 28))

test_images = test_images.reshape((10000, 28 * 28))

# Создание модели

model = models.Sequential

model.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))

model.add(layers.Dense(10, activation='softmax'))

# Компиляция модели

model.compile(optimizer='adam',

loss='sparse_categorical_crossentropy',

metrics=['accuracy'])

# Обучение модели

model.fit(train_images, train_labels, epochs=5, batch_size=128)

# Оценка модели

test_loss, test_acc = model.evaluate(test_images, test_labels)

print(f"Точность на тестовых данных: {test_acc}")

# Использование модели для предсказаний

predictions = model.predict(test_images)

print(np.argmax(predictions[0]))

```

Дополнительные шаги для улучшения модели и анализа результатов

Визуализация результатов

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

```python

import matplotlib.pyplot as plt

# Визуализация нескольких изображений из тестового набора и предсказаний модели

def plot_image_predictions(images, labels, predictions, num_images=10):

plt.figure(figsize=(10, 10))

for i in range(num_images):

plt.subplot(5, 2, i + 1)

plt.xticks([])

plt.yticks([])

plt.grid(False)

plt.imshow(images[i].reshape(28, 28), cmap=plt.cm.binary)

plt.xlabel(f"True: {labels[i]}, Pred: {np.argmax(predictions[i])}")

plt.show

plot_image_predictions(test_images, test_labels, predictions)

```

Изучение влияния различных параметров

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

1. Изменение количества нейронов:

```python

# Скрытый слой с 256 нейронами

model = models.Sequential

model.add(layers.Dense(256, activation='relu', input_shape=(28 * 28,)))

model.add(layers.Dense(10, activation='softmax'))

model.compile(optimizer='adam',

loss='sparse_categorical_crossentropy',

metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=5, batch_size=128)

test_loss, test_acc = model.evaluate(test_images, test_labels)

print(f"Точность на тестовых данных с 256 нейронами: {test_acc}")

```

2. Использование другой функции активации:

Комментарии:
Популярные книги

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Вечный. Книга III

Рокотов Алексей
3. Вечный
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга III

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Уязвимость

Рам Янка
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Уязвимость

Темный Патриарх Светлого Рода 5

Лисицин Евгений
5. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 5

Иван Московский. Том 5. Злой лев

Ланцов Михаил Алексеевич
5. Иван Московский
Фантастика:
попаданцы
альтернативная история
6.20
рейтинг книги
Иван Московский. Том 5. Злой лев

Идеальный мир для Лекаря 18

Сапфир Олег
18. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 18

Сумеречный стрелок 7

Карелин Сергей Витальевич
7. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок 7

Курсант: Назад в СССР 7

Дамиров Рафаэль
7. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 7

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Хозяйка старой усадьбы

Скор Элен
Любовные романы:
любовно-фантастические романы
8.07
рейтинг книги
Хозяйка старой усадьбы

Назад в СССР: 1985 Книга 4

Гаусс Максим
4. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Назад в СССР: 1985 Книга 4

Лорд Системы 8

Токсик Саша
8. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 8