使用optimtool的牛顿修正法来应用学习
pip install optimtool --upgrade
pip install optimtool>=2.4.2
optimtool包所依据的理论支撑中,还没有为二阶微分方法作邻近算子的近似与修正,所以二阶近似方法是研究无不可微项的可微函数的算子。
牛顿修正法的调用
import optimtool.unconstrain as ou
newton_api = ou.newton.modified
print(newton_api(funcs, args, x_0)) # funcs, args, x_0
函数示例与算法可视化
Hager function :
f ( x ) = ∑ i = 1 n ( exp x i − i x i ) , x 0 = [ 1 , 1 , . . . , 1 ] . f(x)=\sum_{i=1}^{n}(\exp{x_i}-\sqrt{i}x_i), x_0=[1,1,...,1]. f(x)=i=1∑n(expxi−ixi),x0=[1,1,...,1].
x = sp.symbols("x1:5")
f = (sp.exp(x[0]) - x[0]) + \(sp.exp(x[1]) - sp.sqrt(2) * x[1]) + \(sp.exp(x[2]) - sp.sqrt(3) * x[2]) + \(sp.exp(x[3]) - sp.sqrt(4) * x[3])
x_0 = (0.5, 0.5, 0.5, 0.5) # Random given
可视化图例:
在科学计算领域,没有牛顿修正法研究不了的可微函数,混合优化一般适用于大数据参数的自动学习,对一阶微分的多元点作邻近近似,以达到减弱训练集学习程度,并增加测试集,或由用户组设置或输入的数据的泛化与决策水平。