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中新建虚拟机,自定义 ...
随机推荐
- AderTemplate
http://www.cnblogs.com/kwklover/archive/2007/07/12/815509.html 概述 AderTemplate是一个小型的模板引擎.无论是拿来直接使用还是 ...
- python bottle学习(三)动态路由配置(通配符)
from bottle import (run, route, get, post, default_app, Bottle) @route('/', method='GET') @route('/i ...
- iOS 导航栏rgb值与设置的有差异
转:http://b2cloud.com.au/how-to-guides/bar-color-calculator-for-ios7-and-ios8/ 计算:http://htmlpreview. ...
- Debug技巧:条件断点和远程Debug
一.断点: 1.条件断点 本以为条件断点很难,其实就这样. 二.远程Debug 1.首先看服务器是不是在Debug模式下工作 不是则进行(tomcat/bin/catalina.sh)配置. -Xde ...
- Downgrading an Exchange 2010 Server(Exchange降级)
Downgrading an Exchange 2010 Server Microsoft Exchange Server 2010 comes in two versions: enterprise ...
- AVCaptureInput和AVCaptureOutput子类
1.AVCaptureInput AVCaptureDeviceInput:用于从AVCaptureDevice对象捕获数据. AVCaptureScreenInput:从macOS屏幕上录制的一种捕 ...
- Spring Data HelloWorld(三)
在 Spring Data 环境搭建(二) 的基础之上 我们改动 http://www.cnblogs.com/fzng/p/7253068.html 定义个一个接口 继承Repository类 ...
- 面试题15:链表中倒数第K个结点
输入一个链表,输出该链表中倒数第k个结点. 方法1: 这个解法要循环两次链表 /* public class ListNode { int val; ListNode next = null; Lis ...
- xml与java对象转换 -- XStreamAlias
@XStreamAlias使用 一. 特点: 简化的API; 无映射文件; 高性能,低内存占用; 整洁的XML; 不需要修改对象;支持内部私有字段,不需要setter/getter方法 提供序列化接口 ...
- elastic search远程测试
elastic search远程测试 推荐:elastic官方教程:https://www.elastic.co/guide/en/elasticsearch/reference/6.2/index. ...