星期四, 九月 29, 2016

艺术风格的神经网络算法实验

2015年九月的时候出现了一篇很趣的论文《A Neural Algorithm of Artistic Style》。论文中提出了一种算法,可以将一张普通的图片,转换成具有某种艺术家的风格。

用语言来描述计算流程如下:
1、首先用一个给定参数的卷积神经网络(VGG网络),将原始的内容图片和风格图片进行函数映射,这个任务不需要网络后面的全连接层,只需要中间一些卷积层的输出即可,而且将网络中的max_pool改成了avg_pool。
2、可以利用这些中间输出,将其定义为内容输出和风格输出。内容输出是网络中较上层的映射结果,而风格输出是一些较低层映射的相关矩阵,用一个Gram矩阵计算表示。
3、将内容图片加噪音,这个将做为网络的输入,将网络的输出和内容输出进行对比,计算出内容损失函数(像素值取差值,再平方和),和风格输出进行对比,计算出风格损失函数,再整合两个损失形成总损失。
4、训练目标是总损失最小化,训练参数是第3步中的输入图片,这样得到一个图片,使内容和原来的内容图片相似,而风格和风格图片一致。

内容图片如下:

风格图片如下:

初始的输入是一个内容图片加噪音:

最后结果图片如下:

参考资料:
http://arxiv.org/pdf/1508.06576v2.pdf
https://github.com/ckmarkoh/neuralart_tensorflow
具体方法如下面代码所示,

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
view raw style.ipynb hosted with ❤ by GitHub

星期二, 六月 28, 2016

TensorFlow初体验

以前玩深度学习一直是用的theano和keras,做为谷粉不能不试一下大热的TensorFlow。首先安装起来。

TensorFlow的安装指南非常详细,我是python的anaconda环境,所以直接先创建一个新环境,创建前先更新一下conda
conda update conda
conda update anaconda
看一下目前计算机上有哪些环境
conda info --env
目前只有root环境,所以新建一个专门为TensorFlow的环境,并将root中的包克隆过来
conda create --name tensorflow --clone root
激活使用环境
source activate tensorflow
退出环境
source deactivate

使用pip来安装
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl

然后我们可以使用jupyter notebook来启动,下面是两个最简单的示例。

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

星期四, 六月 09, 2016

标签传播算法

因为标注成本比较高,当你的训练数据集只有一部分数据是有标注的情况下,使用监督学习你只能扔掉那些没有标注的X。而实际上,有标注的样本和无标注的样本之间是有关系的,这种关系信息也可以用来帮助学习。这就是半监督学习标签传播(Label Propagation)算法的思路。

它的基本逻辑是借助于近朱者赤的思路,也就是KNN的思路,如果A和B在X空间上很接近,那么A的Y标签就可以传给B。进一步迭代下去,如果C和B也很接近,C的标签也应该和B一样。所以基本计算逻辑就是两步,第一步是计算样本间的距离,构建转移矩阵,第二步是将转移矩阵和Y矩阵相乘,Y里面包括了已标注和未标注的两部分,通过相乘可以将已标注的Y转播给未标注的Y。具体论文可以看这里。在sklearn模块中已经内置了这种算法,文档示例可以看这里。下面是用python的numpy模块实现的一个toy demo。
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

星期三, 六月 08, 2016

值乎?

刚开通了值乎,有趣的数据问题可以来问我,当然一分钟比较短啦。有严肃的长问题还是去知乎问我吧。

星期二, 五月 31, 2016

python中的数据工具箱

最近参加了第九届北京R语言大会,做了一个关于python的简单介绍。相关ppt在如下连接,需要的下载。
链接: http://pan.baidu.com/s/1dEGl63f 密码: k3y6
博客,只要有时间,我还是会继续坚持的。