深度学习
文章平均质量分 70
bjy_fighting
一个深爱coding与机器学习的电气男
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
神经网络激活函数的介绍
1、Sigmoid Sigmoid函数在以往的神经网络里是很常用的,但在深度学习里用的并不那么多,它主要有以下不足: a、容易过饱和并且造成梯度消失。从图中可以看出当Sigmoid函数的值为0或1时,而我们知道sigmoid函数的导数等于其本身乘以1-其本身,那么就导致梯度为0的情况出现,考虑到梯度传播时需要与本地的梯度相乘,那么梯度通过该门函数后几乎没有信号流出。因此,在初始化梯度时一定要很小原创 2017-04-07 20:41:05 · 5938 阅读 · 0 评论 -
Tensorboard的使用
转载自:http://blog.youkuaiyun.com/sinat_33761963/article/details/62433234标签(空格分隔): 王小草Tensorflow笔记笔记整理者:王小草 笔记整理时间:2017年3月7日 代码原文请见github:当使用Tensorflow训练大量深层的神经网络时,我们希望去跟踪神经网络的整个训练过程中的信息,比如迭代转载 2017-06-01 09:20:51 · 6270 阅读 · 0 评论 -
利用TensorFlow实现CNN
import tensorflow as tffrom tensorflow.contrib.learn.python.learn.datasets.mnist import read_data_sets mnist = read_data_sets("G://MNIST_data/", one_hot=True)def weight_variable(shape): initial = t原创 2017-06-01 09:17:01 · 584 阅读 · 0 评论 -
tensorflow使用
目前tensorflow是深度学习中非常流行的一个工具包,它是由google研发的,其基本原理是计算图的模型。安装目前版本(2017年5月)的tensorflow支持直接进行pip进行安装,但唯一需要注意的一点是目前只支持python3版本pip3 install tensorflow入门1)placeholder placeholder顾名思义只是起到占位的作用,一般只是首先指明数据类型,而具体原创 2017-05-31 20:19:18 · 444 阅读 · 0 评论 -
CNN可视化
CNN可视化1、查看感兴趣的任意层的方法 a、将图片放入网络 b、选择感兴趣的层,将该层中的感兴趣的神经元的上游梯度值设为1,其他神经元的值为0 c、反向传播至输入数据,求出dx2、阴影图 a、将图片传入训练过的网络 b、前向传播至softmax层之前的那一层scores输出,确定该图片所属的类型,将该类值设置为1,其他的值设为0,作为上游梯度反向传播 c、由于是灰度图,而前向传播得到的原创 2017-04-27 22:12:31 · 1309 阅读 · 0 评论 -
CNN基础
1、CNN的引入传统的神经网络一般属于全连接神经网络,也就是说相邻的两层间中每一层的神经元都与另一层的神经元间有链接。这样的网络显然可以完整的保持输入数据的信息。但假设输入数据的维度较高(假设输入时图片,维度是200X200X3),相邻隐含层中隐含单元的个数为10个那么第一层的权重中,参数的个数为200X200X3X10 = 1200000个,这还仅仅是考虑了单隐含层的情况。这么多的参数当然可以很好原创 2017-04-26 09:58:02 · 543 阅读 · 0 评论 -
神经网络的编程实现
CNN的编程实现可以分为以下几大模块:layers层的实现,包括每个层的前向传播和反向传播函数CNN网络类的实现,通过堆叠layers层中实现的各种layer,构建网络的结构优化方法的实现包括SGD、SGD+Momentum、Adam等方法Solver类的实现,对构建的CNN网络采用实现的优化方法进行优化,求解参数layers层layers层的实现主要包含对不同种类的网络层实现前向传播和反原创 2017-04-27 10:29:36 · 1378 阅读 · 0 评论 -
CNN:Case Study
imagenet比赛中出现了很多优秀的网络结构,主要包括:1、LeNetLeNet是第一个被成功应用的网络,目前主要用在读取邮政编码和数字,其主要结构如下: Lenet的结构现在看来还是非常简单的,主要包含卷积–>池化–>卷积–>池化–>卷积–>FC2、AlexNetAlexNet发表于2012年,其让深度网络带到了人们的面前,和LeNet有很大的相似之处,主要的改变在非线性单元采用了Relu原创 2017-04-26 15:56:59 · 522 阅读 · 0 评论 -
循环神经网络
1、RNN RNN的结构是十分灵活的,如下图所示: 其中从左到右的结构分别可以用来作为神经网络、图形标注、情感分析、机器翻译、视频分类。 a、Vanilla RNN b、LSTM 原始的RNN有很大的缺点,在训练序列较长的模型时,容易造成梯度消失和梯度爆炸的情况发生(不断进行矩阵的相乘)。因此,通常实际中使用RNN的变种LSTM(Long Short Term Memory),即将原创 2017-05-08 11:02:52 · 863 阅读 · 0 评论 -
Word Vector
Word Vector 方法通常情况下,我们需要解决的问题都是和数字来打交道。对于nlp而言,语言中包含很多非数字的词语,要想实现对一句话的理解,首要做的是将词语转化为向量。将词语转化为向量的方法主要有3大种。下面分别进行介绍:1、One hot Encoding即将词语转化为一个长度为单词库中单词数量相同的向量,该向量在该词的位置处值为1,其他位置处值为0。这种表达方式很简单,但缺点也是很明显的。原创 2017-05-07 20:40:46 · 887 阅读 · 0 评论 -
Localization and Object Detection
Localization思路1:看作回归问题首先考虑单个物体的检测,对单个物体的分类来说,已经很清楚了,在网络的最后一层加上softmax层或者multi-svm即可。对于检测问题,我们需要获得矩形边框的位置,一个简单的思路是将这个问题看作回归问题(x, y, w, h),所以很简单将分类问题的最终一层换为regression即可。 其基本思路是: (1)训练一个分类网络(Alex net, V原创 2017-05-06 10:49:29 · 1945 阅读 · 1 评论 -
CNN训练
CNN训练技巧实现完成神经网络,通常需要验证网络的参数是否正确,通常有以下步骤: 1、检验前向传播的实现是否正确采用很小的数据去验证关闭正则项,若是softmax损失则loss值应当为log(C),其中C为类别数,若是muti-svm损失,则loss值应为C-1(若bias为1时);打开正则项loss应变大2、检查反向传播实现是否正确 *用很小的人造数据(random),较小的隐含层的个数原创 2017-04-28 11:20:27 · 1404 阅读 · 0 评论 -
梯度检查
Gradient Checkinga、使用centered formula df(x)dx=df(x+h)−df(x−h)2∗h\frac{df(x)}{dx} = \frac{df(x+h) -df(x-h)}{2*h} 使用该式子的原因是利用泰勒展开发现,该式子的误差项是h2h^2的高阶无穷小 b、使用相对误差来对比数值梯度和分析梯度 |f′a−f′n|max(f′a,f′n)\frac原创 2017-04-09 18:37:37 · 956 阅读 · 0 评论 -
神经网络的训练
NN 训练1、训练精度曲线和验证精度曲线 两个曲线的gap可以看出过拟合程度。如果gap过大,则说明有很强的过拟合发生;相反当gap很小的时候,说明过拟合情况没有那么严重。 对于强烈过拟合的情况,可以增加正则项的权重,或者增大样本数据来解决;对于绿色曲线,train/val accuracy相差不大,这时,可以尝试增大模型复杂度。 2、学习速率的确定 可以通过更新权重前后权重的比值来确定原创 2017-04-09 22:33:59 · 1666 阅读 · 0 评论 -
LSTM/GRU tensorflow及keras实现
LSTM/GRU在文本分类、情感分析及语言建模等方面有很大的用处,本文主要对这两种方法的tensorflow和keras实现进行分析1.LSTM/GRU的tensorflow实现a.文本处理一般来说, 需要先把句子划分为词语(对于英文来说,直接将句子划分为单词的列表即可;对于中文,需要对句子进行分词,本文的讲述以英文为例)from tensorflow.contrib import le...原创 2018-09-26 17:14:46 · 4745 阅读 · 1 评论
分享