参考资料: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. zabbix一件漂亮的外衣配置

    http://www.cnblogs.com/yyhh/archive/2015/09/08/4792830.html

  2. 本地环境,Ecshop安装教程

    最近有个项目需要用ECshop来做,之前没接触过ECshop,今天去网上找了下安装教程,现在发出来分享一下. 1. ecshop网店系统最新版本是ECSHOP V2.7.3,去官网下载utf8和gbk ...

  3. [转]C#使用Log4Net记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...

  4. php基础27:文件写入

    <?php //1.打开一个文件 /* 第一个参数:打开的文件,第二个参数表明模式,w只写 如果打开的文件已经有了,那么删除这个文件,重新创建 如果没有,直接创建 fopen返回的是资源类型re ...

  5. 说说C#中IList与List区别

    首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口. 它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,ILis ...

  6. Linux(12.1-12.6)学习笔记

    第十二章 并发编程 如果逻辑控制流在时间上重叠,那么他们就是并发的.应用级并发在以下情况中发挥作用: 访问慢速I/O设备. 与人交互. 通过推迟工作以降低延迟. 服务多个网络客户端. 在多核机器上进行 ...

  7. 20135223/20135234/20135229小组——亚博 Arduino智能小车实践报告

    实验名称:Arduino智能小车组装和综合测试 实验小组成员:20135223何伟钦 20135234马启扬 20135229吕松鸿 实验日期:2015.10.27—2015.11.3 实验时长:24 ...

  8. 玩转数据库之 Group by Grouping

    有的时候我们要从数据库里把数据组织成树结构再展现到页面上 像下面这样 今天我们用Group 和Grouping实现它,并总结一下它俩. 先看一下概念,再用代码一点一点去理解它们,最后我会给出完整的代码 ...

  9. Object-Oriented CSS

    1.指导思想: http://oocss.org/ 2.reset.css http://meyerweb.com/eric/tools/css/reset/ 3.normalize.css http ...

  10. 如何远程断点调试本地localhost项目

    前言 对于一般开发网站的IDE自带的服务器是都跑在 localhost 地址上的.(如下图的asp.net) 而这种地址是只能在本机通过 localhost 或 127.0.0.1 地址访问到,而无法 ...