课程地址: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. java面向对象编程——第五章 对象的行为

    5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称 ...

  2. 利用dispatch_once创建单例

     无论是爱还是恨,你都需要单例.实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工程中,单例 ...

  3. LibLinear(SVM包)使用说明之(一)README

    转自:http://blog.csdn.net/zouxy09/article/details/10947323/ LibLinear(SVM包)使用说明之(一)README zouxy09@qq.c ...

  4. Linux 常用命令杂记

    移动光标:h:向左移动j:向下移动k:向上移动l:向上移动 与window 光标移动键功能一致. 常用命令行:shift + ^ 行首shift + $ 行尾ctrl + v 可视模式 , 选择一个范 ...

  5. hdu 1034 (preprocess optimization, property of division to avoid if, decreasing order process) 分类: hdoj 2015-06-16 13:32 39人阅读 评论(0) 收藏

    IMO, version 1 better than version 2, version 2 better than version 3. make some preprocess to make ...

  6. hash算法

    作者:July.wuliming.pkuoliver 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解:第二部分为关于Hash表算法的详细阐述:第三部分为打造一个最快的Hash ...

  7. BT3入门之中文语言支持

    汉化: 1.更新软件库:apt-get update 2.安装中文语言包:apt-get install language-support-zh   apt-get install language- ...

  8. [转][C/C++]函数名字修饰(Decorated Name)方式

    1.C/C++函数修饰名: 对于我们的C/C++源程序而言,函数名只是函数的一小部分,函数还有调用方式(参数入栈方式).返回值类型.参数个数和各参数类型等信息,对于C++类成员函数,还有更多信息.这些 ...

  9. 苹果 iOS 8 新固件新功能特性总结汇总 (苹果 iPhone/iPad 最新移动操作系统)

    苹果在 WWDC 2014 大会上正式发布了其最新的 OS X Yosemite 桌面系统以及 iOS 8 移动操作系统,虽然 iOS 8 依然延续了 iOS7 的扁平化设计风格,但在功能上却还是给我 ...

  10. julia下载QQ.jl

    julia下载QQ.jl #=""" julia下载QQ.jl 从http://im.qq.com/pcqq/页面中提取出QQ的下载地址,并下载. 2016年4月1日 1 ...