while 循环 注意每个if while for 都要有对应的end表示结束
虽然没有强制要求,最好还是通过缩进来表达逻辑关系
注意elseif中间没有空格
整个if结束了才用end
因为之前是按照上课演示的敲,发现每个条件后面都会跟一个逗号,所以测试一下没有逗号是否可以运行
没有逗号也可以运行自定义的函数 函数文件得在当前路径下或添加到搜索路径中 多个返回值的函数 成功调用 对于代价函数的表示 成功计算
向量化(Vectorization):
向量化是指将数据通过矩阵和向量的方式进行计算,使得过程更易于理解也更易于编写
对于很多数据,如果直接计算则需要多个for循环,不仅麻烦还不好理解,以假设函数为例:
视频截图在未向量化之前,我们若想求h(x),代码如上图中一般用过for循环,不易理解且繁琐,然而若通过向量化,直接θ'*X得到假设值的向量矩阵
下求梯度下降法的向量化:
假设特征数为2,假设方程为h(x)
此时要不断循环
循环赋值求最小于是对于θ中的每一项都得写个for循环进行赋值
此时将整个赋值过程,改为:
其中 α 仍为学习速率,是一个实数,而 θ 和 δ 都是一个n+1维的向量,其中 θ为:
θ的内容根据定义 δ 应为:
改为矩阵表示为:
最终的结果大小应为一个3*1的向量左边的矩阵就是X的矩阵的转置,而右边的矩阵可通过h(x)的向量减去y得到,最终计算的过程应为:
梯度下降法的求值过程一步可以直接计算,非常方便
网友评论