发明名称 基于ADMM算法的二次函数分布式实现方法
摘要 本发明公开了一种基于ADMM算法的二次函数分布式实现方法,步骤包括:启动系统,读入二次目标函数<img file="DDA0000914570350000011.GIF" wi="353" he="107" />的系数矩阵A和b,将数据分为N个处理块,采用二次函数分布式更新的表达式进行其中每一个处理块的计算,各处理块计算完成后,将各处理块结果汇总,完成计算过程。本发明所提供的一种基于ADMM算法的二次函数分布式实现方法,利用了二次函数表达式和LASSO表达式之间的关系,在LASSO分布式更新的基础上推导出了二次函数的分布式更新表达式,实现了在大数据背景下,目标函数是二次函数的分布式计算,大大提高了计算速度。
申请公布号 CN105740208A 申请公布日期 2016.07.06
申请号 CN201610052280.X 申请日期 2016.01.26
申请人 南京信息工程大学 发明人 沈辉;袁晓彤
分类号 G06F17/16(2006.01)I 主分类号 G06F17/16(2006.01)I
代理机构 南京纵横知识产权代理有限公司 32224 代理人 董建林
主权项 一种基于ADMM算法的二次函数分布式实现方法,其特征在于:步骤包括:启动系统,读入二次目标函数<img file="FDA0000914570320000011.GIF" wi="355" he="114" />的系数矩阵A和b,将数据分为N个处理块,其中任一个处理块的二次函数分布式更新的表达式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>x</mi><mi>i</mi></msub><mo>=</mo><munder><mrow><mi>arg</mi><mi> </mi><mi>min</mi></mrow><msub><mi>x</mi><mi>i</mi></msub></munder><mrow><mo>(</mo><mrow><mfrac><mn>1</mn><mn>2</mn></mfrac><msubsup><mi>x</mi><mi>i</mi><mi>T</mi></msubsup><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msub><mi>D</mi><mi>i</mi></msub><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><msup><mrow><mo>(</mo><mrow><mo>-</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msub><mi>D</mi><mi>i</mi></msub><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>+</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mover><mrow><mi>D</mi><mi>x</mi></mrow><mo>&OverBar;</mo></mover><mi>k</mi></msup><mo>-</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mover><mi>z</mi><mo>&OverBar;</mo></mover><mi>k</mi></msup><mo>+</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mi>u</mi><mi>k</mi></msup></mrow><mo>)</mo></mrow><mi>T</mi></msup><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><mfrac><mi>&lambda;</mi><mi>&rho;</mi></mfrac><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>i</mi></msub><mo>|</mo><msub><mo>|</mo><mn>1</mn></msub></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000914570320000012.GIF" wi="1929" he="122" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mover><mi>z</mi><mo>&OverBar;</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>=</mo><mfrac><mn>1</mn><mrow><mi>N</mi><mo>+</mo><mi>&rho;</mi></mrow></mfrac><mrow><mo>(</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><mi>B</mi><mo>+</mo><msubsup><mi>&rho;D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mover><mrow><mi>D</mi><mi>x</mi></mrow><mo>&OverBar;</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>+</mo><msubsup><mi>&rho;D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mi>u</mi><mi>k</mi></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000914570320000013.GIF" wi="1935" he="123" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mi>u</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>=</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mi>u</mi><mi>k</mi></msup><mo>+</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mover><mrow><mi>D</mi><mi>x</mi></mrow><mo>&OverBar;</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>+</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><msup><mover><mi>z</mi><mo>&OverBar;</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000914570320000014.GIF" wi="1931" he="83" /></maths>式中,<img file="FDA0000914570320000015.GIF" wi="219" he="67" />A<sub>ii</sub>可以看成是已知的矩阵A中沿着对角线上取的一个方阵,<img file="FDA0000914570320000016.GIF" wi="138" he="80" />为A对应的行乘上x再除以块数,<img file="FDA0000914570320000017.GIF" wi="219" he="70" />b<sub>i</sub>为b中第i个处理块对应的部分,<img file="FDA0000914570320000018.GIF" wi="123" he="70" /><img file="FDA0000914570320000019.GIF" wi="90" he="67" />为中间变量;λ为拉格朗日乘子,ρ>0为惩罚函数,i为第i个处理块,T为矩阵转置,k为第k次迭代,x为待求解的目标变量,x<sub>i</sub>为第i个处理块中的目标变量;各处理块计算完成后,将各处理块结果汇总,完成计算过程。
地址 210019 江苏省南京市建邺区奥体大街69号