微信
手机版
网站地图

胖,一个神经网络,最多能有几种用处?,慢性胃炎

2019-04-09 11:49:53 投稿人 : admin 围观 : 337 次 0 评论

众所周知,神经网络拿手于处理一个特定的使命,但却不拿手处理多个使命。这与人脑不同——人脑能够在彻底不同的使命中运用相同的概念。例如,下图展现了一个分形图画:


一个神经网络,最多能有几种用途?


看过火形图画后,你就能够处理与之相关的多个使命:

在一组图画中,将分形图画与猫区别开来。

在一张纸上,粗略地画出分形的形状(虽不会完美,但也不会是信手涂鸦)。

对分形图画与分外形图画进行分类(你能够主动地对图画从最相似到最不相似进行排序)。

闭上眼睛,幻想分形的姿态(即便没有视觉输入,即便仅看过一眼点金瞳,你仍能够幻想到分形的姿态。

你是怎么完结一切这些使命的?你的大脑中有专门履行一切这些使命的神经网络吗?

现代神经科学给出的答案是:你大脑中的信息是经过不同的部分同享和沟通的。尽管这是个杂乱的研讨范畴,可是咱们能够找到一些侠影神剑头绪来阐明这种多使命功用是怎么发作的。答案就在于神经网络中胖,一个神经网络,最多能有几种用途?,缓慢胃炎数据的存储办法和解说。

美妙的表明国际


望文生义,表明是指信息在网络中是怎么编码的。当向一个经过练习的神经网络里输入一个单词、一个语句或一张图画(或其他任何东西)时,它会在接连的层上被转化,由于权重乘以输入并运用了激活函数。终究芳芯,在输出层中,咱们得到数字,咱们能够将其解说为类标签、股票价格或许网络被练习用于的任何其他使命。

这种输入输出的奇特转化是由于接连层中的输入转化而发作的。这些输入数据的转化称为表明。一个要害的概念是,每一层都使下一层很简单完结它的作业。简化接连层阶段的进程会使激活变得有意义(在特定层转化输入数据)。

“有意义”是什么意思?让咱们来看一个激活图画分类器不同层的示例。



图画分类网络所做的便是将像素空间中的图画转化为越来越高层次的概念空间。因而,以RGB值表明的轿车图画开端时在榜首层被表明在边际空间,然后在第二层是在圆形和形状空间,在终究一层之前,它将开端在车轮、车门等高档方针中进行表明。

这种日益丰厚的表明(由于深层网络的层次性而主动呈现)使得图画分类的使命变得往常。终究一层所要做的便是权衡车轮和车门的概念,使其更像轿车;权衡耳朵和眼睛,使其更像胖,一个神经网络,最多能有几种用途?,缓慢胃炎人。


怎么处理表明胖,一个神经网络,最多能有几种用途?,缓慢胃炎?


由于这些中间层会存储有意义的输入数据的编码,所以咱们能够为多个使命运用相同的信息。例如,你能够选用一个言语模型(一个为猜测下一个单词而练习的循环神经网络)并解说特定神经元的激活来猜测语句的爱情。


图片来历:Unsupervised Sentiment Neuron


令人惊奇的是,情感神经元在言语建模的无监督使命中天然发生。网络被练习来猜测下一项作业,咱们在使命中没有要求网络猜测心情。或许情感是一个十分有用的概念,网络发生它是为了更好地进行言语建模。

一旦你了解了表明的概念,你将开端在一个完托付啦学妹全不同的视点看深层神经网络。你会感觉到表明是一种可转化的言语,这使得不同的网络(或同一网络的不同部分)能够彼此沟通。


经过构建四合一网络来探究表明


为了充沛了解表明是什么,让咱们构建自己的深层神经网络,其功用有以下四种:

图画字幕生成器:给定图画,为其生成字幕。

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

视觉相似的图画查找:给定图画,查找与其最相似的图画。

经过描绘图画内容进行查找:依据文本描绘查找包括内容的图画。

每个使命自身便是一个项目,传统上需求好几个模型。但咱们将运用一个模型来完结一切这些作业。

代码将用Pytorch写在JupyterNotebook上。

Github存储库:https://github.com/paraschopra/one-network-many-uses

榜首部分-图画字幕

网络上有许多很好的教程来解说怎么制造图画字幕,所以本文不计划深入探讨。


模型

图画字幕一般有两个组成部分:a)一个图画编码器,它接纳输入图画并以对字幕有意义的格局表明;b)一个字幕解码器,它接纳图画表明并输出图画的文本描绘。

图画编码器是一种深度卷积网络,字幕解码器是一种传统的LSTM/GRU循环神经网络。当然,咱们能够从头开端练习编码器和解码器。可是这样做需求的数据十分多,并且需求很多的练习时刻。因而,咱们将选用一个预先存在的图画分类器,并运用它终究一层的前一层的激活,而不是从头开端练习图画编码器。

这是你将在本文很多奇特的表明示例中看到的首个表明。咱们将运用Pytorch modelzoo中供给的初始胖,一个神经网络,最多能有几种用途?,缓慢胃炎网络,它在Ima巴乐果geNet上接受过练习,能够对100个类别的图画进行分类,能为咱们供给一个能够输入到循环神经网络中的表明。


图片来历:https://daniel.lasiman.com/post/image-caption


请注意,初始网络从未接受过图画字幕使命的练习。可是,它是有用的!

完好的模型体系结构如下所示:


图片来历:https://daniel.lasiman.com/post/image-caption


你能够从头开端练习这个模型,但在CPU上需求几天时刻。

功用

咱们现已完结性的故事了定向查找办法,它有很好的功用。以下是网络为测验集(曾经从未见过)中的图画生成字幕的示例。




让咱们看看下面照片中的网络字幕:



不错!令人形象深入的是,网络知道图片中有一个穿戴白色T恤的男人。语法有点不对劲(不过更多的练习能够处理),但根本关键还不错。

假如输入图画中包括了网络曾经从未见过的内容,那么它往往会失利。例如,网络会给iPhoneX的图画贴上什么标签呢?



它做得不太高冷校草别惹我好。但总的来说,对功用还算满足,在学习图画字幕时,为咱们运用网络供给的表明构建其他功用供给了杰出的根底。

第二部分-相似词语

回想一下咱们怎么从图画表明中解码字幕。咱们将表明输入LSTM/GRU网络,生成一个输出,将其解说为榜首个单词,然后获取榜首个单词并将其反应到网络中以生成第二个单词。这将一向持续,直到网络生成一个表明语句结束的特别符号。

为了将单词反应到网络中,咱们需求将单词转化为表明方式,从胖,一个神经网络,最多能有几种用途?,缓慢胃炎而成为网络的输入。这意味着,假如输入层由300个神经元组成,那么关于一切标题的8000多个每个不同单词,咱们需求有一个100个仅有指定该单词的相关数字。将单词字典转化成数字表明的进程称为单词嵌入(或单词表明)。

咱们能够下载和运用比方word2vec或GLoVE之类的预先存在的单词嵌入。但在本例中,咱们从零开端学习怎么嵌入一个单老公尝鲜期词。从随机生成的单词嵌入开端,探究在练习完结之前咱们的网络对单词的了解。

由于无法幻想100维的数字空间,所以咱们将运用一种称为t-SNE的美妙技能来可视化二维中所学的单词嵌入。t-SNE是一种降维技能,它企图使高维空间中的邻域也在低维空间中坚持邻域。

单词嵌入的可视化

让咱们看看标题解码器学习到的单词嵌入空间(与其他言语使命不同,这里有数百万个单词和语句,咱们的解码器在练习数据会集只看到大约30K个语句)绥德县水灾。




因而,kft脚王咱们的网络现已学习到相似于“play”、“plays”和“playing”的词十分相似(它们具有相似的表明,从带有赤色箭头指出的紧簇中能够显着看出)。让咱们来探究这个二维空胖,一个神经网络,最多能有几种用途?,缓慢胃炎间中的另一个区域:



这个区域好像有成簇的数字-'2'、'3'、'4'、'5'等。另gtvcici一个区域:



它知道人和孩子很相似,并且还隐式地推断了物体的形状。




相似词

咱们能够运用100维表明来构建一个函数,该函数表明与输入词最相似的词。它的作业原理很简单:取100维表明,并找出它与数据库中一切其他单词的余弦相似性。

让咱们看看与“boy”这个词最相似的词:




不错。“Rider”是一个破例,但“kids”、“kid”和“toddler”都是不错的挑选。网络以为什么与“chasing”这个词相似:



“Chases”很好,但咱们不知道为什么它以为“police”和“chasing”相似。

词语类比

关于单词嵌入的一个令人兴奋的事实是你能够对他们进行核算。你能够用两个词(如“king”和“queen”)减去它们的表明,得到一个方向。当你将这个方向应用于另一个词的表明(比方“man”)时,你会得到一个挨近于实践的相似词的表明(比方“woman”)。这便是Word2vec在推出花笺记时如此知名的原因:


图片来历:https://www.tensorflow.org/images/linearrelat


字幕解码器所学的表明是否具有相似的特性呢?咱们能够测验一下。

网络学习的类比并不完美(有些单词字面上呈现的次数少于10次,所以网络没有满足的信息来学习)。




假如骑行对应着坐,走路对应的是什么?咱们的网络以为可能是“laying”(这还不错!)。

相同,假如“man”的复数是“们”,那么“woman”的复数是什么?




第二个成果是“women”,这是适当正确的。

终究,假如草是绿色的,天空会是什么色彩:



网络以为它是银色或灰色的,没有蓝色,但两者都是色彩。令人惊奇的是,网络能够推断出色彩的方向。

第三部分-相似图画

假如单词表明将相似的单词集合在一起,那么图画表明(即初始的图画编码器输出)又怎么呢?咱们将相同的t-SNE技能应用于图画表明(在字幕解码器的榜首步中作为输入的300维张量)。

可视化

这些点代表不同的图画(咱们没有取整个8K图画集,但它是大约100个图画的样本)。赤色箭头指向邻近的一组表明。



所以赛车集合在一起。



孩子们也在森林、草地上游玩。



篮球运动员集合在一及几画起。

查找与输入图画相似的图画

关于相似的单词使命,咱们被约束在测验集词汇表中查找相似的单词(假如测验会集没有某个单词,则字幕解码器将无法学习其嵌入)。可是,关于相似的图响晴薄日像使命,咱们有一个图画表明生成器,它将获取任何输入图画并生成其编码。

这意味着咱们能够运用余弦相似法来构建按图画查找哈尔滨杀人犯赵志功用,如下所示:

过程1:获取数据库或方针文件夹中的一切图画并存储其表明(由图画编码器给出)。

过程2:当用户想要查找与他现已具有的图画最相似的图画时,获取新图画的表明并在数据库中查找最近的图画(由余弦相似性给出)。

Google Images很可能运用这种(或十分相似的)办法来增强他们的反向图画查找功用。

让咱们看看胖,一个神经网络,最多能有几种用途?,缓慢胃炎咱们的网络是怎么运作的。




请注意,咱们运用的模型曾经从未见过这张图。当我亚之杰李军们查询相似的图画时,网络从FlickR8K数据集输出以下图画:



是不是大开眼界?深度神经网络肯定很靠谱!

第四部分-经过描绘来查找图画

在终究一部分中,咱们反向运转图画字幕生成器。因而,咱们输入标题(文本描绘)并找到最匹配的图画,而不是guiz163输入图画并为其生成字幕。

听起来太好了,不会是真的吗?嗯,是真的。咱们是这样做的:

过程1:从彻底随机的300维输入张量开端,而不是从编码器取得的300维图画表明。

过程2:冻住整个网络的一切层(即,指示裸播PyTorch不要核算梯度)。

过程3:假定随机生成的输入张量从图画编码器中输出,并将其输入字幕解码器。

过程4:获取随机输入时网络生成的字幕,并将其与用户供给的字幕进行比较。

过程5:核算丢失,比较生成的标题和用户供给的标题。

过程6:找出输入张量的梯度,使丢失最小化(即,300维数字中的每一个都应按哪个方向和改动量改动,以便利张量输入字幕解码器时,字幕挨近用户供给的标题)。

过程7:改动梯度方向上的输入张量(依据学习率行进一小步)。

持续第4步至第7步,直到收敛或丢失低于某个阈值。

终究一步:选用终究输入张量,并运用其值经过余弦相似性查找最挨近贝克三联征它的图画(以300维表明的步幅)。

当咱们这样做时,成果出人意料:

查找“一只狗”,这是网络发现的图画:




查找“一个浅笑男孩”:




终究查找:




前两个成果是:



和:




真让人吃惊,不是吗?


相关文章

标签列表