alternating minmize算法,中文称作交替最小法。
算法思想:
假定有目标函数f(U,V),每次仅把其中的一个变量视作可变量进行优化,其他的变量视作常量,对所有的变量交替进行此优化操作。
假定初始有(U,V)=(U0,V0)
U1 = argmin_U{f(U,V0)}
得到(U1, V0)--->f(U1,V0)
V1 = argmin_V{f(U1,V)}
得到(U1,V1)--->f(U1,V1)
则必有f(U0,V0)>=f(U1,V0)>=f(U1,V1)
通过不停的迭代可以实现最小化目标函数。
算法分析
当目标函数是凸函数或者是光滑的函数时,altmin算法必然能得到全局最优解。
值得注意的是,当目标函数非凸时,经验表明altmin算法也能达到非常好的效果。altmin算法原理简单,经验效果好,不失为实践时用来解决非凸问题的一个方法。
另外有趣的是,实际上altmin算法与常用的em算法有联系,可以说em算法是am算法的一个特例!
参考文件