发明名称 | 基于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>‾</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>‾</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>λ</mi><mi>ρ</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>‾</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>ρ</mi></mrow></mfrac><mrow><mo>(</mo><msubsup><mi>D</mi><mi>i</mi><mi>T</mi></msubsup><mi>B</mi><mo>+</mo><msubsup><mi>ρD</mi><mi>i</mi><mi>T</mi></msubsup><msup><mover><mrow><mi>D</mi><mi>x</mi></mrow><mo>‾</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><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>‾</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>‾</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号 |