
深度学习
文章平均质量分 53
sparksnail
这个作者很懒,什么都没留下…
展开
-
tensorflow进行MNIST手写数字识别-LSTM
调用LSTM进行MNIST手写数字识别。import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datafrom tensorflow.contrib import rnnmnist = input_data.read_data_sets('MNIST_data', one_hot=Tr原创 2017-09-04 17:16:32 · 1006 阅读 · 0 评论 -
AlexNet
2012年,AlexNet赢得ImageNet比赛冠军。 AlexNet是8层神经网络,包含5个卷积层和3个全连接层。 结构如下: 每一层大小: input:227*227*3 C1:96*11*11*3 C2:256*5*5*48 C3:384*3*3*256 C4:384*3*3*192 C5:256*3*3*192 F6:4096 F7:4096 F8:1000使原创 2017-12-18 22:32:33 · 368 阅读 · 0 评论 -
Batch Normalization的作用
因为在网络中有很多层,每一层的数据都要经过权重计算,如果权重大部分大于1的话,最后的数据可能非常大,如1.11001.1^{100}。如果权重大部分小于1的话,最后的数据可能非常小,如0.91000.9^{100}。 批量归一化可以解决这个问题。原创 2017-12-16 14:43:45 · 4295 阅读 · 0 评论 -
学习率衰减
在使用SGD训练神经网络时,一般需要调整学习率,随着epoch的增加,使得学习率不断衰减。 原因如下: 1.如果学习率太大,容易发生震荡,需要调小学习率 2.如果学习率太小,则训练时间过长。 所以,可以在开始时设置较大一点的学习率,随着训练的进行,参数不断接近最优点,需要不断调小学习率,防止震荡的发生。原创 2017-12-17 11:08:49 · 1376 阅读 · 0 评论 -
LSTM
结构LSTM结构如下: 输入门、遗忘门和输出门输入门It'>ItItI_t,遗忘门Ft'>FtFtF_t和输出门Ot'>OtOtO_t定义如下: 候选细胞细胞通过输入门和遗忘门来控制细胞的信息流动。如果遗忘门一直近似1且输入门一直近似0,过去的细胞将一直通过时间保存并传递至当前时刻。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时序数据中原创 2018-01-26 00:37:24 · 454 阅读 · 0 评论 -
GRU
结构GRU由Cho、van Merrienboer、 Bahdanau和Bengio在2014年提出。 GRU结构如下: 重置门和更新门GRU包含两个门,一个重置门Rt'>RtRtR_t和一个更新门Zt'>ZtZtZ_t。 定义如下: 这两个门的结果经过了一个sigmoid函数,值域为[0,1]'>[0,1][0,1][0, 1].候选隐含状态 候选隐原创 2018-01-25 23:46:20 · 8230 阅读 · 2 评论 -
正则化如何防止过拟合
来自Ng课件。 当加入了Lambd惩罚项后,权值接近于0,网络的大部分结点被消除,网络由high variance 状态变为high bias状态。 假设g(z)只用双曲正切函数,函数图像如图。如果z太大或者太小,正切函数范围到非线性部分。如果z在0附近,正确函数范围在线性部分。如果lambd很大,权值W就会被惩罚的很小,Z就会落在0附近,函数区间落在线性部分,整个网络接近简单的线性函原创 2018-02-03 21:43:40 · 442 阅读 · 0 评论 -
Ubuntu16.04安装CUDA8.0+cuDNN6.0
前言最近公司的环境反复安装,把步骤记录下来。步骤安装显卡1.清除旧显卡sudo apt-get --purge remove nvidia*2.去官网下载适配的显卡 3.安装显卡dpkg -i nvidia-diag-driver-local-repo-ubuntu1604-384.66_1.0-1_amd64.debapt-get update...原创 2018-02-27 04:24:37 · 3164 阅读 · 0 评论 -
R-CNN
RCNN(Regions with CNN features)将CNN方法应用到目标检测问题上。 算法步骤: 1. 候选区域选择 对每张输入图片使用一个基于规则的“SelectiveSearch”算法来选取多个提议区域。Region Proposal是一类传统的区域提取方法,可以看作不同宽高的滑动窗口,通过窗口滑动获得潜在的目标图像。 2.CNN特征提取 跟微调迁移学习里那样,选取一个预...原创 2018-03-15 19:40:17 · 313 阅读 · 0 评论 -
Fast R-CNN
Fast R-CNN基于R-CNN,主要做了两点,来改进CNN的性能。 1.考虑到R-CNN里面的大量区域可能是相互覆盖,每次重新抽取特征过于浪费。因此Fast R-CNN先对输入图片抽取特征,然后再选取区域。 2.Fast R-CNN不再使用多个SVM来做分类,而是用单个多类逻辑回归。 ...原创 2018-03-15 20:05:40 · 201 阅读 · 0 评论 -
梯度裁剪
深度神经网络训练的时候,采用的是反向传播方式,该方式背后其实是链式求导,计算每层梯度的时候会涉及一些连乘操作,因此如果网络过深,那么如果连乘的因子大部分小于1,最后乘积的结果可能趋于0,也就是梯度消失,后面的网络层的参数不发生变化,后面的层学不到东西,那么如果连乘的因子大部分大于1,最后乘积可能趋于无穷,这就是梯度爆炸 ...原创 2018-03-16 14:41:31 · 9625 阅读 · 0 评论 -
困惑度
交叉熵损失函数: 该损失函数即被预测字符的对数似然平均值的相反数。原创 2018-03-16 14:53:25 · 3106 阅读 · 0 评论 -
VGG
VGG网络是2014年ILSVRC竞赛的第二名。 VGG特点是使用很多有着相对小的kernel(3×3)的卷积层然后接上一个池化层,之后再将这个模块重复多次。 VGG结构图: 论文里给出了6中结构,其中所有的卷积层都是同样大小的filter,尺寸3x3,卷积步长stirde = 1,填充padding = 1. 使用相同的3x3卷积核原因如下: A、3x3是可以表示「左右」、「上下」、「中原创 2017-12-19 14:05:11 · 419 阅读 · 0 评论 -
卷积神经网络经过卷积层后图像尺寸
设输入图像尺寸为W,卷积核尺寸为F,步幅为S,Padding使用P,经过该卷积层后输出的图像尺寸为(W−F+2P)S+1\frac{(W-F+2P)}{S}+1。原创 2017-12-20 18:24:02 · 12238 阅读 · 1 评论 -
tensorflow 滑动平均模型
import tensorflow as tfv1 = tf.Variable(0, dtype = tf.float32)#定义变量用来计算滑动平均,初始化为0,shadow_variable = 0step = tf.Variable(0, trainable = False)#定义滑动平均的step,初始化为0#定义滑动平均的类,初始化时给定衰减率0.99,step为0ema =原创 2017-08-30 15:23:37 · 766 阅读 · 1 评论 -
tensorflow实现非线性回归
模拟非线性回归,给定一些二维点,y = x^2 + noise,用梯度下降进行训练,实线前向传播神经网络。import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt#生成随机变量x_data = np.linspace(-1, 1, 200)#生成200个随机点,范围为-1 --> 1x原创 2017-08-31 11:13:35 · 5135 阅读 · 0 评论 -
tensorflow常用函数
1.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)功能:求平均值参数:input_tensor:输入reduction_indices:指定维度2.clip_by_value()功能:将一个张量中的数值限制在一个范围内例:v = tf.constant([1.原创 2017-08-30 13:59:46 · 445 阅读 · 0 评论 -
关于交叉熵和sigmoid函数的组合
在神经网络的训练中,当使用的激活函数为sigmoid函数时,选择的代价函数一般为交叉熵,而不是二次代价函数。 原因如下: 二次代价函数公式: 其中c代表代价函数,x代表样本,y代表实际值,a代表输出值,n为样本总数。 对w和b求偏导数: 根据偏导数的结果,w和b的梯度跟激活函数的梯度成正比,激活函数的梯度越大,w和b的大小调整得越快,训练收敛得就越快。 sigmoid函数的图原创 2017-08-31 15:46:53 · 5368 阅读 · 0 评论 -
tensorflow进行MNIST手写数字识别-简单版
实现一个简单的MNIST手写数字识别,不带隐藏层的前向传播神经网络,使用梯度下降进行训练。准确率0.92import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=Tru原创 2017-08-31 14:42:39 · 707 阅读 · 0 评论 -
tensorflow进行MNIST手写数字识别-优化版
1.加入了两个隐层2.学习率衰减3.加入反向传播4.dropout防止过拟合准确率0.98import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=True原创 2017-08-31 19:25:22 · 853 阅读 · 0 评论 -
tensorflow进行MNIST手写数字识别-CNN
使用两个卷积层,两个全连接层。import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data', one_hot=True)batch_size = 100 #每个批次大小n_batch = m原创 2017-09-01 19:43:52 · 565 阅读 · 0 评论 -
简单神经网络实现 03
实现简单反向传播。 import numpy as npdef sigmoid(x): """ Calculate sigmoid """ return 1 / (1 + np.exp(-x))x = np.array([0.5, 0.1, -0.2])target = 0.6learnrate = 0.5weights_input_hidden = np.原创 2017-10-19 22:06:19 · 251 阅读 · 0 评论 -
简单神经网络实现 01
实现一个简单的神经网络,三个输入结点,没有隐层,一个输出结点,激活函数选择sigmoid函数。from numpy import exp, array, random, dotclass NeuralNetwork(): def __init__(self): random.seed(1) self.synaptic_weights = 2 * random.原创 2017-10-12 10:15:30 · 413 阅读 · 0 评论 -
简单神经网络实现 02
误差选择均方误差 梯度下降步骤: 数据集为研究生学院录取数据,来源。 数据格式: admit这一栏为标签,其余的栏目是特征。 网络没有设置隐层。 代码:import pandas as pdimport numpy as npadmissions = pd.read_csv('binary.csv')#把rank特征转换成one-hotdata = pd.concat(原创 2017-10-12 13:04:03 · 484 阅读 · 0 评论 -
Network in Network
传统卷积神经网络最后使用全连接层,NiN只对通道层做全连接并且像素之间共享权重。 网络结构图如下: NiN有两个特点: 1.使用mlpconv网络层替代传统的convolution层。 mlpconv层可以看成是每个卷积的局部感受野中还包含了一个微型的多层网络。 mlp层实际上是卷积加传统的mlp(多层感知器),因为convolution是线性的,而mlp是非线性的,后者能够得到更原创 2017-12-19 21:15:33 · 379 阅读 · 0 评论 -
论文阅读:Video2Shop : Exact Matching Clothes in Videos to online Shopping Images
1.概述这篇论文实现了一个AsymNet,用来从视频中匹配到和图片中相似的衣服。 大致思想是用特定的网络抽取图片中衣服特征,用物体检测和跟踪算法抽取视频中的衣服特征,然后对两种特征进行相似度计算,得到相似度分值。2.网络结构2.1IFN IFN网络结构基于VGG16。 首先,商品的图片经过Faster-RCNN网络,检测到衣服区域。然后,再把衣服区域经过IFN网络...原创 2018-05-14 00:34:27 · 857 阅读 · 0 评论