zoukankan      html  css  js  c++  java
  • 吴恩达《机器学习》课程总结(9)神经网络的学习

    9.1代价函数

    (1)假设神经网络的训练样本有m个,每一个包含一组输入x和一组输出信号y,L表示神经网络的层数,Sl表示每一层的神经元个数,SL代表最后一层中处理单元的个数。

    则代价函数为(同样不对θ0正则化):

    9.2反向传播算法

    前向传播算法:

    用δ表示误差,则δ(4)=a(4)-y

    前一层的误差为:

    再前一层的误差为:

    输入层不存在误差。

    每一层有了误差之后,即可分别进行求偏导,然后更新θ。

    9.3反向传播算法的直观理解

    9.4实现注意:展开参数

    9.5梯度检验

    用某点领域的两个点的连线的斜率作为该点的估算值,然后用该值与神经网络计算出来的值作比较。

    9.6随机初始化

    参数的初始化应该随机的,如果是相同的值的话,第二层的所有激活单元都会有相同的值,后面也类似。

    9.7综合起来

    使用神经网络时的步骤:

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

    第一层的单元数即为我们训练集的特征数量。

    最后一层的单元数是我们训练集的结果的类的数量。

    (2)训练神经网络:

    1.参数的随机初始化;

    2.利用正向传播方法计算所有的hθ(x);

    3.编写计算代价函数J的代码;

    4.利用反向传播方法计算所有的偏导数;

    5.利用数值检验方法检验这些偏导数;

    6.使用优化算法来最小化代价函数。

    9.8自动驾驶

    略。

  • 相关阅读:
    ARM标准汇编与GNU汇编
    使用友元,编译出错fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1786) 的解决
    C++中值传递,引用传递,指针传递
    C++命名空间的用法
    关于初始化C++类成员
    vivi的配置与编译
    C++ 容器
    vivi分区问题,及移植时需要修改的地方(转)
    基于S3C2410的VIVI移植
    拷贝构造函数什么时候调用?
  • 原文地址:https://www.cnblogs.com/ys99/p/9255457.html
Copyright © 2011-2022 走看看