深度学习
文章平均质量分 69
CopperDong
纯属巧合
展开
-
C/C++移植IOS(CMAKE编译与链接)
背景:需要把Linux下的C/C++代码移植到iOS平台下,iOS APP链接编译的静态库和动态库进行测试。工具准备: mac一台 cmake xcodegithub上有一个iOS版的Cmake编译工具链:ios-cmake基于该Cmake编译工具链将C/C++代码编译成iOS平台可用的静态库或者动态库。编译进入/C/C++源码目录下,新建ios.toolchain.cmake文件编辑内容如:ios.toolchain.cmake 接着继续新建CMakeL转载 2021-04-23 22:34:15 · 2251 阅读 · 0 评论 -
理解滑动平均(exponential moving average)
目录1. 用滑动平均估计局部均值2. TensorFlow中使用滑动平均来更新变量(参数)3. 滑动平均为什么在测试过程中被使用?1. 用滑动平均估计局部均值 滑动平均(exponential moving average),或者叫做指数加权平均(exponentially weighted moving average),可以用来估计变量的局部均值,使得变量的更新与一段时间内的历史...转载 2020-01-13 14:26:22 · 1786 阅读 · 0 评论 -
【Learning Notes】CTC 原理及实现
原文CTC( Connectionist Temporal Classification,连接时序分类)是一种用于序列建模的工具,其核心是定义了特殊的目标函数/优化准则[1]。 jupyter notebook 版见 repo.1. 算法这里大体根据 Alex Graves 的开山之作[1],讨论 CTC 的算法原理,并基于 numpy 从零实现 CTC 的推理及训练算...转载 2019-12-30 22:11:26 · 864 阅读 · 0 评论 -
纯Python和PyTorch对比实现softmax及其反向传播
摘要本文使用纯 Python 和 PyTorch 对比实现softmax函数及其反向传播.相关原理和详细解释, 请参考文章 :softmax函数详解及反向传播中的梯度求导系列文章索引 :https://blog.csdn.net/oBrightLamp/article/details/85067981正文import numpy as npim...转载 2019-12-23 10:59:01 · 1311 阅读 · 0 评论 -
softmax loss层的求导反向传播
转载 2019-12-11 08:58:24 · 242 阅读 · 0 评论 -
自编码实例6:变分自编码
自编码可以降维重构样本,而变分自编码学习的不再是样本的个体,而是学习样本的规律。这样训练出来的自编码不单具有重构样本的功能,还具有仿照样本的功能。 变分自编码,其实就是在编码过程中改变了样本的分布(变分可以理解为改变分布)。假设我们知道样本的分布函数,就可以从这个函数中随便取一个样本,然后进行网络解码层前向传导,这样就可以生成一个新的样本。 为了得到这...原创 2019-05-22 15:16:03 · 625 阅读 · 0 评论 -
神经网络实例Python
本文采用一个模拟数据集进行神经网络的训练,相关知识点包括数据预处理、BN层、神经网络模型、梯度反向传播、梯度检查、监测训练过程、超参数随机搜索等,使读者掌握一个完整的机器学习流程。1、生成数据 生成一个线性不可分的数据集,它是一个随时间增长的振荡数据。import numpy as npimport matplotlib.pyplot as plt# 显示数...转载 2019-05-13 14:32:40 · 5238 阅读 · 1 评论 -
几个深度网络的介绍
1、GoogleNet模型 去除全连接层,使得模型训练更快并且减轻了过拟合。 Inception的核心思想是通过增加网络深度和宽度的同时减少参数的方法来解决问题。Inception v1由22层,比AlexNet的8层或VGGNet的19层更深。但其计算量只有15亿次浮点运算,同时只有500万的参数量,仅为AlexNet的1/12,却有着更高的准确率。Incepti...原创 2019-05-22 16:45:59 · 4021 阅读 · 0 评论 -
卷积神经网络实例Python(VGG)
书籍下载https://download.csdn.net/download/qfire/11175748 采用MNIST数据集进行卷积神经网络实战学习,面向对象设计方法,把每个独立模块封装成对象。训练一个卷积网络,主要包括7部分:激活函数、正则化、优化方法、卷积网络基本模块、训练方法、网络结构和数据集。每个部分都可以抽象成一个类,其中激活函数、正则化、优化方法、卷积网络基本模块和训练方...转载 2019-05-13 15:08:14 · 3660 阅读 · 2 评论 -
对抗神经网络(GAN)
对抗神经网络其实是两个网络的组合,可以理解为一个网络生成模拟数据,另一个网络判断生成的数据是真实的还是模拟的。生成模拟数据的网络要不断优化自己让判别的网络判断不出来,判别的网络也要优化自己让自己判断得更准确。二者关系形成对抗,因此叫对抗神经网络。实验证明,利用这种网络间的对抗关系所形成的网络,在无监督及半监督领域取得了很好的效果,可以算是用网络来监督网络的一个自学习过程。1、理论...原创 2019-05-23 09:48:58 · 12082 阅读 · 0 评论 -
自编码实例5:栈式自编码
栈式自编码神经网络(Stacked Autoencoder, SA),是对自编码网络的一种使用方法,是一个由多层训练好的自编码器组成的神经网络。由于网络中的每一层都是单独训练而来,相当于都初始化了一个合理的数值。所以,这样的网络会更容易训练,并且有更快的收敛性及更高的准确度。 栈式自编码常常被用于预训练(初始化)深度神经网络之前的权重预训练步骤。例如在一个分类问题上,...原创 2019-05-22 14:34:49 · 2126 阅读 · 3 评论 -
自编码实例4:去噪自编码
要想取得好的特征只靠重构输入数据是不够的,在实际应用中,还需要让这些特征具有抗干扰的能力,即当输入数据发生一定程度的扰动时,生成的特征仍然保持不变。这时需要添加噪声来为模型增加更大的困难。在这种情况下训练出来的模型才会有更好的鲁棒性。 去噪自动编码器(Denoising Autoencoder, DA),是在自动编码的基础上,训练数据加入噪声,输出的标签仍是原始的样本,这样...原创 2019-05-22 11:48:35 · 2423 阅读 · 1 评论 -
自编码实例3:卷积网络的自编码
自编码结构不仅可用在全连接网络上,还可以用在卷积网络上。以下实例输入经过两层卷积、池化、反池化、两层卷积操作。import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt# 导入 MINST 数据集from tensorflow.examples.tutorials.mnist impo...原创 2019-05-22 11:12:49 · 2170 阅读 · 1 评论 -
自编码实例2:线性编码器
由多个带有S型激活函数的隐含层及一个线性输出层构成的自编码器,称为线性编码器。实例:提取图片的二维特征,并利用二维特征还原图片。将MNIST图片压缩成二维数据,这样也可以在直角坐标系上将其显示出来,让读者更形象地了解自编码网络在特征提取方面的功能。import tensorflow as tfimport numpy as npimport matplotlib.py...原创 2019-05-22 10:28:56 · 1173 阅读 · 0 评论 -
自编码实例1: MNIST
先将输入数据从784维降维到256,再降到128。解码阶段经过128再经256,最终还原到原来的图像,其过程如下图所示。import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt# 导入 MINST 数据集from tensorflow.examples.tutorials.mni...原创 2019-05-22 09:49:55 · 419 阅读 · 1 评论 -
看完这篇,别说你还不懂Hinton大神的胶囊网络,capsule network
https://www.e-learn.cn/content/qita/1280585引言斯蒂文认为机器学习有时候像婴儿学习,特别是在物体识别上。比如婴儿首先学会识别边界和颜色,然后将这些信息用于识别形状和图形等更复杂的实体。比如在人脸识别上,他们学会从眼睛和嘴巴开始识别最终到整个面孔。当他们看一个人的形象时,他们大脑认出了两只眼睛,一只鼻子和一只嘴巴,当认出所有这些存在于脸上的实体,并且...转载 2019-05-15 19:39:28 · 2494 阅读 · 0 评论 -
深度学习文本识别之表格识别
https://blog.csdn.net/zane3/article/details/84656550一、简介 实现简单的横竖表格图片的识别,提取表格并生成对应的Word文档二、架构与部署1.本项目为B/S架构2.显示页面采用Python的web框架Django搭建页面,负责传入单张的表格图片3.服务提供使用OpenCV与深度学习神经网络作为表格图片的处理技术4.运...转载 2018-12-30 12:52:54 · 3608 阅读 · 0 评论 -
循环神经网络实例3:语言模型的系统学习
语言模型包括文法语言模型和统计语言模型。一般我们指的是统计语言模型。统计语言模型是指:把语言(词的序列)看作一个随机事件,并赋予相应的概率来描述其属于某种语言集合的可能性。 其作用是为一个长度为m的字符串确定一个概率分布P(w1; w2; ...;wm),表示其存在的可能性。其中,w1~wm依次表示这段文本中的各个词。用一句话简单地说就是计算一个句子的概率大小。...原创 2019-05-30 13:54:42 · 666 阅读 · 0 评论 -
卷积神经网络实例1:CIFAR10
几个概念1、多通道的卷积 通道(Channel),是指图片中每个像素由几个数来表示,这几个数一般指的就是色彩。比如一个灰度图的通道就是1,一个彩色图的通道就是3(红、黄、蓝)。在卷积神经网络里,通道又分输入通道和输出通道。输入通道:就是前面刚介绍的图片的通道。如是彩色图片,起始的输入通道就是3.如是中间层的卷积,输入通道就是上一层的输出通道个数,计算方法是,每个输入通道的图片都...原创 2019-05-23 15:05:20 · 1085 阅读 · 0 评论 -
动手学深度学习(MXNet)6:自然语言处理
本章中,根据输入与输出的不同形式,按”定长到定长“、”不定长到定长“,”不定长到不定长“的顺序,逐步展示在自然语言处理中如何表征并变换定长的词或类别以及不定式的句子或段落序列。词嵌入(word2vec)把词映射为实数域向量的技术也叫词嵌入(word embedding)。为何不采用one-hot向量跳字模型:训练通过最大化似然函数来学习模型参数,即最大似然估计。这等价于最小化以下损...原创 2019-09-09 14:53:40 · 354 阅读 · 0 评论 -
动手学深度学习(MXNet)5:计算机视觉
多GPU计算,需要考虑同步数据图像增广对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。%matplotlib inlineimport d2lzh as d2limport mxnet as mxfrom mxnet import autograd,...原创 2019-09-05 14:40:24 · 639 阅读 · 0 评论 -
动手学深度学习(MXNet)4:优化算法
优化算法通常只考虑最小化目标函数。其实,任何最大化问题都可以很容易地转化为最小化问题,只需令目标函数的相反数为新的目标函数即可。由于优化算法的目标函数通常是一个基于训练数据集的损失函数,优化的目标在于降低训练误差。而深度学习的目标在于降低泛化误差。为了降低泛化误差,除了使用优化算法降低训练误差以外,还需要注意应对过拟合。深度学习中绝大多数目标函数都很复杂。因此,很多优化问题并不存在解析解,...原创 2019-09-04 15:43:53 · 621 阅读 · 0 评论 -
基于DGCNN和概率图的轻量级信息抽取模型
背景:前几个月,百度举办了“2019语言与智能技术竞赛”,其中有三个赛道,而我对其中的“信息抽取”赛道颇感兴趣,于是报名参加。经过两个多月的煎熬,比赛终于结束,并且最终结果已经公布。笔者从最初的对信息抽取的一无所知,经过这次比赛的学习和研究,最终探索出在监督学习下做信息抽取的一些经验,遂在此与大家分享。信息抽取赛道:“科学空间队”在最终的测试结果上排名第七笔者在最终的测试集...转载 2019-09-02 13:58:20 · 688 阅读 · 0 评论 -
动手学深度学习(MXNet)3:循环神经网络
语言模型语言模型将计算该序列的概率:语言模型可用于提升语音识别和机器翻译的性能。语言模型的计算:n元语法:马尔可夫假设是指一个词的出现只与前面n个词相关,即n阶马尔可夫链(Markov chain of order n)。循环神经网络不含隐藏状态的神经网络,含隐藏状态的循环神经网络,时间步t的隐藏变量的计算由当前时间步的输入和上一时间步的隐藏变量共同决定:...原创 2019-09-02 13:52:23 · 836 阅读 · 0 评论 -
动手学深度学习(MXNet)2:卷积神经网络
二维卷积层卷积运算from mxnet import autograd, ndfrom mxnet.gluon import nndef corr2d(X, K): h, w = K.shape Y = nd.zeros((X.shape[0]-h+1, X.shape[1]-w+1)) for i in range(Y.shape[0]): ...原创 2019-08-29 15:34:24 · 1532 阅读 · 0 评论 -
动手学深度学习(MXNet)1:基础知识
预备知识安装环境$ pip install mxnet-cu80 --> cuda8.0数据操作,在MxNet中用NDArray类,是存储和变换数据的主要工具。NDArray提供GPU计算和自动求梯度等更多功能。自动求梯度,用autograd模块,from mxnet import autograd, ndx = nd.arange(4).reshape((4,1))...原创 2019-08-27 19:14:11 · 977 阅读 · 0 评论 -
循环神经网络实例2:RNN改进
对于相对较复杂的问题,这种RNN便会显出其缺陷,原因还是出在激活函数。通常来讲,激活函数在神经网络里最多只能6层左右,因为它的反向误差传递会随着层数的增加,传递的误差值越来越小,而在RNN中,误差传递不仅存在于层与层之间,也在存于每一层的样本序列间,所以RNN无法去学习太长的序列特征。 于是,神经网络学科中又演化了许多RNN网络的变体版本,使得模型能够学习更长的序列特...原创 2019-05-24 11:04:14 · 1183 阅读 · 0 评论 -
循环神经网络实例1:拟合简单序列
循环神经网络(RNN)具有记忆功能,适合解决连续序列的问题,善于从具有一定顺序意义的样本与样本间学习规律。实例:使用RNN网络拟合回声信号序列,使用一串随机的模拟数据作为原始信号,让RNN网络来拟合其对应的回声信号。 样本数据为一串随机的由0、1组成的数字,将其当成发射出去的一串信号。当碰到阻挡被反弹回来时,会收到原始信号的回音。如果步长为3,那么输入和输出的序列如图...原创 2019-05-24 09:47:05 · 1121 阅读 · 0 评论 -
卷积神经网络实例3:深度学习的模型训练技巧
把卷积核裁开,从而减少计算量,是等价计算。比如3x3可以裁成3x1和1x3多通道卷积批量归一化(BN算法),一般用在全连接或卷积神经网络中。 梯度爆炸问题:因为网络的内部协变量转移,即正向传播时的不同层的参数会将反向训练计算时所参照的数据样本分布改变。这就是引入批量正则化的目的。它的作用是要最大限度地保证每次的正向传播输出在同一分布上,这样反向计算时参照的数据样本分布就...原创 2019-05-23 16:00:31 · 513 阅读 · 0 评论 -
卷积神经网络实例2:反卷积
反卷积是指,通过测量输出和已知输入重构未知输入的过程。在神经网络中,反卷积过程并不具备学习的能力,仅仅是用于可视化一个已经训练好的卷积网络模型,没有学习训练的过程。对于一个复杂的深度卷积网络,通过每层若干个卷积核的变换,我们无法知道每个卷积核关注的是什么,变换后的特征是什么样子。通过反卷积的还原,可以对这些问题有个清晰的可视化,以各层得到的特征图作为输入,进行反卷积,得到反卷积结果,...原创 2019-05-23 15:52:16 · 1755 阅读 · 1 评论 -
循环神经网络实例4:处理Seq2Seq任务
Seq2Seq任务,即从一个序列映射到另一个序列的任务。在生活中会有很多符合这样特性的例子:前面的语言模型、语音识别例子,都可以理解成一个Seq2Seq的例子,类似的应用还有机器翻译、词性标注、智能对话等。在TensorFlow中有两套Seq2Seq的接口。一套是1.0版本之前的旧接口,tf.contrib.legacy_seq2seq;另一套为新接口,tf.contrib.seq...原创 2019-05-30 15:19:24 · 918 阅读 · 0 评论 -
深度学习里面的而优化函数
https://mp.weixin.qq.com/s/xm4MuZm-6nKTn2eE3eNOlg(一)一个框架看懂优化算法“ 说到优化算法,入门级必从 SGD 学起,老司机则会告诉你更好的还有AdaGrad / AdaDelta,或者直接无脑用 Adam。可是看看学术界的最新 paper,却发现一众大神还在用着入门级的 SGD,最多加个 Momentum 或者 Nesterov,还经常会...转载 2018-12-28 11:12:20 · 453 阅读 · 0 评论 -
简明条件随机场CRF介绍(附带纯Keras实现)
https://spaces.ac.cn/archives/5542/comment-page-1笔者去年曾写过博文《果壳中的条件随机场(CRF In A Nutshell)》,以一种比较粗糙的方式介绍了一下条件随机场(CRF)模型。然而那篇文章显然有很多不足的地方,比如介绍不够清晰,也不够完整,还没有实现,在这里我们重提这个模型,将相关内容补充完成。本文是对CRF基本原理的一个简明的介绍...转载 2018-12-06 15:16:13 · 842 阅读 · 0 评论 -
从特征描述符到深度学习:计算机视觉发展20年
从特征描述符到深度学习:计算机视觉发展20年转载:http://cs2.swfc.edu.cn/~zyl/?p=2184Author: Tomasz Malisiewicz翻译:赵毅力(panovr at gmail dot com)我们都知道在过去两年(2012-2014年)深度卷积神经网络在目标检测与识别的基准测试中有过辉煌的成绩,所以你可能会问:在此之前的物体转载 2017-09-11 11:58:09 · 346 阅读 · 0 评论 -
深度学习浅层理解
1958 年,DavidHubel 和Torsten Wiesel 在 JohnHopkins University,研究瞳孔区域与大脑皮层神经元的对应关系。他们在猫的后脑头骨上,开了一个3 毫米的小洞,向洞里插入电极,测量神经元的活跃程度。目的是去证明一个猜测。位于后脑皮层的不同视觉神经元,与瞳孔所受刺激之间,存在某种对应关系。这个发现激发了人们对于神经系统的进一步思考。神经-中枢-大脑的工作过转载 2017-09-10 16:07:43 · 5604 阅读 · 0 评论 -
深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
前言 (标题不能再中二了)本文仅对一些常见的优化方法进行直观介绍和简单的比较,各种优化方法的详细内容及公式只好去认真啃论文了,在此我就不赘述了。SGD 此处的SGD指mini-batch gradient descent,关于batch gradient descent, stochastic gradient descent, 以及 mini-batch gradient desce转载 2017-08-25 10:37:10 · 367 阅读 · 0 评论 -
softmax的log似然代价函数(公式求导)
在人工神经网络(ANN)中,Softmax通常被用作输出层的激活函数。这不仅是因为它的效果好,而且因为它使得ANN的输出值更易于理解。同时,softmax配合log似然代价函数,其训练效果也要比采用二次代价函数的方式好。1. softmax函数及其求导 softmax的函数公式如下: 其中,表示第L层(通常是最后一层)转载 2017-08-22 15:08:16 · 642 阅读 · 0 评论 -
反向传播算法(过程及公式推导)
反向传播算法(Backpropagation)是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是:(1)将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程;(2)由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至转载 2017-08-22 15:09:14 · 646 阅读 · 0 评论 -
计算图(computational graph)角度看BP(back propagation)算法
从计算图(computational graph)角度看BP(back propagation)算法,这也是目前各大深度学习框架中用到的,Tensorflow, Theano, CNTK等。参考【1】一、通用形式1. 什么是计算图结构 从下图中我们可以清楚地看到 (1)可以将计算图看作是一种用来描述function的语言,图中的节点node代表function的输入(可以是常数转载 2017-08-23 11:25:20 · 358 阅读 · 0 评论 -
Dropout浅层理解与实现
Dropout浅层理解与实现原文地址:http://blog.csdn.net/hjimce/article/details/50413257作者:hjimce一、相关工作 本来今天是要搞《Maxout Networks》和《Network In Network》的,结果发现maxout和dropout有点类似,所以就对dropout做一下相关的总结,了解一下其代码层面的实现转载 2017-08-24 11:32:35 · 306 阅读 · 0 评论