Нейросети. Основы. Дэвид Рид

Чтение книги онлайн.

Читать онлайн книгу Нейросети. Основы - Дэвид Рид страница 16

Автор:
Жанр:
Серия:
Издательство:
Нейросети. Основы - Дэвид Рид

Скачать книгу

нейронных сетей и других сложных моделей это означает вычисление частных производных функции потерь по всем параметрам модели. Градиент представляет собой вектор, каждая компонента которого показывает, как функция потерь изменится при изменении соответствующего параметра. Вычисление градиента – это важный этап, который определяет, насколько и в каком направлении должны быть изменены параметры, чтобы уменьшить ошибку модели.

      3. Обновление параметров

      После вычисления градиента параметры модели обновляются в направлении, противоположном градиенту. Это означает, что параметры изменяются так, чтобы уменьшить значение функции потерь. Шаг обновления определяется как произведение градиента и скорости обучения – гиперпараметра, который контролирует размер шага. Маленькая скорость обучения может привести к медленному обучению, в то время как слишком большая скорость обучения может вызвать нестабильность и неудачу в нахождении оптимального решения. Обновление параметров повторяется многократно до тех пор, пока функция потерь не будет минимизирована до приемлемого уровня или до достижения заранее заданного числа итераций. Такой подход позволяет модели постепенно улучшать свои предсказания и уменьшать ошибку на каждом шаге.

      Пример работы градиентного спуска

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

      1. Инициализация параметров: Мы начинаем с случайных значений для наклона и смещения линии.

      2. Вычисление градиента: Мы рассчитываем, как изменить наклон и смещение, чтобы уменьшить среднеквадратичную ошибку (разность между реальными значениями и предсказанными значениями на линии).

      3. Обновление параметров: Мы корректируем наклон и смещение в направлении, которое уменьшает ошибку.

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

      Давайте рассмотрим пример использования градиентного спуска для задачи линейной регрессии с Python. В этом примере мы будем использовать простую линейную регрессию для нахождения линии, которая наилучшим образом приближает набор точек.

      Пример кода

      ```python

      import numpy as np

      import matplotlib.pyplot as plt

      # Генерация данных для примера

      np.random.seed(42)

      X = 2 * np.random.rand(100, 1)

      y = 4 + 3 * X + np.random.randn(100, 1)

      # Инициализация параметров

      theta = np.random.randn(2, 1)

      # Добавление столбца единиц к X (для смещения)

      X_b = np.c_[np.ones((100, 1)), X]

      # Параметры градиентного спуска

      learning_rate = 0.1

      n_iterations

Скачать книгу