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

限制编程环境UTF-8 + Unix

以后要限制自己的编程环境为UTF-8 + Unix,因为以前编程环境配置混乱,现在再看总是出现各种注释乱码,而且处理的文本大多数也有问题。。。。 为了再次避免类似问题,以后要限制自己的Eclipse,VS,Matlab等 编程环境都为 UTF-8 + Unix。 痛记于 2015-02-15 09:20

调整Latex版面,压缩Table/Figure空间

大多数会议的图像和表格的排版在Latex中都是默认的,有时候内容写多了又舍不得删掉,我们则可以考虑在图像、表格、公式中利用\vspace{}压缩距离: \usepackage{setspace} \ begin{figure*}[t] \ begin{center} \ includegraphics[width=14cm]{Fig1-Architecture.eps} \ caption{ The architecture.}\label{fig:architecture} \ end{center} \ vspace{-0.5cm} \ end{figure*} 在.tex文件开头添加,压缩表格和图像的caption间距: \setlength{\abovecaptionskip}{1mm} \setlength{\belowcaptionskip}{1mm} 当然了,还有终极大招,就是调整页边距。。有些会议的格式是允许调整的,这个要按照格式来,调整页边距的方法为,在开头添加: \usepackage{geometry} \newgeometry{left=0.75in,right=0.75in,top=0.75in,bottom=1in} 具体可以学习下geometry

使用JAVA玩转Mysql

1. 准备工具,先下载一个可视化数据库管理和开发工具:Navicat for MySQL (请自行Google、下载、安装) Java调用参照这里:http://blog.csdn.net/giser_whu/article/details/41487213 上面一篇博客讲解的很全面,以至于都不需要再做什么笔记了。。。

ICE简单介绍及使用示例

请重点参考原文见:ICE简单介绍及使用示例 http://blog.csdn.net/fenglibing/article/details/6372444 以下内容为个人实战笔记,(额。。。好像本博大多数都是实战笔记。。以至于有很多博文只是用来记笔记用的,遗留的很多问题自己都没有解决。。。。。。) 简单来说,通过ICE,可以实现跨服务器,跨语言通信。那么ICE最重要的就是定义通信协议。 协议的格式很简单,例如,定义一个ICE文件Jacoxu.ice,内容如下: #include <Jacoxu_datalayer_common_data_stru.ice>    module JacoxuDataSync    {       struct WriteContent       {             JacoxuDataLayerCommon::SPSData   seqSPDataQ;       };            interface JacoxuDataSyncInterface        {         idempotent int RequestResource(int nID, int nType, out string  strErrMsg);                          idempotent int BatchWrite(int nBatchRows, WriteContent struWriteContent, out string  strErrMsg);              };                                        };   定义好接口之后,利用ICE工具进行转化,可以把接口翻译成各种计算机语言进行使用,例如: slice2java Jacoxu.ice 或者: slice2java –impl Jacoxu.ice (注意前面是两个横杠,impl的意思是生成一个示例模版) 则可以生成多个java文件。 这时候要实现ICE接口的内容,分别充当Server和Client。 … 继续阅读

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] … 继续阅读

Matlab 2009b win7 64bits编译cpp文件问题

在使用一些matlab程序的时候,总有人喜欢部分代码使用C写,那么我们在运行的时候需要进行编译。 Error: Could not detect a compiler on local system which can compile the specified input file(s) Error using mex 此时,我们需要在matlab命令窗输入: mex -setup 进行安装,但是遇到了问题: >> mex -setup Please choose your compiler for building external interface (MEX) files: Would you like … 继续阅读

no main manifest attribute, in *.jar

写了一个Java程序,按照以前惯用的方式打成独立可运行包、运行。。 java -jar ProcessCVS.jar 结果报出找不到主类,问题如下: [root@linux StackOverflow]# java -jar ProcessCVS.jar no main manifest attribute, in ProcessCVS.jar 莫名其妙,被迫改为自定义主类main的入口,如下: java -cp jarFileName.jar full.package.className 则正常运行。

如何用java解析CSV文件

首先看一下csv文件的规则: csv(Comma Separate Values)文件即逗号分隔符文件,它是一种文本文件,可以直接以文本打开,以逗号分隔。windows默认用excel打开。它的格式包括以下几点(它的格式最好就看excel是如何解析的。): ①每条记录占一行; ②以逗号为分隔符; ③逗号前后的空格会被忽略; ④字段中包含有逗号,该字段必须用双引号括起来; ⑤字段中包含有换行符,该字段必须用双引号括起来; ⑥字段前后包含有空格,该字段必须用双引号括起来; ⑦字段中的双引号用两个双引号表示; ⑧字段中如果有双引号,该字段必须用双引号括起来; ⑨第一条记录,可以是字段名; ⑩以上提到的逗号和双引号均为半角字符。 下面给出一种解析方法,来自:http://blog.csdn.net/studyvcmfc/article/details/6232770,原文中有一些bug,经过修改,测试ok的代码如下: 该解析算法的解析规则与excel或者wps大致相同。另外包含去掉注释的方法。 构建方法该类包含一个构建方法,参数为要读取的csv文件的文件名(包含绝对路径)。 普通方法: ① getVContent():一个得到当前行的值向量的方法。如果调用此方法前未调用readCSVNextRecord方法,则将返回Null。 ② getLineContentVector():一个得到下一行值向量的方法。如果该方法返回Null,则说明已经读到文件末尾。 ③ close():关闭流。该方法为调用该类后应该被最后调用的方法。 ④ readCSVNextRecord():该方法读取csv文件的下一行,如果该方法已经读到了文件末尾,则返回false; ⑤ readAtomString(String):该方法返回csv文件逻辑一行的第一个值,和该逻辑行第一个值后面的内容,如果该内容以逗号开始,则已经去掉了该逗号。这两个值以一个二维数组的方法返回。 ⑥ isQuoteAdjacent(String):判断一个给定字符串的引号是否两两相邻。如果两两相邻,返回真。如果该字符串不包含引号,也返回真。 ⑦ readCSVFileTitle():该方法返回csv文件中的第一行——该行不以#号开始(包括正常解析后的#号),且该行不为空 解析接口代码: import java.io.BufferedReader;       import java.io.FileNotFoundException;       import java.io.FileReader;       import java.io.IOException;    … 继续阅读