• 机器学习入门知识


    机器学习入门知识

    标签: 机器学习 入门 概念 吴恩达


    1. 机器学习适用的场景

    • 数据挖掘
    • 无法手工编程的场景(例如控制直升机自动飞行的程序)
    • 尝试理解人类学习和人脑的工作

    2. 学习方法分类

    • 监督学习:训练集中的数据,对于每个数据实例,都已知答案,算法就是依据这些来做出预测。
    • 无监督学习:算法从数据中寻找规律,典型的例子为聚类。

    3. 回归问题与分类问题

    • 回归问题:预测一个连续的输出(例如预测房价)。
    • 分类问题:预测一个离散的输出。

    4. 假设函数

      (h_ heta(x))将输入数据映射到对该数据的预测值。

    5. 代价函数

    [J( heta)=frac{1}{2m}sum^m_{i=1}(h_ heta(x^{(i)})-y^{(i)})^2 ]

      一般求解的目标是使得代价函数的值最小,常用的方法为梯度下降。

    6. 梯度下降

      迭代更新参数( heta_j)的方法如下:

    [ heta_j := heta_j - alphafrac{partial}{partial heta_j} h_ heta(x) ]

      其中,(:=) 是赋值符号,(alpha)被称为学习效率,注意如果alpha的取值太大,则会造成迭代的过程震荡甚至不收敛;反之,如果alpha的值过小,则会使得收敛很慢。

    • 梯度下降在迭代过程中可以自动调整修改参数的速率。注意偏导项,当偏导数值较小(一般更有可能接近局部最优点)的时候,每次 heta_j的增量也较小,而当偏导比较大的时候,也会大幅度的修改,即其是自适应的过程,人为要干预的,是选择适当的(alpha)值。

    • 梯度下降必须同时更新每个参数,虽然不同时也可能产生不错的效果,但那样做就不再是梯度下降算法了。

      示例:
      正确写法:
        (temp_0 := heta_0 - alphafrac{partial}{partial heta_0} h_ heta(x))
        (temp_1 := heta_1 - alphafrac{partial}{partial heta_1} h_ heta(x))
        ( heta_0 := temp_0)
        ( heta_1 := temp_1)

      错误写法:
        ( heta_0 := heta_0 - alphafrac{partial}{partial heta_0} h_ heta(x))
        ( heta_1 := heta_1 - alphafrac{partial}{partial heta_1} h_ heta(x))
      因为在对( heta_1)进行更新时,使用的是已经更新过的( heta_0)的值,所以不是同时的。

  • 相关阅读:
    C++中关于文本内容的实用操作集合(新)(添加一些关于文件流的介绍)
    C++_String_类字符串操作(转)
    C++下面关于字符串数组的一些操作
    windows下 berkerly db的安装配置(修正了关键步骤)
    代码审计基础知识
    Spring中的依赖查找和依赖注入
    JavaSE实现IoC
    LeetCode 87. Scramble String
    LeetCode 76. Minimum Window Substring
    LeetCode 169. Majority Element
  • 原文地址:https://www.cnblogs.com/beisong/p/5693196.html
Copyright © 2020-2023  润新知