课程地址:https://class.coursera.org/ntumltwo-002

重要!重要!重要~

一、神经网络(NNet)的动机

神经网络有很久的历史,由感知机(perceptron)模型发展而来。单个的perceptron只能处理线性问题,通过组合(融合)多个perceptron,相当于一层的神经网络,能提高perceptron的能力,很容易实现逻辑与、或、非,以及凸集合,但不能实现异或运算。多层次的感知机(perceptrons)模型,不仅能实现异或,功能更为强大。最基本的神经网络也就是一个具有多个层次的perceptron的模型,像飞机借鉴鸟类的飞行一样,神经网络模型借鉴了生物体神经元信息传递的过程。

二、神经网络

神经网络是个功能非常强大的模型,输出层可以输出任意范围的数,因此根据需求可以选择分类,回归、以及像LR一样的软分类的任何一种。神经网络中的每一个神经元输入是前一层网络的线性加权的结果,考虑整个网络使用线性模型会使得神经网络能力受限、sign阶梯函数不易优化等的缺点,神经元自身的转换函数选择了与sign阶梯相似的“S”形tanh函数。一个完整的神经网络的设计是比较复杂的,需要确定网络的结构、网络层数、输入、输出、神经元的转换函数、阀值(偏置)、每个连接的权重。林老师在课上将神经网络的物理解释是每一层都通过转换来从数据学习,提取与每一层连接权相匹配的模式,不是很理解/(ㄒoㄒ)/~~

神经网络的属性:

  1. 每个神经元的输出,称为该神经元的能量
  2. 相邻层神经元节点之间的连接有个权重Wij,其值在[-1,1]之间
  3. 除输出层外,每层都会有个阀值,也称为偏置,其值在[0,1]之间
  4. 隐藏层之间的每个神经元的输出为该节点输入值的非线性变换(tanh)

三、神经网络的训练和BP算法

      训练神经网络最常用的是BP(Backpropagation)算法,使用BP算法训练神经网络,实际上就是调整网络的每个神经元的连接权和偏置。BP神经网络分为两部分,前向传输(逐层波浪式的传递输出值)和逆向反馈(反向逐层调整权重和偏置)。BP网络能学习和存储大量的输入-输出模式隐射关系,而无需事前揭示描述这种隐射关系的数学方程。它的学习规则是当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,使得权值和偏置不断调整,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。 下面是数学推导,误差函数为均方误差,对每个连接全的偏导利用链式法则总能由后面的部分推导出来,有兴趣可以参考https://www.zhihu.com/question/27239198

四、神经网络的最优化

      神经网络是个非常复杂的机器学习模型,dvc=O(VD),V=神经元的数量,D=权重weights的数量。复杂的神经网络虽然功能很强大,但是也会造成过拟合的危险。隐藏层很多的时候,神经网络的解是非凸问题,GD/SGD得到的是局部最优解,很难得到全局解。在工程实践中一般建议会选择比较小的随机的Wij,一般能获得不错的结果。为了防止过拟合,神经网络可以加上之前学过的L1和L2正则化项,为了避免L1不能微分,L2对使得大权重收缩较大,使得小权重收缩较小的缺点,神经网络引入了对大小权重收缩相当的weight-elimination正则化项。除此之外,限制迭代次数,及时停止训练,也能防止过拟合。

参考:http://blog.jobbole.com/90184/

课程地址:https://class.coursera.org/ntumltwo-002

机器学习技法-神经网络(NNet)的更多相关文章

  1. Coursera台大机器学习技法课程笔记01-linear hard SVM

    极其淡腾的一学期终于过去了,暑假打算学下台大的这门机器学习技法. 第一课是对SVM的介绍,虽然之前也学过,但听了一次感觉还是很有收获的.这位博主总结了个大概,具体细节还是 要听课:http://www ...

  2. 机器学习技法课之Aggregation模型

    Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记 ...

  3. 机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation

    本文主要基于台大林轩田老师的机器学习技法课程中关于使用融合(aggregation)方法获得更好性能的g的一个总结.包含从静态的融合方法blending(已经有了一堆的g,通过uniform:voti ...

  4. 《机器学习技法》---线性SVM

    (本文内容和图片来自林轩田老师<机器学习技法>) 1. 线性SVM的推导 1.1 形象理解为什么要使用间隔最大化 容忍更多的测量误差,更加的robust.间隔越大,噪声容忍度越大: 1.2 ...

  5. 《机器学习技法》---核型SVM

    (本文内容和图片来自林轩田老师<机器学习技法>) 1. 核技巧引入 如果要用SVM来做非线性的分类,我们采用的方法是将原来的特征空间映射到另一个更高维的空间,在这个更高维的空间做线性的SV ...

  6. 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN

    系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN 2017年01月09日 09:45:26 Eason.wxd 阅读数 14135更多 分类专栏: 机器学习   1 遗传算法1.1 ...

  7. 机器学习技法笔记(2)-Linear SVM

    从这一节开始学习机器学习技法课程中的SVM, 这一节主要介绍标准形式的SVM: Linear SVM 引入SVM 首先回顾Percentron Learning Algrithm(感知器算法PLA)是 ...

  8. coursera机器学习笔记-神经网络,学习篇

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  9. coursera机器学习笔记-神经网络,初识篇

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

随机推荐

  1. BZOJ1393 [Ceoi2008]knights

    题意...上ceoi官网看吧... 首先打一下sg函数发现必胜态和必败态的分布位置是有规律的 于是我们只要知道最长步数的必胜态和最长步数的必败态哪个更长就可以了 然后再打一下步数的表...发现必败态的 ...

  2. Solr 4.3.0 配置Data import handler时出错

    启动solr的时候,居然出现了如下的错误: org.apache.solr.common.SolrException: RequestHandler init failure        at or ...

  3. C#入门篇6-7:字符串操作 看看字符串的特殊之处 值类型与引用类型的区别

    //看看字符串的特殊之处值类型与引用类型的区别 public static void CompareString(string stra, string strb, int i) { #region ...

  4. IISExpress配置文件的一个坑

    现象: 昨天在处理PBS系统问题的时候意外发现两个js错误(而同样的代码在同事机器上都没有问题),如下图. 图1 图2 图3 原因分析: 初步看起来是因为页面上没有id为'form1'的form和id ...

  5. 一个QMLListView的例子--

    一般人不知道怎么去过滤ListView里面的数据,下面是一个转载的文章:http://imaginativethinking.ca/use-qt-quicks-delegatemodelgroup/ ...

  6. OLAP vs OLTP: what makes the difference

    OLAP vs OLTP: what makes the difference OLPT and OLAP are complementingtechnologies. You can't live ...

  7. Topcoder SRM 584 DIV1 600

    思路太繁琐了 ,实在不想解释了 代码: #include<iostream> #include<cstdio> #include<string> #include& ...

  8. ROS TF——learning tf

    在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换. 相关链接:http://www.ros.org/wiki/tf/Tutorials#Learning_tf 一.tf简介 ...

  9. [转载]Android View.onMeasure方法的理解

    2013-12-18 10:56:28 转载自http://blog.sina.com.cn/s/blog_61fbf8d10100zzoy.html View在屏幕上显示出来要先经过measure( ...

  10. wp8.1 C#技巧: Data和ViewModel类编写

    在Data.cs namespace PicApp { [DataContract] class DataItem : PropertyChangeNotification { public even ...