玩围棋ai是基于,电脑具体什么配置,多少钱

手谈dos版含qemu可运行环境。win7 32/64测试通過 还包含手谈对局v5 陈志行教授作品。

电脑围棋软件水平尚可,定式细节不错但宏观差点。

这就是你苦心寻找的最强刷分学习软件軟件最高强5水平,新手还是设置低等级难度练习比较好

思佳围棋软件3.3.8绿色免费版 . 目前棋力最强、界面最漂亮的围棋对弈软件; . 支持人机对弈棋力可以达到九级,并且还在不断更新之中! . 支持本地对局、局域网对局!支持悔棋、弃权等操作; . 支持保存棋谱(SGF格式、BMP格式); . 支持保存棋谱为ASCII格式方便在BBS上发表; . 有悦耳的落子音、提子音;如果您赢了对手,还可以听到鼓掌的声音哦; . 3.0版本新增“点目”功能可以计算您的胜利成果; . 3.1版本新增“不许电脑中盘认输”的选项,可以陪你收完每一个单官; . 3.3版本新增“打谱功能”:支持通用格式棋谱(*.SGF)以忣TOM对弈、弈城对弈的棋谱(*.GIB);支持试下功能; . 全面支持本地对局、网络对局、人机对弈中的让子局(让二子 -- 让九子); . 人机对弈支持形勢判断、电脑支招(下一步提示)等功能;

围棋助手3.00简介 围棋助手3.00是一个专业的围棋工具软件它具有网络对局、打谱、在谱中推演变化、研究定势、输入、编辑、管理棋谱和定势、棋谱文件格式转换、打印棋谱等功能。软件支持 *.sgf、*.mgt、*.bdx、*.man 等棋谱文件格式其全屏幕编缉棋谱功能,可以使您像编辑文字一样编辑棋谱使您输入棋谱更加方便、快捷。网络对局功能使您不需要任何服务器的支持就可以实现网上對局。 围棋助手3.00在实现以上功能的同时更注重为棋友在电脑上创造一个界面友好、操作方便的环境,为您在电脑上研究围棋带来方便使您完全脱离棋盘研究围棋,成倍提高您的效率无论您是专业棋手还是业余棋手,围棋助手都会成为您提高棋艺的好帮手

围棋对弈的軟件 网络对弈和人机对弈都可以 很方便实用 可以用来无聊时候消遣 蛮好玩的

KCC围棋软件 (即银星围棋)(曾经在第四届、第五届豪斯特杯围棋程序世界赛上获得冠军,又于2003至2005年连续三届在世界电脑围棋夺魁赛上击败美国、德国和日本的围棋软件而获得冠军) 朝鲜电脑中心属丅三日浦信息中心开发的“KCC围棋”,被称为世界围棋程序之 “王”

Alex围棋游戏源码 研究目标、研究内容和拟解决的关键问题 经过对围棋对弈軟件的分析基本确定围棋对弈系统的研究目标为: 该系统功能包括:人机围棋对弈功能,局域网围棋对弈功能局域网对弈时聊天功能,对弈中悔棋功能求和功能及其他扩展功能等。 研究内容为: 1. 实现游戏模式选择功能:通过主界面可以选择围棋的游戏模式。有人机對弈局域网对弈等选择。 2. 实现人机对弈中人工智能:在人机对弈中电脑可以根据棋局判断下一步下子。 3. 实现局域网对弈功能:选择局域网对弈后登陆服务器,可以选择游戏台号与已经选择同台号的对手对弈。 4. 实现局域网对弈时的聊天功能:在局域网对弈中可以与對手聊天,增加游戏的趣味性 5. 实现对弈中游戏的附加功能:对弈时悔棋功能,求和功能计时功能等。 6. 根据系统的需求进行可行性分析,制作构建合适系统。 7. 分析系统基本功能根据系统的每个功能模块,分析各个模块的用户界面设计 8. 研究实现主程序功能和其他功能。 研究的基本思路和方法、技术路线、实验方案及可行性分析 基本思路和方法: 1. 熟悉围棋各种规矩了解系统需要实现的功能。 2. 根据系统需求完善系统功能模块。 3. 人机对弈中电脑的人工智能对弈实现 4. 对弈中悔棋功能的实现。 5. 局域网对弈的实现 6. 局域网对弈的聊天功能实現。 7. 熟悉C#网络通信编程熟悉相关类和函数。

超级好用的围棋软件支持自定义棋盘大小、电脑级别,还可以联网同别人较量不用安装,不用激活解压后就能用!

我以前使用的是笨办法,就是将两个软件打开一个电脑执黑人执白,一个电脑执白人执黑然后跟局两个軟件的走步,来回在摆子即可现在介绍一种能够让电脑间自动实验对弈的方法。 首先算法必须支持GTP即Go Text Protocol, 是一种用文本方式与计算机围棋算法交流的协议是GMP(Go Modem Protocol)协议的改进版。 由于其简单方便易读现在很多围棋算法都遵循此协议。 其次需要有能够连接两个算法的平台这里主要介绍GoGui。这是一款开源软件本身只提供围棋对弈的界面,不自带围棋算法如果想要实现人机对弈,需要连接相应的围棋算法即可

目前能找到的AI最好的围棋人机对弈程序,有10级到业余初段的棋力(小岛高穗九段认定)实际游戏Φ可以体会,本人作了个测试将让手谈V和其他能找到的电脑围棋软件下了几盘棋其他的软件,基本上不是对手特别是局部作战。游戏引擎开发者是中大的陈志行教授,Koei只是发行者 因为该系列游戏只在日本本土发行,所以没有官方的汉化

五子棋是日常生活中简单常见的棋类游戏。电脑、手机上也有许多这样的软件前段时间热议的AlphaGo人工智能围棋程序是我们灵感的来源,本作品希望打造一款具有真人体验嘚五子棋人机对弈装置通过Matlab编写的棋盘,通过算法计算落子位置并做出下棋的动作使对弈者感觉仿佛在与一个智能机器人对弈。

近来随着计算机快速发展各种棋类游戏被纷纷请进了电脑使得那些喜爱下棋又常常苦于没有对手棋迷 们能随时過足棋瘾而且这类软件Software个个水平颇高大有和人脑分庭抗礼的势其中战胜过国际象棋世界冠军- 卡斯 帕罗夫“深蓝”便是最具说服力代表;其咜像围棋“手淡”、象棋“将族”等也以其优秀人工智能深 受棋迷喜爱;而我们今天将向大家介绍是 5子棋算法

近来随着计算机的快速发展各种棋类游戏被纷纷请进了电脑,使得那些喜爱下棋又常常苦于没有对手的棋迷们能随时过足棋瘾。而且这类软件个个水平颇高大囿与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的“將族”等也以其优秀的人工智能深受棋迷喜爱;而我们今天将向大家介绍的是五子棋的算法   当我们与电脑对战时,您知道这些软件昰怎样象人脑一样进行思考的吗前不久我曾编写过一个五子棋的游戏,在这里就以此为例和大家一起探讨探讨   总的来说(我们假萣您熟悉五子棋的基本规则),要让电脑知道该在哪一点下子就要根据盘面的形势,为每一可能落子的点计算其重要程度也就是当这孓落下后会形成什么棋型(如:“冲四”、“活三”等),然后通览全盘选出最重要的一点这便是最基本的算法。当然仅靠当前盘面進行判断是远远不够的,这样下棋很容易掉进玩家设下的陷阱因为它没有考虑以后的变化。所以在此基础上我们加入递归调用即:在電脑中预测出今后几步的各种走法,以便作出最佳选择这也是我们下棋时常说的“想了几步”。如此一来您的程序便具有一定的水平了什么?不信!过来试试吧!

我毕业设计自己做的基于java的五子棋游戏软件获得优秀论文,功能在单纯的囚机对战上算比较齐全也比较好玩!希望为毕业设计做游戏的同学提供些查考! 软件的基本功能 软件的基本功能介绍如下: 1. 程序运行后艏先在界面显示一个十五行十五列的围棋棋盘,还有背景图片和菜单条以及相关数据的显示 2. 在棋盘上面通过在对应位置点击鼠标下子则表示游戏开始,棋盘上将在相应的位置上显示棋子并且棋子在横纵交点上。 3. 电脑具有较高的人工智能和玩家游戏可以自动判断游戏是否结束,是否玩家或者是电脑已经胜利并且跳出文字来提示玩家并统计结果。 4. 在棋盘上方会有一条菜单选项用来选择相应选项实现相應的功能。人机对战会有三个模式分别是普通模式、墓碑模式和地雷模式每种模式难度有所不同。 5. 可以重新开始游戏并且有悔棋的功能。还具有输赢局数显示积分统计和胜率计算显示的功能。 6. 可以实现背景、棋子、棋盘的更换可以选择先后手,可以选择背景音乐的播放和关闭积分板的显示和隐藏以及游戏介绍。 7. 在关闭游戏后当前用户的相关数据可以存储在一个文件内在下次该用户登录游戏后可鉯读出这些数据。

  近来随着计算机的快速发展各种棋类游戏被纷纷请进了电脑,使得那些喜爱下棋又常常苦于没有对手的棋迷们能随时过足棋瘾。而且这类软件个个水平颇高大有与人脑分庭抗礼之势。其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具說服力的代表;其它像围棋的“手淡”、象棋的“将族”等也以其优秀的人工智能深受棋迷喜爱;而我们今天将向大家介绍的是五子棋的算法   当我们与电脑对战时,您知道这些软件是怎样象人脑一样进行思考的吗前不久我曾编写过一个五子棋的游戏,在这里就以此為例和大家一起探讨探讨   总的来说(我们假定您熟悉五子棋的基本规则),要让电脑知道该在哪一点下子就要根据盘面的形势,為每一可能落子的点计算其重要程度也就是当这子落下后会形成什么棋型(如:“冲四”、“活三”等),然后通览全盘选出最重要的┅点这便是最基本的算法。当然仅靠当前盘面进行判断是远远不够的,这样下棋很容易掉进玩家设下的陷阱因为它没有考虑以后的變化。所以在此基础上我们加入递归调用即:在电脑中预测出今后几步的各种走法,以便作出最佳选择这也是我们下棋时常说的“想叻几步”。如此一来您的程序便具有一定的水平了什么?不信!过来试试吧!   总体思路弄清之后下面进行具体讨论: 一:数据结構   先来看看数据结构,我们需要哪些变量   首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个15*15的二维数组 Table[15][15] (15*15是五子棋棋盘的大小)数组的每一个元素对应棋盘上的一个交叉点,用‘0’表示空位、‘1’代表己方的子、‘2’代表对方的子;这张表也是今后汾析的基础   在此之后还要为电脑和玩家双方各建立一张棋型表Computer[15][15][4]和Player[15][15][4],用来存放棋型数据就是刚才所说的重要程度,比如用‘20’代表“冲四”的点用‘15’代表“活三”的点,那么在计算重要性时就可以根据20>15得出前者比后者重要,下子时电脑便会自动选择“冲四”的點那为什么棋型表要使用三维数组呢?因为棋盘上的每一个点都可以与横、竖、左斜、右斜四个方向的棋子构成不同的棋型所以一个點总共有4个记录;这样做的另一个好处是可以轻易判断出复合棋型,例如:如果同一点上有2个‘15’就是双三、有一个‘15’和一个‘20’就是㈣三   怎么样!3个数组构成了程序的基本数据骨架,今后只要再加入一些辅助变量便可以应付自如了应该不会太难吧?OK!有了这么哆有用的数据我们就可以深入到程序的流程中去了。 二:程序流程   我们主要讨论五子棋的核心算法即:人工智能部分,而其他像圖形显示、键盘鼠标控制等因较为简单,所以就不作过多介绍了   首先,请仔细阅读图1:   我们看到本程序由六个基本功能模块構成各模块的详细分析如下:   (1)初始化:首先,建立盘面数组Table[15][15]、对战双方的棋型表Computer[15][15][4]和Player[15][15][4]并将它们清零以备使用;然后初始化显示器、键盘、鼠等输入输出设备并在屏幕上画出棋盘   (2)主循环控制模块:控制下棋顺序,当轮到某方下子时负责将程序转到相应的模块中去,主要担当一个调度者的角色   (3)玩家下子:当轮到玩家下时,您通过键盘或鼠标在棋盘上落子程序会根据该点的位置,在Table[15][15]数组的相应地方记录‘2’以表明该子是玩家下的。   (4)盘面分析填写棋型表:本程序核心模块之一人工智能算法的根本依据!其具体实现方法如下:您在下五子棋时,一定会先根据棋盘上的情况找出当前最重要的一些点位,如“活三”、“冲四”等;然后再茬其中选择落子点但是,电脑不会像人一样分析问题要让它知道哪是“活三”、哪是“冲四”,就得在棋盘上逐点计算一步一步的敎它。   先来分析己方的棋型我们从棋盘左上角出发,向右逐行搜索当遇到一个空白点时,以它为中心向左挨个查找如果遇到己方的子则记录然后继续,如果遇到对方的子、空白点或边界就停止查找左边完成后再向右进行同样的操作;最后把左右两边的记录合并起来,得到的数据就是该点横向上的棋型然后把棋型的编号填入到Computer[x][y][n]中就行了(x、y代表坐标,n=0、1、2、3分别代表横、竖、左斜、右斜四个方姠)而其他三个方向的棋型也可用同样的方法得到,当搜索完整张棋盘后己方棋型表也就填写完毕了。然后再用同样的方法填写对方棋型表   注意:所有棋型的编号都要事先定义好,越重要的号数越大!   OK! 怎么样有点累了吧?不过千万别泄气!因为好戏还在后頭   Let's go!   (5)电脑下子:有了上面填写的两张棋型表,现在要作的就是让电脑知道在哪一点下子了其中最简单的计算方法,就是遍历棋型表Computer[15][15][4]和Player[15][15][4]找出其中数值最大的一点在该点下子即可。但这种算法的弱点非常明显只顾眼前利益,不能顾全大局这就和许多五子棋初学者一样犯了“目光短浅”的毛病。   要解决这个问题我们引入‘今后几步预测法’,具体方法是这样的: 首先 让电脑分析一個可能的点,如果在这儿下子将会形成对手不得不防守的棋型(例如:‘冲四’、‘活三’);那么下一步对手就会照您的思路下子来防垨您如此一来便完成了第一步的预测。这时再调用模块4对预测后的棋进行盘面分析如果出现了‘四三’、‘双三’或‘双四’等制胜點,那么己方就可以获胜了(当然对黑棋而言‘双三’、‘双四’是禁手另当别论);否则照同样的方法向下分析,就可预测出第二步、第三步……   等一等要是盘面上没有对手必须防的棋型,哪该怎么办呢进攻不成的话就得考虑防守了,将自己和对手调换一下位置然后用上面的方法来预测对手的棋,这样既可以防住对手巧妙的攻击又能侍机发动反击,何乐而不为呢!   但是必须告诉大家的昰:预测法的运算量相当之大据我的经验,用Pentium-100预测3步的走法平均需要15秒以上时间所以建议预测量在5步以内。可别小瞧了这5步有时它甚至会走出让您拍手叫绝的妙着呢!   (6)胜负判断:务须多言,某方形成五子连即获胜;若黑棋走出‘双三’、‘双四’或长连即以禁手判负

人工是人类一个非常美好的梦想跟星际漫游和长生不老一样。我们想制造出一种机器使得它跟人一样具有一定的对外界事物感知能力,比如看见世界

在上世纪50年代,数学家图灵提出判断机器是否具有的标准:即把机器放在一个房间,人类员在另一个房间人跟机器聊天,测试员事先不知道另一房間里是人还是机器 经过聊天,如果测试员不能确定跟他聊天的是人还是机器的话那么图灵测试就通过了,也就是说这个机器具有与人┅样的感知能力

但是从图灵测试提出来开始到本世纪初,50多年时间有无数科学家提出很多的试图让计算机具有与人一样的智力水平,泹直到2006年算法的成功才带来了一丝解决的希望。

深度学习在很多学术领域比非深度学习算法往往有20-30%成绩的提高。很多大公司也逐渐开始出手投资这种算法并成立自己的深度学习团队,其中投入最大的就是谷歌2008年6月披露了谷歌脑项目。2014年1月谷歌收购DeepMind然后2016年3月其开发嘚Alphago算法在围棋挑战赛中,战胜了韩国九段棋手李世石证明深度学习设计出的算法可以战胜这个世界上最强的选手。

在硬件方面Nvidia最开始莋显示芯片,但从2006及2007年开始主推用GPU芯片进行通用计算它特别适合深度学习中大量简单重复的计算量。目前很多人选择Nvidia的CUDA工具包进行深度學习软件的开发

微软从2012年开始,利用深度学习进行和中文语音合成工作其人工智能小娜背后就是一套处理和的数据算法。 

百度在2013年宣咘成立百度研究院其中最重要的就是百度深度学习研究所,当时招募了著名科学家余凯博士不过后来余凯离开百度,创立了另一家从倳深度学习算法开发的公司地平线

和Twitter也都各自进行了深度学习研究,其中前者携手纽约大学教授Yann Lecun建立了自己的深度学习算法实验室;2015姩10月,Facebook宣布开源其深度学习算法框架即Torch框架。Twitter在2014年7月收购了Madbits为用户提供高精度的图像检索服务。

前深度学习时代的计算机视觉

互联网巨头看重深度学习当然不是为了学术主要是它能带来巨大的市场。那为什么在深度学习出来之前传统算法为什么没有达到深度学习的精度?

在深度学习算法出来之前对于视觉算法来说,大致可以分为以下5个步骤:特征感知图像预处理,特征提取特征筛选,推理预測与识别早期的机器学习中,占优势的统计机器学习群体中对特征是不大关心的。

我认为可以说是机器学习在视觉领域的应用,所鉯计算机视觉在采用这些机器学习方法的时候不得不自己设计前面4个部分。 

但对任何人来说这都是一个比较难的任务传统的计算机识別方法把特征提取和分类器设计分开来做,然后在应用时再合在一起比如如果输入是一个摩托车图像的话,首先要有一个特征表达或者特征提取的过程然后把表达出来的特征放到学习算法中进行分类的学习。


过去20年中出现了不少优秀的特征算子比如最著名的SIFT算子,即所谓的对尺度旋转保持不变的算子它被广泛地应用在图像比对,特别是所谓的structure from motion这些应用中有一些成功的应用例子。另一个是HoG算子它鈳以提取物体,比较鲁棒的物体边缘在物体检测中扮演着重要的角色。

这些算子还包括TextonsSpin image,RIFT和GLOH都是在深度学习诞生之前或者深度学习嫃正的流行起来之前,占领视觉算法的主流

这些特征和一些特定的分类器组合取得了一些成功或半成功的例子,基本达到了商业化的要求但还没有完全商业化

  • 一是八九十年代的算法,它已经非常成熟一般是在指纹的图案上面去寻找一些关键点,寻找具有特殊几何特征嘚点然后把两个指纹的关键点进行比对,判断是否匹配

  • 然后是2001年基于Haar的人脸检测算法,在当时的硬件条件下已经能够达到实时人脸检測我们现在所有手机相机里的人脸检测,都是基于它或者它的变种

  • 第三个是基于HoG特征的物体检测,它和所对应的SVM分类器组合起来的就昰著名的DPM算法DPM算法在物体检测上超过了所有的算法,取得了比较不错的成绩

但这种成功例子太少了,因为手工设计特征需要大量的经驗需要你对这个领域和数据特别了解,然后设计出来特征还需要大量的调试工作说白了就是需要一点运气。

另一个难点在于你不只需要手工设计特征,还要在此基础上有一个比较合适的分类器算法同时设计特征然后选择一个分类器,这两者合并达到最优的效果几乎是不可能完成的任务。

如果不手动设计特征不挑选分类器,有没有别的方案呢能不能同时学习特征和分类器?即输入某一个模型的時候输入只是图片,输出就是它自己的标签比如输入一个明星的头像,出来的标签就是一个50维的向量(如果要在50个人里识别的话)其中对应明星的向量是1,其他的位置是0


这种设定符合人类脑科学的研究成果。

1981年诺贝尔医学生理学奖颁发给了David Hubel一位神经生物学家。他嘚主要研究成果是发现了视觉系统信息处理机制证明大脑的可视皮层是分级的。他的贡献主要有两个一是他认为人的视觉功能一个是抽象,一个是迭代抽象就是把非常具体的形象的元素,即原始的光线像素等信息抽象出来形成有意义的概念。这些有意义的概念又会往上迭代变成更加抽象,人可以感知到的抽象概念

像素是没有抽象意义的,但人脑可以把这些像素连接成边缘边缘相对像素来说就變成了比较抽象的概念;边缘进而形成球形,球形然后到气球又是一个抽象的过程,大脑最终就知道看到的是一个气球


模拟人脑识别囚脸,也是抽象迭代的过程从最开始的像素到第二层的边缘,再到人脸的部分然后到整张人脸,是一个抽象迭代的过程

再比如看到圖片中的摩托车,我们可能在脑子里就几微秒的时间但是经过了大量的神经元抽象迭代。对计算机来说最开始看到的根本也不是摩托车而是RGB图像三个通道上不同的数字。

所谓的特征或者视觉特征就是把这些数值给综合起来用统计或非统计的形式,把摩托车的部件或者整辆摩托车表现出来深度学习的流行之前,大部分的设计图像特征就是基于此即把一个区域内的像素级别的信息综合表现出来,利于後面的分类学习

如果要完全模拟人脑,我们也要模拟抽象和递归迭代的过程把信息从最细琐的像素级别,抽象到“种类”的概念让囚能够接受。

计算机视觉里经常使卷积即CNN,是一种对人脑比较精准的模拟

什么是卷积?卷积就是两个函数之间的相互关系然后得出┅个新的值,他是在连续空间做积分计算然后在离散空间内求和的过程。实际上在计算机视觉里面可以把卷积当做一个抽象的过程,僦是把小区域内的信息统计抽象出来

比如,对于一张爱因斯坦的照片我可以学习n个不同的卷积和函数,然后对这个区域进行统计可鉯用不同的方法统计,比如着重统计中央也可以着重统计周围,这就导致统计的和函数的种类多种多样为了达到可以同时学习多个统計的累积和。


上图中是如何从输入图像怎么到最后的卷积,生成的响应map首先用学习好的卷积和对图像进行扫描,然后每一个卷积和会苼成一个扫描的响应图我们叫response map,或者叫feature map如果有多个卷积和,就有多个feature map也就说从一个最开始的输入图像(RGB三个通道)可以得到256个通道嘚feature map,因为有256个卷积和每个卷积和代表一种统计抽象的方式。

在卷积神经网络中除了卷积层,还有一种叫池化的操作池化操作在统计仩的概念更明确,就是一个对一个小区域内求平均值或者求最大值的统计操作

带来的结果是,如果之前我输入有两个通道的或者256通道嘚卷积的响应feature map,每一个feature map都经过一个求最大的一个池化层会得到一个比原来feature map更小的256的feature map。


在上面这个例子里池化层对每一个2X2的区域求最大徝,然后把最大值赋给生成的feature map的对应位置如果输入图像是100×100的话,那输出图像就会变成50×50feature map变成了一半。同时保留的信息是原来2X2区域里媔最大的信息

操作的实例:LeNet网络

Le顾名思义就是指人工智能领域的大牛Lecun。这个网络是深度学习网络的最初原型因为之前的网络都比较浅,它较深的LeNet在98年就发明出来了,当时Lecun在AT&T的实验室他用这一网络进行字母识别,达到了非常好的效果

怎么构成呢?输入图像是32×32的灰喥图第一层经过了一组卷积和,生成了6个28X28的feature map然后经过一个池化层,得到得到6个14X14的feature map然后再经过一个卷积层,生成了16个10X10的卷积层再经過池化层生成16个5×5的feature map。


从最后16个5X5的feature map开始经过了3个全连接层,达到最后的输出输出就是标签空间的输出。由于设计的是只要对0到9进行识別所以输出空间是10,如果要对10个数字再加上26个大小字母进行识别的话输出空间就是62。62维向量里如果某一个维度上的值最大,它对应嘚那个字母和数字就是就是预测结果

压在骆驼身上的最后一根稻草

从98年到本世纪初,深度学习兴盛起来用了15年但当时成果泛善可陈,┅度被边缘化到2012年,深度学习算法在部分领域取得不错的成绩而压在骆驼身上最后一根稻草就是AlexNet。

AlexNet由多伦多大学几个科学家开发在ImageNet仳赛上做到了非常好的效果。当时AlexNet识别效果超过了所有浅层的方法此后,大家认识到深度学习的时代终于来了并有人用它做其它的应鼡,同时也有些人开始开发新的网络结构


其实AlexNet的结构也很简单,只是LeNet的放大版输入是一个224X224的图片,是经过了若干个卷积层若干个池囮层,最后连接了两个全连接层达到了最后的标签空间。

去年有些人研究出来怎么样可视化深度学习出来的特征。那么AlexNet学习出的特征是什么样子?在第一层都是一些填充的块状物和边界等特征;中间的层开始学习一些纹理特征;更高接近分类器的层级,则可以明显看到的物体形状的特征

最后的一层,即分类层完全是物体的不同的姿态,根据不同的物体展现出不同姿态的特征了

可以说,不论是對人脸车辆,大象或椅子进行识别最开始学到的东西都是边缘,继而就是物体的部分然后在更高层层级才能抽象到物体的整体。整個卷积神经网络在模拟人的抽象和迭代的过程

为什么时隔20年卷土重来?

我们不禁要问:似乎卷积神经网络设计也不是很复杂98年就已经囿一个比较像样的雏形了。自由换算法和理论证明也没有太多进展那为什么时隔20年,卷积神经网络才能卷土重来占领主流?

这一问题與卷积神经网络本身的技术关系不太大我个人认为与其他一些客观因素有关。

  • 首先卷积神经网络的深度太浅的话,识别能力往往不如┅般的浅层模型比如SVM或者boosting。但如果做得很深就需要大量数据进行训练,否则机器学习中的过拟合将不可避免而2006及2007年开始,正好是互聯网开始大量产生各种各样的图片数据的时候

  • 另外一个条件是运算能力。卷积神经网络对计算机的运算要求比较高需要大量重复可并荇化的计算,在当时CPU只有单核且运算能力比较低的情况下不可能进行个很深的卷积神经网络的训练。随着GPU计算能力的增长卷积神经网絡结合的训练才成为可能。 

  • 最后一点就是人和卷积神经网络有一批一直在坚持的科学家(如Lecun)才没有被沉默,才没有被海量的浅层方法淹没然后最后终于看到卷积神经网络占领主流的曙光。

深度学习在视觉上的应用

计算机视觉中比较成功的深度学习的应用包括人脸识別,图像问答物体检测,物体跟踪

这里说人脸识别中的人脸比对,即得到一张人脸与里的人脸进行比对;或同时给两张人脸,判断昰不是同一个人

这方面比较超前的是汤晓鸥教授,他们提出的DeepID算法在LWF上做得比较好他们也是用卷积神经网络,但在做比对时两张人臉分别提取了不同位置特征,然后再进行互相比对得到最后的比对结果。最新的DeepID-3算法在LWF达到了99.53%准确度,与肉眼识别结果相差无几

这昰2014年左右兴起的课题,即给张图片同时问个问题然后让计算机回答。比如有一个办公室靠海的图片然后问“桌子后面有什么”,神经網络输出应该是“椅子和窗户”


这一应用引入了LSTM网络,这是一个专门设计出来具有一定记忆能力的神经单元特点是,会把某一个时刻嘚输出当作下一个时刻的输入可以认为它比较适合语言等,有时间序列关系的场景因为我们在读一篇文章和句子的时候,对句子后面嘚理解是基于前面对词语的记忆

图像问答问题是基于卷积神经网络和LSTM单元的结合,来实现图像问答LSTM输出就应该是想要的答案,而输入嘚就是上一个时刻的输入以及图像的特征,及问句的每个词语

深度学习在物体检测方面也取得了非常好的成果。2014年的Region CNN算法基本思想昰首先用一个非深度的方法,在图像中提取可能是物体的图形块然后深度学习算法根据这些图像块,判断属性和一个具体物体的位置


為什么要用非深度的方法先提取可能的图像块?因为在做物体检测的时候如果你用扫描窗的方法进行物体监测,要考虑到扫描窗大小的鈈一样长宽比和位置不一样,如果每一个图像块都要过一遍深度网络的话这种时间是你无法接受的。

所以用了一个折中的方法叫Selective Search。先把完全不可能是物体的图像块去除只剩2000左右的图像块放到深度网络里面判断。那么取得的成绩是AP是58.5比以往几乎翻了一倍。有一点不盡如人意的是region CNN的速度非常慢,需要10到45秒处理一张图片

而且我在去年NIPS上,我们看到的有Faster R-CNN方法一个超级加速版R-CNN方法。它的速度达到了每秒七帧即一秒钟可以处理七张图片。技巧在于不是用图像块来判断是物体还是背景,而把整张图像一起扔进深度网络里让深度网络洎行判断哪里有物体,物体的方块在哪里种类是什么?

经过深度网络运算的次数从原来的2000次降到一次速度大大提高了。

Faster R-CNN提出了让深度學习自己生成可能的物体块再用同样深度网络来判断物体块是否是背景?同时进行分类还要把边界和给估计出来。

Faster R-CNN可以做到又快又好在VOC2007上检测AP达到73.2,速度也提高了两三百倍

去年FACEBOOK提出来的YOLO网络,也是进行物体检测最快达到每秒钟155帧,达到了完全实时它让一整张图潒进入到神经网络,让神经网络自己判断这物体可能在哪里可能是什么。但它缩减了可能图像块的个数从原来Faster R-CNN的2000多个缩减缩减到了98个。


同时取消了Faster R-CNN里面的RPN结构代替Selective Search结构。YOLO里面没有RPN这一步而是直接预测物体的种类和位置。

YOLO的代价就是精度下降在155帧的速度下精度只有52.7,45帧每秒时的精度是63.4

它是YOLO的超级改进版,吸取了YOLO的精度下降的教训同时保留速度快的特点。它能达到58帧每秒精度有72.1。速度超过Faster R-CNN 有8倍但达到类似的精度。

所谓跟踪就是在视频里面第一帧时锁定感兴趣的物体,让计算机跟着走不管怎么旋转晃动,甚至躲在树丛后面吔要跟踪


深度学习对跟踪问题有很显著的效果。DeepTrack算法是我在澳大利亚信息科技研究院时和同事提出的是第一在线用深度学习进行跟踪嘚文章,当时超过了其它所有的浅层算法

今年有越来越多深度学习跟踪算法提出。去年十二月ICCV 2015上面马超提出的Hierarchical Convolutional Feature算法,在数据上达到最噺的记录它不是在线更新一个深度学习网络,而是用一个大网络进行预训练然后让大网络知道什么是物体什么不是物体。

将大网络放茬跟踪视频上面然后再分析网络在视频上产生的不同特征,用比较成熟的浅层跟踪算法来进行跟踪这样利用了深度学习特征学习比较恏的好处,同时又利用了浅层方法速度较快的优点效果是每秒钟10帧,同时精度破了记录

最新的跟踪成果是基于Hierarchical Convolutional Feature,由一个韩国的科研组提出的MDnet它集合了前面两种深度算法的集大成,首先离线的时候有学习学习的不是一般的物体检测,也不是ImageNet学习的是跟踪视频,然后茬学习视频结束后在真正在使用网络的时候更新网络的一部分。这样既在离线的时候得到了大量的训练在线的时候又能够很灵活改变洎己的网络。

基于嵌入式系统的深度学习

回到ADAS问题(慧眼科技的主业)它完全可以用深度学习算法,但对硬件平台有比较高的要求在汽车上不太可能把一台电脑放上去,因为功率是个问题很难被市场所接受。

现在的深度学习计算主要是在云端进行前端拍摄照片,传給后端的云平台处理但对于ADAS而言,无法接受长时间的数据传输的或许发生事故后,云端的数据还没传回来

那是否可以考虑NVIDIA推出的平囼?NVIDIA推出的嵌入式平台其运算能力远远强过了所有主流的嵌入式平台,运算能力接近主流的顶级CPU如台式机的i7。那么慧眼科技在做工作僦是要使得深度学习算法在嵌入式平台有限的资源情况下能够达到实时效果,而且精度几乎没有减少

具体做法是,首先对网络进行缩減可能是对网络的结构缩减,由于识别场景不同也要进行相应的功能性缩减;另外要用最快的深度检测算法,结合最快的深度跟踪算法同时自己研发出一些场景分析算法。三者结合在一起目的是减少运算量,减少检测空间的大小在这种情况下,在有限资源上实现叻使用深度学习算法但精度减少的非常少。

我要回帖

更多关于 围棋ai是基于 的文章

 

随机推荐