虽然学深度学习有一段时间了,但是对于一些算法的具体实现还是模糊不清,用了很久也不是很了解.因此特意先对深度学习中的相关基础概念做一下总结.先看看前向传播算法(Forward propagation)与反向传播算法(Back propagation). 1.前向传播 ​​ 如图所示,这里讲得已经很清楚了,前向传播的思想比较简单. 举个例子,假设上一层结点i,j,k,…等一些结点与本层的结点w有连接,那么结点w的值怎么算呢?就是通过上一层的i,j,k等结点以及对应的连接权值进行加权和运算,最终结果再…
最近在学习卷积神经网络,哎,真的是一头雾水!最后决定从阅读CNN程序下手! 程序来源于GitHub的DeepLearnToolbox 由于确实缺乏理论基础,所以,先从程序的数据流入手,虽然对高手来讲,这样有点太小儿科了,但觉得对于个人理解CNN网络的结构和数据流走向有较大帮助! 下面,将要分析CNN的前向传播算法cnnff.m 本程序所用的神经网络的结构如下图的结构体net所示 结构体net 包含5层 每层的结构 这五层的结构如下: 每层的结构分别如下: 为了方便自己理解,下面,分别对每一层的输…
深度神经网络(Deep Neural Networks, 以下简称DNN)是深度学习的基础,而要理解DNN,首先我们要理解DNN模型,下面我们就对DNN的模型与前向传播算法做一个总结. 1. 从感知机到神经网络 在感知机原理小结中,我们介绍过感知机的模型,它是一个有若干输入和一个输出的模型,如下图: 输出和输入之间学习到一个线性关系,得到中间输出结果:$$z=\sum\limits_{i=1}^mw_ix_i + b$$ 接着是一个神经元激活函数: $$sign(z)=\begin{cases}…
在卷积神经网络(CNN)模型结构中,我们对CNN的模型结构做了总结,这里我们就在CNN的模型基础上,看看CNN的前向传播算法是什么样子的.重点会和传统的DNN比较讨论. 1. 回顾CNN的结构 在上一篇里,我们已经讲到了CNN的结构,包括输出层,若干的卷积层+ReLU激活函数,若干的池化层,DNN全连接层,以及最后的用Softmax激活函数的输出层.这里我们用一个彩色的汽车样本的图像识别再从感官上回顾下CNN的结构.图中的CONV即为卷积层,POOL即为池化层,而FC即为DNN全连接层,包括了我…
在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向传播算法要解决的问题 在了解DNN的反向传播算法前,我们先要知道DNN反向传播算法要解决的问题,也就是说,什么时候我们需要这个反向传播算法? 回到我们监督学习的一般问题,假设我们有m个训练样本:$\{(x_1,y_1), (x_2,y_2), ..., (x_m,y_m)\}$,其中$x$为输入向量…
1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 我们已经了解了CNN的结构,CNN主要结构有输入层,一些卷积层和池化层,后面是DNN全连接层,最后是Softmax激活函数的输出层.这里我们用一个彩色的汽车样本的图像识别再从感官上回顾下CNN的结构.图中的CONV即为卷积层,POOL即为池化层,而FC即为DNN全连接层,包括了我们上面最后的用Softmax激活函数的输出层. 2. 卷积层的前向传播 还是以上面的图片作为例子. 先考虑最简单…
1 BP算法的推导 图1 一个简单的三层神经网络 图1所示是一个简单的三层(两个隐藏层,一个输出层)神经网络结构,假设我们使用这个神经网络来解决二分类问题,我们给这个网络一个输入样本,通过前向运算得到输出.输出值的值域为,例如的值越接近0,代表该样本是"0"类的可能性越大,反之是"1"类的可能性大. 1.1 前向传播的计算 为了便于理解后续的内容,我们需要先搞清楚前向传播的计算过程,以图1所示的内容为例: 输入的样本为: ${\Large \overrightarr…
深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, (x_m, y_m)\}$,其中$x$为输入向量,$y$为输出向量,利用这个训练样本训练模型的参数,使得给定模型一个$x_{test}$,其能够预测$y_{test}$. 采用CNN模型的时候,$x$输入向量全部喂给输入层,$y$输出向量和输出层的向量一起计算损失函数,而其中若干个神经元的隐藏层,每…
反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能) 这就要求对梯度下降法做少许改进. 实现过程:  一.正向传播 首先,同逻辑回归,我们求出神经网络输出与实际值的“误差”——COST: 这里先使用欧式距离而不是索夫曼函数作为输出的cost: 展开之后: (注意右边的权重衰减项,既规则化) 二.反向传播 对于第  层(输出层)的每个输出单元 ,我们…
先看下面信号流图,L=2和M0=M1=M2=M3=3的情况,上面是前向通过,下面部分是反向通过. 1.初始化.假设没有先验知识可用,可以以一个一致分布来随机的挑选突触权值和阈值,这个分布选择为均值等于0的均匀分布,它的方差选择应该使得神经元的诱导局部域的标准偏差位于sigmoid激活函数的线行部分与饱和部分过渡处. (1)训练样本的呈现.呈现训练样本的一个回合给网络.对训练集中以某种形式排序的每个样本,一次进行下面的第3点和第4点中所描述的前向和反向计算. (2)前向计算.在该回合中设一个训练样…