DeepMind初探

DeepMind 最初是在13年NIPS的workshop上崭露头角,然后被Google收购。近日再次成为热门话题源于2天前在Natrue上的这篇文章http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html [全文:链接: http://pan.baidu.com/s/1kT22GZl 密码: 731f]: Google DeepMind团队在《自然》杂志发表论文,公布玩游戏比人厉害的AI是如何做出来的 | 电脑会玩游戏不稀奇,可是如果不告诉它该怎么玩,而只是让它看着玩然后得分高就奖励,这实现起来就难了。DeepMind的AI靠自学玩会了49种游戏,甚至在23种游戏中击败了人类职业玩家。 基于reinforcement learning让算法学习打游戏,源码:http://t.cn/Rw084MA ,http://t.cn/RwORUqX 对相关文章和工作进行了整理,DeepMind的专访http://t.cn/RwOR5EG 云:http://t.cn/RwORY9h 电脑会玩游戏已经不算稀奇,比方说,一般人玩棋类游戏已经玩不过计算机了,而且很多游戏你只要知道规则,我们就可以开发出一种作弊器,由电脑完胜一切。但如果事先不告诉计算机应该怎么玩,而只是给它提供这三样东西:控制器、显示器、游戏得分,让它看着显示器的显示控制控制器,然后要求它尽可能得高分,那基本上大部分的 AI 就一筹莫展了。 有两篇报道比较好: 1. DeepMind刚被Google收购时的报道:http://www.36kr.com/p/217570.html 利用深度学习和强化学习技术从零开始学习游戏玩法。 2. DeepMind在Natrue上发表文章的报告:http://www.36kr.com/p/220012.html 总的说来,DeepMind 的 AI 的设计核心是如何让计算机自行发现数据中存在的模式。其解决方案是深度神经网络与强化学习等方法的的结合。AI 并并不知道游戏规则,而是用深度神经网络来了解游戏的状态,找出哪一种行为能导致得分最高。尽管利用模拟神经网络来教电脑玩游戏(如军棋游戏)的方法已经使用了几十年,但是从未有人能像 DeepMind 团队那样以如此有用的方式结合到一起,智能系统普朗克学院的Bernhard Schölkopf主任称,其方案展现出了令人印象深刻的可适应性。 其实总体来说,DeepMind的原理比较简单,但是做好并不容易。 DeepMind背后的人工智能:深度学习原理初探:http://www.infoq.com/cn/news/2014/10/deepmind 从13年NIPS的那篇文章起,在人工智能领域掀起了一股端到端(End-to-end)的智能热,不过说到底还是一种强化学习方法。类似于之前由C语言面向过程编程进化到C++面向对象编程的过渡一样。端到端智能希望模型具有可学习的智能性,能够自己根据特定环境下的奖惩自动调节模型参数已到达完全自适应,而不需要人工的参与。由于深度学习的兴起,及硬件性能的大度提升,使得此目标能够实现。Deep Mind便是一个很好的案例,不过即便如此,要走的路还有很远,毕竟随便写一个外挂小程序就可以完胜Deep Mind 的游戏机器人。 参考:1. http://www.36kr.com/p/220012.html

Spectral Clustering谱聚类之Matlab

谱聚类有两种: 谱聚类的基本概念可以参考pluskid的文章: 漫谈 Clustering (4): Spectral Clustering 这里则直接给出实现方式: [1]. Ncut – Normalized cut 比较经典的是由jianbo shi实现的matlab代码,在服务器上用gcc4.4*版本以上进行编译就可以了: http://www.cis.upenn.edu/~jshi/software/ 编译Ok, 后这里常见的一个错误就是: Error using arpackc Expect 2 output arguments Error in eigs_new (line 240) arpackc( aupdfun, ido, … Error in ncut (line 83) [vbar,s,convergence] … 继续阅读

K-Means聚类之Matlab

[转自]:http://blog.sciencenet.cn/blog-41996-450513.html –基本是对Matlab Help中的翻译 [参考]:Pluskid之漫谈 Clustering (1): k-means K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的距离最大,而类之间的距离最小。 使用方法: Idx=kmeans(X,K) [Idx,C]=kmeans(X,K) [Idx,C,sumD]=kmeans(X,K) [Idx,C,sumD,D]=kmeans(X,K) […]=kmeans(…,’Param1’,Val1,’Param2’,Val2,…) 各输入输出参数介绍: X N*P的数据矩阵 K 表示将X划分为几类,为整数 Idx N*1的向量,存储的是每个点的聚类标号 C K*P的矩阵,存储的是K个聚类质心位置 sumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和 D N*K的矩阵,存储的是每个点与所有质心的距离 […]=kmeans(…,’Param1′,Val1,’Param2′,Val2,…) 这其中的参数Param1、Param2等,主要可以设置为如下: 1. ‘Distance’(距离测度) ‘sqEuclidean’ 欧式距离(默认时,采用此距离方式) ‘cityblock’ 绝度误差和,又称:L1 ‘cosine’ 针对向量 ‘correlation’ 针对有时序关系的值 ‘Hamming’ … 继续阅读

Logistic和Softmax

直接上比较清晰的博文: 1. Logistic and Softmax: http://www.cnblogs.com/daniel-D/archive/2013/05/30/3109276.html 2. BP: http://www.cnblogs.com/daniel-D/archive/2013/06/03/3116278.html 3. Logistic regression:http://www.dreamingo.com:9999/blog/standford-note-logistic-regression 4. Softmax regression:http://www.cnblogs.com/bzjia-blog/p/3366780.html

[zz]个人阅读的Deep Learning方向的paper整理

一 RNN 1 Recurrent neural network based language model RNN用在语言模型上的开山之作 2 Statistical Language Models Based on Neural Networks Mikolov的博士论文,主要将他在RNN用在语言模型上的工作进行串联 3 Extensions of Recurrent Neural Network Language Model 开山之作的延续,RNN网络的一些改进,如通过类别信息去降低模型的参数 4 A guide to recurrent neural networks and backpropagation RNN网络的介绍以及优化算法,是了解RNN网络的好文章 5 Training … 继续阅读

CNN-Convolutional Neural Networks

首要任务,找一个能跑的CNN代码,之前跑matlabdeeplearning toolbox中的代码,好久都不出结果,速度真慢==b,在MNIST数据集上,迭代一次,BacthSize=50大概耗时32个小时。后来定位的问题可能是因为Matlab 2009版本过低导致的问题,后来替换了Matlab 2011b之后就快速计算出结果,大概耗时4分钟左右,109.95s,具体原因尚未定位。 先了解一下基础概念:UFLDL中的“卷积特征提取”和“池化” 1、CNN的整体网络结构 CNN一般采用卷积层与采样层交替设置,即一层卷积层接一层采样层,采样层后接一层卷积…这样卷积层提取出特征,再进行组合形成更抽象的特征,最后形成对图片对象的描述特征。 问题:1,卷积核 同 采样核 有可能是同一个 函数吗?如果一样的话,为什么不直接用采样核计算,而不进行卷积。另一种说法,如果卷积核的步长 大一点(>1),那么是不是就没必要有采样这个环节了。 2,CNN的Map在卷积的过程中减少呢?这个当然可以了 3,Pooling层和卷积层的Map数目是一致的吗?Pooling也可以只选择部分卷积层的Map? 4,Pooling压缩信息可以提高泛化能力,如果卷积也可以进行维数压缩吧?有的文章在Pooling后紧接着做一个Folding 5,用BP算法在训练,反向传播误差,如果是无监督任务呢,CNN可以无监督训练吗?好像不可以。 6,最后一步输出得到了一维向量,是通过全连接得到的,即最后一层的Map中的每个像素点都连接最后输出层的那一个点,得到多个1*1的map,其实可以考虑成最后一层只做了 一个卷积,直接卷积成1*1。 重点关注 参考[7]. 【参考】 1. CNN卷积神经网络代码理解,matlabdeeplearning toolbox中的代码http://blog.csdn.net/zouxy09/article/details/9993743 2. CNN(Convolutional Neural Networks)没有原理只有实现 3. 【面向代码】学习 Deep Learning(三)Convolution Neural Network(CNN) 4. Notes on Convolutional Neural … 继续阅读

AutoEncoder

【关于AutoEncoder】: AutoEncoder是多层神经网络,其中输入层和输出层表示相同的含义,具有相同的节点数。AutoEncode学习的是一个输入输出相同的“恒等函数”。不过输入和输出相同,使得这个网络的输出没有任何意义。AutoEncoder的意义在于学习的(通常是节点数更少的)中间coder层(最中间的那一层),这一层是输入向量的良好表示。这个过程起到了“降维”的作用。当AutoEncoder只有一个隐含层的时候,其原理相当于主成分分析(PCA),当AutoEncoder有多个隐含层的时候,每两层之间可以用RBM来pre-training,最后由BP来调整最终权值。网络权重更新公式很容易用求偏导数的方法推导出来,算法是梯度下降法。(RBM:层内无连接,层间全连接,二分图) Denoising AutoEncoder是AutoEncoder的一个变种,与AutoEncoder不同的是,Denoising AutoEncoder在输入的过程中加入了噪声信息,从而让AutoEncoder能够学习这种噪声。 Denoising AutoEncoder与RBM非常像: (1)参数一样:隐含层偏置、显示层偏置、网络权重 (2)作用一样:都是输入的另一种(压缩)表示 (3)过程类似:都有reconstruct,并且都是reconstruct与input的差别,越小越好 Denoising AutoEncoder与RBM的区别: 背后原理就不说了(RBM是能量函数),区别在于训练准则。RBM是隐含层“产生”显示层的概率(通常用log表示),Denoising AutoEncoder是输入分布与reconstruct分布的KL距离。所用的训练方法,前者是CD-k,后者是梯度下降。RBM固定只有两层;AutoEncoder,可以有多层,并且这些多层网络可以由标准的bp算法来更新网络权重和偏置,与标准神经网络不同的是,AutoEncoder的输入层和最终的输出层是“同一层”,不仅仅是节点数目、输出相同,而是完完全全的“同一层”,这也会影响到这一层相关的权值更新方式。总之,输入与输出是同一层,在此基础上,再由输入与输出的差别构造准则函数,再求各个参数的偏导数,再用bp方式更新各个权重。 【AutoEncoder工程代码】:相关Matlab工程代码主页:http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html 论文:Science – 2006 Science_Reducing the Dimensionality of Data with Neural Networks (如下所有文件,放到同一个目录下) 1). 下载手写体数据MNIST: http://yann.lecun.com/exdb/mnist/, 并在Linux或Windows下进行解压;(60,000 个训练集 和, 10,000 个测试集,数字手写体0-9 10类) train-images-idx3-ubyte.gz: training set images … 继续阅读

矩阵的那些性质与应用-迹Tr(A)、转置

矩阵乘法运算满足如下基本性质: 1.\(({\bf{AB}}){\bf{C}} = {\bf{A}}({\bf{BC}})\) 2.\({\bf{A}}({\bf{B}} + {\bf{C}}) = {\bf{AB}} + {\bf{AC}}\) 但不满足交换律\({\bf{AB}} \ne {\bf{BA}}\) 转置满足的性质: 1.\({({\bf{A}} + {\bf{B}})^T} = ({{\bf{A}}^T} + {{\bf{B}}^T})\) 2.\({({\bf{AB}})^T} = {{\bf{B}}^T}{{\bf{A}}^T}\) 定义:若A是方阵,称其对角线元素之和为A的迹,记作Tr(A),即: \[Tr({\bf{A}}) = \sum\limits_{i = 1}^n {{a_{ii}}} \] 性质1:设A为n阶方阵,则有 \[Tr({\bf{A}}) = Tr({{\bf{A}}^T})\] 性质2:若A、B都是n阶方阵,则有 \[Tr({\bf{AB}}) = … 继续阅读

什么叫大牛,看看发表论文排行榜-20140317

下面是截止到20140317时的统计结果: 【1-JMLR】: Klaus-Robert Müller(15) Francis R. Bach(14) Tong Zhang(14) Michael I. Jordan(13) Alexander J. Smola(13) Yoram Singer(12) Masashi Sugiyama(11) Chih-Jen Lin(11) Shai Shalev-Shwartz(11) Bernhard Schölkopf(9) Yoshua Bengio(9) Martin J. Wainwright(8) Robert C. Williamson(8) Peter L. Bartlett(8) Naftali Tishby(7) John Shawe-Taylor(7) … 继续阅读