![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
InceptionZ
这个作者很懒,什么都没留下…
展开
-
对数损失和交叉熵损失
对数损失函数(Log loss function)和交叉熵损失函数(Cross-entroy loss funtion)在很多文献内是一致的,因为他们的表示式的本质是一样的。从上述的表达式中看,两者的损失函数本质是一样的,但是这里需要注意的是通常情况下,这两种损失函数所对应的上一层结构不同,log loss经常对应的是Sigmoid函数的输出,用于二分类问题;而cross-entropy loss经常对应的是Softmax函数的输出,用于多分类问题。所以在神经网络中精彩使用cross-entropy作原创 2021-08-20 11:05:00 · 4139 阅读 · 0 评论 -
对传统机器学习和深度学习的一些思考
文章目录0.写在前面1. 机器学习是什么?2. 从机器学习到深度学习2.1 机器学习的发展历史0.写在前面在机器学习与深度学习领域学习了一年之后,想写一篇关于自己对ML和DL的理解,因为学了这么多算法,需要跳出来总结总结ML和DL。我们从发展历史开始讲起。1. 机器学习是什么?Think the following Conversation:朋友/亲戚:你的专业方向是什么啊,小伙子?我:机器学习!朋友/亲戚:哦,那是干啥的?(这个时候你不能讲的太专业,但是得讲得高端一点)我:简单来原创 2020-09-09 21:05:21 · 5109 阅读 · 0 评论 -
深度理解嵌入(embedding)层
首先从one_hot开始:one_hot的优点:计算方便快捷、表达能力强。one_hot的缺点:过于稀疏,过于占用资源,尤其是在数据量特别大时;数据之间完全独立。原创 2020-06-15 09:05:11 · 3899 阅读 · 4 评论 -
DEEP UNSUPERVISED CLUSTERING WITH GAUSSIAN MIXTURE VARIATIONAL AUTOENCODERS(GMVAE,ICLR2017)
写在前面这篇文章是讲如何用VAE来进行无监督的聚类的,属于VAE的变种,同时这篇文章也多多少少存在一些问题,会在文章末尾指出,现在一起来看看这篇文章到底在讲什么。摘要读完摘要,我们肯定会有很多问题:1.什么是over-regularisation,为什么它会导致cluster degeneracy?2.什么是minimum information constraint,它为什么可以解决over-regularisation?我们带着问题,继续深入解读这篇文章。1. Introduction原创 2020-06-14 19:18:10 · 2071 阅读 · 3 评论 -
神经网络中参数的初始化问题
1. 为什么神经网络不能初始化权重W为0?参考博客2. 随意初始化为非零的权重是否可行?答案肯定是不行的!随意的初始化权重可能会导致梯度爆炸和梯度消失。例如当神经网络为线性的,我们初始化所有参数W=0.1或者W=0.9,都会造成指数级影响3. 如何解决神经网络中参数初始化问题?对于Relu函数我们一般使用0均值和方差为2/n[l-1]的正太分布对于tanh函数,使用0均值和方差为1/n[l-1]的正态分布,被称之为Xavier初始化...原创 2020-06-04 15:25:55 · 733 阅读 · 0 评论 -
详解RNN、LSTM、GRU
写在前面本博客会分三大部分:1.RNN详解,这块会介绍到双向RNN,也会简单提一下深度RNN模型2.LSTM内部结构详解3.GRU单元详解1. RNN详解首先要说明一点:图中所有的W相等,所有的U相等,所有的V相等,即RNN实现参数共享。1.1符号解释:考虑St结点,t代表t时刻,St就代表t时刻隐藏结点的值①W权重矩阵:指的是上一个隐藏结点的值St-1所需要乘的参数矩阵,它会对St的值贡献一部分②U权重矩阵:Xt所需要成的参数矩阵,它也会对St的值贡献一部分。(TIPS:等于说St的原创 2020-06-01 17:12:08 · 1114 阅读 · 0 评论 -
对抗生成网络GANs的见解(三)
写在前面本文主要介绍GANs的训练技巧GANs的训练技巧原创 2020-05-30 09:48:58 · 129 阅读 · 0 评论 -
标签平滑(label smoothing)
1. 什么是标签平滑?标签平滑就是用来解决over-confident的问题,这类问题在对抗构建中尤为重要(GANs)通俗来讲机器学习的样本中通常会存在少量错误标签,这些错误标签会影响到预测的效果。标签平滑采用如下思路解决这个问题:在训练时即假设标签可能存在错误,避免“过分”相信训练样本的标签。当目标函数为交叉熵时,这一思想有非常简单的实现,称为标签平滑(Label Smoothing)。我们以2类分类问题为例,此时训练样本为(xi,yi),其中yi是样本标签,为0或1。在训练样本原创 2020-05-30 09:23:48 · 18535 阅读 · 8 评论 -
对抗生成网络GANs的一些见解(二)
文章目录写在前面1. GANs产生清晰图像的原因是什么?2. GANs中的单侧标签平滑(one-sided label smoothing)2.1 为什么GANs需要单侧标签平滑2.2 具体怎么实现的?2.3 为什么要单侧,单侧具体指的是哪一侧?2.4 one-sided label smoothing小结3. GANs中的模式崩塌现象(mode collapse)3.1 什么是模式坍塌3.2 什么原因导致了模式崩塌3.3 如何解决模式崩塌问题3.3.1 提升GAN的学习能力,进入更好的局部最优解3.3.2原创 2020-05-29 21:08:56 · 731 阅读 · 0 评论 -
对抗生成网络GANs的一些见解(一)
写在前面这篇博客主要记录一下自己对GANs模型的一些见解,并会慢慢补充。1. 自己的PPT先回顾了一下VAE模型,在引出GANs模型这里看一下生成模型的框架从一个段子说起,来通俗的理解GANs的博弈过程,参考原著,略带浮夸:说的是假币贩卖商和警察的故事,假币贩卖商希望自己做的假币越来越逼真以至于能蒙蔽警察的双眼,警察希望自己辨别假币的能力越来越强,无论再真的假币都能看出来,于是,双方开始博弈,最终达到平衡。两者都达到了极限状态:55开(不是lbw)。这时假币贩卖商制作的假币相当逼真(生成原创 2020-05-29 16:43:10 · 260 阅读 · 0 评论 -
用tensorflow构建多元高斯分布和高斯混合分布
1. 用tensorflow构建多元高斯分布为了更好的使用概率知识,tensorflow专门建立了一个tensorflow_probability库用来封装各种概率模型。1.1 准备工作import tensorflow as tf import tensorflow_probability as tfptfd = tfp.distributions1.2 构建多元高斯分布的函数1.2.1 解释文档tfd.MultivariateNormalDiag( loc=None, #原创 2020-05-27 14:41:34 · 2635 阅读 · 2 评论 -
Manifold Learning——流型学习概念
写在前面最近读论文老师遇到manifold这个次,必须得解决解决,看看到底啥意思。正文总结流型学习假设数据是均匀采样于一个高维欧氏空间中的低维流形,流形学习就是从高维采样数据中恢复低维流形结构,即找到高维空间中的低维流形,并求出相应的嵌入映射,以实现维数约简或者数据可视化。它是从观测到的现象中去寻找事物的本质,找到产生数据的内在规律。...原创 2020-05-24 09:20:39 · 1316 阅读 · 0 评论 -
Variational inference with Gaussian mixture model and householder flow
1. 标题:在变分推断中使用GMM和householder2. 摘要精读3. 文中需要掌握的知识点3.1 什么是Normalizing Flow3.2 通过NF得到了什么样得变分下界通过NF,我们得后验分布可以变为如下,其中,z维随机变量,服从q分布,行列式维雅可比矩阵。然后利用性质:得到变分下界3.3 网络的结构3.4 如何计算两个GMM之间的KL散度(会推导)利用一个log-sum不等式我们知道单个高斯之间的KL散度是有解析解的,我们通过这样的不等式得到了一个原创 2020-05-20 15:20:53 · 673 阅读 · 0 评论 -
模型训练中遇到的问题——梯度消失/爆炸(Loss为nan)
可能出现的原因Learning_rate过大,导致梯度较大,导致梯度爆炸激活函数、损失函数选取不当,在这种情况很少出现当网络的层数比较多,模型的数值稳定性容易变差,容易产生梯度消失和梯度爆炸,这会导致我们的loss在训练时变为nan,也称之为数据溢出。采用stride大于kernel size的池化层解决方法(个人经验)首先不要先考虑激活函数,应该先考虑的是learning_rate,试着降低学习率,虽然优化器(Adam)推荐0.001,但并不适用全部网络,试着减少一个量级。如果发现减少原创 2020-05-16 10:34:17 · 7722 阅读 · 3 评论 -
Keras文档解读——Making new layers and models via subclassing
参考原文链接Making new layers and models via subclassing1. 准备工作import tensorflow as tffrom tensorflow import keras2. The Layer class: 结合了权重和一些计算Layer类整合了Layer的权重和该层的前向传播下面举一个线性全连接的例子,并且我们可以使用一个tensor来使用该layer进行计算class Linear(keras.layers.Layer): d原创 2020-05-15 16:20:58 · 265 阅读 · 0 评论 -
tensorflow2.1.0——Squential文档解读
在Squential列表里边可以有选择性的写input_shape参数,下面介绍介绍几种写法,任选其一即可,选择自己习惯的常用。(1) 当我们选择在第一层声明input_shape时,有以下几种写法这种写法会让模型从一开始就有网络参数,并随着网络深度的增加,后面会自动地随机初始化对应shape地权重## 写法1model = Sequential()model.add(Dense(32, input_shape=(500,)))## 写法2model = Sequential()m.原创 2020-05-09 16:07:06 · 299 阅读 · 0 评论 -
tensorflow2.1.0——如何构建网络(三)
文章目录0. 写在前面1. 回顾0. 写在前面这一期主要会写如何构建更大更复杂的模型上,这里的复杂主要指的是:损失函数、模型。本期主要会以GAN和VAE来讲,内容很多,但废话不多。1. 回顾第一期主要讲了使用Squential搭建网络,并可以使用compile函数来配置模型的训练信息{loss,optimizer,metrics};使用fit函数来对模型和数据进行循环训练。第二期主...原创 2020-05-06 00:12:18 · 748 阅读 · 0 评论 -
tf.keras.layers.Lambda()——匿名函数层解析
1. 参数列表2. 作用可以把任意的一个表达式作为一个“Layer”对象Lambda层之所以存在是因为它可以在构建Squential时使用任意的函数或者说tensorflow 函数。在我们需要完成一些简单的操作(例如VAE中的重采样)的情况下,Lambda层再适合不过了。3. 举个栗子(VAE)可以看到通过在encoder和decoder中间加入一个Lambda层使得enco...原创 2020-05-03 21:29:47 · 15047 阅读 · 0 评论 -
tensorflow2.1.0——如何构建网络(二)
一、构建网络的第二种方式通过输入层和输出层来构建网络,网络包含输入和输出中间的隐藏层,这会返回一个Model对象,通过该对象可以调用model.compile和model.fit函数,非常方便。import tensorflow as tfimport tensorflow.keras.layersx = layers.Input(shape=(784,)) # 输入层,shape...原创 2020-05-03 17:41:57 · 3642 阅读 · 0 评论 -
tf.keras.layers.Input()输入层解析
1. 参数列表layers.Input( shape=None, batch_size=None, name=None, dtype=None, sparse=False, tensor=None, ragged=False, **kwargs,)2. 该层的用途用于构建网络的第一层——输入层,该层会告诉网络我们的输入的尺...原创 2020-05-03 11:38:54 · 36229 阅读 · 13 评论 -
tensorflow2.1.0——如何构建网络(一)
写在前面这个系列博客会具体讲讲怎么用tensorflow去搭建网络,其中一些细节例如如何加载数据集、需要哪些包可以参考我的其他博客。以此,来增加自己的编程能力。也会解读一些keras源码等一、神经网络中有哪些层点我从连接方式来说:全连接Dense、Conv2D、Conv2DTranspose、RNN等主要的功能层:BN层,激活函数层、Input层,Lambda层、Dropout层、...原创 2020-05-02 18:03:26 · 1819 阅读 · 0 评论 -
理解JS散度(Jensen–Shannon divergence)
文章目录1.KL散度1.1 KL散度的性质1.2 KL散度的问题即JS散度的引出2. JS散度为什么会出现两个分布没有重叠的现象参考文献1.KL散度用来衡量两个分布之间的差异,等于一个交叉熵减去一个信息熵(交叉熵损失函数的由来)1.1 KL散度的性质非负性(用Jenson‘s inequality 证明)不对称性,即KL(P||Q)≠KL(Q||P)1.2 KL散度的问题即J...原创 2020-05-01 15:49:04 · 70826 阅读 · 11 评论 -
深入理解批标准化(Batch Normalization)
文章目录0 前言1 “Internal Covariate Shift”问题1.1 什么是“Internal Covariate Shift”2 Batch Norm的本质思想2.1 本质思想2.2 将激活输入调整为N(0,1)有何用?2.3 存在的一个问题3 Batch Norm的训练过程3.1 再Mini-batch SGD下做BN操作4 Batch Norm的预测过程4.1 预测中存在的问题...原创 2020-04-14 12:29:21 · 939 阅读 · 2 评论 -
深度学习中常用的激活函数理解
ReLU还有一个优点是:Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。Dead ReLU Problem原因有两个主要原因可能导致这种情况产生:(1)先这样想:参数得不到更新是由于梯度为0;对于ReLU函数,导数为0表示ReLU的输入为负数,所以要分析是什么会导致我们的输入为负数(如下)(2) 非常不幸的参数...原创 2020-04-10 11:02:31 · 318 阅读 · 0 评论 -
深度学习基础思维导图
原创 2020-03-20 10:39:29 · 664 阅读 · 2 评论