机器学习技法-神经网络(NNet)
课程地址:https://class.coursera.org/ntumltwo-002
重要!重要!重要~

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


二、神经网络
神经网络是个功能非常强大的模型,输出层可以输出任意范围的数,因此根据需求可以选择分类,回归、以及像LR一样的软分类的任何一种。神经网络中的每一个神经元输入是前一层网络的线性加权的结果,考虑整个网络使用线性模型会使得神经网络能力受限、sign阶梯函数不易优化等的缺点,神经元自身的转换函数选择了与sign阶梯相似的“S”形tanh函数。一个完整的神经网络的设计是比较复杂的,需要确定网络的结构、网络层数、输入、输出、神经元的转换函数、阀值(偏置)、每个连接的权重。林老师在课上将神经网络的物理解释是每一层都通过转换来从数据学习,提取与每一层连接权相匹配的模式,不是很理解/(ㄒoㄒ)/~~
神经网络的属性:
- 每个神经元的输出,称为该神经元的能量
- 相邻层神经元节点之间的连接有个权重Wij,其值在[-1,1]之间
- 除输出层外,每层都会有个阀值,也称为偏置,其值在[0,1]之间
- 隐藏层之间的每个神经元的输出为该节点输入值的非线性变换(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)的更多相关文章
- Coursera台大机器学习技法课程笔记01-linear hard SVM
极其淡腾的一学期终于过去了,暑假打算学下台大的这门机器学习技法. 第一课是对SVM的介绍,虽然之前也学过,但听了一次感觉还是很有收获的.这位博主总结了个大概,具体细节还是 要听课:http://www ...
- 机器学习技法课之Aggregation模型
Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记 ...
- 机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation
本文主要基于台大林轩田老师的机器学习技法课程中关于使用融合(aggregation)方法获得更好性能的g的一个总结.包含从静态的融合方法blending(已经有了一堆的g,通过uniform:voti ...
- 《机器学习技法》---线性SVM
(本文内容和图片来自林轩田老师<机器学习技法>) 1. 线性SVM的推导 1.1 形象理解为什么要使用间隔最大化 容忍更多的测量误差,更加的robust.间隔越大,噪声容忍度越大: 1.2 ...
- 《机器学习技法》---核型SVM
(本文内容和图片来自林轩田老师<机器学习技法>) 1. 核技巧引入 如果要用SVM来做非线性的分类,我们采用的方法是将原来的特征空间映射到另一个更高维的空间,在这个更高维的空间做线性的SV ...
- 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN
系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN 2017年01月09日 09:45:26 Eason.wxd 阅读数 14135更多 分类专栏: 机器学习 1 遗传算法1.1 ...
- 机器学习技法笔记(2)-Linear SVM
从这一节开始学习机器学习技法课程中的SVM, 这一节主要介绍标准形式的SVM: Linear SVM 引入SVM 首先回顾Percentron Learning Algrithm(感知器算法PLA)是 ...
- coursera机器学习笔记-神经网络,学习篇
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- coursera机器学习笔记-神经网络,初识篇
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
随机推荐
- C# + winserver2008 openfiledialog 写入 textbox1 中的 路径不正确
System.IO.Path.GetFullPath(openFileDialog1.FileName);//绝对路径 System.IO.Path.GetExtension(openFileDial ...
- c# 关键字delegate、event(委托与事件)[MSDN原文摘录][2]
//Demo1:Declaring an event in an interface and implementing it in //a class. // event_keyword.cs usi ...
- c#网络通信框架networkcomms内核解析之八 数据包的核心处理器
NetworkComms网络通信框架序言 本文基于networkcomms2.3.1开源版本 gplv3协议 我们先回顾一个 c#网络通信框架networkcomms内核解析之六 处理接收到的二进制 ...
- Xmanager如何连接图形化界面
1.编辑gnome配置文件vim /etc/gdm/custom.conf # GDM configuration storage [daemon]RemoteGreeter= /usr/libexe ...
- qml package 的使用
什么时候使用这个.就是多个view使用同一个deleagte的时候. The Package class is used in conjunction with VisualDataModel to ...
- 投资统计查询sql
select COUNT(*) from YYD_Users_RegInfo where regTime between '2016-07-11 00:00:00' and '2016-07-11 2 ...
- IT公司100题-7-判断两个链表是否相交
问题:有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环.1.如何判断一个链表是不是这类链表? 问题扩展:1.如果链表可能有环呢?2.如果需 ...
- HDU 3377 插头dp
题目大意: 从左上角走到右下角,每个点之多经过一次,取到所有路径上经过点的权值,求最大的权值之和,这里走到右下角就算停止了 这里有个思路是转化成熟悉的回路问题 在上方和右方最外围定义一圈权值为0 , ...
- Android中 服务里的方法抽取成接口
1 写个类继承Service 重写 onBind方法 返回一个IBinder 对象(传递到连接成功时用) 2 服务中 写一个内部类 继承IBinder 并且实现一个接口(用于抽取方法)继承IBinde ...
- Chrome 应用推荐 - 下载管理扩展: Chrono
地址:http://goo.gl/JVdxvg Chrono下载管理器让你轻松高效地管理Chrome浏览器中的下载任务.Chrono与Chrome浏览器紧密地整合在一起,如菜单.工具栏支持等等.Chr ...