"Машинное обучение"

Как построить и обучить вашу первую нейронную сеть

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

  1. "Тензор"
  2. Тензорные операции
  3. Дифференциация
  4. Градиентный спуск t

Обязательно ознакомьтесь с этими темами, чтобы лучше понять концепцию.

Что такое нейронная сеть?

Нейронные сети - это набор алгоритмов, используемых для распознавания закономерностей в неструктурированных данных. Эти нейронные сети пытаются имитировать человеческий мозг, поскольку они созданы по образцу человеческого мозга.

Типы нейронных сетей:

  1. Искусственные нейронные сети (ИНС)
  2. Сверточные нейронные сети (CNN)
  3. Рекуррентные нейронные сети (RNN)

Преимущества нейронных сетей:

  1. Они могут учиться, давая данные о поездах, и легко находить сходства.
  2. Даже если нейрон не отвечает, ему все равно удастся получить результат.
  3. Параллельные процессы могут выполняться, не влияя на общую производительность.

Приложения нейронных сетей:

  1. Обработка изображений
  2. Распознавание речи
  3. предсказание закономерностей
  4. Кластеризация и т. Д.

Новичку будет довольно легко понять, что такое ИНС. Итак, я больше сконцентрируюсь на ИНС.

Что такое искусственная нейронная сеть?

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

Давайте посмотрим на простую ИНС.

ИНС состоит из трех основных слоев: входного, скрытого и выходного. В основном ANN решает проблемы, связанные с изображениями, текстом и табличными данными.

Работа ИНС

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

Прежде чем мы погрузимся глубже. Давайте посмотрим на одно из практических применений.

Я собираюсь использовать образец данных цифр MNIST, чтобы объяснить ANN. Мы собираемся классифицировать изображения по 10 категориям с помощью ИНС.

Шаг 1. Импортируйте все необходимые библиотеки

Вы можете найти процедуру установки Keras по следующей ссылке.

Шаг 2. Загрузка набора данных MNIST

Набор данных MNIST предварительно загружен в Keras в виде массивов Numpy.

Набор данных разделен на тестовые и обучающие наборы.

Один раз взгляните на поезд и проверьте набор данных.

Шаг 3: Создание нейронной сети

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

Что означает активация?

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

5 основных типов функций активации:

  1. Relu
  2. Сигмовидная
  3. Софтмакс
  4. Линейный

Шаг 4: Сетевая компиляция

Функция компиляции принимает три аргумента: оптимизатор, потери и метрики.

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

Шаг 5: изменение формы входных данных

Мы должны предварительно обработать данные путем изменения формы и масштабирования, чтобы значения были от 0 до 1.

Исходная форма данных - (60000, 28, 28) типа unit 8. Мы должны преобразовать его в (10000, 28 * 28) типа float.

Шаг 6: подготовка этикеток

Метки test и train преобразуются в категориальные значения.

Шаг 7: Обучение модели

Функция подбора принимает в качестве аргументов обучающие изображения, обучающие метки, эпохи и размер пакета.

Эпохи: функция подбора принимает в качестве аргументов обучающие изображения, обучающие метки, эпохи и размер пакета.

Чтобы проверить точность сети на тестовых данных, используйте эту строку кода .

test_loss, test_acc = network.evaluate(test_images, test_labels)
print('test_acc:', test_acc)

Точность теста составляет около 98,9 процента.

Шаг 8: Сохраните вашу модель

network.save("model.h5")

Вы можете повторно использовать свою модель после ее сохранения. Вам не нужно обучать модель с самого начала.

Шаг 9: Как загрузить модель

from keras.models import load_model
# load model
model = load_model('model.h5')

После загрузки модели это тот же процесс, что и на шаге 7.

Заключение:

Надеюсь, вы поняли основы и немного разобрались в нейронных сетях. Спасибо, что дочитали до конца, ждите новых интересных статей.

Пожалуйста, не забывайте хлопать и следовать.