"Машинное обучение"
Как построить и обучить вашу первую нейронную сеть
Прежде чем мы углубимся в процесс построения нейронной сети, вам нужно знать несколько предварительных условий.
Обязательно ознакомьтесь с этими темами, чтобы лучше понять концепцию.
Что такое нейронная сеть?
Нейронные сети - это набор алгоритмов, используемых для распознавания закономерностей в неструктурированных данных. Эти нейронные сети пытаются имитировать человеческий мозг, поскольку они созданы по образцу человеческого мозга.
Типы нейронных сетей:
- Искусственные нейронные сети (ИНС)
- Сверточные нейронные сети (CNN)
- Рекуррентные нейронные сети (RNN)
Преимущества нейронных сетей:
- Они могут учиться, давая данные о поездах, и легко находить сходства.
- Даже если нейрон не отвечает, ему все равно удастся получить результат.
- Параллельные процессы могут выполняться, не влияя на общую производительность.
Приложения нейронных сетей:
- Обработка изображений
- Распознавание речи
- предсказание закономерностей
- Кластеризация и т. Д.
Новичку будет довольно легко понять, что такое ИНС. Итак, я больше сконцентрируюсь на ИНС.
Что такое искусственная нейронная сеть?
Это простейшие формы нейронных сетей. Информация передается только в одном направлении с помощью входных узлов, пока не попадет на выход. Этот тип нейронной сети также называется нейтральной сетью прямого распространения.
Давайте посмотрим на простую ИНС.
ИНС состоит из трех основных слоев: входного, скрытого и выходного. В основном ANN решает проблемы, связанные с изображениями, текстом и табличными данными.
Работа ИНС
Входной слой получает информацию извне и проходит через два или более скрытых слоя. Эти скрытые слои преобразуют входные данные в выходные.
Прежде чем мы погрузимся глубже. Давайте посмотрим на одно из практических применений.
Я собираюсь использовать образец данных цифр MNIST, чтобы объяснить ANN. Мы собираемся классифицировать изображения по 10 категориям с помощью ИНС.
Шаг 1. Импортируйте все необходимые библиотеки
Вы можете найти процедуру установки Keras по следующей ссылке.
Шаг 2. Загрузка набора данных MNIST
Набор данных MNIST предварительно загружен в Keras в виде массивов Numpy.
Набор данных разделен на тестовые и обучающие наборы.
Один раз взгляните на поезд и проверьте набор данных.
Шаг 3: Создание нейронной сети
Слои - самые важные строительные блоки нейронной сети. Вы можете думать о них как о фильтре данных. Взгляните на нашу сеть. У нас есть последовательность из двух плотно связанных слоев, которые полностью связаны. Последние слои - это 10-позиционный слой softmax, который возвращает массив из 10 оценок вероятности.
Что означает активация?
Это математические функции, которые определяют вывод нейронной сети. Они определяют результативность модели глубокого обучения, ее точность, а также вычислительную эффективность модели.
5 основных типов функций активации:
- Relu
- Сигмовидная
- Софтмакс
- Линейный
Шаг 4: Сетевая компиляция
Функция компиляции принимает три аргумента: оптимизатор, потери и метрики.
- Оптимизатор: это определенные алгоритмы, которые используются для изменения атрибутов нейронной сети, чтобы уменьшить коэффициент потерь.
- Потеря: используется для вычисления количества, которое модель должна стремиться минимизировать во время обучения.
- Показатели: используются для оценки эффективности модели.
Шаг 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.
Заключение:
Надеюсь, вы поняли основы и немного разобрались в нейронных сетях. Спасибо, что дочитали до конца, ждите новых интересных статей.
Пожалуйста, не забывайте хлопать и следовать.