Рандомизированный координатный спуск

Материал из testwiki
Перейти к навигации Перейти к поиску

Рандомизированный (блочный) координатный спуск — алгоритм оптимизации, популяризованный Нестеровым (2010) и позднее дополненный Ричтариком и Такачем (2011). Первый анализ метода, когда он применяется к задаче минимизации гладкой выпуклой функции, был осуществлён Нестеровым (2010)Шаблон:Sfn. В анализе Нестерова метод следует применять к квадратичным возмущениям исходной функции с неизвестным поправочным коэффициентом. Ричтарик и Такач (2011) дали границы сложности итераций без такого требования, то есть метод применяется к целевой функции напрямую. Более того, они обобщили постановку к задаче минимизации сложной функции, то есть суммы гладкой функции и (возможно негладкой) выпуклой блочно-разделимой функции:

F(x)=f(x)+Ψ(x),

где Ψ(x)=i=1nΨi(x(i)),xRN разложен на n блоков переменных/координат: x=(x(1),,x(n)) и Ψ1,,Ψn являются (простыми) выпуклыми функциями.

Пример (декомпозиция блоков): Если x=(x1,x2,,x5)R5 и n=3, можно выбрать x(1)=(x1,x3),x(2)=(x2,x5) и x(3)=x4.

Пример (разделяемые блоки):

  1. n=N;Ψ(x)=x1=i=1n|xi|
  2. N=N1+N2++Nn;Ψ(x)=i=1nx(i)2, где x(i)RNi и 2 является стандартной евклидовой нормой.

Алгоритм

Рассмотрим задачу оптимизации

minxRnf(x),

где f является выпуклой и гладкой функцией.

Гладкость: Под гладкостью мы понимаем следующее: мы предполагаем, что градиент f покоординатно непрерывен по Липшицу с константами L1,L2,,Ln. То есть, мы предполагаем, что

|if(x+hei)if(x)|Li|h|,

для любого xRn и hR, где i означает частную производную по переменной x(i).

Нестеров, Ричтарик и Такач показали, что следующий алгоритм сходится к оптимальной точке: Шаблон:Начало коробки

    // Рандомизированный координатный спуск
    Input: x0Rn // стартовая точка
    Output: x
    set x := x_0
    for k := 1, ... do
        // обновляем координату i{1,2,,n} случайно 
        x(i)=x(i)1Liif(x) 
    end for

Шаблон:Конец коробки

Скорость сходимости

Поскольку на итерациях алгоритма образуются случайные вектора, сложность следует отражать в числе итераций, необходимых для получения приближённого решения с высокой вероятностью. В статье Ричтарика и ТакачаШаблон:Sfn было доказано, что если k2nRL(x0)ϵlog(f(x0)f*ϵρ), где RL(x)=maxymaxx*X*{yx*L:f(y)f(x)}, f* является оптимальным решением (f*=minxRn{f(x)}), ρ(0,1) является уровнем доверительной вероятности, а ϵ>0 является желаемой точностью, то Prob(f(xk)f*>ϵ)ρ.

Пример для конкретной функции

Рисунок ниже показывает как xk меняется по итерациям. Задача

f(x)=12xT(10,50,51)x(1,51,5)x,x0=(00)T

Расширение для блоков координат

Разбиение координатных направлений на блоки координат

Можно естественным образом расширить алгоритм с просто координат на блоки координат. Предположим, что мы имеем пространство R5. Это пространство имеет 5 координатных направлений, а именно e1=(1,0,0,0,0)T,e2=(0,1,0,0,0)T,e3=(0,0,1,0,0)T,e4=(0,0,0,1,0)T,e5=(0,0,0,0,1)T

в которых метод может двигаться. Однако можно сгруппировать некоторые координатные направления в блоки и мы можем иметь 3 блочных координатных направлений (см. рисунок) вместо 5 координат.

См. также

Примечания

Шаблон:Примечания

Литература

Шаблон:Refbegin

Шаблон:Refend

Шаблон:Методы оптимизации Шаблон:Изолированная статья Шаблон:Rq