– Нормализация данных: Min-Max нормализация применяется ко всем признакам, чтобы привести их к диапазону [0, 1]. Это улучшает процесс обучения, делая данные более однородными.
– Разделение данных: Данные разделяются на тренировочные и тестовые наборы в пропорции 70:30, чтобы обеспечить независимую проверку модели.
– Кросс-валидация: k-fold кросс-валидация (здесь с k=5) обеспечивает усреднённую оценку точности модели, разделяя данные на 5 подмножества и обучая модель на каждом из них, улучшая общую надёжность оценки.
Этот пример показывает, как преобразование и нормализация данных помогают подготовить данные для обучения модели, минимизируя влияние разных масштабов признаков и обеспечивая чистоту данных. Разделение на тренировочные и тестовые наборы и применение кросс-валидации улучшают оценку модели, помогая избежать переобучения и получая более объективные метрики производительности.
Обратное распространение ошибки (backpropagation) – это алгоритм обучения нейронных сетей, который использует градиентный спуск для минимизации ошибки. Главная цель обратного распространения состоит в том, чтобы адаптировать веса сети так, чтобы минимизировать разницу между фактическими и ожидаемыми результатами. Ключевое преимущество метода в том, что он позволяет вычислить градиенты весов во всей сети, даже если она многослойная и содержит скрытые слои.
Принцип работы обратного распространения основан на вычислении производной функции ошибки относительно каждого веса сети. Этот процесс начинается с выходного слоя, где оценивается текущая ошибка сети, а затем происходит обратное распространение к предыдущим слоям с учетом цепного правила дифференцирования.
Шаги обратного распространения: от выходного к входному слою
Вычисление ошибки на выходном слое
Чтобы улучшить работу нейронной сети, на первом шаге мы оцениваем, насколько её предсказания отличаются от реальных значений. Эта оценка выражается через ошибку – разницу между тем, что сеть предсказала, и тем, что должно было быть. Ошибка показывает, насколько сильно сеть "промахнулась", и даёт основу для последующей корректировки её параметров.
Как оценивается ошибка?
1. Для числовых прогнозов (например, предсказание стоимости, температуры и т.п.):
Используется метод, который особенно "чувствителен" к большим отклонениям – он усиливает влияние значительных ошибок, так что сеть быстрее начнёт "учиться" их исправлять. Например, если сеть сильно ошибается в предсказании цены, ошибка будет большой, а это заставит сеть сильнее корректировать свои параметры в нужную сторону.
2. Для задач классификации (например, когда нужно определить класс: "кошки" или "собаки"):
Здесь используется другая стратегия, которая сосредотачивается на точности вероятностей. Если сеть уверена, что перед ней "кошка", но это не так, ошибка будет очень большой, поскольку ошибка для уверенного прогноза наказывается сильнее, чем для "неуверенного". Это помогает быстрее адаптировать сеть к верным ответам в задачах классификации, где важна не только верность предсказания, но и уверенность в нём.
Процесс расчёта ошибки
На выходном слое сеть "узнаёт" о своей ошибке, сравнивая свои прогнозы с реальными значениями. Эта информация – численное значение ошибки – станет основой для последующих шагов. Она показывает, в каком направлении и насколько нужно изменить внутренние параметры сети, чтобы в будущем её предсказания стали ближе к реальным данным. Этот первый этап задаёт "курс" для корректировок на всех других слоях.
2. Вычисление градиентов на выходном слое