ML三(人工神经网络)
人工神经网络
Artificial Neural Nerworks
基本术语概念:
人工神经网络(Artificial Neural Networks,ANN)
感知器(Perceptron):以一个实数值向量作为输入,计算输入的线性组合,如果结果大于某个阈值输出1,否则输出-1。
权值(weight):贡献率。
线性可分(linearly separable)
Delta法则(delta rule):LMS的一个变态,采用梯度下降。
感知器训练法则(perceptron training rule)
梯度下降(gradient descent)
反向传播算法(The Backpropagation Algorithm)
1 适合神经网络学习的问题
- 实例使用很多"属性-值"对表示的。
- 目标函数的输出可能是离散值。
- 训练数据可能包含错误。
- 可容忍长时间的训练。
- 可能需要快速求出目标函数值。
- 人类能否理解学到的目标函数是不重要的。
2 感知器(perceptron)
感知器:ANN系统的基础单元

其中,w是一个实数常量,叫做权值(weight)。
学习一个感知器意味着选择权w的值。
2.1 感知器的表征能力
单独的感知器可以解决线性可分(linearly separable)样例集合,例如很多布尔函数,AND,OR,但不能解决线性不可分的函数,例如异或函数XOR。
2.2 感知器训练法则
- 感知器法则(perceptron training rule):


该法则收敛的前提是训练样例线性可分。
- Delta法则:
如果训练样本不是线性可分的,那么delta法则会收敛到目标概念的最佳近似。它的关键思想是使用梯度下降(gradient descent)来进行搜索。

先制定一个度量标准来衡量假设相对于训练样本的训练误差(training error)。

其中,D是训练样例集合,t是训练样例d的目标输出,o是线性单元对训练样例d的输出。
接下来要是误差最小,计算E相对w每个分量的导数。

这个向量导数被称为E对于w的梯度(gradient)。
通过求导得:

3 多层网络和反向传播算法(The Backpropagation Algorithm)
3.1 可微阈值单元(A Differentiable Threshold Unit)
这里需要的单元应该是,它的输出是输入的非线性函数,并且输出是输入的可微函数,这样我们就能表征非线性函数的网络。Sigmoid单元满足。
Sigmoid单元:



3.2 反向传播算法(The Backpropagation Algorithm)
这里描述的算法适用于包含两层sigmoid单元的分层前馈网络,它采用梯度下降方法试图最小化网络输出值和目标值之间的误差平方,来学习这个网络的权值。一些符号意义:


3.3 反向传播法则的推导
符号表示:






ML三(人工神经网络)的更多相关文章
- SIGAI深度学习第三集 人工神经网络2
讲授神经网络的理论解释.实现细节包括输入与输出值的设定.网络规模.激活函数.损失函数.初始化.正则化.学习率的设定.实际应用等 大纲: 实验环节: 理论层面的解释:两个方面,1.数学角度,映射函数h( ...
- C#中调用Matlab人工神经网络算法实现手写数字识别
手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化 投影 矩阵 目标定位 Matlab 手写数字图像识别简介: 手写 ...
- 人工神经网络(Artificial Neural Networks)
人工神经网络的产生一定程度上受生物学的启发,因为生物的学习系统是由相互连接的神经元相互连接的神经元组成的复杂网络.而人工神经网络跟这个差不多,它是一系列简单的单元相互密集连接而成的.其中每个单元有一定 ...
- 人工神经网络简介和单层网络实现AND运算--AForge.NET框架的使用(五)
原文:人工神经网络简介和单层网络实现AND运算--AForge.NET框架的使用(五) 前面4篇文章说的是模糊系统,它不同于传统的值逻辑,理论基础是模糊数学,所以有些朋友看着有点迷糊,如果有兴趣建议参 ...
- 人工神经网络 Artificial Neural Network
2017-12-18 23:42:33 一.什么是深度学习 深度学习(deep neural network)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高 ...
- 微软“小冰”识狗与人工神经网络(I)
2014年8月21日,微软"小冰"网络机器人推出了一项图像识别技能:"小冰识狗". "小冰"怎么会"识狗"呢? 依据微软 ...
- 人工神经网络--ANN
神经网络是一门重要的机器学习技术.它是目前最为火热的研究方向--深度学习的基础.学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术. 本文以一种简单的,循序的方 ...
- 人工神经网络反向传播算法(BP算法)证明推导
为了搞明白这个没少在网上搜,但是结果不尽人意,最后找到了一篇很好很详细的证明过程,摘抄整理为 latex 如下. (原文:https://blog.csdn.net/weixin_41718085/a ...
- neurosolutions 人工神经网络集成开发环境 keras
人工神经网络集成开发环境 : http://www.neurosolutions.com/ keras: https://github.com/fchollet/keras 文档 http ...
随机推荐
- GO语言使用开源SSH模拟终端
<pre name="code" class="plain">package main import ( "go-ssh/ssh" ...
- 怎样新建Quartusproject—FPGA新手教程
这一章我们来实现第一个FPGAproject-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建project,代码设计,综合实现.管脚约束,下载FPGA程序. 掌握本章内 ...
- hdu 4454 Stealing a Cake(计算几何:最短距离、枚举/三分)
题意:已知起点.圆.矩形,要求计算从起点开始,经过圆(和圆上任一点接触即可),到达矩形的路径的最短距离.(可以穿过园). 分析:没什么好的方法,凭感觉圆上的每个点对应最短距离,应该是一个凸函数,用三分 ...
- [译]GLUT教程 - 位图字体
Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Bitmap Fonts 位图字体一般是二维字体.虽然我们会把它放到三维 ...
- df 命令
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...
- ubuntu中文乱码--添加中文字符集
在Ubuntu支持中文后(方法见上篇文章),默认是UTF-8编码,而Windows中文版默认是GBK编码.为了一致性,通常要把Ubuntu的默认 编码改为GBK.当然你也可以不改,但这会导致我们在两个 ...
- php7.0 出现 curl_setopt(): Disabling safe uploads is no longer supported in 报错!
项目换成php7.0,进行了测试,使用curl时,出现: curl_setopt(): Disabling safe uploads is no longer supported in xxx.定位到 ...
- unittest 结合 ddt
数据驱动测试ddt,使用的重点: 1.@ddt.ddt2.@ddt.data(*zip(range(10),range(10,20))) 注意一定要带* 3.@ddt.unpack # c ...
- spring 构造方法注入和setter方法注入的XML表达
1.构造方法注入 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC ...
- Collecting Bugs (概率dp)
Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other material stu ...