#5 Deep learning RNN-RBM简单理解

前言:

本文主要是bengio的deep learning tutorial教程主页中最后一个sample:rnn-rbm in polyphonic music. 即用RNN-RBM来model复调音乐,训练过程中采用的是midi格式的音频文件,接着用建好的model来产生复调音乐。对音乐建模的难点在与每首乐曲中帧间是高度时间相关的(这样样本的维度会很高),用普通的网络模型是不能搞定的(普通设计网络模型没有考虑时间维度,图模型中的HMM有这方面的能力),这种情况下可以采用RNN来处理,这里的RNN为recurrent neural network中文为循环神经网络,另外还有一种RNN为recursive neural network翻为递归神经网络。本文中指的是循环神经网络。

 

RNN简单介绍:

首先来看RNN和普通的feed-forward网络有什么不同。RNN的网络框架如下:

23214434-ef7947ebef344d86b21e0d0550dc833d 继续阅读#5 Deep learning RNN-RBM简单理解

重要python工具-代码质量篇

作为一名开发者,无论是不是在IDE或者命令行,你应该使用那些有用的工具库武装自己。如果你没有考虑代码干净、可读和可维护性,你就很可能看不到一些工具的好处。

python禅道

% python -m this

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
...

继续阅读重要python工具-代码质量篇

Factorization Machines介绍

Steffen Rendle2010年提出Factorization Machines[1](下面简称FM),并发布开源工具libFM[2]。凭借这单个模型,他在KDD Cup 2012上,取得Track1的第2名和Track2的第3名。这篇文章简要介绍下这个模型。

与其他模型的对比

SVM相比,FM对特征之间的依赖关系用factorized parameters来表示。对于输入数据是非常稀疏(比如自动推荐系统),FM搞的定,而SVM搞不定,因为训出的SVM模型会面临较高的bias。还有一点,通常对带非线性核函数的SVM,需要在对偶问题上进行求解;而FM可以不用转为对偶问题,直接进行优化。

目前还有很多不同的factorization models,比如matrix factorization和一些特殊的模型SVD++, PITF, FPMC。这些模型的一个缺点是它们只适用于某些特定的输入数据,优化算法也需要根据问题专门设计。而经过一些变换,可以看出FM囊括了这些方法。

模型简介

2-way FM(degree = 2)FM中具有代表性,且比较简单的一种。就以其为例展开介绍。其对输出值是如下建模:

Factorization Machines介绍 - vividfree - 罗维的BLOG

继续阅读Factorization Machines介绍