二、多变量线性回归

一些符号:

   m:训练集数量
   n:特征数目(输入维度)
   x^{(i)}:训练样本中的第i个向量
   x^{(i)}_{j}:训练样本中的第i个向量中的第j个元素
  \theta _{j}:模型参数
损失函数:J(\theta)=\frac{1}{2m}\sum (h_\theta(x^{(i)})-y^{(i)})^2
梯度下降:\theta_j:=\theta_j-\alpha\frac{\partial}{\partial \theta_j}J(\theta)
                    其中\frac{\partial}{\partial \theta_j}J(\theta)=\frac{1}{m}\sum(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j
  假设函数:h_{\theta}(x)=\theta_0+\theta_1x_1+…\theta_nx_n          若规定x_0=1:
                    h_{\theta}(x)=\theta_0x_0+\theta_1x_1+…\theta_nx_n
                                 =\theta ^TX
       注意:一个特征未必就对应一个x。例如,对于特征size,假设函数可设为:
       h_{\theta}(x)=\theta_0+\theta_1size+\theta_1(size)^2+…\theta_n(size)^n

特征缩放:

      问题:若不同变量的取值范围差异很大,如\theta_1\epsilon [1,5] \theta_2\epsilon [0,2000]则损失函数关于二者的等高线图为(实际上比下图还要更狭长)


      如红线所示,梯度下降的方向反复振荡,收敛过程很慢
      解决:(归一化)      
          或:(平均归一化)      

代价随迭代次数降低的曲线图:

正常情况:



异常情况:



说明学习率过大,需要降低之。实际上,只要学习率足够小,J一定随迭代而下降
自动收敛测试:

       测试J在某次迭代的下降值,若小于\varepsilon,则认为已收敛。但实际上选择一个合适的\varepsilon比较困难,一般还是通过观察曲线图来判断是否收敛

正规方程(不用迭代,一次性求得 \theta):

方法一:对于每一个j,求方程组\frac{\partial}{\partial\theta}J(\theta)=0 的解
方法二:假设m=4

住房价格预测

则     
令,即得最优
matlab或octave中的代码为:pinv(x'*x)*x'y
其中x'表示x的转置;inv是求逆;pinv是求伪逆(广义逆)
pinv(A)函数返回一个与同型的矩阵X,并满足:
          AXA=A,XAX=X,AX和XA均为对称阵
计算机求矩阵逆的时间开销大致为,故当n较大时还是用梯度下降法。吴恩达在n<10000时用正规方程法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容