有什么办法动态更改yml的值吗_深度学习到底在学什么?DNN、DRN、GAN背后的共性...

正确认识一个事物就是分析其不同实例在哪些地方是相同的,哪些地方是不相同的。

在经过了一段时间的打渔和晒网,对于各种主流深度网络从理论、实现以及实践有了一个囫囵吞枣的接触和了解。

尝试从DNN、DRN、GAN三个差别较大且特点鲜明的细分领域来深入认识一下SAI。

DNN

这里DNN我泛指神经网络模型下一切监督学习和无监督学习,全连接、CNN、RNN、自编码器等等。

开门见山所谓机器学习到底学了什么?

一言以蔽之,是数据中的模式。

不过这个数据中的模式有些太宽泛了,仅根据观察角度的不同,数据就能表现出很多种模式。如果在观察过程中加入一些影响因素或者观察角度随某一因素而变化,那么数据能够表现的模式可以是无穷的。

显然这无穷的模式不可能都是我们想要的,我们想要的只是其中极小的一部分。如何把这一小部分挑出来呢,偏置归纳。

偏置归纳就体现在模型的结构上,一般都有的非线性,CNN的平移不变性,RNN的时间不变性,自编码器的降维等等,当然模型肯定不止一两种偏置归纳,大量的偏置归纳共同帮助模型选择出一种数据模式。

理想的情况下,模型学到的模式正确的描述了输入到输出的变换方法,即输入任意X都能得到我们认为正确的Y。

变换方法,bianhuan function,也就是函数。瞬间到了熟悉的地方,我们需要一个拟合函数的工具。

拟合函数这个问题通过构造合适的损失函数就转变成了凸优化问题。解决凸优化的方法想必是如数家珍了,梯度法,牛顿方法,核方法等等。

到这里,我们对于BP神经网络的所以然已经比较了解了。

泛化性和过拟合的可能解释

所谓泛化性,就是如上文所叙述的,对于任意的X都能得到我们认为正确的Y。

假使凸优化找到了全局最优解,但泛化能力不足。就是因为模型没有选取正确的数据模式。

例如一条平滑的曲线和一条抖动的曲线都是训练数据可以表现的模式,但显然抖动的曲线没有什么泛化性可言。于是我们需要一些正则和训练技巧等偏置归纳来帮助选取那条平滑的曲线。

而问题过于复杂(谬误的数据也将导致问题更加复杂)以及数据较少都容易导致过拟合,原因很简单两点之间线段最短,模型最喜欢投机取巧,而最直白的方法莫过于直接记住对应关系,所以过大的模型也会白给。而数据较少还会导致不足以正确描述我们想要的模式。

DRN

首先撇开D不谈,只谈RN就非常简单易懂,就是在做一个动态规划。

对于当前这个状态我该做出什么动作来使得最终利益最大化,做决策是不能仅考虑眼前的得失,还要把以后的可能性考虑进去,这就是一个典型的动态规划问题。

迭代公式就是,Q(St,A)=reward+maxQ(St+1,Ai)。

经过足够多的迭代,就能从后往前得到所有有用的Q(S,A)。

加上D只是用神经网络来拟合函数Q,来获取S,来输出A等等,本子还是那个动态规划。

所以DRN学到了什么数据模式呢,这数据显然就是输入S和输出A了,动态规划(Q-learning,举例)只是用来获取样本的方法。

单纯的Q-learning对于样本S->A就只是单纯的记录,根本不存在什么泛化性,让人怀疑学习二字是否名副其实,这一切效果只是DP和奖励机制的功效。

而加入了神经网络后,其实就退化成了普通的监督学习,只是训练样本要在运行过程中动态获取,相对于RN还有一个好处就是处理时序问题更加轻松了。

GAN

大家都知道GAN由一个生成器和一个判别器构成。

我们的最终想要得到的是这个生成器,而且如上文描述的这个生成器对于任意X都能得到我们认为正确的Y。

这个目标和朴素地监督训练一个生成器的目标是一致的,使用的数据也是一样的。

唯一的区别在于归纳偏置,也就是模型结构和训练方法。

明显的如同生成图像这样复杂的任务,监督学习的泛化性是不值得期待的,原因上文中有所叙述。

对于这个问题,一个直观的想法就是遏制模型投机取巧的可能性。

怎么遏制呢,一个直观的想法就是给与更多的数据,因为一个能够顾全大局的方法不能称之为投机取巧。

为了获取更多的数据,GAN给出了一个迂回的方法。

生成器和判别器构成了一个RN,即强化学习环境,训练生成器的样本由RN间接给出

而判别器在算法的控制下是逐渐变强的,也就是说强化学习环境在不断变化,对应到上文就是观察数据的角度在不断变化。

说到这已经很明显了,GAN由简到繁逐渐学习了多种数据模式,样本量由N变成了M*N,虽然要打个折扣,但也变相的起到了增多数据的作用。也可以理解为投机取巧的方式表达一种模式尚还可能,但要表达多种模式八成力有未逮。

而这种由简到繁逐渐学习多种数据模式的强大偏置归纳,在一般的监督学习中很难依托结构设计出来,是GAN独特的优势。

至于Z这个隐空间,个人认为也是输入空间的一部分,只是将模型拟合的函数的高维流型投影到Z构成的空间中,给了我们一定程度上读取和操作这个流形的手段。比如通过更改Z给图片渲染成不同的风格,或者逐渐更改Z中的值获得渐变的图像。对于一些回归任务,更改单个x也能起到渐变的效果,不必大书特书。

数据扩增

对于备受期待的将GAN用于数据扩增我是持迟疑态度的,迟疑的原因就在上面。

数据需要扩增的原因是过少的数据无法描述想要的模式,自然也就无法学习这个模式。

而GAN获取更多数据的方法是学习更多的模式来防止模型在复杂任务中投机取巧,但前提是数据能够描述目标模式。

所以训练GAN的标定数据应该是远多于监督模型,有这个数据直接训练不好么,还生成啥。

但也不能直接否定,原因在于具体多少数据能够描述目标模式无法界定,且偏置归纳的影响也十分巨大。

综上

提取共性后,SAI的中心思想十分清晰了。

0ff6f1425b40b4204267df2d784b06ef.png

就是去拟合X到Y的变换方法(本质都是监督学习),没X想办法弄X,没Y想办法弄Y,泛化性还得好。

想尽办法获得训练样本,挖空心思设计偏置归纳,绞尽脑汁推导损失函数,最后找台好机器跑下凸优化。

后两者对目标任务没影响,而偏置归纳对于我等底层工作者基本上是拿来主义,所以一般做SAI的,工作量七成在到处搞数据,三成在调超参。实是炼丹无疑。

向着一品丹师,前进!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值