激活函数
摘要:激活函数就是非线性函数,常用于非线性模型,特别是神经网络; 非线性函数用于构建非线性决策边界,多个非线性函数的组合能够构建复杂的决策面; 本文旨在总结这些函数,并进行对比分析 阶跃函数 最早的激活函数,图如下 缺点:不连续,且局部导数为 0,无法反向传播 它只用在 感知器 上 sigmoid 它是用
阅读全文
目标检测(3)-Fast R-CNN
摘要:引言 之前学习了 R-CNN 和 SPPNet,这里做一下回顾和补充。 问题 R-CNN 需要对输入进行resize变换,在对大量 ROI 进行特征提取时,需要进行卷积计算,而且由于 ROI 存在重复区域,所以特征提取存在大量的重复计算; SPPNet 针对 R-CNN 进行了改进,其利用空间金字塔
阅读全文
目标检测(2)-SPPNet
摘要:引言 先简单回顾一下R-CNN的问题,每张图片,通过 Selective Search 选择2000个建议框,通过变形,利用CNN提取特征,这是非常耗时的,而且,形变必然导致信息失真,最终影响模型的性能。 由此引出了一系列问题 问题1:形变耗时又损失信息,为什么要形变 很简单,因为CNN的输入必须是
阅读全文
目标检测(1)-R-CNN
摘要:R-CNN全称为 Region-CNN,它是第一个成功地将深度学习应用到目标检测的算法,后续的改进算法 Fast R-CNN、Faster R-CNN都是基于该算法。 传统方法 VS R-CNN 传统的目标检测大多以图像识别为基础。一般是在图片上穷举出所有物体可能出现的区域框,然后对该区域框进行特征
阅读全文
超参数调优
摘要:在神经网络中,有许多超参数需要设置,比如学习率,网络层数,神经元节点数 所谓超参数,就是不需要训练的参数,需要人为设定的参数。 这些超参数对模型的训练和性能都有很大影响,非常重要,那么这些超参数该怎么设定呢? 一般我们可以根据经验来设定,但是经验毕竟有限,而且也不科学。 验证数据 在模型训练时,我们
阅读全文
cnn 经典网络结构 解析
摘要:cnn发展史 这是imageNet比赛的历史成绩 可以看到准确率越来越高,网络越来越深。 加深网络比加宽网络有效的多,这已是公认的结论。 cnn结构演化图 AlexNet 诞生于2012年,因为当时用了两个GPU(硬件设备差),所以结构图是2组并行 网络结构总共8层,5个卷积层,3个全连接层,最后输
阅读全文
Batch Normalization 引出的一系列问题
摘要:Batch Normalization,拆开来看,第一个单词意思是批,出现在梯度下降的概念里,第二个单词意思是标准化,出现在数据预处理的概念里。 我们先来看看这两个概念。 数据预处理 方法很多,后面我会在其他博客中专门讲,这里简单回忆下 归一化,x-min/max-min, 标准化,包括标准差标准化
阅读全文
CNN 经典网络之-ResNet
摘要:resnet 又叫深度残差网络 图像识别准确率很高,主要作者是国人哦 深度网络的退化问题 深度网络难以训练,梯度消失,梯度爆炸,老生常谈,不多说 resnet 解决了这个问题,并且将网络深度扩展到了最多152层。怎么解决的呢? 残差学习 结构如图 在普通的卷积过程中加入了一个x的恒等映射(ident
阅读全文
cnn-文本分类
摘要:一张图解释CNN如何进行文本分类。 照这个思路,cnn可以解决很多时序问题,与rnn相比,只是不能解决一对多、多对多的问题。 中文大概长这样 参考资料: http://www.wildml.com/2015/11/understanding-convolutional-neural-networks
阅读全文
深层网络结构的意义
摘要:为什么深层网络比浅层网络更优秀?答案或许很多,我介绍几点。 减少训练参数 以卷积为例,5x5的卷积核把25个像素变成1个,需要25个权重, 而两个3x3的卷积核,也可以把25个像素变成1个,只需要18个权重 5x5 ==> 3x3 ==> 1 提高学习效率 之前讲到权重就是过滤器,学习就是生成过滤器
阅读全文
rnn-nlp-单词预测
摘要:理解这个代码之前最好先理解LSTM手写数字识别。 类比图像解释自然语言处理 1. 自然语言的输入需要先把句子截成固定长度的片段,这就是一个序列,也就是一张图片,片段中的每一个字或者词就是图片的一行,lstm每个时序输入这个字或者词。 2. 不同之处在于,自然语言每个时序都有x和y,y就是x后的那个字
阅读全文
卷积神经网络 CNN - Dropout
摘要:dropout 是神经网络用来防止过拟合的一种方法,很简单,但是很实用。 基本思想是以一定概率放弃被激活的神经元,使得模型更健壮,相当于放弃一些特征,这使得模型不过分依赖于某些特征,即使这些特征是真实的,当然也可能是假的。 大致步骤 1. 在神经元 H1 被激活后,随机生成一组数据 U1 和一个0-
阅读全文
rnn-手写数字识别-网络结构-shape
摘要:手写数字识别经典案例,目标是: 1. 掌握tf编写RNN的方法 2. 剖析RNN网络结构 tensorflow编程 如果你非常熟悉rnn,代码整体上还是比较好理解的,但是里面涉及许多次的shape设置,比较让人头大,特别是后期写各种rnn时,很容易迷糊,所以每个模型都要理解透彻。 以上代码涉及到sh
阅读全文
循环神经网络-Dropout
摘要:dropout 是 regularization 方法,在rnn中使用方法不同于cnn 对于rnn的部分不进行dropout,也就是说从t-1时候的状态传递到t时刻进行计算时,这个中间不进行memory的dropout;仅在同一个t时刻中,多层cell之间传递信息的时候进行dropout。 因此,我
阅读全文
循环神经网络(五)-LSTM进阶
摘要:基础的LSTM模型,单隐层,隐层单神经元,而实际中一般需要更为复杂的网络结构, 下面借用手写数字的经典案例构造比较复杂的LSTM模型,并用代码实现。 单隐层,隐层多神经元 # -*- coding:utf-8 -*- import tensorflow as tf from tensorflow.e
阅读全文
再谈权重共享
摘要:之前在几篇博客中说到了权重共享,但都觉得不够全面,这里做个专题,以后有新的理解都在此更新。 1. 减少运算只是锦上添花 之前说到权重共享可以减少运算,是的,但这样说好像是可有可无,只是运算量大小的问题,其实不是可有可无的。 2. 权重共享的本质是特征提取 之前说到权重就是模板,我们按照一定的模板来与
阅读全文
循环神经网络(四)-LSTM
摘要:LSTM(Long Short-Term Memory)是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。 LSTM能够很大程度上缓解长期依赖的问题。 LSTM的形象描述 RNN是傻子式的记忆,把所有的事情都记下来,这很容易记忆混乱。 LSTM不同的地
阅读全文
循环神经网络(二)-极其详细的推导BPTT
摘要:首先明确一下,本文需要对RNN有一定的了解,而且本文只针对标准的网络结构,旨在彻底搞清楚反向传播和BPTT。 反向传播形象描述 什么是反向传播?传播的是什么?传播的是误差,根据误差进行调整。 举个例子:你去买苹果,你说,老板,来20块钱苹果(目标,真实值),老板开始往袋子里装苹果,感觉差不多了(预测
阅读全文
链式法则玩转反向传播
摘要:神经网络的反向传播到底是个什么样的过程?今天就用链式求导揭开这个黑盒子。 这对于理解和设计神经网络很有帮助。 我们使用一个简单的逻辑回归的例子 这里绿色是前向计算,褐红色是反向传播。 0.73是最终输出,1是误差。 可以看到整个计算流程就是上面那个逻辑回归表达式。 好了,误差有了,开始反向传播吧 很
阅读全文
循环神经网络(一)-RNN入门
摘要:首先学习RNN需要一定的基础,即熟悉普通的前馈神经网络,特别是BP神经网络,最好能够手推。 所谓前馈,并不是说信号不能反向传递,而是网络在拓扑结构上不存在回路和环路。 而RNN最大的不同就是存在环路。 为什么需要RNN 1. 特征之间序列性 普通的神经网络的输入,具备样本独立同分布(iid), 特征
阅读全文