这个是coursera里的machine learning课程的作业,在用matlab实现的过程中我总结了一些经验
1. 梯度下降也分成两个部分,一个是cost function的实现,一个是 θ 的实现
2. 这里要尽量采用向量的计算方法,注意向量的计算方法不是矩阵的计算方法,总结一下向量的计算技巧,什么情况下可以一气计算,什么情况下不行,只能循环计算。微批量处理
matlab的优势就在于他可以像数学计算那样,把批量的数据作为单位一气进行运算,而不是像传统的程序一样只能一个数字一个数字的算,最典型的就是向量和矩阵,在matlab里面是可以以矩阵为单位或者以向量为单位进行计算的。如果你是以向量作为单位来计算的,那么在同一个数学等式里面,你要保证参与运算的数据都是纬度一样的向量。这里多说一句,在《线性代数》同济第五版里面,并没有专门介绍向量的运算法则,只说道一个向量的内积。我觉得可以这样理解,因为向量可以看成一个特殊的矩阵(n行1列的矩阵),那么向量的运算很多都是和矩阵以一样的,其实所谓的内积也是矩阵乘法的一种特殊形式。
3. θj:=θj−α1m∑mi=1(hθ(x(i))−y(i))xj(i) 这个式子能不能用向量的方式来进行求解,因为这个式子比较复杂,凭空想难度还是比较高的,因此我们用一个小点数将其具体化来观察它的特点(其实Ng就是利用这种方法来讲课的,一个变量的线性回归)。
我们假设m=3,n=2,那么hypothesis的形式为 hθ(x)=θ0+θ1x1+θ2x2 。我们要确定的参数为 θ=⎛⎝⎜θ0θ1θ2⎞⎠⎟ 。而系数矩阵 X 为
利用梯度下降的方式求线性回归中参数的一些经验总结
最新推荐文章于 2024-07-23 16:09:31 发布
本文作者分享了在Coursera的机器学习课程中,通过MATLAB实现线性回归梯度下降时的经验。文章强调了向量计算的重要性,解释了如何在MATLAB中利用向量和矩阵运算加速计算,并通过实例展示了如何将梯度下降的更新规则转化为向量表达式,从而一次性更新所有参数。
摘要由CSDN通过智能技术生成