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

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

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

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Как притвориться идеальным мужчиной

Арсентьева Александра
Дом и Семья:
образовательная литература
5.17
рейтинг книги
Как притвориться идеальным мужчиной

Тот самый сантехник. Трилогия

Мазур Степан Александрович
Тот самый сантехник
Приключения:
прочие приключения
5.00
рейтинг книги
Тот самый сантехник. Трилогия

Третий. Том 4

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

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Дочь Хранителя

Шевченко Ирина
1. Легенды Сопределья
Фантастика:
фэнтези
9.09
рейтинг книги
Дочь Хранителя

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Измена. Тайный наследник

Лаврова Алиса
1. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник

Он тебя не любит(?)

Тоцка Тала
Любовные романы:
современные любовные романы
7.46
рейтинг книги
Он тебя не любит(?)

Брачный сезон. Сирота

Свободина Виктория
Любовные романы:
любовно-фантастические романы
7.89
рейтинг книги
Брачный сезон. Сирота

Английский язык с У. С. Моэмом. Театр

Франк Илья
Научно-образовательная:
языкознание
5.00
рейтинг книги
Английский язык с У. С. Моэмом. Театр

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

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

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