邦定机厂家
免费服务热线

Free service

hotline

010-00000000
邦定机厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

四个任务就要四个模型现在单个神经网络模型就够了_[#第一枪]

发布时间:2021-06-07 13:00:05 阅读: 来源:邦定机厂家

雷锋网 AI 科技评论按:顾名思义,「表示」(representation)就是指在网络中对信息进行编码的方式。为了让大家充分理解「表示」,本文作者尝试构建一个能同时完成图像描述,相似词、相似图像搜索以及通过描述图像描述搜索图像四项任务的深度神经网络,从实操中让大家感受「表示」的奇妙世界。 AI 科技评论编译如下。

众所周知,神经网络十分擅长处理特定领域的任务,但在处理多任务时结果并不是那么理想。这与人类大脑不同,人类大脑能够在多样化任务中使用相同的概念。例如,假如你从来没听说过「分形」(fractal),不妨看一下下面这张图:

数学之美:分形图像(viahttps://fractalfoundation.org/)

在看到一张分形图像后,人类能够处理多个与之相关的任务:

在一组图像中,区分出分形图像和一只猫的图像;

在一张纸上,粗略地画出分形图的样子(它不会很完美,但也不会是随意的涂鸦);

将类似分形的图像与非分形图像进行分类(你会毫不犹豫地将图像按最相似到最不相似的方式进行分类);

闭上眼睛,想象一下分形图像是什么样子的(即使现在不给你一张现成的分形图象,你也可以在看过它一次之后,就想象出它的样子,是不是很棒!)

那么,你是如何完成这些任务的呢?你的大脑中是否有专门负责处理这些任务的神经网络?

现代神经科学对此给出了答案:大脑中的信息是跨不同的部位进行分享和交流的。大脑究竟怎样完成这些任务只是研究的一个领域,而对于这种执行多任务的能力是怎样产生的,我们也有一些线索——答案可能就存在于如何在神经网络中存储和解释数据。

「表示」的奇妙世界

顾名思义,「表示」(representation)就是指在网络中对信息进行编码的方式。当一个单词、一个句子或一幅图像(或其他任何东西)被输入到一个训练好的神经网络时,随着权重与输入相乘并进行激活操作时,它就能在连续的层上实现转换。最后,我们在输出层中得到一串数字,我们将其解释为类标签或股价,或网络为之训练的任何其他任务。

这种神奇的输入->输出转换因连续层中发生的输入转换得以实现。输入数据的这些转换即称为「表示」。它的一个重要思想是,每一层都让下一层更容易地执行任务。这个过程让连续层的存在变得更容易,进而也使得激活(特定层上输入数据的转换)变得有意义。

我所说的有意义是指什么呢?让我们看下面的示例,其展示了图像分类器中不同层的激活:

图像分类网络的作用是将像素空间中的图像转化为更高级的概念空间。例如,一张最初用 RGB 值表示的汽车图像,首先在第一层用边缘空间表示,然后在第二层被表示为圆圈和基本形状空间,在倒数第二层则开始使用高级对象(如车轮、车门等)表示。

随着表示(由于深度网络的层次性而自动出现)日益丰富,图像分类的任务也变得微不足道。最后一层要做的就是权衡车轮和车门的概念更像汽车以及耳朵、眼睛的概念更像人。

表示能够运用在哪些方面?

由于这些中间层存储有意义的输入数据编码,所以可以对多个任务使用相同的信息。例如,你可以使用一个语言模型(一个经过训练、用于预测下一个单词的循环神经网络),并解释某个特定神经元的激活以预测句子的情绪。

(via Unsupervised Sentiment Neuron)

一个令人惊讶的事实是,情感神经元是在无监督的语言建模任务中自然出现的。(相关文章请参阅:https://rakeshchada.github.io/Sentiment-Neuron.html)。网络经过训练来预测下一个单词,然而在任务中我们没有要求网络预测情绪。也许情感是一个非常有用的概念,以至于网络为了更好地进行语言建模而创造了它。

一旦你理解了「表示」这个概念,你就会开始从完全不同的角度来理解深层神经网络。你会开始将表示(sensing representations)视作一种能够让不同网络(或同一网络的不同部分)之间实现通信的可转换的语言。

通过构建一个「四合一」的网络来探索表示

为了充分理解「表示」,让我们来构建一个能同时完成四个任务的的深度神经网络:

图像描述生成器:给定图像,为其生成标题

相似单词生成器:给定一个单词,查找与之相似的其他单词

视觉相似的图像搜索:给定一幅图像,找出与之最相似的图像

通过描述图像描述搜索图像:给出文本描述,搜索具有所描述的内容的图像

这三个任务中的每一个本身都是一个项目,一般来说需要三个模型。但我们现在要用一个模型来完成所有这些任务。

该代码将采用 Pytorch 在Jupyter Notebook 中编写,大家可以前往这个存储库进行下载:

https://github.com/paraschopra/one-network-many-uses

第一部分:图像描述(Image Captioning)

在网上有很多实现图像描述的好教程,所以这里就不深入讲解。我的实现与这个教程中所使用的方法完全相同:构建一个自动化的图像标题应用程序(教程

磁性调压器图片

光学模组价格

厕所车租赁图片