Deep Dream 何以成为可能。Gordon 解释说,一是因为数据和计算机计算能力的极大增长,而是因为人们设计出了更加有效的算法,三是这些算法能自动学习到合适的特征(feature)。
要提取出图像的特征,我们需要用到卷积。卷积就像是一个滤波器。比如下图,左边是一张曼哈顿的照片,中间是一个 3×3 的滤波器,右边是处理后的图像,只能大概看到一些建筑的边。
随着层数的增多,模型识别出的特征会越来越高级:
如果你查看 Deep Dream 的代码,你会看到很多,下面给出了其中一些关键的代码:首先我们从卷积神经网络中的某一层中选出一些列 filter(不同的 filter 会包含是分不同的特征:如猫、狗、甚至是梵高的向日葵,这取决于你用什么内容来训练),接着利用这些 filter 定义好损失函数,不断地利用 TensorFlow 中自动求导的功能更新原先的图片。通过这几行代码,我们委托 TensorFlow 不断地找出原始图片中的一些区域(这些区域的特征恰好与某些 filter 匹配),接着 TensorFlow 利用 filter 的信息来修改原始的图片从而生成 DeepDream 的效果。
使用深度学习,你还能做风格迁移。对此 Gordon 并未做太多介绍,感兴趣的读者可参阅《神经风格迁移研究概述:从当前研究到未来方向(附论文和代码)》。在这里,Gordon 顺带提及了一下 Magenta,参阅《深度 | 人工智能改变 MIDI 创作:谷歌 Magenta 项目是如何教神经网络编写音乐的?》
风格迁移即是将一张艺术画作的风格应用到一张照片的内容上,处理流程如下所示:
而且值得注意的是,现在你已经可以实时地给视频执行风格迁移了!
语言
语言也是一个非常重要的领域。Gordon 将为我们讲解 SyntaxNet 系列,其中最新的是 Parsey Saurus,这也是目前最准确的文本处理器之一。同样,这也是开源的,可以通过 TensorFlow 使用。那么模型是怎么处理文本的呢?Gordon 用例子进行了说明。
假设有一个句子「I love NYC.」你可以使用谷歌云的自然语言 API 来对这个句子进行处理,可以拖拽式地操作。
当然,你也可以在 TensorFlow 中使用 Docker 安装环境,快速地尝试 SyntaxNet:
还记得去年的 Parsey McParseface,那是当时最先进的自然语言处理模型,而现在 Parsey Saurus 已经超越了它。这两者的区别在于 Parsey McParseface 是在词层面上工作的,而 Parsey Saurus 则是工作在字符的层面上。在字符层面上的学习允许模型更加精细的处理文字,例如可以学习到词素这样最小单位的语言信息或是更好地处理生僻的字词。
使用这些模型,你甚至可以像人一样分析没有实际意义语句的结构,比如:「The gostak distims the doshes.」这个句子是毫无意义的,但我们却能够理解这个句子的结构。比如说,我们能够轻松理解其中各个词的词性,比如我们知道 distims 是动词,而 gostak 和 doshes 则是名词。
在 syntaxnet container 中,使用 Interactive Text Analyzer 也能得到同样的结论。
你也可以询问 distims 这个动作的执行者是什么?
Parsey Saurus 还能告诉你更多:
下面列出了对该句子的一些分析结果:
也可以得到该句子的依存树:
除此之外,你还可以下载在不同语言(40 多种)上预训练过的模型。这正是开源的价值。
这个有很多非常好的用例。
如果有一个已有的系统,你可以更轻松地在这之上实现提升。
你可以将其用作一个新系统的基础。让你不需要再重头开始训练,就能获得已有的词性标注等功能。
然后,Gordon 又简单介绍了 Release++ 的概念。这个概念来自 Magenta 的博客,表示他们不仅共享了自己的代码,还提供了预训练的模型和 Docker 容器。也就是说,你可以直接使用他们的模型达到同样的效果。
开源为 TensorFlow 带来的一大优势是其具有非常多的学习资源,包括许多课程、博客、教程,你可以访问其官网查阅。另外,这里 Gordon 推荐了几个值得关注的:
转载请注明出处。