艺术领域中的Tensorflow应用

摘要

本次演讲内容主要分为三个方面,首先会简单介绍一下Tensorflow,然后简单讲解可以用Tensorflow实现的深度神经网络算法,之后再介绍这些算法的一个有趣应用场景,也就是generative model与艺术创作。

视频内容

Tensorflow简介

Tensorflow是Google开源的一个通用计算框架,当然它最有特色的地方就是擅长做机器学习方面的应用,这集中反映在它对Tensor运算的处理能力上。

Tensor在机器学习问题中是数据或模型参数的表达形式。Tensor主要擅长三类操作,第一种是对一组变量做完全相同的处理,也就是元素(批量)操作;另一类是对样本数据做完全相同的批处理,这可以看作是元素(批量)操作的一种;还有就是线性运算。一个“神经元”的典型计算单元如下图所示:

正是因为在我们的机器学习中遇到的运算通常都是这种类型的,所以我们会用Tensor来表达所遇到的数据和参数变量。

有了Tensor的概念之后,我们就可以来讨论一下Tensorflow的编程模式。

Tensorflow的编程模式就像接水管的游戏,有“进水口”和“出水口”,中间有一些“管道”,我们通过调整这些“管道”结构把它们连通起来。调整好之后拧开“水龙头”,让“水流”顺利地从“进水口”流到“出水口”。

这里的“水流”就是Tensor,“管道”就相当于对数据的流式操作。也就是说在编程中分为两步,第一步是连接“管道”,第二步就是打开“水龙头”,让Tensor真正地运行起来。

可视化分析工具

下面我们来看一下Tensorflow集成的另一个很好用的工具Tensorboard。因为它非常直观,所以它对于我们分析神经网络的拓扑结构以及研究具体算法,或者debug是有帮助的。

Tensorboard还提供了其它功能,比如可以用它来绘制二维图表,也可以用于展示我们训练的数据。

Tensorflow其它特点

支持多核(CPU、GPU)计算;

支持分布式计算(Tensorflow+Kubernetes);

易学性:和numpy,theano等有相似性;

通用性:low/high-level function,跨平台,便于产品化;

易用性:Keras,tf.contrib.(learn,seq2seq等)

社区活跃性。

小结

Tensorflow是一个足够好的平台,或者说它提供了一个足够完整的开发生态。它有足够多的“轮子”,让我们可以专注于研究具体应用、具体算法。

Deep Learning:神经网络算法概述

深度学习的基本思想其实就是数据“拟合”:

但和传统的“拟合”问题相比,其运算规模非常庞大:

数据量级:我们最常用的Imagent中有14197122张图片,即使是入门级的MNIST也有60000多张图片。

参数量级:以比较有名的VGG model为例,它里面有138000000个参数。

怎样寻找最优解

在实际的工程算法中,找模型最小值一般采用的是梯度下降法。我们可以把cost function相对于模型参数的关系看作一个曲面,在这个曲面上任意取一点,假设在这一点上放个小球,在迭代运算中,每向前迭代一步,小球就朝着下坡的方向滚动一点。经过多次迭代,就可以找到整个系统的最小值。

由于参数量级非常大,为了系统地找到并改变参数,因此深度学习中有所谓的“逆传播”机制,它本质上其实就是微分“链式”法则而已。

SGD的局限性

梯度下降算法第一个问题就是,cost function对应的曲面可能不止一个极小值的点,这是它局部极小值的“陷阱”。我们在实际训练模型的时候经常会遇到这种问题。

第二个问题就是如果模型参数是离散值的话,例如binary network,也就是说模型当中的参数只能是0或者1,在这种情况时梯度下降算法也会失效。

机器学习中有不少研究工作是围绕这些问题展开的。在不久的将来,类似于“d-wave”这样的量子计算机也许能系统地克服梯度下降算法的局限性。

神经网络基本条件

最早期流行的是玻尔兹曼机,现在卷积神经网络如日中天,还有比较流行的是递归神经网络。卷积神经网络有一些变种,像fractional cnn和diated cnn。递归神经网络也有更精致的版本LSTM等。

神经网络高阶模型

利用这些基本构件,我们能构造出一些高阶模型,例如:

小结

实现深度神经网络需要两步。第一步是通过一些基本构件来构建一个高阶模型,用于描述理论概分布。然后通过梯度下降算法之类的方法找到模型的最优解。

generative model与艺术创作

上图中利用的是VGG Network,它定义了一个cost function。比如有两张图片A和B,cost function其中有一项可以衡量A的内容,另一项可以衡量B的风格,通过解决最优化问题就可以得到上图中所展示的效果。

下面我们简单介绍一下“生成对抗神经网络”模型:

如图所示,假如一个建筑师用不同色块来标记他想要做的事情,然后只要画一张基本的色块草图,就可以用机器自动生成一张高保真的实景图效果。也可以让画家勾勒出一个画的轮廓,用机器生成一个漂亮的图像,这对于设计师来说是一件非常好的事情。它还能给图片上色,效果也很不错。

这个模型的基本原理如图所示:

下面我们介绍另一个生成模型在文学创作方面的应用,写诗机器人:

写诗机器人的训练数据是全唐诗,在生成样本的时候采用了beam search的方式。

这是写诗机器人写的一首“藏头诗”。

同样的模型还可以用于生成音乐。(播放音乐)

一点感受

最后是一点个人的心得体会:

因为深度学习的模型参数非常多,所以用这个模型可以做出很多出人意料的东西,不妨大胆的去尝试。

目前阶段的人工智能还有很大的局限性:人工智能适合做辅助,但不适合做决策;它适合用作专用用途,不适合作通用。

我今天的分享就到这里,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2017-10-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

深入了解Hinton的Capsule网络,第一部分:直观地介绍

上周,Geoffrey Hinton和他的团队发表了两篇论文,介绍了一种基于所谓的capsules(胶囊)的全新类型的神经网络。除此之外,该团队还发布了一种叫做...

39950
来自专栏AI研习社

阿里iDST ICCV 2017录用论文详解:基于层次化多模态LSTM的视觉语义联合嵌入

ICCV,被誉为计算机视觉领域三大顶级会议之一的、作为计算机视觉领域最高级别的会议之一,其论文集代表了计算机视觉领域最新的发展方向和水平。阿里巴巴在今年的 IC...

38570
来自专栏机器之心

学界 | 伯克利联合OpenAI发布新型深度学习方法TCML:学习通用型算法

选自arXiv 机器之心编译 参与:Smith 快速学习的能力是区分人类智能和人工智能的关键特征。人类可以有效地利用先验知识和经验来快速学习新的技能。然而,用传...

37360
来自专栏AI科技评论

发现 | 基于深度学习的自动上色程序,以及其实际应用

来自伯克利大学和麻省理工学院的三名研究者Richard Zhang、Phillip Isola、Alexei A. Efros日前给出了深度学习在另一个特定领域...

46280
来自专栏大数据文摘

我们压缩了一批深度学习进阶“传送门”给小白

17530
来自专栏专知

【经典重读】机器学习的那些事

【导读】现在以深度学习、强化学习、GAN等为代表的算法模型技术发展方兴未艾。在追随这些前沿技术同时,我们也需要对机器学习的基本概念的进行理解,如“学习=表示+评...

35650
来自专栏华章科技

机器学习入门科普:监督学习和无监督学习都是什么?都能干什么?

学习能力是动物特别是人特有的,根据达尔文的理论,它也是所有物种生存和进化的关键要素。机器虽然不能自主进化,但似乎也遵循同样的规律。

5420
来自专栏大数据挖掘DT机器学习

分类算法之朴素贝叶斯分类(Naive Bayesian classification)

我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感。而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是...

24860
来自专栏新智元

10000+谷歌员工学过的谷歌内部图像分类课程公开了!

11530
来自专栏机器之心

从遗传算法到OpenAI新方向:进化策略工作机制全解

47950

扫码关注云+社区

领取腾讯云代金券