• 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
  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7347930.html
Copyright © 2020-2023  润新知