ПочатиПочніть безкоштовно

Небезпеки локальних мінімумів

Розгляньте графік такої функції втрат loss_function(), яка має глобальний мінімум (позначений точкою праворуч) і кілька локальних мінімумів, зокрема один позначений точкою ліворуч.

Графік одновимірної функції з кількома локальними мінімумами та глобальним мінімумом.

У цій вправі ви спробуєте знайти глобальний мінімум loss_function() за допомогою keras.optimizers.SGD(). Ви зробите це двічі, щоразу з іншим початковим значенням вхідного аргументу loss_function(). Спершу ви використаєте x_1 — змінну з початковим значенням 6.0. Потім ви використаєте x_2 — змінну з початковим значенням 0.3. Зауважте, що loss_function() уже визначена і доступна.

Ця вправа є частиною курсу

Вступ до TensorFlow на Python

Переглянути курс

Інструкції до вправи

  • Задайте opt як оптимізатор стохастичного градієнтного спуску (SGD) зі швидкістю навчання 0.01.
  • Виконайте мінімізацію, використовуючи функцію втрат loss_function() і змінну з початковим значенням 6.0, x_1.
  • Виконайте мінімізацію, використовуючи функцію втрат loss_function() і змінну з початковим значенням 0.3, x_2.
  • Виведіть x_1 і x_2 як масиви numpy та перевірте, чи відрізняються значення. Це ті мінімуми, які визначив алгоритм.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Initialize x_1 and x_2
x_1 = Variable(6.0,float32)
x_2 = Variable(0.3,float32)

# Define the optimization operation
opt = keras.optimizers.____(learning_rate=____)

for j in range(100):
	# Perform minimization using the loss function and x_1
	opt.minimize(lambda: loss_function(____), var_list=[____])
	# Perform minimization using the loss function and x_2
	opt.minimize(lambda: ____, var_list=[____])

# Print x_1 and x_2 as numpy arrays
print(____.numpy(), ____.numpy())
Редагувати та запускати код