当前位置: 首页 > news >正文

学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退

AI早期成就,相对朴素形式化环境,不要求世界知识。如IBM深蓝(Deep Blue)国际象棋系统,1997,击败世界冠军Garry Kasparov(Hsu,2002)。国际象棋,简单领域,64个位置,严格限制方式移动32个棋子。可由简短、完全形式化规则列表描述,容易事先准备。抽象、形式化,是人类最困难脑力任务,但计算机最容易。早期打败人类最好象棋选手,最近识别对象、语音任务达到人类平均水平。日常生活需要世界巨量知识,主观、直观,很难形式化表达。计算机智能需要获取同样知识。关键挑战,非形式化知识传给计算机。

世界知识形式化语言硬编码(hard code)。逻辑揄规则自动理解形式化语言声明。人工智能知识库(knowledge base)。著名项目Cyc(Lenat and Guha,1989),一个推断引擎,一个CycL语言描述声明数据库。声明由人类监督者输入。设计足够复杂形式化规则精确描述世界(Linde,1992)。

AI系统需自己获取知识。原始数据提取模式,机器学习(machine learning)。解决现实世界知识问题,作为主观决策。逻辑回归(logistic regression)决定是否建议剖腹产(Mor-Yosef et al.,1990)。朴素贝叶斯(naive Bayes)区分垃圾电子邮件。简单机器学习算法性能依赖给定数据表示(representation)。需要人工提供信息特征,不能影响特征定义方式。表示依赖。数据集合结构化、智能索引,搜索速度指数加快。表示选择影响机器学习算法性能。先提取合适特征集,提供给简单机器学习算法。

机器学习发掘表示本身,不仅把表示映射输出。表示学习(representation learning)。表示学习算法发现好特征集效果比人工高。表示学习算法典型例子,自编码器(autoencoder)。编码器(encoder)函数和解码器(decoder)函数组合。编码器函数将输入数据转换不同表示,解码器函数将新表示转换为原来形式。输入数据经过编码器、解码器尽可能多保留信息,新表示有好特性,自编码器训练目标。实现不同特性,设计不同形式自编码器。设计特征、学习特征算法,分离解释观察数据变差因素(factors of variation)。因素指代影响不同来源,乘性组合,不能直接观察的量,影响可观测的量。为观察数据提供有用简化解释或推断原因,以概念形式存在人类思维。数据概念、抽象,帮助了解数据丰富多样性。多个变差因素同时影响观察数据。需要理清变差因素,忽略不关心因素。

深度学习(deep learning),通过其他简单表示表达复杂表示,解决表示学习核心问题。简单概念构建复杂概念。计算机难以理解原始感观输入数据含义。复杂映射分解系列嵌套简单映射(每个由模型不同层描述)。输入展示在可见层(visible layer),能观察到变量。一系列图像提取抽象特征隐藏层(hidden layer)。值不在数据给出。模型确定有利于解释观察数据关系的概念。图像是每个隐藏单元表示特征可视化。给定像素,第一层比较相邻像素亮度识别边缘。第二隐藏层搜索可识别角、扩展轮廓边集合。第三隐藏层找到轮廓、角特定集合检测特定对象整个部分。根据图像描述包含对象部分,识别图像存在对象。

典型例子,前馈深度网络、多层感知机(multilayer perceptron,MLP)。一组输入映射到输出值数学函数。多个简单函数复合。不同数学函数每次应用为输入提供新表示。学习数据正确表示。深度促使计算机学习一个多步骤计算机程序。每一层表示并行执行另一组指令后计算机存储器状态。更深网络按顺序执行更多指令。顺序指令,后面指令参考早期指令结果。表示存储状态信息,帮助国程序理解输入。度量模型深度,基于评估架构所需执行顺序指令数目。模型表示为给定输入后,计算对应输出流程图,最长路径为模型深度。相同函数被绘制为不同深度流程图,取决一个步骤的函数。概念关联图深度作模型深度。系统对简单概念理解,给出复杂概念信息,进一步精细化。深度学习研究模型更多学到功能或学到概念组合。深度学习将世界表示为嵌套层次概念体系(简单概念联系定义复杂概念,一般抽象概括到高级抽象表示)。

AI(知识库)->机器学习(逻辑回归)->表示学习(浅度自编码器)->深度学习(MLPs)。基于规则系统(输入->手工设计程序->输出)->经典机器学习(输入->手工设计特征->从特征映射->输出)->表示学习(输入->特征->从特征映射->输出)->深度学习(输入->简单特征->更抽象特征额外层->从特征映射->输出)。

深度学习适用领域,计算视觉、语音音频处理、自然语言处理、机器人技术、生物信息学化学、电子游戏、搜索引擎、网络广告、金融。

应用数学与机器学习基础->线性代数->概论、信息论、数值计算->机器学习基础->深度网络现代实践->深度前馈网络->正则化->优化->卷积神经网络->循环神经网络->实践方法论->应用->深度学习研究->线性因子模型->自编码器->表示学习->结构化概率模型->蒙特卡罗方法->配分函数->推断->深度生成模型。

深度学习历史趋势。深度学习历史悠久丰富。可用训练数据量增加,变得更加有用。针对深度学习计算机软硬件基础设施改善,模型规模增长。解决日益复杂应用,精度提高。
神经网络名称命运变迁。深度学习3次发展浪潮。20世纪40年代到60年代,控制论(cybernetics)。生物学习理论发展(McCulloch and Pitts, 1943; Hebb, 1949),第一个模型实现(感知机 Rosenblatt,1958),实现单个神经元训练。20世纪80年代到90年代,联结主义(connectionism),反向传播(Rumelhart et al.,1986a)训练一两个隐藏层神经网络。2006年,深度学习复兴(Hinton et al.,2006a;Bengio et al.,2007a;Ranzato et al.,2007a)。深度涫超越机器学习模型神经科学观点。学习多层次组合。前身神经科学简单线性模型。用一组n个输入x1,…,xn,与一个输出y相关联。学习一组权重w1,…,wn,计算输出f(x,w)=x1w1+…+xnwn。控制论。
McCulloch-Pitts神经元(McCulloch and Pitts,1943),脑功能早期模型。线性模型检验函数f(x,w)下负识别两种不同类别输入。模型权重正确设置使模型输出对应期望类别。权重由人工设定。20世纪50年代,感知机(Rosenblatt,1956,1958),第一个根据每个类别输入样本学习权重模型。同时期,自适应线性单元(adaptive linear element,ADALINE),简单返回函数f(x)值预测一个实数(Widrow and Hoff,1960),学习从数据预测这些数。调节ADALINE权重训练算法,随机梯度下降(stochastic gradient descent)。当今深度学习主要训练算法。
基于感知机和ADALINE使用函数f(x,w)模型为线性模型(linear model)。目前最广泛机器学习模型。无法学习异或(XOR)函数,f([0,1],w)=1, f([1,0],w)=1, f([1,1],w)=0, f([0,0],w)=0。批评者抵触受生物学启发的学习(Minsky and Papert,1969)。神经网络热潮第一次大衰退。

现在,神经科学是深度学习研究重要灵感来源,不再是主要指导。没有足大脑信息作指导。大脑实际使用算法深刻理解,需要同时监测数千相连神经元活动。大脑最简单、最深入研究部分还没有理解(Olshausen and Field,2005)。

参考资料:
《深度学习》

欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi

相关文章:

  • linux一切皆文件之tcp socket描述符(三)
  • mysql的 深度使用 - 游标 , 定时器, 触发器 的使用 ?
  • spark(2.1.0) 操作hbase(1.0.2)
  • RabbitMQ(一):Window安装RabbitMQ
  • CCF 201503-4 网络延时
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • unit 7文档练习
  • 进入Linux救援(rescue)模式的四大法门
  • Android开发12——Andorid中操作数据库的insert的两种方法以及nullColumnHack
  • 黑客系列-以彼之道还施彼身
  • [web前端] yarn和npm命令使用
  • 在windows上搭建镜像yum站的方法(附bat脚本)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • Price Tag | INTERVIEW 03 | 独立开发者 Tolecen
  • GitHub上优秀的Go开源项目
  • JS 中的深拷贝与浅拷贝
  • .pyc 想到的一些问题
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [译] 怎样写一个基础的编译器
  • 11111111
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java方法详解
  • Linux各目录及每个目录的详细介绍
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初识 webpack
  • 初识MongoDB分片
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 机器学习学习笔记一
  • 基于遗传算法的优化问题求解
  • 前端面试之CSS3新特性
  • 前端知识点整理(待续)
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 微服务入门【系列视频课程】
  • python最赚钱的4个方向,你最心动的是哪个?
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​如何在iOS手机上查看应用日志
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • # Java NIO(一)FileChannel
  • #Linux(make工具和makefile文件以及makefile语法)
  • (二)Linux——Linux常用指令
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (算法设计与分析)第一章算法概述-习题
  • (一)基于IDEA的JAVA基础1
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (状压dp)uva 10817 Headmaster's Headache
  • .aanva
  • .net core使用ef 6
  • .net mvc部分视图
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .py文件应该怎样打开?
  • /usr/bin/env: node: No such file or directory