AI理论学习笔记(一):深度学习的前世今生
AI理论学习笔记(一):深度学习的前世今生
大家还记得以深度学习技术为基础的电脑程序AlphaGo吗?这是人类历史中在某种意义的第一次机器打败人类的例子,其最大的魅力就是深度学习(Deep Learning)技术。
1、深度学习的前世
早在1969年,Minsky教授(MIT教授,人工智能研究的先驱者)就一直不太看好神经网络技术(即深度学习的前世),主要指出了神经网络技术的局限性,这某种程度上导致了神经网络的研究进入了将近二十年的低潮。
需要指出的是人工智能的研究基本上都是用大量的if-then规则定义的,即“自上而下”的思路;而人工神经网络(Artifical Neural Network)从来没有一个严格的定义,它最大的特点就是无限程度地模仿人类的大脑中的神经元之间传递信息、处理信息的模式,标志着“自下而上”的思路。
2、深度学习的基本模型
如下图所示,是深度学习的一个计算模型(典型的神经网络),可以明显看出其最大的特点就是模仿人类大脑处理信息的方式。该模型具备两大特征:一是每个神经元(彼此连接的节点)都通过某种特定的输入函数(即激励函数activation function)计算处理来自其他相邻神经元的加权输入值;二是神经元之间信息传递的强度,用加权值来定义,算法会不断的自我学习并且更新这个加权值。
当然,神经网络的计算模型依靠大量的数据来进行训练,这就需要以下几样东西:
成本函数(cost function):用来评估输入与输出的“靠谱度”,通俗说就是用来定量评估根据特定的输入值,计算出来的输出结果离正确的值还有多远,结果是不是靠谱;
学习的算法(learing algorithm):就是根据成本函数进行自学并纠正,以最快的速度找到神经元之间最优化的加权值。
虽然说神经网络希望无限逼近人脑处理数据的方法,但随着研究的不断变迁,其计算特点与传统的生物神经元之间的连接模型日趋渐远,但仍旧保留着最基本的共性:非线性、分布式、并行计算、自适应、自组织。
3、深度学习的今生
在深度学习经历的漫长的寒冬季节之后,一位叫做Hinton的学子理解的大脑记忆是:大脑对事物和概念的记忆,不是存储在某一个单一的地点,而是像全息照片一样分布式地存在于一个巨大的神经元的网络里。也就是说,当年表达一个概念时,不是用单个神经元一对一地存储定义,概念与神经元之间是多对多的关系,一个概念可以用多个神经元共同表达定义,同时一个神经元也可以参与多个不同概念的表达。
总而言之,分布式表征(Distributed Representation)是神经网络研究的一个核心思想。
1986年,Hinton在自然杂志上发表文章,第一次简洁地阐述了反向传播算法在神经网络模型上的应用。反向传播算法,通过在神经网络里增加了一个隐层(hidden layer),同时也解决了感知器无法解决异或门的难题。使用反向传播算法的神经网络在做诸如形状识别之类的简单工作时,效率比感知器大大提高了,此时神经网络的研究开始慢慢复苏。
1989年,Yann Lecun发表了“反向传播算法在手写邮政编码上的应用”的论文,他用美国邮政系统提供的近万个手写数字的样本来培训神经网络系统,培训好的系统在独立的测试样本中, 错误率只有 5%。随后,进一步运用一种叫做“卷积神经网络” (Convoluted Neural Networks) 的技术,开发出商业软件用于读取银行支票上的手写数字,这个支票识别系统在九十年代末占据了美国接近 20%的市场。
早在 1963年,Vapnik 就提出了 支持向量机 (Support Vector Machine) 的算法。支持向量机,是一种精巧的分类算法。除了基本的线性分类外,在数据样本线性不可分的时候,SVM 使用所谓 “核机制” (kernel trick) 的非线性映射算法,将线性不可分的样本转化到高维特征空间 (high-dimensional feature space),使其线性可分。SVM,作为一种分类算法,九十年代初开始,在图像和语音识别上找到了广泛的用途。在贝尔实验室的走廊上,Yann Lecun和 Vapnik 常常就 (深度) 神经网络和 SVM 两种技术的优缺点,展开热烈的讨论。Vapnik 的观点是:SVM,非常精巧地在 “容量调节” (Capacity Control) 上 选择一个合适的平衡点,而这是神经网络不擅长的。Yann Lecun的观点是:用有限的计算能力,解决高度复杂的问题,比“容量调节”更重要。支持向量机,虽然算法精巧,但本质就是一个双层神经网络系统。它的最大的局限性,在于其“核机制”的选择。当图像识别技术需要忽略一些噪音信号时,卷积神经网络的技术,计算效率就比 SVM 高的多。
4、实际应用中的难题
神经网络的计算,在实践中还有另外两个主要问题:
第一,算法经常停止于局部最优解,而不是全局最优解。这好比“只见树木,不见森林”;
第二,算法的训练,时间过长时,会出现过度拟合 (overfit),把噪音当做有效信号。
不管如何,时至今日,深度学习无疑已经成为最热的高新技术之一,也在众多实际应用中大显身手,是每一个AI领域的学者都必须掌握的“基本”技能。
AI理论学习笔记(一):深度学习的前世今生的更多相关文章
- 一张图看懂AI、机器学习和深度学习的区别
AI(人工智能)是未来,是科幻小说,是我们日常生活的一部分.所有论断都是正确的,只是要看你所谈到的AI到底是什么. 例如,当谷歌DeepMind开发的AlphaGo程序打败韩国职业围棋高手Lee Se ...
- 【AI in 美团】深度学习在OCR中的应用
AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技术应用于搜索.推荐.广告.风控.智能调度 ...
- AI安全初探——利用深度学习检测DNS隐蔽通道
AI安全初探——利用深度学习检测DNS隐蔽通道 目录 AI安全初探——利用深度学习检测DNS隐蔽通道 1.DNS 隐蔽通道简介 2. 算法前的准备工作——数据采集 3. 利用深度学习进行DNS隐蔽通道 ...
- 学习笔记之深度学习(Deep Learning)
深度学习 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0 深度学习(deep lea ...
- AI、机器学习、深度学习、神经网络
1.AI:人工智能(Artificial Intelligence) 2.机器学习:(Machine Learning, ML) 3.深度学习:Deep Learning 人工功能的实现是让机器自己学 ...
- 人工智能新手入门学习路线和学习资源合集(含AI综述/python/机器学习/深度学习/tensorflow)
[说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] 1. 分享个人对于人工智能领域的算法综述:如果你想开始学习算法,不妨先了解人工 ...
- AI小白必读:深度学习、迁移学习、强化学习别再傻傻分不清
摘要:诸多关于人工智能的流行词汇萦绕在我们耳边,比如深度学习 (Deep Learning).强化学习 (Reinforcement Learning).迁移学习 (Transfer Learning ...
- 【AI in 美团】深度学习在文本领域的应用
背景 近几年以深度学习技术为核心的人工智能得到广泛的关注,无论是学术界还是工业界,它们都把深度学习作为研究应用的焦点.而深度学习技术突飞猛进的发展离不开海量数据的积累.计算能力的提升和算法模型的改进. ...
- Vmvare + Ubuntu 16.04环境搭建 + 相关软件安装配置笔记【深度学习】
前言 由于学习与工作的需要,加上之前配置好的vmmachines都损坏了,我就重新弄一个ubuntu虚拟机,配置一下环境,给自己留个记录 1.文件 2.配置过程 1.在Vmware中新建虚拟机,自定义 ...
随机推荐
- 如何使用HTTP压缩优化服务器
鉴于互联网上的宽带有限,网络管理人员任何旨在加速接入速度的努力都是有价值的.其中的一个方法就是通过HTTP压缩技术实现接入速度的加速,它通过减少在服务器和客户端之间传输的数据量,显著地提高网站的性能. ...
- 160811、29 个你必须知道的 Linux 命令
虽然Linux发行版支持各种各样的饿GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快速的.Bash和 Linux Shell ...
- 『浅入深出』MySQL 中事务的实现
在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇文章中,我们将对事务的实现进行分析,尝 ...
- Spoken English Practice( let me just pull over(pull,give))
绿色:连读: 红色:略读: 蓝色:浊化: 橙色:弱读 下划线_为浊化 口语蜕变(2017/6/26) ...
- <2014 05 21> 互联网时代的C语言——Go
Go希望成为互联网时代的C语言. 多数系统级语言(包括Java和C#)的根本编程哲学来源于C++,将C++的面向对象进一步发扬光大.但是Go语言的设计者却有不同的看法,他们认为C++ 真的没啥好学的, ...
- gerrit添加appkey以及简单添加分支
最近团队开放用上gerrit版本项目管理工具,简单说一下appkey配置过程 首先是拿到gerrit分配的账户密码.然后进入到首页,假如是新搭建的应该是没有信息,我这里有一些提交的信息,然后找到右上角 ...
- app返回之前app焦点的操作方法
var hdWin,hdfocus: THandle; trdID: Cardinal; //获取前置app窗口句柄 hdWin := GetForegroundWindow;//FindWindow ...
- detectron安装+caffe2安装
detectron安装+caffe2安装 因为想跑一下facebook最近开源的detectron物体检测平台,所以安装caffe2+detectron 总结: 一定要好好看官方安装教程:https: ...
- [luogu4234]最小差值生成树
[luogu4234]最小差值生成树 luogu 从小到大枚举边,并连接,如果已连通就删掉路径上最小边 lct维护 \(ans=min(E_{max}-E_{min})\) #include<b ...
- Django的模型层(1)- 单表操作(下)
一.查询表记录 在学习查询表记录之前,先了解一下QuerySet,这是一种类似列表的数据类型,是由ORM创建的.我们学习查询表记录的方法时,一定要明确哪些方法返回了QuerySet类型,哪些方法返回m ...