您好、欢迎来到现金彩票网!
当前位置:八马彩票 > 概念结点 >

从概念提出到走向繁荣:人工智能AI、机器学习和深度学习的区别

发布时间:2019-05-10 01:45 来源:未知 编辑:admin

  有人说,人工智能(AI)是未来,人工智能是科幻,人工智能也是我们日常生活中的一部分。这些评价可以说都是正确的,就看你指的是哪一种人工智能。

  今年早些时候,Google DeepMind的AlphaGo打败了韩国的围棋大师李世乭九段。在媒体描述DeepMind胜利的时候,将人工智能(AI)、机器学习(machine learning)和深度学习(deep learning)都用上了。这三者在AlphaGo击败李世乭的过程中都起了作用,但它们说的并不是一回事。

  今天我们就用最简单的方法——同心圆,可视化地展现出它们三者的关系和应用。

  如上图,人工智能是最早出现的,也是最大、最外侧的同心圆;其次是机器学习,稍晚一点;最内侧,是深度学习,当今人工智能大爆炸的核心驱动。

  五十年代,人工智能曾一度被极为看好。之后,人工智能的一些较小的子集发展了起来。先是机器学习,然后是深度学习。深度学习又是机器学习的子集。深度学习造成了前所未有的巨大的影响。

  1956年,几个计算机科学家相聚在达特茅斯会议(Dartmouth Conferences),提出了“人工智能”的概念。其后,人工智能就一直萦绕于人们的脑海之中,并在科研实验室中慢慢孵化。之后的几十年,人工智能一直在两极反转,或被称作人类文明耀眼未来的预言;或者被当成技术疯子的狂想扔到垃圾堆里。坦白说,直到2012年之前,这两种声音还在同时存在。

  过去几年,尤其是2015年以来,人工智能开始大爆发。很大一部分是由于GPU的广泛应用,使得并行计算变得更快、更便宜、更有效。当然,无限拓展的存储能力和骤然爆发的数据洪流(大数据)的组合拳,也使得图像数据、文本数据、交易数据、映射数据全面海量爆发。

  让我们慢慢梳理一下计算机科学家们是如何将人工智能从最早的一点点苗头,发展到能够支撑那些每天被数亿用户使用的应用的。

  成王(King me):能下国际跳棋的程序是早期人工智能的一个典型应用,在二十世纪五十年代曾掀起一阵风潮。(译者注:国际跳棋棋子到达底线位置后,可以成王,成王棋子可以向后移动)。

  早在1956年夏天那次会议,人工智能的先驱们就梦想着用当时刚刚出现的计算机来构造复杂的、拥有与人类智慧同样本质特性的机器。这就是我们现在所说的“强人工智能”(General AI)。这个无所不能的机器,它有着我们所有的感知(甚至比人更多),我们所有的理性,可以像我们一样思考。

  人们在电影里也总是看到这样的机器:友好的,像星球大战中的C-3PO;邪恶的,如终结者。强人工智能现在还只存在于电影和科幻小说中,原因不难理解,我们还没法实现它们,至少目前还不行。

  我们目前能实现的,一般被称为“弱人工智能”(Narrow AI)。弱人工智能是能够与人一样,甚至比人更好地执行特定任务的技术。例如,Pinterest上的图像分类;或者Facebook的人脸识别。

  这些是弱人工智能在实践中的例子。这些技术实现的是人类智能的一些具体的局部。但它们是如何实现的?这种智能是从何而来?这就带我们来到同心圆的里面一层,机器学习。

  健康食谱(Spam free diet):机器学习能够帮你过滤电子信箱里的(大部分)垃圾邮件。(译者注:英文中垃圾邮件的单词spam来源于二战中美国曾大量援助英国的午餐肉品牌SPAM。直到六十年代,英国的农业一直没有从二战的损失中恢复,因而从美国大量进口了这种廉价的罐头肉制品。据传闻不甚好吃且充斥市场。)

  机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。

  机器学习直接来源于早期的人工智能领域。传统算法包括决策树学习、推导逻辑规划、聚类、强化学习和贝叶斯网络等等。众所周知,我们还没有实现强人工智能。早期机器学习方法甚至都无法实现弱人工智能。

  机器学习最成功的应用领域是计算机视觉,虽然也还是需要大量的手工编码来完成工作。人们需要手工编写分类器、边缘检测滤波器,以便让程序能识别物体从哪里开始,到哪里结束;写形状检测程序来判断检测对象是不是有八条边;写分类器来识别字母“ST-O-P”。使用以上这些手工编写的分类器,人们总算可以开发算法来感知图像,判断图像是不是一个停止标志牌。

  这个结果还算不错,但并不是那种能让人为之一振的成功。特别是遇到云雾天,标志牌变得不是那么清晰可见,又或者被树遮挡一部分,算法就难以成功了。这就是为什么前一段时间,计算机视觉的性能一直无法接近到人的能力。它太僵化,太容易受环境条件的干扰。

  放猫(Herding Cats):从YouTube视频里面寻找猫的图片是深度学习杰出性能的首次展现。(译者注:herdingcats是英语习语,照顾一群喜欢自由,不喜欢驯服的猫,用来形容局面混乱,任务难以完成。)

  人工神经网络(Artificial Neural Networks)是早期机器学习中的一个重要的算法,历经数十年风风雨雨。神经网络的原理是受我们大脑的生理结构——互相交叉相连的神经元启发。但与大脑中一个神经元可以连接一定距离内的任意神经元不同,人工神经网络具有离散的层、连接和数据传播的方向。

  例如,我们可以把一幅图像切分成图像块,输入到神经网络的第一层。在第一层的每一个神经元都把数据传递到第二层。第二层的神经元也是完成类似的工作,把数据传递到第三层,以此类推,直到最后一层,然后生成结果。

  每一个神经元都为它的输入分配权重,这个权重的正确与否与其执行的任务直接相关。最终的输出由这些权重加总来决定。

  我们仍以停止(Stop)标志牌为例。将一个停止标志牌图像的所有元素都打碎,然后用神经元进行“检查”:八边形的外形、救火车般的红颜色、鲜明突出的字母、交通标志的典型尺寸和静止不动运动特性等等。神经网络的任务就是给出结论,它到底是不是一个停止标志牌。神经网络会根据所有权重,给出一个经过深思熟虑的猜测——“概率向量”。

  这个例子里,系统可能会给出这样的结果:86%可能是一个停止标志牌;7%的可能是一个限速标志牌;5%的可能是一个风筝挂在树上等等。然后网络结构告知神经网络,它的结论是否正确。

  即使是这个例子,也算是比较超前了。直到前不久,神经网络也还是为人工智能圈所淡忘。其实在人工智能出现的早期,神经网络就已经存在了,但神经网络对于“智能”的贡献微乎其微。主要问题是,即使是最基本的神经网络,也需要大量的运算。神经网络算法的运算需求难以得到满足。

  不过,还是有一些虔诚的研究团队,以多伦多大学的Geoffrey Hinton为代表,坚持研究,实现了以超算为目标的并行算法的运行与概念证明。但也直到GPU得到广泛应用,这些努力才见到成效。

  我们回过头来看这个停止标志识别的例子。神经网络是调制、训练出来的,时不时还是很容易出错的。它最需要的,就是训练。需要成百上千甚至几百万张图像来训练,直到神经元的输入的权值都被调制得十分精确,无论是否有雾,晴天还是雨天,每次都能得到正确的结果。

  只有这个时候,我们才可以说神经网络成功地自学习到一个停止标志的样子;或者在Facebook的应用里,神经网络自学习了你妈妈的脸;又或者是2012年吴恩达(Andrew Ng)教授在Google实现了神经网络学习到猫的样子等等。

  吴教授的突破在于,把这些神经网络从基础上显著地增大了。层数非常多,神经元也非常多,然后给系统输入海量的数据,来训练网络。在吴教授这里,数据是一千万YouTube视频中的图像。吴教授为深度学习(deep learning)加入了“深度”(deep)。这里的“深度”就是说神经网络中众多的层。更多深度学习解读:

  现在,经过深度学习训练的图像识别,在一些场景中甚至可以比人做得更好:从识别猫,到辨别血液中癌症的早期成分,到识别核磁共振成像中的肿瘤。Google的AlphaGo先是学会了如何下围棋,然后与它自己下棋训练。它训练自己神经网络的方法,就是不断地与自己下棋,反复地下,永不停歇。

  深度学习使得机器学习能够实现众多的应用,并拓展了人工智能的领域范围。深度学习摧枯拉朽般地实现了各种任务,使得似乎所有的机器辅助功能都变为可能。无人驾驶汽车,预防性医疗保健,甚至是更好的电影推荐,都近在眼前,或者即将实现。

  人工智能就在现在,就在明天。有了深度学习,人工智能甚至可以达到我们畅想的科幻小说一般。你的C-3PO我拿走了,你有你的终结者就好了。

  【本文由微信公众号“将门创业(thejiangmen)”原创编译,译者:曲晓峰,香港理工大学人体生物特征识别研究中心博士生。】

  其实,机器学习跟模式识别,统计学习,数据挖掘,计算机视觉,语音识别,自然语言处理等领域有着很深的联系。

  从范围上来说,机器学习跟模式识别,统计学习,数据挖掘是类似的,同时,机器学习与其他领域的处理技术的结合,形成了计算机视觉、语音识别、自然语言处理等交叉学科。因此,一般说数据挖掘时,可以等同于说机器学习。同时,我们平常所说的机器学习应用,应该是通用的,不仅仅局限在结构化数据,还有图像,音频等应用。

  在这节对机器学习这些相关领域的介绍有助于我们理清机器学习的应用场景与研究范围,更好的理解后面的算法与应用层次。

  模式识别=机器学习。两者的主要区别在于前者是从工业界发展起来的概念,后者则主要源自计算机学科。在著名的《Pattern Recognition And Machine Learning》这本书中,Christopher M. Bishop在开头是这样说的“模式识别源自工业界,而机器学习来自于计算机学科。不过,它们中的活动可以被视为同一个领域的两个方面,同时在过去的10年间,它们都有了长足的发展”。

  数据挖掘=机器学习+数据库。这几年数据挖掘的概念实在是太耳熟能详。几乎等同于炒作。但凡说数据挖掘都会吹嘘数据挖掘如何如何,例如从数据中挖出金子,以及将废弃的数据转化为价值等等。但是,我尽管可能会挖出金子,但我也可能挖的是“石头”啊。这个说法的意思是,数据挖掘仅仅是一种思考方式,告诉我们应该尝试从数据中挖掘出知识,但不是每个数据都能挖掘出金子的,所以不要神话它。一个系统绝对不会因为上了一个数据挖掘模块就变得无所不能(这是IBM最喜欢吹嘘的),恰恰相反,一个拥有数据挖掘思维的人员才是关键,而且他还必须对数据有深刻的认识,这样才可能从数据中导出模式指引业务的改善。大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。

  统计学习近似等于机器学习。统计学习是个与机器学习高度重叠的学科。因为机器学习中的大多数方法来自统计学,甚至可以认为,统计学的发展促进机器学习的繁荣昌盛。例如著名的支持向量机算法,就是源自统计学科。但是在某种程度上两者是有分别的,这个分别在于:统计学习者重点关注的是统计模型的发展与优化,偏数学,而机器学习者更关注的是能够解决问题,偏实践,因此机器学习研究者会重点研究学习算法在计算机上执行的效率与准确性的提升。

  计算机视觉=图像处理+机器学习。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域是应用前景非常火热的,同时也是研究的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。

  语音识别=语音处理+机器学习。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。

  自然语言处理=文本处理+机器学习。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有的”。如何利用机器学习技术进行自然语言的的深度理解,一直是工业和学术界关注的焦点。

  可以看出机器学习在众多领域的外延和应用。机器学习技术的发展促使了很多智能领域的进步,改善着我们的生活。

  神经网络是机器学习中的一个算法,跟SVM(支持向量机)齐名,同时也是深度学习的基础。深度学习实际上就是多隐层的深度神经网络。

  相互之间关联在一起,有些应用领域所代表的含义是一样的,这里我想引用台大机器学习课程中老师所讲的这些概念相互之间的区别,具体如下:

  人工智能是一种应用领域,机器学习是实现人工智能的一种手段,但是不限于此。

  统计的方法可以用来机器学习,比如:聚类、贝叶斯等等,当然机器学习还有很多其他的方法,如神经网络(更小范围)、SVM

  自己的观点,不一定对。机器学习和统计分析的哲学不一样,比如前者用最大似然估计,后者会说它不是无偏的,但人家说自己是结构风险最小化压根没跟你扯统计量。神经网络是机器学习的一种建模方法,是机器学习里的小哲学,不扯多了。模式识别与数据挖掘用机器学习的模型解决,当然也用统计分析的模型,当然这些词的区分现在都不大了。人工智能还可以基于解空间的搜索来做,机器学习可以作为它的一部分(那只要是能代替人工解决问题的统计方法也可以作为人工智能的一部分?)。

  人工智能一词出现较早,主要是想利用计算机模拟人类的智慧行为,从搭建系统方面完成。机器学习词出现较晚,它是以解决预测问题为目的,一系列建模,优化,设计算法的过程。可以把这些算法移植到你要搭建的实体系统上面形成人工智能系统(例如可自动识别道路自动行驶的智能车)。神经网络只是机器学习里面的一种方法。自然语言处理只是其中机器学习的方法应用的一个领域。

  人工智能这个领域太大,它和其他几个的关系,我在另外一个回答里有一些我的观点里有回答,我就不多赘述了:通过机器学习以及大规模数据的统计,电脑可以无限逼近人脑的能力么?如果可以,哪些能力是比较容易被逼近的?

  关于模式识别,他基本用的是机器学习的方法(确切说是概率理论里的机器学习),而基于概率的机器学习和统计理论有很大的交际。

  而数据挖掘是机器学习和统计理论交叉的一个应用方向,他期望从一堆观察到的数据里,发现一些潜在的关系和核心。他的核心方法基本都囊括在机器学习中,也基本被统计理论包含。

  关于神经网络,计算机方向最了解的是把他作为AI中machine learning的一个分支来对待。而在其他领域,比如control里,bioinformatics里,也有应用。有一部分研究者把它作为一个独立的方向来对待,结构上也更加复杂了。

  机器学习、统计分析、数据挖掘、神经网络、人工智能、模式识别,很难说谁包含于谁,只能分开说每一个概念的意义,谁服务于谁。

  很多人认为数据挖掘是新学科,是基于大数据,其实不然,如果给你一个数据说李嘉诚有100多亿美元,再给你一个数据是全国平均人均可支配收入水平是13279元人民币,你能挖掘出一个信息叫,李嘉诚很有钱,这也是数据挖掘。只不过很小白而已。

  模式识别是目的,识别出一种模式,比如两个眼睛一个鼻子的是人脸的模式。如果不通过电脑,手工的通过计算来识别模式,也属于模式识别

  机器学习是一种方法,通常用来进行模式识别,用机器去学习不直观的数据得到模式,这其中会需要用到各种各样的知识,比如统计分析的知识。

  人工智能,这个概念就大了,这个概念是想要人工制造出和人类一样的智能,所以很多人就想出了机器人这么一个科幻产物,有人类的智能,并且依托于机器的强大运算能力。事实上,人工智能也不一定要和电脑挂钩的,只不过现在只有电脑有这么强大的计算能力,如果有一天生物科技能够突破,说不定也能实现。(纯属YY)

  神经网络,这是学习算法中的一个很火的模型,它号称结合了多学科,模拟了人的神经过程,是很好的一种学习方法,可以说这个是基于统计学范畴的。机器学习:强调学习能力,机器在算法的指导下有一点的学习能力,比如神经网络,训练算法

  统计分析:从统计的角度出发,发现系统的规律,比如线性回归等,不过神经网络也可以看作一种非线性回归。

  数据挖掘:强调的是从一大堆数据里有价值的数据,比如最赚钱的信息,指标,比如,啤酒尿布要放一块,为了挖掘有价值的信息,当然所有方法都会用上。

  神经网络:强调模拟生物神经系统,尤其是大脑的神经网络。比如:BP网络,竞争神经网络,等各种仿生的算法。神经网络的学习机制,收敛性质等都会讨论

  人工智能:这个强调的是让机器象人一样聪明,方法就不限了,规则也罢,神经网络等仿生学也罢,都可以来为我所用

  模式识别:强调训练和识别,比如图像里识别出一个人脸,识别出树木,背景,识别验证码,。。。使用各种学习算法,分类算法,比如神经网络,SVM,。。。

  每个概念都是不同人从不同角度,不用的关注点,看这些前沿技术。有的人为了实现象人一样的机器人,比如,强调人工智能的人,有的人想从中赚钱,比如,强调数据挖掘的人,有的人对仿生比较喜爱,比如强调神经网络的人。。。。。每个相关书籍都看看,理解他们就好了

  关于模式识别,图像里找出一个人脸,树木,这个叫检测。确定图像中的人脸是谁的的,这叫识别。人工智能属于一个非常大的研究领域,其需要解决的子问题很多:演绎/推理/问题求解、知识表示、(机器)学习、自然语言处理、感知等,可见机器学习和自然语言处理同属于属于人工智能研究子领域

  从机器学习的wiki词条,可以看到神经网络属于机器学习的方法(approach)

  模式识别和机器学习的关系的确比较纠缠不清人工智能最大,机器学习是人工智能最近比较流行的一个分支。

  机器学习通常会用统计分析的方法进行分析,统计学在机器学习里占有非常重要的地位。

  神经网络是机器学习里一个研究非常广泛的方法,貌似有个会议就是研究神经网络的,NIPS,不过现在其实NIPS上很多论文也都和神经网络无关的,NIPS现在和ICML比较像了哦。。。

  至于模式识别和机器学习的关系,就有点说不清了哦。。。不要低估搞量化金工丧心病狂的程度。

  有些机构还会动用新的数据源。比如红外摄像、航拍、卫星监视等等。甚至还有一些非法手段,比如行政力量干预,通过黑色渠道非法获取数据等等。

  是模型总有失效的时间。这点要搞清楚。而优秀的机构不亏的原因只有一个:依赖持续不断的研发力量更新模型和基础设施;而新的模型和基础设施会极大地增加市场的效率。

  1.这个行当就是rocket science,是个系统工程。母系统下面管理子系统非常庞大,复杂度高;最后拼的是整个系统运行效率、处理信息对信息解读的效率。

  2.有些答主认为不可行,理由是很奇怪的。就好比看见礼花炮仗飞不高安全系数低,就推理出没法做出火箭来载人去月球一样。

  用“机器学习”的方法去学习股价涨跌 这个问题已经被无数的人思考,并且实践过了。但不意味着没有价值。

  只要把这个函数写出来就可以预测股价了。这个函数是什么样子的? 我们可以尝试用N个模型(线性,非线性, 概率)来进行逼近。如果股价的变化是符合这几个模型的,那么在有足够多的训练数据的情况下,股价将被模拟出来。但是事实是,在尝试过许多许多模型的情况下,这些模型几乎没能预测股价的变化,有的模型只能在特定的区间能做一些不是十分精准的预测。

  先讨论一下Reinforcement Learning, 这个算法基于马尔可夫性,从一个状态预测下一个状态,但是股价的涨跌具有强烈的马尔可夫性吗?也就是上一时刻的股价与下一个时刻的股价间有必然的联系吗?应该是不太大。这种基于N阶马尔可夫性的系统对于股价的分析很不利。而且假如只使用股价的历史数据进行模型的训练的线。

  影响股价的因素不仅仅是历史股价,还有更多的因素,公司的近况,股民对股票的态度,政策的影响等等。所以许多人会从这方面进行入手,用人工智能提供的快速计算能力,使用合适的模型,来量化这些因素,例如, (政策X出台, 可能会对股价造成变化y元)。

  还有在一些有趣的预测股价方法大都有基于语义分析, 分析股民对某支股票的评论,对某个事件的情绪等等,以此来预测股价的涨跌。等等 当你的模型将所有的因素全都考虑进来, 那么股价的预测就唾手可得了。

  股价 = f(政策因素, 公司情况,市场因素, 历史股价,上一年历史股价, 某个股民自杀的影响)

  这些因素到底有多少? 它们之间会如何影响,这才是问题的关键。在某些稳定的情况下,我们是可以做大概的预测的,但是有很多时候,会不准确,这是因为,你的模型 永远不可能把所有的 因素都考虑进来。而且你也不会知道 还会有什么因素会影响股价的波动。在这么多的因素,和因素与因素间还会产生互相影响的情况下。股价的模型将会变得极其复杂。如下图.

  一个因素与一个因素之间的互相影响是 很可能被预测出来的,但是 假如它们之间产生了相互的影响,这时候整个系统就变得几乎不可预测了。一个因素发生变化,会造成好几个因素的变化,最后这几个因素又会反作用回来使上一个因素发生变化(直接的,间接的),股价变化一下子就变得虚无飘渺起来。一些微小的因素也可以通过这种系统无限的放大,最后给股市造成巨大的影响。

  也就是 在南美洲一只蝴蝶扇动她的翅膀也可能会对你的股价造成巨大的影响,这就是混沌现象。

  当然,在某些情况下可以认为 部分因素是稳定的(的确, 因为许多事件的影响是有延时的,在延时之间我们可以认为其不变),而且可以忽略掉一些影响较小的因素(假设它们乖乖的,不要调皮),所以幸运的话,我们的模型将变得稍微简单一点,这样,也许有时候我们就能得到一些令人开心的结果了。

  所以LZ想要进行股价的预测的话,还是从分析各方面因素来入手。和前面各位说的一样,如果你的真的把历史数据做为 依据来建立了你的系统。那么 只能用来 给别人作为(历史股价)这个因素的参考。 真正的股价还得靠各方面信息综合起来考虑。

  混沌现象是一个目前仍不可预测的东西。(例如 奶牛身上的花纹形状,天气的变化,心跳的波形,人脑的运行, 海滩上乱石的现状,滩涂的形状等等都属于混沌现象,我们能略知其一二,却永远无法精确地预测)这个BBC的视频做了精彩的探讨)

  但具体是为什么呢? 为什么有反馈的系统会造成了一种完全不可预测的状态变化?这个有空再继续探讨机器学习的用法不是帮我们寻找因素(即:特征量),而是根据给定的特征量对模型进行学习。另外不必须知道所有因素才能做预测。请注意我的逻辑,我是说存在只了解部分因素而做出准确判断的情况。正是因为特征量相互之间也许并不独立,因此可以给问题降维也就是消掉一些特征量。此外,对于因素相互之间有影响的系统,也不一定不可以进行分析。比如网页的检索算法就很好地处理了相互影响的复杂网络系统,为用户找到了与他们的问题最相关的网站。

  一个是 没有足够的数据,即使有了大量数据也没有足够的计算能力去计算。 就拿模拟神经元来说吧。10几个神经元互相连接,互相反馈,其变化的可能性一般的计算机都已经无法模拟了。更别说10亿个相连的神经元。 这是非得用数字系统去计算 连续的模拟系统的弊端。 一滴水引起的水振荡的波纹,在自然中我们很容易就能观察到,和创造。但是一个数字系统中需要模拟这种波纹可是很复杂的。一些游戏中需要很强大的显卡才能将一滴水引起的波纹模拟出来。更别提去计算和预测几滴水,一条河,一片海了。 或许我们需要更科学的方法去复制和实现人工智能。

  建立一个三层的神经网络大概也就用几十个神经元,这个是可以用计算机模拟的,而且从经验上来看拟合误差相对于四层和五层还算不错,而且速度远比四层和五层的神经网络要快,10亿个神经元暂时还用不到。。。你所说的过拟合确实是存在的,神经网络模型每一次仿真结果都可能会不同,所以还需要进行针对过拟合程度进行评价,我对量化投资中忌讳的未来函数非常不了解,不敢过多评价

  “记得谷歌创始人说过,利用人们的搜索内容的大数据进行股市预测,不是不可能,只是不允许。。。”

  凡是能够从股市中稳定获利的手段,都会导致市场更有效(同时加入到市场中的信息也变多了),从而导致这个手段会随着时间失效。

  还有一个问题是,加入到市场中的信息越多,“理想的、正确的”模型中需要包含的参数就越来越多,市场变的更加混沌和不可预测。由于大家都在不停地用自己的模型去影响市场,所以任何人的模型都会在一段时间后失效,因为系统里多出了许多你的模型中原本没有考虑的因素。

  也就是说市场里的玩家越多、越强,这个系统会自动的变的越来越复杂,wtf?!真是个悲剧……

  人工智能带给人类生活更多的是积极影响。第一,人工智能可以把人类从繁重的劳动中解放出来,提高人类生产生活的效率和质量。(如果只侧重生活,这一点可以展开为 提高生产效率 使人类免受高风险工作 提高生活质量等)第二,人工智能的进步会极大地革新人类的思维方式,看待世界的角度,深化人类对自身所处宇宙地位等问题的思考。第三,人工智能本身是人类最杰出的作品,它在某种程度上可以实现人类文化思想等一切文明结晶的永生。

  负面影响也要提,人工智能的过度发展会使人类越来越依赖科技,甚至成为科技的奴隶,同时人的各种能力也会在惰性中退化,人的价值和尊严会逐渐被更高效更智能的机器取代。

  但是在可预见的短期,人工智能会极大的造福人类。同时从长远来看,无论人工智能是否最终会取代人类,它始终是人类在浩瀚宇宙中孤独探索所造出最像我们自己的东西,人类所经受的消极影响从来不在于人工智能的进化程度,而在于人类对自我的认知和把握。

  文艺复兴旗下的另几支基金都不怎么赚钱,大奖章的个例不可用来说明“有稳赚不赔的方法”。基金公司亏损和关门的也有很多啊。

  某些时候如果你依靠技术优势或别的某种优势,发现了别人没发现的信息,或利用了别人利用不了的信息,那么挣钱的“概率”会比较大,但仍然是不可持续的,短则几个月、长则一两年即会逐渐失效,必须要不停的改进模型。

  根据文艺复兴囤积了这么多高级人才,就可以推算出它的模型肯定一直在不断演化。如果一个固定的模型能够永远高回报的运行下去的话,最佳策略显然是几个创始人低调的坐吃金山就行了,招聘那么多人除了分掉本属自己的钱,还有暴露自己模型和策略的风险。目前的做法是这样的,通过时间序列分析去捕捉系统动力学性质,可以计算出一个最优估计,从而分析未来走向。如果没有重大新闻出现,还是可以有比较好的估计,这要是所谓的自动交易

  因为做量化本来就是去想去试无数的方法来拟合市场的过程,首先1要有一套方法,然后2细化成一套算法,然后3进行历史数据回测,然后4进行实际交易。我不可能只在第一步就预见性的看到第四步的效果。

  从第一步到第二步中,可能方法是有用的,但本身交易中有着非常多的数据,海量数据如何分类、如何描述、如何选取,可能一点点细微的不同都会导致结果完全不一样。

  从第二步到第三步,有了算法去进行历史数据回测,其实就是去训练和优化参数的过程,但很难避免的就是过度优化的问题,这个度如何选取是量化的难点。

  第三步到第四步,即使有了漂亮的历史回测结果,但真正用到实盘上并不一定会赚钱,要知道市场结构和属性一直在不断的变化中,中间又是一个反复调整的过程。

  强化学习的本质,【如果我没有记错。。。】,应该就是求解一个概率转移矩阵吧,从控制的角度来理解。我觉得强化学习的弱点在于,对于高维数据的处理能力和对于海量数据的处理能力,以及其基于的一些假设,比如是马尔科夫假设等等。

  如果用深度学习做是否可以,百度谷歌都在弄深度学习,这个概念被炒爆了,百度深度学习实验室的余凯前段时间到清华开了讲座。那么它是否可以解决呢?

  我个人虽然对于DL实现人工智能很怀疑,觉得至少还有很长一段路要走,但是我觉得处理大数据应该是没有问题的。问题就在于输入的信息(输入的数据)。如果信息是不对称的,那么即使再大的数据,也是有缺失的,而缺失的部分不能通过推理获得的时候,再好的算法也无济于事。所以即使一开始你有一个“正确”模型,也未必意味着它的完全正确性。当影响股市的某些独立因素加入,而这些因素没有在你的模型中的时候,你的模型就可能fail了。

  另一个问题是,如何获得局大的计算能力。记得去年去复旦参加MLA2013,阿里就有人在上面说,他们现在用的其实就是很简单的算法,也遇到了很多问题,不知道如何解决,因为数据实在是太大了【curse of dimensionality】。我不知道股票购买行为一天会生成多少数据量,但是和淘宝应该还是有得一比的。如果你想自己组团做DL来分析和预测股票行为,恐怕有点困难。【要知道百度都去硅谷开了LDL】

  最后一个问题,基于你能够预测别人的行为(=你的学习算法works)的前提假设,分两类讨论。

  1)同时别人也可以预测你的行为(=别人的算法也works)。那么你能预测到他,你会采取一定措施。而他能够预测到你,他也会采取措施。这样下去就类似于你在两面镜子之间,有无数多个你在镜子里。总之,你仅能通过上一时刻的信息预测对方的行为,而对方行为在这一刻的不可知性是难以预知的。虽然RL有这方面的功能,比如Kalman filter,但是那个模型未免也太简单了。那个就是一个线性函数加一个(正态的)噪声项。所以我觉得,当双方能力平等时,预知股市行为是困难的。

  2)同时别人没有预测你的行为的能力(=别人的算法不work)。那么你就【可能】可以预测股市了。那又怎么样呢?你不如去预测点对于社会有好处的东西,比如语言翻译,比如文本信息处理,比如智能车,比如智能电网,比如机器人等等。

  所以我觉得首先算法hardly可以预测股市行为,其次即使我们有很好的预测算法也可能预测不了股市行为,最后我们如果有很好的预测方法,为什么不去做一些对社会有积极意义的事情呢,而不是投机取巧。

  。强化学习的本质是学习动作状态与值的映射,通过与环境的交互获取反馈,并最大化累积回报来求取最优策略。

  这其中有一个重要前提就是环境MDP模型且保持不变。在目前已有的强化学习研究中,在某一MDP环境下获得的策略,在其他环境下适用性的问题,还是一个很大的难题。因此如果假设股价变动为一MDP模型,且模型保持不变,那么通过强化学确实可以获得最优策略。但实际上,股价的影响因素过于复杂,根本不可能为一确定的MDP模型,所以通过强化学习是没有办法求解的。

  强化学习无须先验知识,需要不断试错,因此在机器学习中应该是效率较低的一种学习方法。在已知模型的情况下,通过动态规划方法能获得更好的结果。

  至于机器学习方法对股价进行预测,由于专业不在这个方向就不细说了,其他大神会解释的更清楚。个人觉得采用SVM和DL效果会更好。

  所谓的“同一种思维范式”就是人工神经网络。人工神经网络,说到底是机器学习算法的一类。从古溯今,该类算法的发展大致经历了三次高潮:1. 二十世纪四十至六十年代,当时广为人知的控制论(cybernetics);2. 二十世纪八十至九十年代的连接主义(connectionism);3. 再就是2006年之后的深度学习(deep learning)。

  在此我想说的是,深度学习,相比前两次高潮中的神经网络模型,并非仅仅是层数上简单粗暴的堆叠,更重要则是端到端(end-to-end)的表示学习(representation learning)思想。深度学习时代,输入数据直接变成了欲处理对象的最初形态,如初始图像、初始语音等。这类数据表示与高层概念表示之间往往存在较大鸿沟(gap),而端到端的无缝学习过程将表示学习和分类器训练整体耦合为一个系统,可以较理想的弥合这一鸿沟,这也是DL在图像和语音这类数据上独占鳌头的原因。由是,新时代下的发展赋予了神经网络新的含义,还不应该取个新名字吗?:)

  深度学习的内涵多了去了,把深度学习说成是神经网络的rebranding,感觉是做传统统计学习的人不了解而犯的错误。

  最简单的,deep graphical model是nn吗?当然不是。但显然也算深度学习。

  1. 2006年改的,Geoffrey Hinton等人搞了一个深度信念网络,率先使用“深度”这个词。他们引入一个叫greedy layer wise pre-training策略,其他研究者发现这个对训练更深层度的神经网络很有效,由此引发了一波热潮。

  2. 这波的研究者热衷于使用“深度学习“这个词,公开的说法是为了强调”深度“在理论上重要性。原来使用BP来训练,信号是逐层更新的,当层次增加后,原有的反馈信号就变得很弱,所以往往只使用一层。当网络层次增加后,我们可以使用更复杂拓扑网络结构去训练一些奇奇怪怪的东西。

  3. 其实没啥区别,深度网络就是神经网络。不正式地说,单讲神经网络的时候常常特指BP算法;而深度学习指代的是一系列训练深层神经网络的算法。

  虽然两者结构相似(或者说一样),但NN即便有BP,在深度大的情况下训练非常非常慢,以至于没法实用。而且可能面临梯度消失,以至于没法继续train下去。

  深度学习的结构之一是NN的递归,把一个NN的结果作为另一个NN的输入,分段分别搞。而且深度学习大量用GPU做训练,靠硬件解决一部分training速度慢的问题。而真正说深度学习的部分,就是它与NN区别的部分。或者说,NN是深度学习的工具(之一)。

  “神经网络”相对“人工智能”是一个相对狭隘的领域。“人工智能”的3个基本学派所谓“符号主义“、”行为主义“,”连接主义“,”神经网络“只是连接主义派的代表之作,也就是说只是人工智能的冰山一角而已。

  1. 必须感兴趣,必须感兴趣,必须感兴趣(重要的线遍) 。认可这门科学,认识到进入这个领域你将不再是一个机械的coder,而是一个有更高追求的研究和实践者。保持学习热情,接下来什么方法入门才有意义。

  2. 人工智能本身是一门复杂性科学。复杂性科学意味着它是一个多学科综合产物,范围相当之广。我觉得必须具备的几个基础是 数学、计算机基础(算法 数据结构)、一些语言和逻辑学基础。数学我觉得熟练掌握大学里面的一些工科数学就可以,主要是矩阵、概率论;计算机基础主要是基本的编程能力,算的法解读能力;语言和逻辑学的基础主要对NLP(自然语言处理)和符号计算这块比较重要。题主说看到其中有些数学就想哭了,别哭!万物一理,世界的本质是简单的,要在理解的基础上去对待数学。比如,你看到BP神经网络的反向传播训练算法,一堆公式就想自挂东南枝了,打住!其实就是在网络权重张成的空间上对误差函数做梯度下降(当看到这部分回头好好想想我说的这句话),梯度下降找到权重极小值,网络就训练好了,没那么复杂的,要理解。

  3. 这个领域如果很宽泛的学习往往一无所获很迷茫。书本上只告诉你基本原理,自己也自以为懂了,其实不是的。这时候“神经网络”不失为一个很好的切入点,神经网络里面的前馈网络基本就是一种回归模型的变种,在很多实战场合做分类预测效果很好;反馈网络里面包含了一些有趣的系统动力学特性,其中的数学也是相当漂亮,Hopfield网络的自联想、玻尔兹曼机的能量钳制(多层玻尔兹曼就演变成深度学习模型了)都很有吸引力。所以,我建议你学习人工智能就从学习神经网络开始吧,虽然目前的神经网络模型距离人类的神经网络还差十万八千里,但是这里是能激发你学习热情的地方

  4. 好了,上面说了一堆然并卵,讲讲具体该干点啥。实践出真知,不写程序跑跑几个神经网络,是不会真正领悟其中精髓的。书看完之后,找一些算法包实践其中的算法,MATLAB就把神经网络工具箱的例子起码运行一遍,Python的话也有很多包,找测试数据,自己编代码试验。如果能在你的工作项目中用到一点神经网络,那就更NB了,自豪感油然而生,接下来不多说了,到这里你已经入门了!

  边做边学,我就是这么入门的。学HMM的时候就去翻线性代数的马尔科夫矩阵和特征值这一节来看。

  3. 申请个学术文献库的账号,前人总结的结论就在那里,文章质量要好于行业网站转载的。

  4. 选好研究方向,以神经网络为例,图像优先学CNN(就是上面 @李济深 所说的卷积神经网络),NLP方面优先学RNN和LSTM。

  其实,我还想说,计算机之外的行业经验才是最重要的,额……,也觉得人工智能这个词被滥用了

  神经网络最重要的用途是分类,为了让大家对分类有个直观的认识,咱们先看几个例子:

  垃圾邮件识别:现在有一封电子邮件,把出现在里面的所有词汇提取出来,送进一个机器里,机器需要判断这封邮件是否是垃圾邮件。

  疾病判断:病人到医院去做了一大堆肝功、尿检测验,把测验结果送进一个机器里,机器需要判断这个病人是否得病,得的什么病。

  猫狗分类:有一大堆猫、狗照片,把每一张照片送进一个机器里,机器需要判断这幅照片里的东西是猫还是狗。

  分类器的输入是一个数值向量,叫做特征(向量)。在第一个例子里,分类器的输入是一堆0、1值,表示字典里的每一个词是否在邮件中出现,比如向量(1,1,0,0,0)就表示这封邮件里只出现了两个词abandon和abnormal;第二个例子里,分类器的输入是一堆化验指标;第三个例子里,分类器的输入是照片,假如每一张照片都是320*240像素的红绿蓝三通道彩色照片,那么分类器的输入就是一个长度为320*240*3=230400的向量。

  分类器的输出也是数值。第一个例子中,输出1表示邮件是垃圾邮件,输出0则说明邮件是正常邮件;第二个例子中,输出0表示健康,输出1表示有甲肝,输出2表示有乙肝,输出3表示有饼干等等;第三个例子中,输出0表示图片中是狗,输出1表示是猫。

  分类器的目标就是让正确分类的比例尽可能高。一般我们需要首先收集一些样本,人为标记上正确分类结果,然后用这些标记好的数据训练分类器,训练好的分类器就可以在新来的特征向量上工作了。

  咱们假设分类器的输入是通过某种途径获得的两个值,输出是0和1,比如分别代表猫和狗。现在有一些样本:

  大家想想,最简单地把这两组特征向量分开的方法是啥?当然是在两组数据中间画一条竖直线,直线左边是狗,右边是猫,分类器就完成了。以后来了新的向量,凡是落在直线左边的都是狗,落在右边的都是猫。

  一条直线把平面一分为二,一个平面把三维空间一分为二,一个n-1维超平面把n维空间一分为二,两边分属不同的两类,这种分类器就叫做神经元。

  大家都知道平面上的直线方程是,等式左边大于零和小于零分别表示点在直线的一侧还是另一侧,把这个式子推广到n维空间里,直线的高维形式称为超平面,它的方程是:

  神经元就是当h大于0时输出1,h小于0时输出0这么一个模型,它的实质就是把特征空间一切两半,认为两瓣分别属两个类。你恐怕再也想不到比这更简单的分类器了,它是McCulloch和Pitts在1943年想出来了。

  这个模型有点像人脑中的神经元:从多个感受器接受电信号,进行处理(加权相加再偏移一点,即判断输入是否在某条直线的一侧),发出电信号(在正确的那侧发出1,否则不发信号,可以认为是发出0),这就是它叫神经元的原因。

  当然,上面那幅图我们是开了上帝视角才知道“一条竖直线能分开两类”,在实际训练神经元时,我们并不知道特征是怎么抱团的。神经元模型的一种学习方法称为Hebb算法:

  先随机选一条直线/平面/超平面,然后把样本一个个拿过来,如果这条直线分错了,说明这个点分错边了,就稍微把直线移动一点,让它靠近这个样本,争取跨过这个样本,让它跑到直线正确的一侧;如果直线分对了,它就暂时停下不动。因此训练神经元的过程就是这条直线不断在跳舞,最终跳到两个类之间的竖直线. 神经网络

  MP神经元有几个显著缺点。首先它把直线,这东西不可微,不利于数学分析。人们用一个和0-1阶跃函数类似但是更平滑的函数Sigmoid函数来代替它(Sigmoid函数自带一个尺度参数,可以控制神经元对离超平面距离不同的点的响应,这里忽略它),从此神经网络的训练就可以用梯度下降法来构造了,这就是有名的反向传播算法。

  神经元的另一个缺点是:它只能切一刀!你给我说说一刀怎么能把下面这两类分开吧。

  解决办法是多层神经网络,底层神经元的输出是高层神经元的输入。我们可以在中间横着砍一刀,竖着砍一刀,然后把左上和右下的部分合在一起,与右上的左下部分分开;也可以围着左上角的边沿砍10刀把这一部分先挖出来,然后和右下角合并。

  每砍一刀,其实就是使用了一个神经元,把不同砍下的半平面做交、并等运算,就是把这些神经元的输出当作输入,后面再连接一个神经元。这个例子中特征的形状称为异或,这种情况一个神经元搞不定,但是两层神经元就能正确对其进行分类。

  只要你能砍足够多刀,把结果拼在一起,什么奇怪形状的边界神经网络都能够表示,所以说神经网络在理论上可以表示很复杂的函数/空间分布。但是真实的神经网络是否能摆动到正确的位置还要看网络初始值设置、样本容量和分布。

  神经网络神奇的地方在于它的每一个组件非常简单——把空间切一刀+某种激活函数(0-1阶跃、sigmoid、max-pooling),但是可以一层一层级联。输入向量连到许多神经元上,这些神经元的输出又连到一堆神经元上,这一过程可以重复很多次。这和人脑中的神经元很相似:每一个神经元都有一些神经元作为其输入,又是另一些神经元的输入,数值向量就像是电信号,在不同神经元之间传导,每一个神经元只有满足了某种条件才会发射信号到下一层神经元。当然,人脑比神经网络模型复杂很多:人工神经网络一般不存在环状结构;人脑神经元的电信号不仅有强弱,还有时间缓急之分,就像莫尔斯电码,在人工神经网络里没有这种复杂的信号模式。

  神经网络的训练依靠反向传播算法:最开始输入层输入特征向量,网络层层计算获得输出,输出层发现输出和正确的类号不一样,这时它就让最后一层神经元进行参数调整,最后一层神经元不仅自己调整参数,还会勒令连接它的倒数第二层神经元调整,层层往回退着调整。经过调整的网络会在样本上继续测试,如果输出还是老分错,继续来一轮回退调整,直到网络输出满意为止。这很像中国的文艺体制,武媚娘传奇剧组就是网络中的一个神经元,最近刚刚调整了参数。

  我们不禁要想了,假如我们的这个网络有10层神经元,第8层第2015个神经元,它有什么含义呢?我们知道它把第七层的一大堆神经元的输出作为输入,第七层的神经元又是以第六层的一大堆神经元做为输入,那么这个特殊第八层的神经元,它会不会代表了某种抽象的概念?

  就好比你的大脑里有一大堆负责处理声音、视觉、触觉信号的神经元,它们对于不同的信息会发出不同的信号,那么会不会有这么一个神经元(或者神经元小集团),它收集这些信号,分析其是否符合某个抽象的概念,和其他负责更具体和更抽象概念的神经元进行交互。

  2012年多伦多大学的Krizhevsky等人构造了一个超大型卷积神经网络

  把这个网络中某些神经元挑出来,把在其上响应特别大的那些输入图像放在一起,看它们有什么共同点。他们发现中间层的神经元响应了某些十分抽象的特征。

  这里面的概念并不是整个网络的输出,是网络中间层神经元的偏好,它们为后面的神经元服务。虽然每一个神经元都傻不拉几的(只会切一刀),但是65万个神经元能学到的东西还真是深邃呢。

  垃圾邮件识别:现在有一封电子邮件,把出现在里面的所有词汇提取出来,送进一个机器里,机器需要判断这封邮件是否是垃圾邮件。

  疾病判断:病人到医院去做了一大堆肝功、尿检测验,把测验结果送进一个机器里,机器需要判断这个病人是否得病,得的什么病。

  猫狗分类:有一大堆猫、狗照片,把每一张照片送进一个机器里,机器需要判断这幅照片里的东西是猫还是狗。

  分类器的输入是一个数值向量,叫做特征(向量)。在第一个例子里,分类器的输入是一堆0、1值,表示字典里的每一个词是否在邮件中出现,比如向量(1,1,0,0,0)就表示这封邮件里只出现了两个词abandon和abnormal;第二个例子里,分类器的输入是一堆化验指标;第三个例子里,分类器的输入是照片,假如每一张照片都是320*240像素的红绿蓝三通道彩色照片,那么分类器的输入就是一个长度为320*240*3=230400的向量。

  分类器的输出也是数值。第一个例子中,输出1表示邮件是垃圾邮件,输出0则说明邮件是正常邮件;第二个例子中,输出0表示健康,输出1表示有甲肝,输出2表示有乙肝,输出3表示有饼干等等;第三个例子中,输出0表示图片中是狗,输出1表示是猫。

  分类器的目标就是让正确分类的比例尽可能高。一般我们需要首先收集一些样本,人为标记上正确分类结果,然后用这些标记好的数据训练分类器,训练好的分类器就可以在新来的特征向量上工作了。

  大家想想,最简单地把这两组特征向量分开的方法是啥?当然是在两组数据中间画一条竖直线,直线左边是狗,右边是猫,分类器就完成了。以后来了新的向量,凡是落在直线左边的都是狗,落在右边的都是猫。

  一条直线把平面一分为二,一个平面把三维空间一分为二,一个n-1维超平面把n维空间一分为二,两边分属不同的两类,这种分类器就叫做神经元。

  大家都知道平面上的直线方程是,等式左边大于零和小于零分别表示点在直线的一侧还是另一侧,把这个式子推广到n维空间里,直线的高维形式称为超平面,它的方程是:

  神经元就是当h大于0时输出1,h小于0时输出0这么一个模型,它的实质就是把特征空间一切两半,认为两瓣分别属两个类。你恐怕再也想不到比这更简单的分类器了,它是McCulloch和Pitts在1943年想出来了。

  这个模型有点像人脑中的神经元:从多个感受器接受电信号,进行处理(加权相加再偏移一点,即判断输入是否在某条直线的一侧),发出电信号(在正确的那侧发出1,否则不发信号,可以认为是发出0),这就是它叫神经元的原因。

  当然,上面那幅图我们是开了上帝视角才知道“一条竖直线能分开两类”,在实际训练神经元时,我们并不知道特征是怎么抱团的。神经元模型的一种学习方法称为Hebb算法:

  先随机选一条直线/平面/超平面,然后把样本一个个拿过来,如果这条直线分错了,说明这个点分错边了,就稍微把直线移动一点,让它靠近这个样本,争取跨过这个样本,让它跑到直线正确的一侧;如果直线分对了,它就暂时停下不动。因此训练神经元的过程就是这条直线不断在跳舞,最终跳到两个类之间的竖直线. 神经网络

  MP神经元有几个显著缺点。首先它把直线,这东西不可微,不利于数学分析。人们用一个和0-1阶跃函数类似但是更平滑的函数Sigmoid函数来代替它(Sigmoid函数自带一个尺度参数,可以控制神经元对离超平面距离不同的点的响应,这里忽略它),从此神经网络的训练就可以用梯度下降法来构造了,这就是有名的反向传播算法。

  解决办法是多层神经网络,底层神经元的输出是高层神经元的输入。我们可以在中间横着砍一刀,竖着砍一刀,然后把左上和右下的部分合在一起,与右上的左下部分分开;也可以围着左上角的边沿砍10刀把这一部分先挖出来,然后和右下角合并。

  每砍一刀,其实就是使用了一个神经元,把不同砍下的半平面做交、并等运算,就是把这些神经元的输出当作输入,后面再连接一个神经元。这个例子中特征的形状称为异或,这种情况一个神经元搞不定,但是两层神经元就能正确对其进行分类。

  只要你能砍足够多刀,把结果拼在一起,什么奇怪形状的边界神经网络都能够表示,所以说神经网络在理论上可以表示很复杂的函数/空间分布。但是真实的神经网络是否能摆动到正确的位置还要看网络初始值设置、样本容量和分布。

  神经网络神奇的地方在于它的每一个组件非常简单——把空间切一刀+某种激活函数(0-1阶跃、sigmoid、max-pooling),但是可以一层一层级联。输入向量连到许多神经元上,这些神经元的输出又连到一堆神经元上,这一过程可以重复很多次。这和人脑中的神经元很相似:每一个神经元都有一些神经元作为其输入,又是另一些神经元的输入,数值向量就像是电信号,在不同神经元之间传导,每一个神经元只有满足了某种条件才会发射信号到下一层神经元。当然,人脑比神经网络模型复杂很多:人工神经网络一般不存在环状结构;人脑神经元的电信号不仅有强弱,还有时间缓急之分,就像莫尔斯电码,在人工神经网络里没有这种复杂的信号模式。

  神经网络的训练依靠反向传播算法:最开始输入层输入特征向量,网络层层计算获得输出,输出层发现输出和正确的类号不一样,这时它就让最后一层神经元进行参数调整,最后一层神经元不仅自己调整参数,还会勒令连接它的倒数第二层神经元调整,层层往回退着调整。经过调整的网络会在样本上继续测试,如果输出还是老分错,继续来一轮回退调整,直到网络输出满意为止。这很像中国的文艺体制,武媚娘传奇剧组就是网络中的一个神经元,最近刚刚调整了参数。

  我们不禁要想了,假如我们的这个网络有10层神经元,第8层第2015个神经元,它有什么含义呢?我们知道它把第七层的一大堆神经元的输出作为输入,第七层的神经元又是以第六层的一大堆神经元做为输入,那么这个特殊第八层的神经元,它会不会代表了某种抽象的概念?

  就好比你的大脑里有一大堆负责处理声音、视觉、触觉信号的神经元,它们对于不同的信息会发出不同的信号,那么会不会有这么一个神经元(或者神经元小集团),它收集这些信号,分析其是否符合某个抽象的概念,和其他负责更具体和更抽象概念的神经元进行交互。

  2012年多伦多大学的Krizhevsky等人构造了一个超大型卷积神经网络

  把这个网络中某些神经元挑出来,把在其上响应特别大的那些输入图像放在一起,看它们有什么共同点。他们发现中间层的神经元响应了某些十分抽象的特征。

  这里面的概念并不是整个网络的输出,是网络中间层神经元的偏好,它们为后面的神经元服务。虽然每一个神经元都傻不拉几的(只会切一刀),但是65万个神经元能学到的东西还真是深邃呢。

  中国科学院计算技术研究所陈云霁、陈天石课题组提出的深度学习处理器指令集DianNaoYu被计算机体系结构领域顶级国际会议ISCA2016(InternationalSymposiumonComputerArchitecture)所接收,其评分排名所有近300篇投稿的第一名。模拟实验表明,采用DianNaoYu指令集的寒武纪深度学习处理器相对于x86指令集的CPU有两个数量级的性能提升。

  DianNao是寒武纪系列的第一个原型处理器结构,包含一个处理器核,主频为0.98GHz,峰值性能达每秒4520亿次神经网络基本运算,65nm工艺下功耗为0.485W,面积3.02mm2。在若干代表性神经网络上的实验结果表明,DianNao的平均性能超过主流CPU核的100倍,但是面积和功耗仅为1/10,效能提升可达三个数量级;DianNao的平均性能与主流GPGPU相当,但面积和功耗仅为主流GPGPU百分之一量级。

  其实我本来是挺想把神经网络处理器叫NNP(Neural Network Processor)的,但陈老师他们把它起了名字叫DianNao(电脑)。这里面还有一段渊源:

  本来陈老师课题组想给这个芯片起个electric brain之类的名字的,后来与陈老师课题组合作的一位法国学者建议他们给成果起个中文名字,这样对于法国方面来说是外文,显得比较“洋气”。

  要说效能的话,我们可以摆一点数据:1GHz, 0.485W@65nm, 通用CPU 1/10的面积,100的性能。但是我觉得这个数据放在这里并没有太大的意义。首先,DianNao系列处理器现在并没有完全进入商业生产阶段,芯片制程方面的优化应该还有很大的余地。其次,他是神经网络处理器,算的东西跟通用CPU不一样。发明有先后,术业有专攻,你让GPU跟CPU去比浮点计算能力意义也不大。

  不从上面数据的角度看,我认为利用DianNao来做神经网络的运算,主要的优点有两个:

  这里任意规模神经网络很值得我们关注一下,这也是他们的处理器技术关键点所在。传统的神经网络芯片的做法是把硬件运算单元和算法神经元一一对应起来,这样一来只能对一个固定的神经网络进行计算。他们采用了对小尺度神经网络分时复用的方法来支持任意规模的神经网络,这个做法很厉害,极大地提高了芯片对于不同算法的能力。

  从08年到16年的这八年里,陈老师课题组针对神经网络处理器做了一系列的出色研究:

  DianNao(电脑):ASPLOS14最佳论文 亚洲首获计算机硬件A类会议最佳论文

  针对这个芯片,陈老师课题组还成立了公司,申请了一系列专利保护,目前也在和华为三星等一系列企业洽谈合作。相信不久将来我们就可以在移动设备上看见DianNao的应用了。

  一年前看过dadiannao那文章。当时看完文章后,一拍大腿,我怎么没想到装这个逼呢。

  计算上特点就是实现了一个64*64,64输入64输出,的全连接网络。实现是用了16个cell,每个cell是16×16。(64×64=16×16×16)。每个cell的ASIC计算没有什么新奇,就是一排乘法,一排加法,一排插值。

  ×其实我不是完全理解文章中那些64×64的weight不是一样需要传到off-chip的中央DRAM上来?怎么降低这个功耗?把这64×64都放在同一个page里面?忘了文章里面在experiment上是怎么描述这块的功耗的。

  有人要和CPU比?当然不公平,也没有太大意义。但是人家在paper里面吹吹还是放过别人吧。

  和GPU比?我觉得最大区别是GPU的版本很少memory本地化。本地化distributed localization(比如dadiannao)的缺陷在于基本固定死了网络的拓扑(64×64),这点上来说确实通用性损失很大。文章肯定可以argue说大网络,比如200*200:1)它可以复用很多个64*64,但是这样效率就会降到接近于GPU了,因为localization的gain就变得很小了。2)它可以argue说那你就需要重新tape-out一个200*200的chip。对于2),其实我一直看好用FPGA而不是ASIC。

  所以它不敢随便拿个github上的 应用来跑。都是针对它文章优化(挑选)过的。

  我觉得未来来说。大型应用还是会需要这种DaDianNao的。比如他们合作的法国inria组老大就刚去了Google。

  计算机,手机芯片的时代要过去了,将来是 AI芯片,Robot芯片了。 神经网络芯片将为Robot芯片,AI芯片作为基础,AI芯片也为量子计算机芯片作为基础也为智能家居中心作为基础,智能城市中心作为基础。比如无人机中心塔,Robot集结中心,自动驾驶车,无人车中心,工业4.0的数据中心芯片,已经涉及到更多更广的各行各业的领域,医院,学校,工厂,警察,物流,电商,交通,建筑,工程,生物,医药,研究院,等等。一切需要大量数据的位置都依赖于持续有更快处理能力,更小体积,更便宜的芯片。

  不过这些都是物理芯片,生物芯片还在科幻世界里面呢。biocpu, biokernel

  目前看独当一面的应用范围比较窄,卖IP是个不错的主意。最近 Google Tensorflow 做了一个非常直观的神经网络 playground。不夸张地说,现在每个人都可以在自己的浏览器里面直接“玩深度神经网络”了。什么都不用说,自己玩玩就明白。

  ReLU至少三层隐藏层每层神经元数最大,我可以把test loss降到0.01左右,层数加到最大学习速率最低的线几又玩了一会儿,学螺旋形的数据分布最重要的是就是至少要用三层隐藏层,隐藏层的节点数也要尽量多。其他用默认设置都可以……如果不明白里面的 ReLU,L1 等等是什么,没关系,在搜索引擎查一下都可以查到答案。代码在 Github 上,有兴趣的朋友可以去给它加 Dropout,Convolution,Pooling 之类。

  你需要挑选芒果,你不知道什么样的芒果最好吃,所以你就尝遍了所有的芒果,然后自己总结出个大深黄色的比较好吃,以后再去买的时候,就可以直接挑选这种。

  那什么是机器学习呢,就是你让机器“尝”一遍所有芒果,当然,也假设它知道哪些好吃,让机器去总结一套规律(个大深黄色),这就是机器学习。具体操作,就是你描述给机器每一个芒果的特征(颜色,大小,软硬……),描述给机器其输出(味道如何,是否好吃),剩下的就等机器去学习出一套规则。

  等等,那机器是怎么学习到这个规则(个大深黄色的好吃)的?没错,是通过机器学习算法。而题主所问的神经网络,恰好就是一种机器学习算法!近些年来,由于深度学习概念的兴起,神经网络又成为了机器学习领域最热门的研究方法。

  我相信当明确神经网络是一种机器学习算法之后,就可以很轻易的给一个外行讲清楚神经网络到底是用来做什么的。可是神经网络为什么可以完成这个功能呢?

  神经网络就像一个刚开始学习东西的小孩子,开始认东西,作为一个大人(监督者),第一天,他看见一只京巴狗,你告诉他这是狗;第二天他看见一只波斯猫,他开心地说,这是狗,纠正他,这是猫;第三天,他看见一只蝴蝶犬,他又迷惑了,你告诉他这是狗……直到有一天,他可以分清任何一只猫或者狗。

  当然了,也可以把神经网络当作一个黑箱子,只要告诉它输入,输出,他可以学到输入与输出的函数关系。神经网络的理论基础之一是三层的神经网络可以逼近任意的函数,所以理论上,只要数据量够大,“箱子容量”够大(神经元数量),神经网络就可以学到你要的东西。

  选修了一门《人工神经网络》课程,老师讲得云山雾罩,我们听得如梦似幻。虽然最后也考了80多分,但同学们相互间吐槽,都觉得这门课把人给学神经了!别人怎么样我不知道,我反正是稀里糊涂的,没弄清楚概念。

  今年,审读吴军老师的《数学之美》第二版,读到这两段话时,我笑了,原来我并不孤独——

  【 有不少专业术语乍一听很唬人,“人工神经网络”就属于这一类,至少我第一次听到这个词就被唬住了。你想啊,在大家的印象当中,人们对人脑的结构都还根本没有搞清楚,这就冒出来一个“人工的”神经网络,似乎是在用计算机来模拟人脑。想到人脑的结构那么复杂,大家的第一反应一定是人工神经网络肯定非常高深。如果我们有幸遇到一个好心同时又善于表达的科学家或教授,他愿意花一两个小时的时间,深入浅出地把人工神经网络的底细告诉你,你便会发现,“哦,原来是这么回事”。如果我们不幸遇到一个爱卖弄的人,他会很郑重地告诉你“我在使用人工神经网络”或者“我研究的课题是人工神经网络”,然后就没有下文了,如此,你除了对他肃然起敬外,不由得可能还会感到自卑。当然还有好心却不善于表达的人试图将这个概念给你讲清楚,但是他用了一些更难懂的名词,讲得云山雾罩,最后你发现听他讲了好几个小时,结果是更加糊涂了,你除了浪费时间外一无所获,于是你得出一个结论:反正我这辈子不需要搞懂它了。

  大家可别以为我是在说笑话,这些都是我的亲身经历。首先,我没有遇到过一两小时给我讲懂的好心人,其次我遇到了一批在我前面卖弄的人,作为年轻人,总是希望把自己不明白的东西搞懂,于是我决定去旁听一门课。不过,我听了大约两三次便不再去了,因为除了浪费时间,似乎我并没得到什么收获。好在我自己做研究暂时用不到它,也就不再关心了。后来在美国读博士期间,我喜欢在睡觉前躺着看书,没事儿就捧着几本关于人工神经网络的教科书在床上看,居然也看懂了。然后再用它做了两三个项目,算是学会了。到这时回过头来再看“人工神经网络”,其实并不复杂,入门也不难,只是我走了弯路。——吴军】

  君子报仇,三十年不晚。大学毕业三十年后,吴老师在数学之美 (第二版) 里,单独用一章讲Google大脑和人工神经网络,一抒当年的郁闷,也顺便帮我解了气:)

  Good! 通俗易懂。 但是我觉得还只是假懂,。真的要有直观认识,还是要自己建立一个分类器,跑一下数据体会更深。这些还都是要基础的。你想让神经网络(简称神经)辨认猫和狗(算法类型为分类)。于是给它看一百万只狗,和一百万只猫,每只狗的脑门上都贴着“我是狗”的字条,猫则贴“我是猫”(使用标注数据)。神经同时看五十万只禽兽,分四批看,并作出判断(实现时用并行处理,使用mini-batch)。每个看到的猫或狗,如果判断错了,就修正自己的判断标准(优化)。每看完这二百万只禽兽算一轮,每学十轮就看一些之前完全没见过的猫猫狗狗做出判断(推广性测试)。当神经刻苦学习猫狗知识的时候,你正在睡觉,一觉睡醒,发现神经一小时前判断猫和狗比较准(次最优解),现在学太多反而判断不准了(过拟合),于是你让神经使用一小时前的标准(防止过拟合技巧之early-stopping)。这样训练过程就结束了。

  通常来说,现在解决不确定优化问题。都会使用随机模拟、神经元网络和遗传算法联立的混合智能算法来求解。比如使目标变量的数学期望达到最优值的期望值模型,概率最优的可靠度模型(机会约束),还有我校Liu老师常提的随即相关机会,就是你前几个优化组合一下。

  其中随机模拟是一个不确定问题不可少的输入,遗传算法用来调神经网络的参数,神经网络用来逼近现实。互相配合,解决问题。在我看来是及其简单粗暴,不得已而为之的。只是用它们最干脆的思路,优化了最粗暴的方法。

  比方说,你能写出一个事物期望值的显示表达,那么对参变量求导就可以找到极大值点。当然有的时候不是很方便求出全局导数,那么梯度递降、可行方向等规划学方法和数值方法也大有可为。离散的最优值问题在凸区域上的解也是很方便就可以求出的,此所谓整数优化。

  这样一看这个混合算法真是毫无必要呀,那我们为什么还要用它们呢?原因是因为这是通用方法。

  图中有圈圈的是我们想区分的训练集。这个时候我们需要找一个合适的评价使得他们分开。最方便的是取机器学习里常用的gauss核函数(数值随距离中心点距离单调递减的光滑函数RBF),那么有九个参数。(均值协方差)

  优化目标是对几千个数聚类之后聚类结果中训练集被识别的个数的两倍与分出的非训练集的元素的个数的差值。我们知道这个值兼顾一二类错误的重要性,又是一个明确的目标,当然它越大越好。这个时候常规的优化算法就很难找出这九个参数的最优值了。

  毕竟经过一次聚类算法之后,中心点的位置是迭代的结果而完全不确定的。如果能在聚类之前就知道中心点的位置,那么还聚类干嘛呢?这个时候聚类这个操作就像黑盒子,是传统优化问题极度依赖,却表达不出的优化过程。输入是几千个点,输出只是我之前说的评价函数,参数有九个,这时候不太好把他们看做神经元,因为我并没有显式的给出其激活函数,或者这里的激活函数实际上是相互耦合的,或者我没有将每一个输入都看做是均等的,所以不太好做一个典型的例子。

  我选取6个染色体(开始是对训练集主成分分析的参数加上白噪声),迭代一万次之后,其9个参数依旧没有收敛。而且对于参数极度敏感,gauss核的均值稍做变化,聚类结果可能就会均分整个样本集,从而导致失败。

  在这种情况下,我觉得,可能没有比遗传算法更好的调参数方法了。虽然其毫无道理,但由于其根基是遍历,只是加了稍许随机性,合理的选择解,来使得收敛变快。所以不失为一个好方法。也许有人分析其收敛速度,但我觉得并不太必要。因为它并不好看。当我们开始考虑用遍历求解一个问题的时候,我猜我们对其难度,对其解的形式,对其收敛性也不会有太好的判断。这样我们评估遗传算法的复杂度时,肯定也是要因地制宜的。有些绝大部分信息我们都知道的问题,也许遗传算法也不慢;有些从头到尾都在拍脑袋的问题,遗传算法也能用。

  我们知道一些输入和输出的数据,想找出其中的数量关系。但又不是那么容易看出来,比如我们不像开普勒那样一眼就能看出行星运动时半径的立方和时间平方成反比。有时我们也不太在意具体的显式表达,这个时候我们就说:你们看好了,这是一张已经训练好的神经网,你想要知道你想求的函数值,那么你把输入丢进去,然后把输出抱走就好。虽然有的时候【绝大部分时候】,单论神经网络,我们是可以把我们想求得函数展开成为显式表达的,但是太难看了我们就不这么做。

  当然也许你会说这不就是拟合吗? Indeed . 一般来说我们用来评价神经网络的函数也就是用和拟合一样的最小二乘和。神经网络的参数(权重)也就可以看做一般回归分析的参数。好,我们来看一下一般的线性回归。,一共两个参数。我们把他们调到最优,可惜还是只有0.3,不work。这个时候我们就想,会不会是呢?一共三个参数,到了0.5,然后你心里想,那我把原函数泰勒展开:-D,假设原函数足够光滑,我们还是可以得到一个足够好的解的。

  那么假设我们有一张神经网络,有6个输入神经元,15个隐层神经元,3个输出神经元,我们大概有多少个参数呢?【这里跳过了神经网络中权重和下一层的关系描述,包括激活函数,因为我觉得这毕竟不是神经网络的教材】

  每个隐层都有一个linear的偏差,还有对应六个输入的权重,这一层有105个参数,然后三个输出神经元每个对16个权重参数,共有48个参数,加起来一共153个参数,( ⊙ o ⊙ ),你用153阶泰勒展开逼近函数!老师,他作弊QAQ!【当然未必全都要变化

  道理就是这个道理,简单粗暴。接下来就是些技巧了,借着计算机的东风,这些本来没什么内涵的方法都放出了其绚丽的光芒。把朴素的枚举法发挥到了极致。至于之后的选取光滑激活函数,比如常用的sigmoid,好做梯度递降,或者直接简单粗暴的按照下图方法进行训练网络,都是可以的。

  妈妈再也不用担心我不会训练神经网络了,【手动再见】,激活函数怎么选貌似不是很要紧呀。【你再想想是这样吗?】

  为了满足某些强迫症,这里给出一个定理:具有一个或多个隐层的前向神经元网络可以以任意精度毕竟任意连续函数。[手动不规范引用 2016]再看看我之前和泰勒展开的比较,想想魏尔施特拉斯定理,是不是也觉得可以接受了呢?

  至于神经网络被一些人鼓吹的神奇特效,比如这里说的可以减小白噪声。我只能表示我还需要学习一个。毕竟我没有试过用153个参数去进行回归分析,能不能消除白噪声呀~

  对了,这里还要提一句,一般用153个参数回归分析,总要用154个输入对吧~

  【不过这倒并不是黑点,只是说有些人乱用这些现代学习方法,拿来批判统计学;现代的这些学习方法,都是在大数据科学的要求下应运而生,也不是说其粗暴就是坏。

http://essexappliance.net/gainianjiedian/156.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有