本篇文章10401字,读完约26分钟

“我父亲从小就告诉我,智力和工人一样多。”事情做完后,我刷掉衣服,隐藏自己的优点和名声。

深度学习防骗指南 | Linsights

近年来,深度学习的概念非常流行。我不好意思说我没有打招呼就从事数据工作。在公众眼中,我们似乎是仿生大脑,人工智能威胁理论,奇点正在逼近。但事实上?我们每天都在做什么?

深度学习防骗指南 | Linsights

机器学习循环中有三种灌溉人工产物:图形模型加循环、神经网络加层、准则函数加规则。

深度学习防骗指南 | Linsights

今天的讨论主要是关于给神经网络增加层次。别紧张。这篇文章基本上没有数学公式。我会把它们翻译成非专业人士可以理解的文字。

深度学习防骗指南 | Linsights

既然它被称为反欺诈指南,我们如何确保这篇文章不是一个骗局?休谟在300年前回答了这个问题,除了我之外,所有在场的人都不可靠。然而,你仍然需要带着怀疑来阅读这篇文章。毕竟,我经常挖洞为自己跳。

深度学习防骗指南 | Linsights

深度学习

近年来,深度学习的概念非常流行。我不好意思说我没有打招呼就从事数据工作。

深度学习防骗指南 | Linsights

在公众眼中,我们似乎是仿生大脑,人工智能威胁理论,奇点正在逼近;在工程师的眼里,我们似乎赚了很多钱,当我们摔断腿时,我们不用担心我们的余生;然而,在数学家的眼里,我们只是在玩泥沙,毕竟,我们甚至不能证明一个像样的误差边界;当然,他们的观点并不妨碍我们心目中的西小口/海淀吴彦祖的形象。

深度学习防骗指南 | Linsights

但事实上?我们每天都在做什么?每天,我们在中关村步行街摆摊,喊着老祖宗的名字,五元一层

深度学习防骗指南 | Linsights

那么什么是深度学习呢?归根结底,深度学习只不过是一系列深度神经网络,而这一系列神经网络根据不同的假设会有不同的配置。为了阐明什么是深度学习,我们必须首先解决一个问题:什么是神经网络。

深度学习防骗指南 | Linsights

什么是神经网络?

大多数研究机器学习的人接触到的第一个模型是逻辑回归。事实上,逻辑回归是最简单的神经网络。我们有D个输入,1,2,3 1,2,3,blabla直到D,例如,$ x1 $是机票的数量,$ x2 $是酒店订单的数量,等等。这些特征乘以相应的参数$w_1$,$ w _ 2 $ bla。简单粗暴地说,你可以把它理解为特征的重要性。然后,在乘法和加法之后,你得到一个实数,也就是说,这里的wx美元。最后一个非线性映射,砰的一声,激活了一个神经元,这个节点的输出可以预测你是否会借钱。单节点神经网络刚刚出现。

深度学习防骗指南 | Linsights

好的,类似于刚才的过程,砰的一声,我们添加了另一个绿色神经元。

再次,我们添加了一个红色的神经元,当然,我们可以在这一层添加任意数量的神经元,你看,我们的省略号不是用白色绘制的。

深度学习防骗指南 | Linsights

聪明的学生已经能想到了。接下来我们将添加一层。是的,在红色、绿色和蓝色的基础上,我们增加了两个神经元,一个绿色和一个黄色,这表示用户将会还钱而不会还钱作为模型的输出。

深度学习防骗指南 | Linsights

假设现在有一个用户,我们可以得到他的历史订单信息,也就是说,$ x _ 1 $ $ x _ 2 $,blabla $ x _ d $是我们知道的最低的神经元,我们需要预测他是否会欠钱。整个预测过程如下:数据从底层注入到中间层,即红、蓝、绿三层,也称为要素层提取层,然后注入到顶层输出层,输出值作为您的预测值。

深度学习防骗指南 | Linsights

但是这里会有一只虫子。似乎我们事先知道重量是什么,重量从何而来。产品经理订购的?或者是谁决定的?如果你处于冷启动状态,也就是说,你没有一个训练样本,那么它通常是由专家授权的(但是在这个时候,基本上不使用神经网络,而是使用其他模型)。一旦你积累了一定数量的数据,你就可以通过训练样本来确定这些权重,这就是我们通常所说的让数据变得合理。

深度学习防骗指南 | Linsights

如何训练来获得重量?

扔一次硬币解决不了任何问题,如果有,就扔两次。蒙特卡洛

因为没有什么比掷硬币更好的了,所以初始化时最好随机设置权重,然后通过样本反复修改权重。什么意思?让我们举个例子。

深度学习防骗指南 | Linsights

假设三庞制造了一些导弹,想把它们扔进民主的灯塔。因为他是第一次扔,他没有经验也没有很强的能力,所以他很随意的扔了,然后他不小心把它们扔进了南极。这时,企鹅爸爸出来说话了。你不想想,不收钱你会变得更强吗?于是三庞成了会员,企鹅爸爸告诉他你太努力了,你知道吗?都在南半球。别逼得那么紧,明白吗?这一次,三庞有很长的记忆。轻点。如果你不小心炸了一个养猪场,大养猪场主会跑出去喷它。方向!错误的方向!你能瞄准它吗?。

深度学习防骗指南 | Linsights

所谓的模型训练类似于上述过程。首先试试你的运气,老师会告诉你撞墙后该做什么。每次你撞墙,它都是一个训练样本,而老师撞墙后就是样本的标签。随着点击数的增加,模型的准确率会上升(当然,它不会无限上升,否则我将在完成所有五年高考三年模拟后被蓝翔录取。(

深度学习防骗指南 | Linsights

为什么bp被命名为bp?

众所周知,神经网络第二次兴起的重要原因之一是20世纪80年代bp算法的引入。我认识很多朋友,他们已经推导出了链导数,但是他们可能无法解释为什么它被称为反向传播。在这里,我们将解释为什么反向传播被称为反向传播,而不是其他名称。

深度学习防骗指南 | Linsights

在神经网络中,其原始数据通过多个隐藏层传播,并到达顶部输出层。此时,它将与标签,即教师信号进行比较,每个节点自然会有错误。这个错误将被向后注入(注意我用注入这个词代替传播,因为注入会更生动),就像你的向前传播的过程一样。接收到这个错误后,上层的神经元会修正该层的权重。这是反向传播中链推导的非数学语言描述。

深度学习防骗指南 | Linsights

就像你去看毕加索的画一样,你会很困惑,是吧?你看起来不太对劲。为什么你的左眼旁边有一只左眼?除了艺术方面,如果我们想修改毕加索的画,让它看起来像一个正常人呢?

深度学习防骗指南 | Linsights

首先,你应该首先纠正你眼睛的位置。一旦你的眼睛位置被纠正,你能知道你鼻子的错误吗?然后,在你纠正你的鼻子之后,你能说出你的嘴的错误吗?

深度学习防骗指南 | Linsights

反向传播就像这样的过程,当权重被校正时,权重从顶层被校正,权重被反向注入,直到开始层的权重被校正。

深度学习防骗指南 | Linsights

反向传播看起来很美,但是当你使用卷积网络时,它就不那么优雅了,因为它涉及到kron积和卷积自相关,而在rnn中它涉及到扩展。如果你说你仍然写人工回传播,那么我尊重你作为一个男人。

深度学习防骗指南 | Linsights

目前,计算框架基本上采用自动梯度而不是反向传播(当然,反向传播是自动梯度的一种特殊情况),也就是说,您只需要定义正向传播,梯度将由计算框架自动计算。我想写关于自动渐变的原理,但是管理员催稿,所以我跳过了。

深度学习防骗指南 | Linsights

一步一步,一堆一堆

我们刚刚建立了一个三层网络,有些学生可能不接受。我已经单身24年了,所以我不能建立一个24层的网络?我跟随长辈这么多年了。我不能在90岁生日的时候建一个90层的网络吗?啊,这些学生,你们前途无量。你的讨论实际上是深度学习的范畴。我这里有一本深度学习参考指南,10元和10元,还有两本书。

深度学习防骗指南 | Linsights

让我们首先介绍第一种深度结构,它可以称为编码器结构。有时我们也称之为自编码器。首先,我们有一层输入

深度学习防骗指南 | Linsights

然后我们从这一层输入中提取一些特征,这就是所谓的编码

这些特征好吗?如果这些特征能够恢复到原始数据,那么我们认为这些特征已经学会了关键点。因此,我们让特征层的上层,即蓝色神经元,将原始数据作为学习目标,并尝试将其还原。这个过程叫做解码。

深度学习防骗指南 | Linsights

在学习了这个网络之后,我们将切断蓝色神经元,我们将得到一个编码器。

然后我们在此基础上再次编码

然后恢复

然后切断蓝色神经元

通过类比,您可以添加另一个层

呃,再加一层

五层神经网络就这样建立起来了。这个过程被称为无监督的预训练,他的目标只是学习重建自己。因此,在分类任务中,需要对反向传播进行监督微调。

深度学习防骗指南 | Linsights

这些是编码器的核心思想,它就像一个伺服系统,不断地跟踪系统的输入并再现它。不同的编码者在细节上只有一些不同。例如,如果您想要稀疏表达式,将kl散度添加到标准函数;如果数据在噪声中恢复,则向数据添加噪声;如果要正则化标准函数,则在误差中加入范数;如果你想让模型抵抗干扰,那么把雅可比矩阵加到误差上。rbm很特别。他不是数学推导的编码器,但他的结果也是一个基于重建的模型,所以我们将他包含在这里。

深度学习防骗指南 | Linsights

正则化只是一些参数的先验知识。就个人而言,认为正规化是为了防止过度适应是不太正确的。您可以将任何期望的惩罚函数添加到标准函数中。例如,如果您知道一个参数wi不能是负的,您可以添加一个错误+(-wi)或什么。有些人可能会反驳我。的确,在给标准函数增加两个范数后,可以避免过度拟合。是的,在大多数情况下是真的。

深度学习防骗指南 | Linsights

但是我们为什么能阻止试衣呢?因为当拟合发生时,权重通常太大(参考prml的讨论),这解释了为什么神经网络有权衰减(事实上,它相当于标准函数加两个范数)。在你加上两个规范后,这就相当于强迫权重成为一个相对较小的数字。这实际上是你的先验知识,你更喜欢小重量而不是大重量。如果我们不在这里扩展,我们将再次扩展到机器学习的另一个灌溉领域。

深度学习防骗指南 | Linsights

当然,这里的控制框图只是一个不精确的框图。真正意义上,机器学习外衣下的控制论被称为强化学习。这是另一个大坑。我们别挖了。毕竟,挖一段时间后地基会坍塌。

深度学习防骗指南 | Linsights

为什么这种无监督的预训练用于深层神经网络?事实上,无监督的预训练就像:嗯?这两样东西看起来很像。虽然我不知道它们是什么,但我还是先把它们放在一起吧。当有监督训练时,我告诉你这个东西叫做数字3,然后你会推断,哦,原来像这样的东西叫做3。

深度学习防骗指南 | Linsights

没有例外

这个头衔并不意味着让每个人都接受例外,而是意味着平等对待每个人。

卷积网络的核心思想是平等对待所有人,更适合二维数据。他的网络结构是这样的,让我们先大致了解一下:

深度学习防骗指南 | Linsights

以一幅图像为例,我们知道一幅图像实际上是一个二维矩阵,所以我们可以用卷积核去卷积这个矩阵,得到一个特征图。如果使用多个卷积核,将会有多个特征图。然后,卷积结果被采样,然后卷积,然后采样,blabla,最后,完全连接的网络被扩展,并且卷积网络被完成。

深度学习防骗指南 | Linsights

那么什么是卷积呢?这个过程就像这个运动图像(在ppt中,它是运动图像)。当固定卷积核扫描原始图像时,它将扫描出一个特征图像。

深度学习防骗指南 | Linsights

透视图是这样的。卷积核与原始图像的对应位置相乘相加,得到特征层的节点。

深度学习防骗指南 | Linsights

事实上,采样是在一个小的局部范围内取平均值或最大值。

实际上,你可以把卷积想象成滤波,就像这里,原始的rgb通道。卷积后,我们可以看到卷积层的结果是飞机的机身、机翼和尾部,但是环境的背景色消失了。这个过程就像过滤一样,过滤掉无用的信息,提取有用的信息。

深度学习防骗指南 | Linsights

经验是智慧之父,记忆是智慧之母

虽然卷积网络也可以用来建立时间序列模型,但是受卷积核大小的限制,如果要建立长时间序列模型,循环神经网络将是一个更好的选择。

深度学习防骗指南 | Linsights

与前两种神经网络不同,rnn允许层内连接,并且输入和输出都是时间序列。这种结构允许你当前的输出依赖于很久以前的输入。

深度学习防骗指南 | Linsights

rnn的一个流行结构是lstm。就像人一样,我们总是忘记事情。该网络引入了遗忘的概念,其输出是通过将当前输入与被遗忘的历史相结合而获得的。配置如下:

深度学习防骗指南 | Linsights

接下来,我们把它分开。每个lstm节点相当于一个单元,每个单元都有自己的状态。传送带将细胞状态从前一个细胞转移到下一个细胞。在这条直线上,只进行线性变换。

深度学习防骗指南 | Linsights

这条传送带能工作吗?不一定,它是由遗忘开关控制的。遗忘开关与先前输出和当前输入一起决定传送带的打开。1完全打开,0完全关闭。

深度学习防骗指南 | Linsights

好的,我们得到了祖先的细胞状态。现在考虑这一代的当前单元状态,我们将选择反正切映射后的xt状态作为新的单元状态。映射后的xt有这么多状态,选择哪一个?此时,是通过这个乙状结肠门来决定选择哪一个。

深度学习防骗指南 | Linsights

在他们选择结果后,他们与祖先的结果合并以获得这个细胞的细胞状态:

然后是这一代的输出值,它等于前一个输出值和这个单元状态的融合。你看,这两个加号,呃,出来了!

深度学习防骗指南 | Linsights

你疯了吗?

当我第一次得知msra的何(对,就是隔壁的那栋楼)建了一个千层神经网络时,我的第一反应就像站在舞台上的雷军...r...U...好吗?然而,在浏览了他们的想法后,我震惊了。整个想法不是很复杂。虽然它叫做剩余网络,但我向大家保证,我会尽最大努力避免文章中的数学公式,所以在这里我们将从非数学的角度切入这个结构。

深度学习防骗指南 | Linsights

首先,介绍一个奇怪的现象,这应该是做过深度网络实验的学生所遇到的:随着你网络的加深,成绩不会提高,反而会下降。这个问题似乎不是由梯度消失引起的,因为你的网络确实会收敛。这将导致一个悖论。理论上,深层网络不应该比浅层网络差。为什么?

深度学习防骗指南 | Linsights

假设一个是三层网络,另一个是10层网络。在10层网络中,我可以完全使前三层的参数与三层网络的参数完全相同,而后七层直接做等价映射,即后七层直接提取第三层的输出,不做任何处理,相当于三层网络,所以理论上应该不会比三层网络差。

深度学习防骗指南 | Linsights

Resnet就是基于这样一个想法。既然你可能在最后七层给我制造麻烦,我就建一条高速公路,直接跳过你,直接从三楼跳到最后一层,这是完全可行的,对吧?这是resnet最重要的想法,建造无数的高速公路,可以分别跳过任何一层,如下图所示。

深度学习防骗指南 | Linsights

由于有了这些高速公路,梯度消失的问题也得到了解决,因为误差可以快速返回到第一层,并且这种结构可以非常深入地建立神经网络。可想而知,在未来的时间里,学术界将会充斥一大堆巨型网络(并非贬损),或许最大的赢家将是英伟达的老黄。

深度学习防骗指南 | Linsights

欢迎回到现实的土地

欢迎回到肮脏的工业数据。在此之前,让我介绍一下我们的业务流程。

首先,让我们来介绍一下我们的产品,叫做拿花,跟着我重复,拿花,拿花,拿花,拿花,这样经过一些洗脑,现在每个人都印象深刻。我们的产品类似于信用卡功能。在购买机票、酒店和其他产品时,用户可以选择用他们消费的金额来支付,而不是用信用卡或借记卡。一个月后,他会回来偿还账单或分期付款。当然,像信用卡一样,分期付款也可能被收取,这也是我们的收入来源。

深度学习防骗指南 | Linsights

那么用户的生命周期经历了哪些阶段呢?在开始花钱之前,他会在我们借钱之前经历一系列系统性的审查,比如信用评级,这意味着要评估他将来是否会借钱不还。如果他可能借钱不还,那么我们可能拒绝为他提供信用支付功能。

深度学习防骗指南 | Linsights

分期倾向,即预测他在激活后是否会被分期。如果一个用户的信用评级由于某种原因不是特别好,但他的舞台意愿非常高,那么我们也可以允许他打开它并花掉它。毕竟,高风险有高回报。激活趋势,即预测用户是否会激活并拿走鲜花。如果他有很高的倾向,我们可以给他发一条信息,说,爸爸,来激活和拿花。

深度学习防骗指南 | Linsights

一旦用户激活消费,他将进入中间贷款阶段,在这个阶段,一系列中间贷款模型,如订单风险,开始工作。也就是说,当用户下订单时,如果模型预测这可能是一次盗窃,那么就不允许用钱支付订单。最后,用户进入贷后阶段。如果用户未能在到期日偿还贷款并超过一定天数,则逾期回收模式开始工作。

深度学习防骗指南 | Linsights

在整个过程中,累积的用户信用历史将在贷款前、贷款中、贷款后反馈到模型中,形成闭环控制系统,使模型能够通过迭代不断提高精度。在如此多的模型中,使用深度学习的模型是用户分级预测模型,即预测用户是否将分级。

深度学习防骗指南 | Linsights

你为什么在阶段模型中使用深度学习?让我们运行一下,讨论深度学习和大数据之间的关系。

深度学习防骗指南 | Linsights

深度学习和大数据

如果把深度学习比作东风快车,就必须完成使命,精确定位,货到付款,不退货。那么大数据就相当于他的燃料,也就是石油。

深度学习防骗指南 | Linsights

由于深层神经网络的参数一般都很大,vc的维数也很大,你需要燃烧大量的数据才能使你的模型达到更好的效果。许多朋友过去常向我请教。锦绣,我现在有2000个样品。我能深入学习吗?这时,我的建议一般是:如果你想深入学习,你应该先积累数据。

深度学习防骗指南 | Linsights

这里有一个参考。对于简单的问题,不管你有小规模还是大规模的数据集,这都是非常简单的事情。但是对于复杂的问题,如果你只有几个样品,那么我只能说一个聪明的女人没有饭就不能做饭。如果你有大量的数据集,你可以尝试深度学习。

深度学习防骗指南 | Linsights

我们在分期预测中使用深度学习的原因是有相当多的分期用户,目前大约有几十万。当然,随着业务的快速发展,这一数字也在快速增长,因此这一订单的样本可以尝试使用深度学习。

深度学习防骗指南 | Linsights

pu-学习

工业数据和学术数据之间的一个很大的区别是,许多学术数据都被维护和标记,如lecun等人维护的mnist,alex krizhevsky等人维护的cifar-10,feifei等人维护的imagenet。

深度学习防骗指南 | Linsights

我不禁想起了我的一个朋友。他们的实验室通常在空闲时会发出兼职广告,并付钱给一些学生为他们标记数据。我似乎看到了致富的方法。当下一次大萧条发生时,我将在Xi二七设立一个摊位,这样每个人都可以标记数据并献身于科学。严肃,这是一件非常严肃的事情。毕竟,我们的祖先维纳说过,没有机器比人类更好。这也是机器学习的一个方向,它被称为人类计算,通常被称为人肉计算。哈哈哈哈,艾玛要死了。我想出去笑一会儿。

深度学习防骗指南 | Linsights

在工业数据中,在许多情况下,我们的数据是未标记的,或者其中一些被标记而另一个未被标记,即正负样本混合在一起,这被称为正和未标记学习(PU-learning)。

深度学习防骗指南 | Linsights

关于朴学的学术讨论很多,但似乎很麻烦,而且可能不适合自己的场景。所以我们不介绍它。我们主要介绍两种简单粗暴的方法。

深度学习防骗指南 | Linsights

第一个是所谓的绩效期。在分段预测的任务中,对于分段用户来说,毫无疑问,一旦他分段了,他的标签就是分段。问题是,对于不登台的用户来说,他的标签是否意味着不登台?不,如果一个用户不登台,这仅仅意味着他现在不登台,但并不意味着他将来不会登台。如何解决?我们观察了用户激活后的各个阶段。

深度学习防骗指南 | Linsights

在此图中,x轴代表时间偏移,y轴代表分段率。这个数字的意思是,x天前激活的用户的转移率是多少?例如,此点代表一个月前激活的用户的激活率。

深度学习防骗指南 | Linsights

然后我们可以发现,当x大于120时,登台率是稳定的,也就是说,一旦用户被激活了120天,他就不登台,并且他不太可能在将来登台。因此,我们将120天未激活的用户标记为非阶段用户。

深度学习防骗指南 | Linsights

但是120天合理吗?为什么你说120天后我不会分期付款?事实上,如果我们把时间延长,比如200天,标签会更准确,但剩下的样本会更少。我们选择120天的原因是正负样本在这个时间点处于平衡状态。

深度学习防骗指南 | Linsights

另一种方法叫做滚动率。例如,在信用评级的任务中,你如何定义一个样本为坏样本?如果过期一天,它不被认为是一个坏样品吗?显然不是。我忘了还它。为什么你说我是个坏用户?

深度学习防骗指南 | Linsights

那我定义多少天是坏用户?这可以采用滚动速率的概念。也就是说,如果一个用户过期了,他就相当于向坏用户的方向滚动,一旦他还了钱,他就相当于向好用户的方向滚动。然后我们可以测试用户在每个逾期日内偿还贷款的比例,这样我们就可以知道用户逾期t天偿还贷款的可能性有多大,这样就可以断言,一旦用户逾期t天以上,我就不能接受他会偿还贷款的概率,认为他是一个坏用户,也就是说,他再也不会回来了。

深度学习防骗指南 | Linsights

想象一下,前面的圆形物体是你的前男友。你轻轻地踢他。嘿,他向前滚了一会儿,然后又滚了回来。但是如果你全力踢他,他会向前滚,再也不会回来。看着它很有趣。但前男友还活着,但他已经死了。不管他做什么?

深度学习防骗指南 | Linsights

布尔单位

与图像或语音中的任务不同,在这些任务中,特征不需要太多的预处理,并且可以作为神经元直接投入。然而,在财务数据中,每个特征都有其自身的含义,其自身的维度也是不同的。例如,一个节点代表机票消耗量,其数量级可以是一万,而另一个节点代表机票订单的数量,其数量级可以是十或二十。那么我们如何处理这类数据呢?我们的方法是将它们离散成01的布尔节点。假设我们使用10个节点来表示消耗量。如果用户的数量小于1000,第一个节点为1,其他为0,如果是2000,第二个节点为1,其他为0,依此类推。

深度学习防骗指南 | Linsights

这种预处理有什么好处?首先,他降低了对异常值的敏感度。想想吧。如果用户出于某种原因花费了数百万张票,如果他使用具有连续值的神经元,它可能输出非常大的值。然而,布尔节点不会发生这种情况,因为数百万只激活最大文件的神经元。

深度学习防骗指南 | Linsights

另一方面,假设决策边界是$ y=x^2 $,如果使用连续值,则训练的决策边界可能是$ y=kx+b $,因此一些样本将被错误分类。

深度学习防骗指南 | Linsights

但是如果我们把X离散成三段,那么决策边界就是一个分段函数,也就是说,当X位于$x_1$,Y等于$y_1$,当X位于$x_2$,Y等于$y_2$。

深度学习防骗指南 | Linsights

如果我们更精细地划分x,我们就能更精确地逼近决策面。

因为我们是一家消费公司,我们的一些数据会偏向消费数据,例如用户的机票和酒店订单信息,这与支付信息和他的一些账户信息(例如注册时间等)相结合。,总共提取了100多个特征。在这些特征被布尔化之后,我们的网络输入层中的700多个节点被获得。

深度学习防骗指南 | Linsights

所有这些都是在骗你。我们是布尔型的真正原因是rbm只支持伯努利节点

计算能力

最后一个问题是计算性能。由于深度学习的样本量大,网络参数多,cpu不适合,所以我们用gpu,也就是显卡来计算。如果把cpu比作python,瑞士军刀语言,可以做任何事情,那么gpu就像php。虽然它只有一个功能,但如果我们不能很好地使用它,有时会伤害到我们,我们有很多人。

深度学习防骗指南 | Linsights

例如,在一个三维矩阵中,如果我想给每个元素加1,那么cpu将运行一个周期。至于gpu,它可以在每个元素上并行添加1,但gpu不是万能的。它只能像小学生一样实现一些简单的逻辑功能,如加减乘除。如果你让他做一些复杂的逻辑,就像让一个学生计算定积分,他不太擅长。

深度学习防骗指南 | Linsights

我们的选择

我们采用的计算框架是张量流和gnumpy,它是numpy的gpu版本。最后,我们训练了一个六层神经网络,其中前五层为rbm结构,最后一层为softmax结构。在底层的两层楼采取了退学处罚。

深度学习防骗指南 | Linsights

为什么层数设置为6层而不是更深?一方面,我们的数据量只能支持6层网络,而更深层的网络性能开始下降。当然,网络性能下降也是由于网络结构问题,我们最近也在切换剩余网络。

深度学习防骗指南 | Linsights

与传统分类器相比,经过深度学习后,auc提高了约5个百分点。虽然它没有像imagenet那样提高20个百分点,但5个百分点总比没有好。我们可以看到,经过深度学习训练的分类器能够更好的区分正负样本,也就是说,接近0.5的样本会更少,或者ks值会更大。

深度学习防骗指南 | Linsights

为什么我们不使用hadoop或spark?因为hadoop更倾向于批处理或粗粒度并行,在深度学习中,需要细粒度并行。如果使用hadoop,通信是一个大问题。

深度学习防骗指南 | Linsights

如何使用?

如何使用它,或者如果你想使用深度学习,你应该怎么做?

首先,首先,你问自己,我的数据是否足以进行深入研究?毕竟,你不能用大炮打蚊子。多少钱够了?有一个不可靠的个人建议。如果你的数据可以很容易地达到80%以上的准确率,那么10w左右的样本就是底线。如果只有70+的话,那么你必须要几十万个样品。当然,样本越多越好。你认为你的银行卡里有太多的余额吗?不会的。

深度学习防骗指南 | Linsights

如果你没有这么多样品呢?然后问问你自己是否有任何方法来扩展样本。例如,如果您正在进行图像识别,请镜像图像。嘿,数据量立刻翻倍了。然而,如果你说你的照片是俄罗斯对称的建筑,你必须哀悼,但这并不重要。您仍然可以在搜索引擎的帮助下扩展您的样本集。说到图像检索,我只服务百度,一个老司机。不管你的关键词是什么,我总能找到一些粉丝。

深度学习防骗指南 | Linsights

另一种方法是迁移学习。我们只介绍一种迁移学习,即样本迁移。例如,您必须识别用户的银行卡号码或识别其他号码。当然,你可以使用机器视觉(在任何情况下,你仍然必须使用一些机器视觉,毕竟,你必须在识别之前提取数字)。问题来了。你没有那么多的银行卡号码。你该怎么办?谷歌一下。多么疲惫和吃力不讨好。此时,您可以尝试将mnist的数据集与您的银行卡号码数据集混合起来进行培训。嘿,样本量会立即增加,但请注意,验证集使用的是银行卡号码的数据。想想看,我做银行卡识别,最后,不管多高的识别,对我来说都没用。

深度学习防骗指南 | Linsights

好吧,我不在乎你。我想你现在有大数据了。接下来,我会问你有没有gpu。如果你没有gpu,那么我会问你是否有钱。如果你没有钱,艾玛,我说你的孩子什么都没有,那么你可以在售票组找到学生。他们有特斯拉GPUs。你也可以和他们讨论深度学习的问题。毕竟那里的老师比较强,这就麻烦售票组的学生支付一笔结算广告费。

深度学习防骗指南 | Linsights

如果你有钱,毫无疑问买就买。将它放入预算为3000元的卡中,然后带回家给泰坦们。无论如何,它最终会被用来玩游戏。但是请注意,你只能购买英伟达卡,什么?Amd仍在生产显卡。毕竟,cuda不得不放弃opencl,目前几乎所有的计算框架都是基于cuda的。我应该买什么型号的?建议使用Gtx1080或新架构的titan,因为内存非常重要,但是目前的框架是否支持cuda8.0还不清楚。我们私下谈谈吧。毕竟,它和一块布一样长。

深度学习防骗指南 | Linsights

现在假设你有gpu,不管你是买还是借还是偷,那么你选择了计算框架吗?现在深度学习的计算框架已经非常成熟,如Caffe、Mxnet、TensorFlow、Anano、Torch等。任何人都不应该直接使用cuda。我不禁想起了以前这些框架不存在的时候。反向传播在那时是手工写的,几分钟的梯度校准让你怀疑你的生活。但是,目前的框架非常方便,基本上是自动派生的,也就是说,没有必要。

深度学习防骗指南 | Linsights

选择哪个框架?我的建议是张量流。虽然这个东西刚出来的时候就被mxnet打败了,幸好tensorflow是富二代,而且他的父亲是著名的google(当然,mxnet的父亲也是很牛叉的,参数服务器的作者,我没有说caffe的贾不牛叉,而且我对今后报道中的偏差也不负责),所以不到一年,tensorflow就从一只丑小鸭变成了一只丑鸭。香港珍,它的内存管理可以由我来负责。

深度学习防骗指南 | Linsights

如果你熟悉c++并且你所做的与图像相关,你可以选择caffe。目前,gpu版本的tensorflow只支持linux,所以如果你受不了linux,windows下的mxnet也是一个不错的选择。我非常推荐的Gnumpy是一个轻量级的gpu矩阵运算,功能有限,但它非常灵活。

深度学习防骗指南 | Linsights

既然你有了数据、gpu和框架,为什么不快点开始工作呢?

来源:罗盘报中文网

标题:深度学习防骗指南 | Linsights

地址:http://www.lzn4.com/lpbxw/12126.html