深度学习的一个知识总结

深度学习的一个知识总结


这里写图片描述


罗嗦两句

好吧,可能你很奇怪为何这么久我没写博客了,从十二月开始,我不得不专心于一篇paper的撰写,在一月下旬开始我一直在恶补一些理论知识,包括应用数学、统计物理、还有一些琐碎的广义相对论知识,一些只是因为兴趣。


今天我要谈及的

今天只是试图用白话总结一下深度学习里一些常见的知识点,在看懂这篇文章前,你起码对深度学习和机器学习乃至概率统计那套把戏都比较熟悉来了。
so lets begin


卷积神经网络

哈哈你也许被傅立叶变换里那个卷积公式给混淆了,这个卷积和那个屁关系都没有。
其实就是一个叫做卷积核(Kernel)的矩阵,这个核和它想识别的特征作积所得的实数结果就会很大,从某种程度上说,不严格的说,是个滤波器。
比如下图是卷积核的可视化:
这里写图片描述


池化

你可以把它和卷积并行起来理解,虽然不同,但是他们的关系就像哪吒和红孩儿(莫名其妙的相似… …)
池化层是对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。她的假设在于,图像中相邻位置的像素是相关的。

这里写图片描述


LSTM

神经网络本来是一个万能拟合器,现在我们需要处理一种时间序列模型,比如,股票价格数据,是一个高密度的时间序列数据,并且很明显上一时刻和下一时刻有关,还有自然语言也是。
所以不得不先说RNN:Recurrent Neural Networks
这里写图片描述
可以看见 t t 时刻的网络At有两个输入即:

ht=At(At1,xt) h t = A t ( A t − 1 , x t )

但是RNN对长期依赖的模式的学习不太好,主要是长链条的学习会导致的大梯度和高复杂计算不太现实。
Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息。LSTM 由Hochreiter & Schmidhuber (1997)提出,并在近期被Alex Graves进行了改良和推广。在很多问题,LSTM 都取得相当巨大的成功,并得到了广泛的使用。
这里写图片描述
所以LSTM其实就是加了几个非线性门,每个门其实是一个小的神经网络,这样的一个A叫做一个LSTM单元。
这里写图片描述
LSTM的反向传播算法
这里写图片描述


VAE

我真的不是在说什么许嵩。。。我们谈及的是ariational Auto-Encoder,变分自编码器。其实自编码器就是将样本通过编码器生成为一个特征向量,解码器就是将这个特征向量解码为原来的样本。这和密码学里的加密解密很相似。
这里的编码器和解码器都各自是一个神经网络
这里写图片描述

注意了,变分自编码器的思想是大红大紫的GAN的基础,思考,当我们从样本 x x 生成编码z的时候,我们同时训练解码器使其由 z z 生成x^,最小化 ||x̂ x|| | | x ^ − x | | .最后我们去掉编码器,此时的 z z 就已经有实际的表达意义了!它的改变再加上解码器来工作就可以生成假样本x^
改变 z z 时,数字样本的方向也发生改变,说明z蕴含了这个特征:
这里写图片描述
你是否疑惑,为啥叫变分?
我们的目标是 Pθ(x) P θ ( x ) ,而:

logPθ(x)=Ez[logPθ(x|z)Pθ(z)/Pθ(z|x)] l o g P θ ( x ) = E z [ l o g P θ ( x | z ) P θ ( z ) / P θ ( z | x ) ]

Pθ(z|x) P θ ( z | x ) 很难算,我们用
qϕ(z|x) q ϕ ( z | x )

来替代计算,此处不详谈。无论 qϕ(z|x) q ϕ ( z | x ) 还是 Pθ(x|z) P θ ( x | z ) 都是神经网络。


GAN

对抗神经网络,大名鼎鼎。其原理不需多言,就是一个生成器(编码器)和一个判别器,注意其训练是生成器和判别器交替优化(交替做梯度更新)
这里写图片描述
还有就是一开始生成器目标项 log(1D(G(z))) l o g ( 1 − D ( G ( z ) ) ) 的梯度下降极慢,所以一开始是对 log(D(G(z))) − l o g ( D ( G ( z ) ) ) 作梯度更新来逼近 G(z) G ( z ) 接近1的地方。
这里写图片描述


强化学习

强化学习吸收了Markov链的思想,事实上如果你熟悉深度学习你会发现很多模型都和Markov链有或多或少的关系。它把学习模型抽象成了一个代理者,和环境的形式。
这里写图片描述
环境给予代理状态值和奖励值,代理给予环境动作值。我认为代理很像玩游戏的玩家,而环境则如同游戏机。这样理解似乎很合理,事实上强化学习模型还真的是被广泛用来训练玩游戏,还有围棋(AlphaGo)。
我就直接谈其最终形式了:

θJ(θ)t0(Qπθ(st,at)Vπθ(st))θlogπθ(at|st) ▽ θ J ( θ ) ≃ ∑ t ≥ 0 ( Q π θ ( s t , a t ) − V π θ ( s t ) ) ▽ θ l o g π θ ( a t | s t )

其中 Qπθ(st,at) Q π θ ( s t , a t ) 描述量化了 (st,at) ( s t , a t ) 即状态 st s t 时采取行动 at a t 有多好,而 Vπθ(st) V π θ ( s t ) 描述了状态 st s t 时情况有多好。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习是一种机器学习方法,它模仿人脑神经网络的结构和功能,通过多层神经网络进行学习和训练,以解决复杂的模式识别和预测问题。而分布式深度学习是指将深度学习模型的训练任务分布到多个计算节点上进行并行计算,以加快训练速度和提高模型性能。 在分布式深度学习中,通常会使用高性能硬件(如图形处理单元和张量处理器)来加速模型训练。同时,采用分布式训练的方法,将整个训练任务分解为多个子任务,在多个计算节点上并行进行训练。这样可以大幅缩短深度神经网络的训练时间。 分布式深度学习中的并行化训练任务可以分为数据并行和模型并行两种方式。数据并行是将训练数据分成多个部分,每个计算节点只负责处理其中一部分数据进行训练,然后将结果进行汇总。模型并行是将模型分成多个部分,每个计算节点只负责处理其中一部分模型进行训练,然后将结果进行汇总。在分布式训练中,节点间的通信成为关键瓶颈,因为不同的计算节点之间需要频繁地进行通信以交换大量的数据。 总结来说,分布式深度学习通过将深度学习模型的训练任务分布到多个计算节点上进行并行计算,以加快训练速度和提高模型性能。同时,采用高性能硬件和并行化训练任务的方式,可以进一步提升分布式深度学习的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值