美文网首页
吴恩达-机器学习笔记(第一周)

吴恩达-机器学习笔记(第一周)

作者: 楠子小先生 | 来源:发表于2019-03-02 11:18 被阅读0次

    学习资料:Coursera 吴恩达 机器学习
    辅助资料:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

    一、 引言(Introduction)

    1.2 机器学习是什么?

    Tom Mitchell:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。
    e.g.经验E 就是程序上万次的自我练习的经验,任务T 就是下棋。性能度量值P 就是它赢得比赛的概率。

    1.3 监督学习

    监督学习:给学习算法一个由“正确答案”组成的数据集,然后运用学习算法,算出更多的正确答案(作出预测)。
    回归问题:e.g.预测房价。回归是指,推测出这一系列连续值属性。
    分类问题:e.g.估算良恶性肿瘤概率。分类指的是,我们试着推测出一组离散的输出值(0,1,2,3,……)。

    希望获取大量(无限多)特征来做推测
    -->无限多个特征的处理、存储
    -->算法:支持向量机,里面有一个巧妙的数学技巧,能让计算机处理无限多个特征。

    1.4 无监督学习

    无监督学习:已知的只有一个数据集,不给标签(没法提前知道哪些是哪些)。无监督学习需要针对数据集,自动地找到数据中的结构,把这些数据自动地聚类到各个类。所以叫做聚类算法
    聚类应用:(例子)
    谷歌新闻:搜索众多的新闻事件,自动地把同一主题的新闻事件聚类到一起;
    组织大型计算机集群:解决什么样的机器易于协同地工作;
    社交网络的分析;
    鸡尾酒宴问题(分离音频);
    others:
    Octave编程环境。对大量机器学习算法,第一步是建原型。

    二、单变量线性回归(Linear Regression with One Variable)

    2.1 模型表示

    回归一词指的是,我们根据之前的数据预测出一个准确的输出值。
    分类问题,当我们想要预测离散的输出值,

    m 代表训练集中实例的数量
    x 代表特征/输入变量
    y 代表目标变量/输出变量
    (x,y) 代表训练集中的实例
    (x(i),y(i)) 代表第i 个观察实例
    h 代表学习算法的解决方案或函数也称为假设(hypothesis),是一个从x 到 y 的函数映射。

    image.png

    hθ (x)=θ01 x,只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题

    2.2 代价函数
    image.png
    选择合适的参数(parameters)θ0 和θ1(斜率、截距)决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)
    image.png
    选出使得modeling error的平方和最小的模型参数。 即使得代价函数 image.png
    需要一种有效的算法,能够自动找出使代价函数J取最小值的参数θ0和θ1
    2.5 梯度下降

    梯度下降思想:开始,随机选择一个参数的组合(θ01,......,θn ),计算J,然后寻找下一个能让J下降最多的参数组合。持续操作至到达一个局部最小值(local minimum),但不能确定得到的局部最小值是否是全局最小值(global minimum)

    image.png
    理解:想想自己站在山顶一小步一小步往下寻找最快下山的路径。
    批量梯度下降(batch gradient descent)算法的公式为:
    image.png
    a学习率(learning rate),它决定下山迈出的步子有多大。
    在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
    即,所有θj都减去微分项,然后所有θj都要更新成减去微分项后的值,然后再走下一步。
    image.png
    同时更新是梯度下降中的一种常用方法,是更自然的实现方法。
    2.6 梯度下降的直观理解
    image.png
    在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度。所以实际上没有必要再另外减小 image.png
    对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即:
    {∂\over∂θ_j } J(θ_0,θ_1)={∂\over∂θ_j } {1\over2m }\sum_{i=1}^m(h_θ (x^{(i)})-y^{(i)} ) ^2

    j=0时:{∂\over∂θ_0 } J(θ_0,θ_1)={1\over m }\sum_{i=1}^m(h_θ (x^{(i)})-y^{(i)} )

    j=1时:{∂\over∂θ_1 } J(θ_0,θ_1)={1\over m }\sum_{i=1}^m((h_θ (x^{(i)})-y^{(i)})*x^{(i)} )

    则算法改写成:
    Repeat {
    θ_0:=θ_0-a {1\over m} ∑_{i=1}^m(h_θ (x^{(i)})-y^{(i)} )
    θ_1:=θ_1-a {1\over m} ∑_{i=1}^m((h_θ (x^{(i)})-y^{(i)} )⋅x^{(i)})
    }

    批量梯度下降,指的是在梯度下降的每一步中,我们都用到了所有的训练样本,在梯度下降中,在计算微分求导项时,我们需要进行求和运算,所以,在每一个单独的梯度下降中,我们最终都要计算这样一个东西,这个项需要对所有m个训练样本求和。因此,批量梯度下降法这个名字说明了我们需要考虑所有这一"批"训练样本,而事实上,有时也有其他类型的梯度下降法,不是这种"批量"型的,不考虑整个的训练集,而是每次只关注训练集中的一些小的子集。在后面的课程中,我们也将介绍这些方法。

    用线性代数 计算代价函数J最小值的数值解法,正规方程(normal equations)的方法。数据量较大时,梯度下降法比正规方程要更适用一些。

    三、线性代数回顾(Linear Algebra Review)

    相关文章

      网友评论

          本文标题:吴恩达-机器学习笔记(第一周)

          本文链接:https://www.haomeiwen.com/subject/tjyduqtx.html