高级人工智能之神经网络Artificial Neural Network
文章目录
- 反向传播神经网络
- Feed Forward Propagation前向传播
- Back Propagation
- Error计算
- Weight Updating
- Case1: Between the hidden layer and the output layer
- Case2: Between a hidden layer and a hidden layer
- 实现改进的方面
- Full Batch and mini-batch weight update
- Dropout
- Adaptive Moment estimation
- 相关题目
这章主要是介绍反向传播的神经网络,其中的过程以及相关计算,虽然有些知识在本科的人工智能课上有了解过,但是感觉当时学习的知识不成体系且没有深入本质,这次上课就感觉整个知识体系建立了起来。
反向传播神经网络
首先可以在心中搭起框架,一个神经网络可以理解为用若干个samples去训练出Weight(W)和Bias(b),从而可以利用这个网络将unknown input分类成不同的类别。其中:
- forward pass是在训练好神经网络后的使用,用它对unknown input进行分类;
- 而如何训练出weight和bias则是运用forward pass和backward pass.
Feed Forward Propagation前向传播
Feed Forward Propagation前向传播多是用于classification和recognition的任务中的,根据输入输出预测结果。
在用前向传播的神经网络进行分类的时候,我们假设其网络结构已经训练出来了,即Weight和Bias都已经知道了。
常规的流程我们都清楚,这方面主要就是集中于一些参数Weight和Bias个数的统计
- Weight参数个数为神经网络中所有神经元nuron之间的连接数,如下图为两两层数之间的连接数之和。
- Bias参数个数为神经网络中除了inputs neurons后,剩下所有的神经元个数。
对于其中的神经元(包括Hidden Layers和Output Layer),需要了解其激励函数的原理:
y = f ( u ) y=f(u) y=f(u)
u = ∑ i = 1 i = I [ w ( i ) x ( i ) ] + b , u=\sum\limits_{i=1}^{i=I}[w(i)x(i)]+b, u=i=1∑i=I[w(i)x(i)]+b,
b b b=bias, x x x=input, w w w=weight, u u u=internal signal
Typically f ( ) f() f() is a logistic (Sigmod) function,i.e.
f ( u ) = 1 1 + e x p ( − β u ) f(u)=\frac{1}{1+exp{(-\beta u)}} f(u)=1+exp(−βu)1, assume β = 1 \beta=1 β=1 for simplicity,
therefore f ( u ) = 1 1 + e − ( ∑ i = 1 i = I [ ω ( i ) x ( i ) ] + b ) f(u)=\frac{1}{1+e^{-\left(\sum_{i=1}^{i=I}[\omega(i) x(i)]+\mathrm{b}\right)}} f(u)=1+e−(∑i=1i=I[ω(i)x(i)]+b)1
一个神经元激励计算的例子如下:
Back Propagation
Back propagation主要用于训练神经网络的,它也包括forward processing预测结果的过程,根据预测出来的结果对神经网络进行反向处理backward processing,更新网络权重。
这部分关键在于误差e的计算,以及在两种情况下如何进行权重更新。
Error计算
图中e(n)
表示的是样本n在类别1上产生的误差, Y 1 、 Y 2 、 Y 3 Y1、Y2、Y3 Y1、Y2、Y3分别代表在三个类别上neurons的输出(并没有经过softmax层), T 1 、 T 2 、 T 3 T1、T2、T3 T1、T2、T3代表真实类别标签的三个分量。
权重的更新为 w n e w = w o l d − η ∗ ∂ E ∂ w w_{new}=w_{old}- \eta*\frac{\partial E}{\partial w} wnew=wold−η∗∂w∂E, η \eta η为learning rate, 如下图证明所示,这样的更新可以使得系统整体的误差 E E E不断减小。
Weight Updating
Case1: Between the hidden layer and the output layer
简单地理解来说,就是误差 ε \varepsilon ε对预测值 x i x_i xi求偏导,然后预测值 x i x_i xi针对其计算中的e的指数上的和 u i u_i ui求偏导,最后该和 u i u_i ui对 w j , i w_{j,i} wj,i求偏导。
其中的sensitivity表示出来,可以复用在后面链式a hidden layer and a hidden layer之间状态更新的链式求导,链式前面sensitivity都一致,不一致的是后面 u i u_i ui对 w j , i w_{j,i} wj,i还是对 x j x_j xj求导。
Case2: Between a hidden layer and a hidden layer
实现改进的方面
Full Batch and mini-batch weight update
这是一种加快训练速度的方式,我们将所有数据用于训练的一轮称作one epoch. 在一个epoch中每多少个训练样本用于权重更新称作batch size.
- Full-batch: 训练需要多次epoch,每次epoch将所有训练样本的gradient用于更新权重,一个epoch进行一次 backward pass.
- Mini-batch:在一个epoch中,每几个样本的gradient进行权重更新,一个epoch进行多次 backward pass.
- Online batch size: 每个样本的gradient都用于权重更新,batch size=1,前面的很多概念都是这个下面的。
Dropout
丢掉神经网络中的几个节点预防过拟合overfitting。
Adaptive Moment estimation
之前的权重更新都是 w = w − α ∗ g w=w-\alpha*g w=w−α∗g,现在引入momentum和root mean square,处理噪声问题带来的稀疏的gradient。
相关题目
weight update between the hidden layer and the output layer
weight update Between a hidden layer and a hidden layer
高级人工智能之神经网络Artificial Neural Network相关推荐
- 机器学习实战-57: 人工神经网络分类算法(Artificial Neural Network)
机器学习实战-57: 人工神经网络分类算法 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 人工神经网络(Artificial Neural Network)分类算法属于监督学习算法 ...
- R语言高级算法之人工神经网络(Artificial Neural Network)
1.人工神经网络原理分析: 神经网络是一种运算模型,由大量的节点(或称神经元)和之间的相互连接构成,每个节点代表一种特定的输出函数,称为激励函数(activation function).每两个节点间 ...
- 非常详细的讲解让你深刻理解神经网络NN(neural network)
作者:RayChiu_Labloy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 目录 什么是神经网络NN.人工神经网络ANN 神经元(神经网络的基本单元) 概念详解 ...
- 递归神经网络(Recursive Neural Network, RNN)
信息往往还存在着诸如树结构.图结构等更复杂的结构.这就需要用到递归神经网络 (Recursive Neural Network, RNN),巧合的是递归神经网络的缩写和循环神经网络一样,也是RNN,递 ...
- 卷积神经网络(Convolutional Neural Network, CNN)
卷积神经网络(Convolutional Neural Network, CNN) 目录 卷积神经网络(Convolutional Neural Network, CNN) 概述: 结构: 卷积层:
- 深度学习之递归神经网络(Recurrent Neural Network,RNN)
为什么有bp神经网络.CNN.还需要RNN? BP神经网络和CNN的输入输出都是互相独立的:但是实际应用中有些场景输出内容和之前的内 容是有关联的. RNN引入"记忆"的概念:递归 ...
- python中forward的作用_基于numpy的前馈神经网络(feedforward neural network)
*** 这几天在上Andrew Ng教授开的Coursera系列课程Deep Learning,总觉得光是看视频和做作业还不够,还是得自己动手写写代码,亲自实现课程里提到的算法内容,于是便有了这篇博客 ...
- 人工神经网络(Artificial Neural Netwroks)笔记-消除样本顺序的BP算法
人工神经网络(Artificial Neural Netwroks)笔记-基本BP算法 上文中已经提到"基础BP算法"偏爱"较后出现的样本,因此较后出现的样本对网络影响较 ...
- 什么是RNN?一文看懂强大的循环神经网络(Recurrent Neural Network, RNN)
循环神经网络(Recurrent Neural Network,RNN)是一类用于处理序列数据的神经网络.所谓序列数据,即前面的输入和后面的输入是有关系的,如一个句子,或者视频帧.就像卷积网络是专门用 ...
最新文章
- SpringBoot(二)——JPA
- Android中使用Room时怎样存储带list集合的对象
- C++coin change 硬币找零(附完整源码)
- 【数据库实验课堂】实验一:数据库的管理
- Jeecg-P3 1.0.1版本发布,轻量级微服务框架
- 用于CRUD和更多的模型驱动的RESTful API
- c#: using Microsoft.Office.Interop.Excel 异常
- 【精选】Java高频面试题278道附答案,通关中大型互联网企业工程师必备
- javaIO流-File类及其方法
- 车载一体机凯立德导航升级
- 数据库表结构及索引设计
- python怎么输入下一行_python中怎么换行,怎么从第一行换到第二行的?
- Yapi 可视化接口管理平台部署文档
- 超实用!网站导航栏设计方法总结
- 计算机网络技术实验TCP,计算机网络实验3TCP实验
- EventBus Vuex?
- CorelDRAWX4的VBA插件开发(三十一)使用C++制作动态连接库DLL辅助VBA构键强大功能-(5)在VBA中动态调用DLL文件
- 【ffmpeg】下载以及使用-视频截取
- 基于Python摄影图片分享系统设计与实现 开题报告
- 如何评价 2021 考研政治题,难度如何?