НачатьНачать бесплатно

Многократное обновление весов

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

Для удобства в среду заранее загружена функция get_slope(), которая принимает аргументы input_data, target и weights. Также доступна функция get_mse(), которая принимает те же аргументы. Переменные input_data, target и weights тоже заранее загружены.

Эта сеть не имеет скрытых слоёв и передаёт данные напрямую от входного слоя (с 3 узлами) к выходному узлу. Обратите внимание, что weights — это одномерный массив.

Библиотека matplotlib.pyplot также уже загружена. После выполнения шагов градиентного спуска история ошибок будет отображена на графике.

Это упражнение является частью курса

Введение в глубокое обучение на Python

Посмотреть курс

Инструкции к упражнению

  • Используя цикл for для итеративного обновления весов:
    • Вычислите градиент с помощью функции get_slope().
    • Обновите веса, используя скорость обучения 0.01.
    • Вычислите среднеквадратическую ошибку (mse) для обновлённых весов с помощью функции get_mse().
    • Добавьте mse в mse_hist.
  • Нажмите «Отправить ответ», чтобы визуализировать mse_hist. Какую закономерность вы замечаете?

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

n_updates = 20
mse_hist = []

# Iterate over the number of updates
for i in range(n_updates):
    # Calculate the slope: slope
    slope = ____(____, ____, ____)
    
    # Update the weights: weights
    weights = ____ - ____ * ____
    
    # Calculate mse with new weights: mse
    mse = ____(____, ____, ____)
    
    # Append the mse to mse_hist
    ____

# Plot the mse history
plt.plot(mse_hist)
plt.xlabel('Iterations')
plt.ylabel('Mean Squared Error')
plt.show()
Редактировать и запускать код