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

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

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Возвращение демонического мастера. Книга 8

Findroid
8. Вселенная Вечности
Фантастика:
уся
фэнтези
сянься
5.00
рейтинг книги
Возвращение демонического мастера. Книга 8

Первый среди равных. Книга II

Бор Жорж
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга II

Наследник и новый Новосиб

Тарс Элиан
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник и новый Новосиб

Наследник павшего дома. Том IV

Вайс Александр
4. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том IV

Калибр Личности 5

Голд Джон
5. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 5

Лэрн. На улицах

Кронос Александр
1. Лэрн
Фантастика:
фэнтези
5.40
рейтинг книги
Лэрн. На улицах

Господин следователь. Книга 4

Шалашов Евгений Васильевич
4. Господин следователь
Детективы:
исторические детективы
5.00
рейтинг книги
Господин следователь. Книга 4

Идеальный мир для Демонолога 2

Сапфир Олег
2. Демонолог
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Демонолога 2

Барон Дубов

Карелин Сергей Витальевич
1. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов

Третий. Том 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 3

Кротовский, не начинайте

Парсиев Дмитрий
2. РОС: Изнанка Империи
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Кротовский, не начинайте