Какой аналог метод ньютона для многомерного пространства?
Существует метод Ньютона для нахождения нуля функции: x -> x-y/y' и метод градиентного спуска для нахождения минимума функции: x -> x - a*gradx.
Можно ли их "скрестить" и получить более оптимальную версию градиентного спуска, например формулой x -> x - a*y*gradx/(|gradx|^2)? Если да, то как это сделать правильно? А если нет, то почему?
Спустя некоторое время выяснила, что всё описанное выше - частные случаи оптимизаторов (в вопросе забыла уточнить, что всё это необходимо было для обучения нейросети градиентным спуском), например - оптимизатора adam. Им пользоваться проще всего.
Не совсем понимаю, в чем суть задумки. А вернее, какой результат вы хотите получить?
Метод Ньютона находит ноль функции - просто точку, в которой функция будет равна нулю.
Метод градиентного спуска находит минимум функции (не всегда глобальный).
Ноль функции не обязательно должен быть ее минимумом.
Дело в том, что обычный градиентный спуск слишком сильно "сдвигает" точку при большом градиенте и слишком слабо при малом, хотя понятно, что при большом "наклоне" функции имеет смысл замедлиться. А метод Ньютона как раз это учитывает, поэтому, я подумала, что какой-то его аналог может помочь решить проблему.
И да, в данном случае, функция принимает неотрицательные значения, а её минимум стремится к нулю.
Если функция имеет большой "наклон" - это значит, что мы далеко от ее минимума (в общем случае), поэтому нам как раз не нужно замедляться, а стоит сделать шаг побольше.