深度学习
文章平均质量分 88
蕉叉熵
熵叉蕉
展开
-
套娃的艺术:Meta Learning
套娃的艺术:Meta Learning写在前面早在读研期间就对Meta Learning有所耳闻,听说有个学习框架可以“学习如何调参”,当时还戏言,以后是不是还会有“学习如何学习如何调参”的框架,并可以继续无穷套娃下去。最近因为一些原因,或多或少接触到了Meta Learning,我并不想深入研究其数学原理,只觉它思路清奇,所以去学习了李宏毅老师的《Meta Learning》课程,并阅读了Meta Learning的代表方法之一MAML的paper,觉得挺有趣的。本文仅为笔者入门Meta Learni原创 2021-05-16 18:34:57 · 1020 阅读 · 1 评论 -
Tensorflow中的交叉熵(Cross Entropy)
Tensorflow中的交叉熵(Cross Entropy)Cross Entropy (Sigmoid)适用于二分类,输入函数的logits和labels应当是一维的。如果输入One-Hot过的logits,会被当做多个一维分别计算。注意不要将已经通过sigmoid计算得到的数值输入函数,那样会得到错误的结果。sigmoid(x)=x^=11+e−xsigmoid(x)=\hat x=\f...原创 2018-12-04 17:26:22 · 800 阅读 · 1 评论 -
GAN中的Spectral Normalization
GAN中的Spectral Normalization Spectral Normalization 出自 《Spectral Norm Regularization for Improving the Generalizability of Deep Learning》和《Spectral Normalization for Generative Adversarial Networks》,...原创 2018-11-28 20:30:05 · 9119 阅读 · 8 评论 -
用各种GAN生成正态分布
用GAN生成正态分布 毕设中有一部分与GAN(Generative Adversarial Networks)相关,但是一直不work,因此准备重新从最简单的GAN入手,实现一下试试看能不能发现什么问题。 本文会用GAN从标准正态噪声生成均值为3,标准差为0.5的正态分布 N(3,0.52)N(3, 0.5^2)N(3,0.52)。整体结构 一个GAN由生成器Gener...原创 2019-01-06 13:32:25 · 3372 阅读 · 1 评论 -
用各种GAN生成MNIST数字
用各种GAN生成MNIST数字数据获取MNIST数据集的获取可以参考这篇博客:https://blog.csdn.net/songbinxu/article/details/82992264需要注意的是MNIST数据的值域范围,有的源是原本的[0,255][0,255][0,255],有的归一化到了[0,1][0,1][0,1]。生成器和判别器实现了CNN和MLP两种版本。CNN结构...原创 2019-01-06 15:27:21 · 6311 阅读 · 0 评论 -
Tensorflow基于CNN的AutoEncoder
Tensorflow基于CNN的AutoEncoder完整代码:https://github.com/SongDark/cnn_autoencoder_mnist一、概述AutoEncoder属于无监督学习,由一个编码器Encoder和一个解码器Decoder组成,是一个Encoder-Decoder结构,它学习的目标是还原输入,不需要提供标签。二、数据源使用Mnist作为训练数据,M...原创 2019-01-07 16:39:04 · 6617 阅读 · 0 评论 -
用Tensorflow计算距离矩阵
用Tensorflow计算距离矩阵 一般计算距离矩阵,都是用两层循环来做,这样效率太低。在样本维度上,距离矩阵的运算相互没有依赖关系,是可以做并行的。除了开多线程用CPU并行计算以外,还可以用GPU加速,比如拿tensorflow实现。数据结构 现在有 NNN(可以理解为 batch_sizebatch\_sizebatch_size)个时序序列样本,每个样本的大小为 (T,C)(T,C...原创 2019-01-23 19:05:39 · 4320 阅读 · 1 评论 -
InfoGAN 生成时序序列
InfoGAN 生成时序序列简介完整代码:https://github.com/SongDark/timeseries_infogan 本文介绍用InfoGAN生成多维时序序列。数据数据集下载地址NameClassDimensionTrain SizeTest SizeTruncatedCharacterTrajectories203142214...原创 2019-01-14 10:29:08 · 8734 阅读 · 10 评论 -
CycleGAN更换MNIST底色
CycleGAN实现MNIST转换数据准备从 这里 下载 mnist.npz。将背景改成彩色,数字保持白色,背景rgb随机生成。# [28, 28] -> [28, 28, 3]def change_background(img): rgb = np.random.randint(low=0, high=255, size=(3,)) res = np.tile(...原创 2019-01-10 11:02:16 · 2100 阅读 · 1 评论 -
基于DTW相似度的Affinity Propagation(AP)聚类
基于DTW相似度的Affinity Propagation(AP)聚类数据时序序列数据集 CharacterTrajectories,包含20种小写英文字母手写体的坐标序列。训练集测试集类别数序列长度维度数据类型14221436201823Motion GestureDTW距离 设有两个长度不相同的序列x=[x1,x2,⋯&ThinSp...原创 2019-01-26 19:47:11 · 8570 阅读 · 6 评论 -
利用tf.nn.raw_rnn自定义RNN Decoder
利用tf.nn.raw_rnn自定义RNN Decoder在用 Tensorflow 实现 RNN AutoEncoder 时,要求 Decoder 部分每个 timestep 都使用它上一个 timestep 的输出 yt−1y_{t-1}yt−1 作为输入,而利用普通的 tf.nn.dynamic_rnn 无法做到这一点,因为它必须接收序列为输入,对于序列的每一个 timestep 都计算...原创 2018-11-16 15:14:13 · 2242 阅读 · 1 评论 -
深度学习中的注意力机制
深度学习中的注意力机制深度学习中的注意力机制前言Sequence to SequenceSequence to Sequence 的各种形式Attention MechanismAttention 于机器翻译Self-Attention文字识别中的 Attention推荐系统中的 AttentionAttention is all you needAttenti...原创 2018-06-21 17:07:17 · 35309 阅读 · 15 评论 -
GBDT原理及实现(XGBoost+LightGBM)
GBDT原理及实现(XGBoost+LightGBM)GBDT原理及实现(XGBoost+LightGBM)一、准备知识1.1 泰勒展开1.2 梯度下降法1.3 牛顿法1.4 CART树1.4.1 CART回归树A. 单元最优输出B. 分裂策略C. CART回归树生成步骤1.4.2 CART分类树A. 基尼指数B. CART分类树生成步骤1.5 Boo...原创 2018-03-05 23:27:11 · 4800 阅读 · 3 评论 -
Keras自定义实现带masking的meanpooling层
Keras自定义实现带masking的meanpooling层 Keras确实是一大神器,代码可以写得非常简洁,但是最近在写LSTM和DeepFM的时候,遇到了一个问题:样本的长度不一样。对不定长序列的一种预处理方法是,首先对数据进行padding补0,然后引入keras的Masking层,它能自动对0值进行过滤。 问题在于keras的某些层不支持Masking层处理过的输入数据,例如...原创 2018-04-30 13:36:51 · 11052 阅读 · 9 评论 -
Keras Embedding层详解
Keras Embedding层详解 请注意,以下内容对应 Keras2.0 版本,并且所有内容都可以在这里找到。值得注意的是,Embedding层只能作为模型的第一层。函数原型def keras.layers.Embedding(input_dim, output_dim, embeddings_initializer='...原创 2018-04-30 16:16:06 · 16502 阅读 · 1 评论 -
用Keras实现一个DeepFM
用Keras实现一个DeepFM一、数据格式 在设计模型之间,首先要明确数据的格式应该是怎样的。我们假设现在要解决的问题是一个CTR预估问题,数据集是 (X,y)(X,y)(X,y),每一个样本都是高度稀疏的高维向量。假设我们有两种 field 的特征,连续型和离散型,连续型 field 一般不做处理沿用原值,离散型一般会做One-hot编码。离散型又能进一步分为单值型和多值型,单值...原创 2018-05-01 22:33:20 · 21778 阅读 · 16 评论 -
Tensorflow指定显卡GPU运行
Tensorflow指定显卡GPU运行 有些工作站配备了不止一块显卡,比如4路泰坦。TensorFlow会默认使用第0块GPU,而以TensorFlow为Backend的Keras会默认使用全部GPU资源。有时候有多个人需要跑实验,如果一个人占用了全部GPU,其他人就不能跑了。因此需要能够指定使用特定的GPU。 具体地,只需要在主代码的开头插入如下代码,即可指定使用第3块(从0开始计数...原创 2018-05-13 10:06:01 · 9498 阅读 · 0 评论 -
并行转换csv文件为libffm格式
并行转换csv文件为libffm格式 在使用libffm或者xlearn时,需要数据文件是libffm格式的,而我们一般拿到的数据都是csv格式或类csv格式的,所以需要转换。最简单的做法是把csv一行一行地读入,然后对每个特征进行编码处理,然后拼接成完整的一行,但是这样做是在是太慢了。本文参考这里,提取出最核心的部分,给出一种并行转换libffm文件的方法,然后对并行后节省的时间进行评估。...原创 2018-05-13 15:33:57 · 3628 阅读 · 10 评论 -
keras入门与基础
Keras入门与基础 Keras是基于tensorflow或theano实现的高层次封装库,他实现了很多常用的层,包括全连接、卷积、LSTM等等,可以很方便地调用实现各种各样的网络结构。如果网络不太复杂,不怎么需要自己魔改一些细节(例如实现一个带padding的meanpooling之类的),用keras能让你很快地实现一个模型。 本文给出了keras的基本使用方法,方便以后用kera...原创 2018-04-29 23:59:16 · 584 阅读 · 0 评论 -
Keras中Embedding层masking与Concatenate层不可调和的矛盾
Keras中Embedding层masking与Concatenate层不可调和的矛盾a = Input(shape=[15]) # None*15b = Input(shape=[30]) # None*30emb_a = Embedding(10, 5, mask_zero=True)(a) # None*15*5emb_b = Embedding(20, 5, mask_zero=...原创 2018-05-08 17:03:30 · 4815 阅读 · 3 评论 -
《Attention Is All You Need 》阅读笔记
Attention Is All You Need 阅读笔记Introduction 这是谷歌发表的文章,针对nlp里的机器翻译问题,提出了一种被称为”Transformer”的网络结构,基于注意力机制。文章提出,以往nlp里大量使用RNN结构和encoder-decoder结构,RNN及其衍生网络的缺点就是慢,问题在于前后隐藏状态的依赖性,无法实现并行,而文章提出的”Transfo...原创 2018-05-16 17:40:44 · 32741 阅读 · 5 评论 -
蒙特卡罗树搜索
蒙特卡罗树搜索AlphaGo火极一时,最近还出了新版本AlphaGo Zero,而我甚至对原版的AlphaGo v13还不甚了解。在查阅了一些博客、论文和代码之后,大致了解了AlphaGo的基本组成,蒙特卡罗树搜索MCST正是最核心的框架,它连接了AlphaGo的其他组件,构成了完整的系统。本篇是我对MCST的一些理解,当然包含部分搬运,旨在记录和总结备用。蒙特卡罗树搜索数据结构 首先,顾名...原创 2018-03-05 16:08:17 · 1867 阅读 · 0 评论