参考资料:http://www.cnblogs.com/subconscious/p/5058741.html

从函数上来看,神经网络是回归方程的级联叠加,用来逼近目标函数的,本质是一种模拟特征与目标之间的真实关系函数的模型

一、结构

一个有向拓扑,每层有若干节点,节点间有边,边上有权值。

二、组成

  1. 输入层
  2. 隐藏层:多层;后层是前层各节点值的线性组合的函数,即Y=f(x0+w1x1+w2x2+...+wnxn),线性组合的系数就是边的权值,为免计算量复杂,规定最多只能对线性组合做一次非线性变换,如sgn函数(0个隐藏层,此时即感知机)、Sigmoid函数(1个隐藏层)、ReLU函数(更多个隐藏层)等;
  3. 输出层:对于一次输入,输出层各节点都有一个值,把模式归为输出点值大的那一类

三、设计

设计神经网络通常要做的就是设计网络有几层、每层有几个节点、以及节点间边的权值,权值通过神经网络训练调整得到。主要的任务是训练权值,因此实现一个神经网络最需要的是线性代数库。

BP算法

  在训练权值上,有BP反向传播算法

  • 主要思想

反向逐层传播输出层的误差,以间接计算隐藏层的误差并基于此修正权值。

  • 核心步骤

  正向传播:信息从输入层经隐藏层逐层计算各单元的输出值;反向传播:由输出层误差逐层向前计算隐藏层各单元的误差,并基于此修正前层权值。

  • 不足

    • 用梯度法求非线性函数极值,因而有可能陷入局部极小点,不能保证收敛到全局极小点。
    • 权值初始值:如果权值初始值都为零或都相同,隐层各单元不能出现差异,运算不能正常进行。因此,通常用较小的随机数(例如在-0.3~0.3之间的随机数)作为权值初始值。初始值对收敛有影响,当计算不收敛时,可以改变初始值试算。

四、分类

注:图中的单层指一个计算层,所以整个网络有两层(此时即感知机);类似,两层网络指两个计算层,所以整个网络有三层。

五、其他

隐藏层的参数矩阵的作用就是使得数据的原始坐标空间从线性不可分,转换成了线性可分,后一层是前一层的线性组合的函数,即是对前一层的线性分类,因此就达到了总体效果——对原始数据进行非线性分类。

理论证明,三层神经网络(一个隐藏层)可以实现任意的逻辑运算,在激活函数为Sigmoid函数的情况下,可以逼近任何非线性多元函数。

优化问题只是训练中的一个部分。机器学习问题之所以称为学习问题,而不是优化问题,就是因为它不仅要求数据在训练集上求得一个较小的误差,在测试集上也要表现好。因为模型最终是要部署到没有见过训练数据的真实场景。提升模型在测试集上的预测效果的主题叫做泛化(generalization),相关方法被称作正则化(regularization)。神经网络中常用的泛化技术有权重衰减等。

尽管使用了BP算法,一次神经网络的训练仍然耗时太久,而且困扰训练优化的一个问题就是局部最优解问题,这使得神经网络的优化较为困难。同时,隐藏层的节点数需要调参,这使得使用不太方便,工程和研究人员对此多有抱怨。

在单层(一个计算层,即总共两层)神经网络时,我们使用的激活函数是sgn函数。到了两层神经网络时,我们使用的最多的是sigmoid函数。而到了多层神经网络时,通过一系列的研究发现,ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。因此,目前在深度学习中,最流行的非线性函数是ReLU函数。ReLU函数不是传统的非线性函数,而是分段线性函数。其表达式非常简单,就是y=max(x,0)。简而言之,在x大于0,输出就是输入,而在x小于0时,输出就保持为0。这种函数的设计启发来自于生物神经元对于激励的线性响应,以及当低于某个阈值后就不再响应的模拟。

神经网络的发展背后的外在原因可以被总结为:更强的计算性能,更多的数据,以及更好的训练方法,只有满足这些条件时,神经网络的函数拟合能力才能得已体现。

人工神经网络(ANN)的更多相关文章

  1. 机器学习笔记之人工神经网络(ANN)

    人工神经网络(ANN)提供了一种普遍而且实际的方法从样例中学习值为实数.离散值或向量函数.人工神经网络由一系列简单的单元相互连接构成,其中每个单元有一定数量的实值输入,并产生单一的实值输出. 上面是一 ...

  2. 【机器学习】人工神经网络ANN

    神经网络是从生物领域自然的鬼斧神工中学习智慧的一种应用.人工神经网络(ANN)的发展经历的了几次高潮低谷,如今,随着数据爆发.硬件计算能力暴增.深度学习算法的优化,我们迎来了又一次的ANN雄起时代,以 ...

  3. 人工神经网络--ANN

    神经网络是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术. 本文以一种简单的,循序的方 ...

  4. [数据挖掘课程笔记]人工神经网络(ANN)

    人工神经网络(Artificial Neural Networks)顾名思义,是模仿人大脑神经元结构的模型.上图是一个有隐含层的人工神经网络模型.X = (x1,x2,..,xm)是ANN的输入,也就 ...

  5. [DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络

    先一层一层的说卷积神经网络是啥: 1:卷积层,特征提取 我们输入这样一幅图片(28*28): 如果用传统神经网络,下一层的每个神经元将连接到输入图片的每一个像素上去,但是在卷积神经网络中,我们只把输入 ...

  6. C#中调用Matlab人工神经网络算法实现手写数字识别

    手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写 ...

  7. 人工神经网络入门(4) —— AFORGE.NET简介

    范例程序下载:http://files.cnblogs.com/gpcuster/ANN3.rar如果您有疑问,可以先参考 FAQ 如果您未找到满意的答案,可以在下面留言:) 0 目录人工神经网络入门 ...

  8. 人工神经网络 Artificial Neural Network

    2017-12-18 23:42:33 一.什么是深度学习 深度学习(deep neural network)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高 ...

  9. 微软“小冰”识狗与人工神经网络(I)

    2014年8月21日,微软"小冰"网络机器人推出了一项图像识别技能:"小冰识狗". "小冰"怎么会"识狗"呢? 依据微软 ...

  10. ML三(人工神经网络)

    人工神经网络 Artificial Neural Nerworks 基本术语概念: 人工神经网络(Artificial Neural Networks,ANN) 感知器(Perceptron):以一个 ...

随机推荐

  1. 【C#】ContextMenuStrip 右键菜单颜色设置

    有些时候自己想要修改ContexMenuStrip右键菜单的一些背景色之类的,该如何实现呢? 首先: ContextMenuStrip _context = new ContextMenuStrip( ...

  2. 矩形覆盖-我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

    class Solution { public: int rectCover(int number) { ; ; ; ||number==) ; ) ; ;i<number+;i++){ res ...

  3. NPOI 导出excel带图片,可控大小

    using NPOI.HSSF.UserModel;using NPOI.HSSF.Util;using NPOI.DDF;using NPOI.SS.UserModel;using System.I ...

  4. LeetCode 笔记22 Distinct Subsequences 动态规划需要冷静

    Distinct Subsequences Given a string S and a string T, count the number of distinct subsequences of  ...

  5. MPMoviePlayerViewController的使用 (不直接将播放器放到主视图控制器,而是放到一个内部模态视图控制器中)

    其实MPMoviePlayerController如果不作为嵌入视频来播放(例如在新闻中嵌入一个视频),通常在播放时都是占满一个屏幕的,特别是在 iPhone.iTouch上.因此从iOS3.2以后苹 ...

  6. WIN7下USB多点触摸,一次发多个数据包的延迟问题,重要!

    这个问题很常见, 花了差不多一个星期时间来解决.硬件相关的东西太多坑了,而且这些坑不像代码那样可见.   使用混合模式,每次最多报告2个点.如果是5点则需要上报三次. 问题就来了,atmel的CTP最 ...

  7. 云计算之路-阿里云上:2014年6月12日14:40出现CPU 100%

    这是今天遇到的第2次故障,主站1台云服务器在14:40:33-14:41:09期间出现CPU突然跑满的状况,而CPU跑满之前,请求量并没有明显增长. 向阿里云提交之后,说晚上会对这台云服务器的虚拟机进 ...

  8. Bootstrap系列 -- 25. 下拉菜单分割线

    在Bootstrap框架中的下拉菜单还提供了下拉分隔线,假设下拉菜单有两个组,那么组与组之间可以通过添加一个空的<li>,并且给这个<li>添加类名“divider”来实现添加 ...

  9. WPF MenuItem 四种角色分析

    Menu Menu的样式很简单,就是顶部的那个框,如下图     而其中的文字“文件”“图形”...是属于MenuItem的,要灵活使用MenuItem,就需要了解MenuItem.Role的作用 T ...

  10. please tell me the error about java Graphics

    this is the code: public class paint extends JFrame{ public paint(){ setLayout(new FlowLayout()); se ...