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. Использование другой функции активации:

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

Черный дембель. Часть 3

Федин Андрей Анатольевич
3. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 3

Генерал-адмирал. Тетралогия

Злотников Роман Валерьевич
Генерал-адмирал
Фантастика:
альтернативная история
8.71
рейтинг книги
Генерал-адмирал. Тетралогия

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри

Очкарик 3

Афанасьев Семён
3. Очкарик
Фантастика:
фэнтези
5.75
рейтинг книги
Очкарик 3

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

Воронцова Александра
5. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка забытой усадьбы

Лейб-хирург

Дроздов Анатолий Федорович
2. Зауряд-врач
Фантастика:
альтернативная история
7.34
рейтинг книги
Лейб-хирург

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит

Бастард

Майерс Александр
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

И только смерть разлучит нас

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
И только смерть разлучит нас

Имя нам Легион. Том 11

Дорничев Дмитрий
11. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 11