Andrew Ng Machine Learning - Week 2

此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。力求简洁,仅代表本人观点,不足之处希望大家探讨。

课程网址:https://www.coursera.org/learn/machine-learning/home/welcome

Week 2

  1. Multivariate Linear Regression

    1. Week 1 讨论仅一个特征,即仅有一个未知量x影响了目标y的取值。如果现在有很多特征?现在我们有x1,x2...xn影响了目标y的取值。
    2. 此时需要区分的是变量标记规则:
      • xi表示的是第i个特征
      • x(i)表示的是第i个样本,一个样本是由多个特征组成的向量
      • 例如:x(2)=[x(2)1,x(2)2,x(2)3,...,x(2)n]T
      • 综上,我们有hθ(x)=θ0+θ1?x1+θ2?x2+...+θn?xn。可以视为,每个样本都多出一个特征:x0=1,这样表示有利于之后的矩阵表示
  2. 多变量梯度下降法:

    样本一共有m个

    cost function:J(θ0,θ1)=12m∑i=1m(hθ(x(i))?y(i))2

    update:θj:=θj?α1m∑i=1m((hθ(x(i))?y(i))?x(i)j)

  3. Feature Scaling(特征缩放)
    • 很简单,就是将每种特征的数据范围限定在同一个数量级。例如x1∈[0,2000],x2∈[1,5],这样会导致迭代次数过多。这时候,如果我们找到一种mapping方式,使得两者属于同一个数量级的范围内,可以有效减少迭代次数
    • 注意:无法降低单次的迭代时间,但是却能有效地降低迭代次数
    • 其实方法很多,这有一种:x=x?mean(x)max(x)?min(x)。其中,mean(x)表示向量每个元素的平均值,max(x)表示向量中最大元素,min(x)表示向量中最小元素
  4. Learning Rate
    • learning rate 是机器学习中的一个不稳定因素,如何判断选取的 learning rate 是合适的?我们可以看看以下这幅图:

    • 如果以迭代次数为横坐标,cost function 结果为纵坐标,绘制的图像是递减的,说明 learning rate 选择的是恰当的。如果碰到下图所显示的三种情况,那就只有一条路:减小 learning rate

    • 但是 learning rate 太小同样会导致一个问题:学习过慢。所以,只能靠试:0.001,0.003,0.01,0.03,0.1,0.3……
  5. Polynomial Regression(多项式回归,不同于多变量线性回归)
    • 有时候,我们需要自己创造一些“特征”,来拟合一些非线性分布情况
    • 例如:hθ(x)=θ0+θ1?x2+θ2?x√,看上去只有一个特征x,但我们完全可以理解为x2和x√都是单独的新特征
    • 以后的课程会具体讲述如何选择这些特征
  6. Normal Equation
    • 梯度下降法可以用于寻找函数(cost function)的最小值,想一想,初高中的时候我们使用的是什么方法?最小值点的导数为零,然后解方程
    • 将导数置为零这种方法即 Normal Equation。if θ∈Rn+1,??θiJ(θ)=set0for every i.
    • 上文提过,增加一个全1分量x0后得到x=[x0,x1,x2,x3,...,xn]T
    • 可以得到:xθ=y?xTxθ=xTy?θ=(xTx)?1xTy
    • matlab编程十分简单:theta=pinv(X′?X)?X′?y;
    • Normal Equation 有以下优缺点:
      1. 不需要 learning rate,也就不需要选择;
      2. 不需要迭代,不需要考虑收敛的问题;
      3. 当特征非常多的时候,因为涉及求逆操作,会非常慢(注:方阵才有逆矩阵)
  7. Linear Algebra Review

    最后一部分十分简单,其实就是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. 有关编程作业

    其实看看视频就行了,主要要注意,submit() 时输入的Token,不是Coursera 的密码,而是作业的密码,在这里:

    编程作业答案:https://github.com/cnauroth/machine-learning-class

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 00:19:35

Andrew Ng Machine Learning - Week 2的相关文章

Andrew Ng Machine Learning - Week 3:Logistic Regression & Regularization

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记.力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 1: Introduction 笔记:http://blog.csdn.net/ironyoung/article/details/46845233 We

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/ar

Andrew Ng Machine Learning - Week 1: Introduction

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记.力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 1: Introduction Environment Setup Instructions 这一章介绍课程一般使用的工具.octave或者matlab即

Andrew Ng Machine Learning - Week 4 & 5- Neural Networks

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记.力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 1: Introduction 笔记:http://blog.csdn.net/ironyoung/article/details/46845233 We

andrew ng machine learning week8 非监督学习

聚类——无监督学习的一种算法 K-means算法 最为广泛使用的聚类算法 选择两个聚类中心 簇分配:根据每个样本更接近哪个聚类中心进行样本的分配 簇中心移动:计算出所有的红点类的均值点,移动原始聚类中心到这个点,蓝点类同理 进行不断地迭代直到收敛 输入:K个簇类和训练集样本数据 注意:不需要X0项,为n维向量 算法的描述: 如果最终有个簇中心没有任何点分配给他那么直接移除就可以 K-means常常适用于右侧这种看不出来结构的混乱的数据的聚类的,所以并不是都是左图如此理想的环境 最优化的目标函数

andrew ng machine learning week9 异常检测和推荐系统

异常检测 概率分布的角度:通过判断某个样本的概率分部值和阈值的关系判断是不是异常样本 异常检测的应用: 1. 在线购物网站如何识别异常用户(欺诈行为或者被盗号) 2. 制造业 3. 检测计算机的运行情况 高斯分布 高斯分布开发异常检测算法 步骤 1. 选择一些异常的特征 2. 计算均值和方差,对于每一个特征来进行计算 在这个三维立体图中,越高的地方是正常的地方,异常区则是接近平面0的这些点 如何开发一个关于异常检测的应用 实数评价法的重要性: 不建议把交叉集和测试集混在一起使用 算法的评估过程

Ng Machine learning

Machine learning Preface Definition T: Task E: Experience P: Performance Sequence: T -> E -> P Supervised learning Definition Give the right answer to each example of the data set(called training data). Type Regression: get the continuous values Cla

机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho

机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho 总述 本书是 2014 的,看完以后才发现有第二版的更新,2016.建议阅读最新版,有能力的建议阅读英文版,中文翻译有些地方比较别扭(但英文版的书确实是有些贵). 我读书的目的:泛读主要是想窥视他人思考的方式. 作者写书的目标:面向初学者,但有时间看看也不错.作者说"我希望它能激发你的好奇心,并足以让你保持渴望,不断探索

Advice for Applying Machine Learning & Machine Learning System Design----- Stanford Machine Learning(by Andrew NG)Course Notes

Adviceforapplyingmachinelearning Deciding what to try next 现在我们已学习了线性回归.逻辑回归.神经网络等机器学习算法,接下来我们要做的是高效地利用这些算法去解决实际问题,尽量不要把时间浪费在没有多大意义的尝试上,Advice for applying machine learning & Machinelearning system design 这两课介绍的就是在设计机器学习系统的时候,我们该怎么做? 假设我们实现了一个正则化的线性回