• Coursera 机器学习笔记(三)


    主要为第四周、第五周课程内容:神经网络

    神经网络模型引入

    之前学习的线性回归还是逻辑回归都有个相同缺点就是:特征太多会导致计算量太大。如100个变量,来构建一个非线性模型。即使只采用两两特征组合,都会有接近5000个组成的特征。这对于普通的线性回归和逻辑回归计算特征量太大了。因此,神经网路孕育而生。

    神经网络最初产生的目的是制造能模拟大脑的机器,能很好地解决不同的机器学习问题。模型表示为:

    第一层为输入层,最后一层为输出层,中间的层为隐藏层。如把逻辑回归最为神经网络模型的神经元,a(j)I 代表第j层的第i个激活单元,θ(j)表示从第j层映射到第j+1层时的权重矩阵,其尺寸为第j+1层的激活单元数量为行数,第j层的激活单元数+1为列数的矩阵,如θ(1)尺寸为3*4。对于上图所示模型的表达为:

     

    正向传播算法(Forward Propagation)

    利用向量化的方法会使计算大为简便。计算上图第二层为例:

    这只是针对训练集中一个训练实例所进行的计算。如果我们要对整个训练集进行计算,我们需要将训练集特征矩阵进行转置,使得同一个实例的特征都在同一列里。

    而计算第三层(输出层),可以把第二层看成是输入层,第三层为上述的第二层。

    我们可以把 a0,a1,a2,a3看成更为高级的特征值,也就是 x0,x1,x2,x3的进化体,并且它们是由 x 与决定的,因为是梯度下降的,所以 a 是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将 x 次方厉害,也能更好的预测新数据。

    多分类

    当我们有不止两种分类时(也就是 y=1,2,3….),比如以下这种情况,该怎么办?如y=4

    利用one-vs-all思想:神经网络算法的输出结果为四种可能情形之一

    代价函数

    引入标记表示方法:

    • L代表神经网络的层数
    • Si代表第i层的处理单元(包括偏见单元)的个数
    • SL代表最后一层中的处理单元的个数
    • K代表希望分类的个数,与SL相等

    逻辑回归中的代价函数为:

        

    逻辑回归中只有一个输出变量,而在神经网络中有很多输出变量,h(x) 是个一个维度为K的向量,因此因变量也是一个维度为K的向量。神经网络相应的代价函数为:

    反向传播算法

     

    综合

    网络结构:

    第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。

    • 第一层的单元数即我们训练集的特征数量
    • 最后一层的单元数是我们训练集的结果的类的数量
    • 如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好

    我们真正要决定的是隐藏层的层数和每个中间层的单元数。

    训练神经网络:

    1. 参数的随机初始化
    2.
    利用正向传播方法计算所有的 hθ(x)
    3.
    编写计算代价函数 J 的代码
    4.
    利用反向传播方法计算所有偏导数
    5.
    利用数值检验方法检验这些偏导数
    6.
    使用优化算法来最小化代价函数

  • 相关阅读:
    FileAttributes枚举
    File类与FileInfo类
    System.IO.Path类
    会话状态Session
    Application共享数据
    压缩、解压缩流GZipStream
    MemoryStream类
    FileMode枚举
    FileAccess枚举
    MySQL函数
  • 原文地址:https://www.cnblogs.com/findwg/p/4877857.html
Copyright © 2020-2023  润新知