最优化之最速下降法
2014-12-30 19:09
274 查看
求解无约束非线性规划问题:min f(x),其中 f: Rn -> R1具有连续偏导。
最速下降法的思想是:沿着目标函数在当前迭代点处欧式范数意义下的最速下降方向即负梯度方向进行一维搜索,从而得到新的迭代点。当目标函数在迭代点处的梯度与零向量接近到一定程度时,该点可作为UNP的近似最优解。
算法:
1. 选定初始数据。给出初始点x,精度参数e > 0.
2. 终止判断。求g = ▽f(x)。若||g|| <= e,停止,得到最优的x,否则转3.。
3. 构造搜索方向。令d = - g。
4. 进行一维搜索。求min f(x + λd)的最优步长λ,或可接受步长λ。
5. 确定新的迭代点。令x = x + λd,转2。
最速下降法具有现行收敛速度。
下面给出无约束凸二次规划问题的解法代码:
import numpy as np
def algo(H, c, b, x0, e):
x = x0
k = 1
while(True):
g = np.dot(H, x) + c
norm = np.linalg.norm(g)
if(norm < e):
break;
d = -g
print d
lambda_ = -np.sum(float(g.transpose().dot(d)) / (d.transpose().dot(H).dot(d)))
x = x + lambda_ * d
print 'k = %s;g = %s;norm = %s;lambda = %s' %(str(k), str(g), str(norm), str(lambda_))
k += 1
return x
if __name__ == '__main__':
H = np.array([[2.0, 0.0], [0.0, 4.0]])
c = np.array([[0.0], [0.0]])
b = 0.0
x0 = np.array([[1.0], [1.0]])
e = 0.1
result = algo(H, c, b, x0, e)
print result
最速下降法的思想是:沿着目标函数在当前迭代点处欧式范数意义下的最速下降方向即负梯度方向进行一维搜索,从而得到新的迭代点。当目标函数在迭代点处的梯度与零向量接近到一定程度时,该点可作为UNP的近似最优解。
算法:
1. 选定初始数据。给出初始点x,精度参数e > 0.
2. 终止判断。求g = ▽f(x)。若||g|| <= e,停止,得到最优的x,否则转3.。
3. 构造搜索方向。令d = - g。
4. 进行一维搜索。求min f(x + λd)的最优步长λ,或可接受步长λ。
5. 确定新的迭代点。令x = x + λd,转2。
最速下降法具有现行收敛速度。
下面给出无约束凸二次规划问题的解法代码:
import numpy as np
def algo(H, c, b, x0, e):
x = x0
k = 1
while(True):
g = np.dot(H, x) + c
norm = np.linalg.norm(g)
if(norm < e):
break;
d = -g
print d
lambda_ = -np.sum(float(g.transpose().dot(d)) / (d.transpose().dot(H).dot(d)))
x = x + lambda_ * d
print 'k = %s;g = %s;norm = %s;lambda = %s' %(str(k), str(g), str(norm), str(lambda_))
k += 1
return x
if __name__ == '__main__':
H = np.array([[2.0, 0.0], [0.0, 4.0]])
c = np.array([[0.0], [0.0]])
b = 0.0
x0 = np.array([[1.0], [1.0]])
e = 0.1
result = algo(H, c, b, x0, e)
print result
相关文章推荐
- 斯坦福大学深度学习公开课cs231n学习笔记(3)最优化方法:梯度下降
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 最优化方法:梯度下降法
- 3模型训练和最优化-3.2模型训练之梯度下降与参数更新
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- python最优化-梯度下降实现
- 最优化计算中:梯度下降法和牛顿法,共轭梯度法的基础分析
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 迭代求解最优化问题——梯度下降、牛顿法
- 漫步最优化三十二——最速下降法
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 最优化 梯度下降
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 最优化算法-梯度下降
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化
- 最优化学习笔记(三)最速下降法
- Adaptive linear neurons model 线性神经元 运用梯度下降法 进行代价函数的最优化