梯度下降法是一种优化算法,以负梯度方向为搜索方向,用于求解无约束优化问题。算法流程图如下:
求已知函数的局部最优解,该函数的网格图如下:
分别寻找初始坐标点(0,0),(-1,-1),(-2,-1),(-1,-2)附近的局部极小值。利用MATLAB编写梯度下降法时,可以求解每一步迭代的最优步长,但是计算量比较大;在Linux系统的Eclipse实现时,选择固定步长0.000001,偏差比较值也缩小为0.0000001。输入坐标值x,y,回车,输出局部极小值的坐标点和极小值,结果均保留三位小数。点(0,0)附近的局部极小点为(0.742,0.579),值为1.518;剩下三个坐标点的局部极小点为(-3.129,-1.582),值为-106.764。这里只贴出两张运行结果的图片,如下:
机器视觉与目标跟踪的第一课,我主要学习了一些常用的概念和方法,对以后要学习的内容有个大致的了解。其次,通过上面这个小程序的练习,我第一次独立地学习使用Linux系统的C++软件,虽然开始时总是报各种错,但是一个一个消去错误的过程还是很有成就感的。尤其要感谢之前的一次经历,别人帮我装好了虚拟机和Liunx系统,免去了让我头疼的装软件的过程。