- •1. Множество. Функция. Скалярные и векторные функции.
- •2. Поле, пространство. Виды пространств.
- •3. Критические точки. Стационарные точки. Лемма Ферма. Связь оптимизации и поиска корня.
- •Вопрос 6. Чем выпуклая функция упрощает задачу оптимизации?
- •Вопрос 7. Если функция имеет одинаковые минимальные значения в двух точках, можно ли говорить о двух глобальных минимумах?
- •Вопрос 8. Как критерии максимума связаны с критериями минимума?
- •4. Градиент. Матрица Гессе. Ряд Тейлора.
- •5. Квадратичная форма. Квадратичная функция. Связь знакоопределенности и собственных чисел матрицы.
- •6. Квадратичная форма. Квадратичная функция. Критерии минимума (максимума) квадратичной формы.
- •7. Условия Вульфа. Их геометрическая интерпретация. Правило Армихо.
- •8. Метод дихотомии. Запрограммировать, показать работу на функциях.
- •9. Метод трехточечного деления. Запрограммировать, показать работу на функциях.
- •10. Метод золотого сечения. Запрограммировать, показать работу на функциях.
- •11. Метод Фибоначчи. Запрограммировать, показать работу на функциях.
- •12. Метод Ньютона одномерный. Запрограммировать, показать работу на функциях.
- •13. Метод секущих. Запрограммировать, показать работу на функциях.
- •14. Метод Мюллера. Запрограммировать, показать работу на функциях.
- •15. Метод обратной параболической интерполяции. Запрограммировать, показать работу на функциях.
- •16. Запрограммировать метод градиентного спуска. Показать его работу на функциях.
- •17. Запрограммировать метод наискорейшего спуска. Показать его работу на функциях.
- •19. Запрограммировать метод Ньютона многомерный. Показать его работу на функциях.
- •20. Запрограммировать метод Левенберга-Марквардта. Показать его работу на функциях.
- •21. Запрограммировать метод Нестерова-Немировского. Показать его работу на функциях.
- •22. Запрограммировать метод Барзилая-Борвейна 1. Показать его работу на функциях.
- •23. Запрограммировать метод Барзилая-Борвейна 2. Показать его работу на функциях.
- •28. Запрограммировать метод Армихо. Показать его работу на функциях.
- •29. Запрограммировать метод dfp. Показать его работу на функциях.
- •30. Запрограммировать метод bfgs. Показать его работу на функциях.
- •31. Запрограммировать метод l- bfgs. Показать его работу на функциях.
- •32. Запрограммировать метод доверительных областей. Показать его работу на функциях.
20. Запрограммировать метод Левенберга-Марквардта. Показать его работу на функциях.
def H(x0, tol, df):
n = len(x0)
H0 = np.zeros((n, n))
delta = 0.1 * tol
for j in range(n):
e = np.zeros_like(x0)
e[j] = 1
g_plus = df(x0 + delta * e)
g_minus = df(x0 - delta * e)
H0[:, j] = (g_plus - g_minus) / (2 * delta)
return H0
def LM_search(f, df, x0, eps=1e-6, delta=1e-6, alpha0=0.01, v=5):
kmax = 1000
xk = x0.copy()
alpha = alpha0
coords = [xk.copy()]
neval = 0
for k in range(kmax):
gk = df(xk)
neval += 1
if norm(gk) < eps:
break
Hk = H(xk, eps, df)
neval += 2 * len(xk)
A = Hk + alpha * np.eye(len(xk))
dx = solve(A, gk)
x_new = xk - dx
if f(x_new) < f(xk):
xk = x_new
alpha = alpha / v
coords.append(xk.copy())
else:
alpha = alpha * v
if norm(dx) < delta:
break
xmin = xk
fmin = f(xmin)
return [xmin, fmin, neval, coords]
1. Какую идею реализует метод Левенберга–Марквардта?
Ответ:
Метод плавно объединяет метод Ньютона и метод градиентного спуска с помощью параметра регуляризации αₖ.
2. Как выглядит итерационная формула метода?
3. Как интерпретировать параметр αₖ?
Ответ:
αₖ определяет вклад градиентного спуска и Ньютона:
αₖ → 0 — метод Ньютона,
αₖ → ∞ — метод градиентного спуска.
4. Почему при большом αₖ метод ведёт себя как градиентный спуск?
Ответ:
Потому что матрица 𝛼𝑘𝐼 доминирует над гессианом, и шаг становится пропорционален антиградиенту.
5. Почему при малом αₖ метод приближается к методу Ньютона?
Ответ:
Потому что вклад 𝛼𝑘𝐼 исчезает, и шаг определяется обратным гессианом.
6. Зачем в формуле используется матрица αₖI?
Ответ:
Для стабилизации
обращения гессиана и обеспечения
положительной определённости матрицы
7. Как выбирается начальное значение α₀?
Ответ:
α₀ берётся достаточно большим, чтобы начальные шаги были близки к градиентному спуску.
8. Как обновляется параметр αₖ?
9. Что означает параметр v?
Ответ:
Это коэффициент уменьшения регуляризации; он определяет, насколько быстро метод переходит от градиентного режима к ньютоновскому.
10. Почему параметр αₖ уменьшается только при успешном шаге?
Ответ:
Потому что уменьшение αₖ означает больший доверие к модели Ньютона, которое оправдано только при уменьшении функции.
11. Что произойдёт, если шаг оказался неудачным?
Ответ:
В классическом варианте αₖ не уменьшается, и метод продолжает работать в более осторожном режиме.
12. В чём отличие метода Левенберга–Марквардта от метода доверительных областей?
Ответ:
Метод Левенберга–Марквардта использует регуляризацию гессиана, а метод доверительных областей ограничивает длину шага.
13. Почему метод Левенберга–Марквардта устойчив к плохим начальным приближениям?
Ответ:
Потому что при большом αₖ он ведёт себя как градиентный спуск, который обладает глобальной сходимостью.
14. Является ли функция Розенброка самосогласованной?
Ответ:
Нет, функция Розенброка не является самосогласованной.
15. Как настроить первый шаг метода, если о функции ничего не известно?
Ответ:
Выбрать достаточно большое α₀, чтобы первый шаг был близок к градиентному спуску.
16. Какой главный плюс метода Левенберга–Марквардта?
Ответ:
Он сочетает устойчивость градиентного спуска и быструю сходимость метода Ньютона.
17. Какой главный недостаток метода Левенберга–Марквардта?
Ответ:
Необходимость вычисления и обращения гессиана.
18. В каких задачах метод особенно популярен?
Ответ:
В задачах нелинейных наименьших квадратов и параметрической аппроксимации.
Краткий вывод (для ответа на экзамене)
Ответ одной фразой:
Метод Левенберга–Марквардта — это регуляризованный метод Ньютона с адаптивным параметром, обеспечивающий плавный переход от градиентного спуска к быстрому ньютоновскому режиму.
