• Andrew Ng Machine Learning 专题【Linear Regression】


    此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。

    力求简洁,仅代表本人观点,不足之处希望大家探讨。
    课程网址:https://www.coursera.org/learn/machine-learning/home/welcome

    Week 3: Logistic Regression & Regularization 笔记:http://blog.csdn.net/ironyoung/article/details/47398843

    Week 2:Linear Regression with Multiple Variables

    1. Multivariate Linear Regression
      1. Week 1 讨论仅一个特征,即仅有一个未知量x 影响了目标y 的取值。

        假设如今有非常多特征?如今我们有x 1 ,x 2 ...x n  影响了目标y 的取值。

      2. 此时须要区分的是变量标记规则:
        • x i  表示的是第i 个特征
        • x (i)  表示的是第i 个样本,一个样本是由多个特征组成的向量
        • 比如:x (2) =[x (2) 1 ,x (2) 2 ,x (2) 3 ,...,x (2) n ] T  
        • 综上,我们有h θ (x)=θ 0 +θ 1 x 1 +θ 2 x 2 +...+θ n x n  。能够视为。每一个样本都多出一个特征:x 0 =1 ,这样表示有利于之后的矩阵表示
    2. 多变量梯度下降法:

      样本一共同拥有m个
      cost functionJ(θ 0 ,θ 1 )=12m  i=1 m (h θ (x (i) )y (i) ) 2  
      updateθ j :=θ j α1m  i=1 m ((h θ (x (i) )y (i) )x (i) j ) 

    3. Feature Scaling(特征缩放)

      • 非常easy。就是将每种特征的数据范围限定在同一个数量级。比如x 1 [0,2000],x 2 [1,5] ,这样会导致迭代次数过多。这时候,假设我们找到一种mapping方式,使得两者属于同一个数量级的范围内,能够有效减少迭代次数
      • 注意:无法减少单次的迭代时间。可是却能有效地减少迭代次数
      • 事实上方法非常多,这有一种:x=xmean(x)max(x)min(x)  。当中,mean(x) 表示向量每一个元素的平均值。max(x) 表示向量中最大元素,min(x) 表示向量中最小元素
    4. Learning Rate
      • learning rate 是机器学习中的一个不稳定因素,怎样推断选取的 learning rate 是合适的?我们能够看看下面这幅图:
        Drawing
      • 假设以迭代次数为横坐标,cost function 结果为纵坐标。绘制的图像是递减的,说明 learning rate 选择的是恰当的。假设碰到下图所显示的三种情况。那就仅仅有一条路:减小 learning rate
        Drawing
      • 可是 learning rate 太小相同会导致一个问题:学习过慢。所以,仅仅能靠试:0.001。0.003,0.01,0.03,0.1,0.3……
    5. Polynomial Regression(多项式回归。不同于多变量线性回归)
      • 有时候。我们须要自己创造一些“特征”,来拟合一些非线性分布情况
      • 比如:h θ (x)=θ 0 +θ 1 x 2 +θ 2 x    ,看上去仅仅有一个特征x ,但我们全然能够理解为x 2  x    都是单独的新特征
      • 以后的课程会详细讲述怎样选择这些特征
    6. Normal Equation
      • 梯度下降法能够用于寻找函数(cost function)的最小值。想一想,初高中的时候我们使用的是什么方法?最小值点的导数为零,然后解方程
      • 将导数置为零这样的方法即 Normal Equation。if θR n+1 θ i  J(θ)= set 0 for every i .
      • 上文提过,添加一个全1分量x 0  后得到x=[x 0 ,x 1 ,x 2 ,x 3 ,...,x n ] T  
      • 能够得到:xθ=yx T xθ=x T yθ=(x T x) 1 x T y 
      • matlab编程十分简单:theta=pinv(X  X)X  y; 
      • Normal Equation 有下面优缺点:
        1. 不须要 learning rate,也就不须要选择。
        2. 不须要迭代,不须要考虑收敛的问题;
        3. 当特征非常多的时候。由于涉及求逆操作,会非常慢(注:方阵才有逆矩阵)
    7. Octave Tutorial
      这一部分十分简单。事实上就是MATLAB的用法。建议不论是否刚開始学习的人都去看看,会有收获。


      谈到一个问题:假设现有的样本数,小于每一个样本全部的特征数怎么办?去除多余的特征(PCA?)。特征过多,也可能会导致矩阵不可逆的情况(不甚理解)。
      下面记录一些认为挺有趣的命令:

      1. ~=:不等于号
      2. xor(0, 1):异或操作
      3. rand(m, n):0~1之间的大小为m*n的随机数矩阵;randn:产生均值为0,方差为1的符合正态分布的随机数(有负数)
      4. length(A):返回A中行、列中更大值
      5. A(:):将矩阵A变为列向量形式。不论A是向量还是矩阵
      6. sum(A,1):每列求和得到一个行向量;sum(A,2):每行求和得到一个列向量
      7. pinv:伪求逆;inv:求逆
      8. imagesc(A):帅爆!依据矩阵中每一个值绘制各种颜色的方块
      9. A.^2 ~= A^2,后者是两个矩阵相乘
    8. Submitting Programming Assignments
      事实上看看视频即可了。主要要注意,submit() 时输入的Token,不是Coursera 的password,而是作业的password,在这里:
      这里写图片描写叙述
      编程作业答案:https://github.com/cnauroth/machine-learning-class
  • 相关阅读:
    如何关闭内存自动释放池ARC
    你怀疑过“温水煮青蛙”的故事吗
    程序员应该加入的3个QQ群
    简述Oracle 11g 新特性
    ViewState、UpdatePanel及控件OnPre之间的纠葛
    今天,我看到一组图解释“ 什么是博士?”
    Java将何去何从
    给新手朋友 推荐几本书(从C#入门到SQL及设计模式)
    最新版 智能电脑键盘屏幕全记录 免费下载
    C#中两个问号和一个问号
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7347930.html
Copyright © 2020-2023  润新知