Deep Learning(深度学习)学习笔记整理
深度学习基础知识

深度学习基础知识深度学习(Depth Learning)是机器学习的一个重要分支,旨在模仿人类大脑的工作方式,通过神经网络的构建和训练实现智能化的数据分析与决策。
在深度学习的背后,有一些基础知识需要我们掌握,才能更好地理解和应用深度学习技术。
一、神经网络的基本结构神经网络是深度学习的核心,它由多个神经元组成,每个神经元都有激活函数,能接收来自其他神经元的输入,并产生输出。
神经网络通常包括输入层、隐藏层和输出层,其中隐藏层可以有多个。
输入层接受外部数据输入,隐藏层负责对数据进行特征提取和转换,输出层产生最终的结果。
二、梯度下降算法梯度下降算法是深度学习中最基础且最常用的优化算法,用于调整神经网络中各个神经元之间的连接权重,以最小化损失函数。
在训练过程中,通过计算损失函数对权重的偏导数,不断地更新权重值,使得损失函数逐渐减小,模型的性能逐渐提升。
三、反向传播算法反向传播算法是神经网络中用于训练的关键算法,通过将误差从输出层倒推到隐藏层,逐层计算每个神经元的误差贡献,然后根据误差贡献来更新权重值。
反向传播算法的核心思想是链式法则,即将神经网络的输出误差按照权重逆向传播并进行计算。
四、卷积神经网络(CNN)卷积神经网络是一种主要用于图像处理和识别的深度学习模型。
它通过共享权重和局部感受野的方式,有效地提取图像中的特征。
卷积神经网络通常包括卷积层、池化层和全连接层。
其中卷积层用于提取图像中的局部特征,池化层用于降低特征的维度,全连接层用于输出最终的分类结果。
五、循环神经网络(RNN)循环神经网络是一种主要用于序列数据处理的深度学习模型。
它通过引入时间维度,并在每个时间步上传递隐藏状态,实现对序列数据的建模。
循环神经网络可以解决序列数据中的时序依赖问题,适用于音频识别、语言模型等任务。
六、生成对抗网络(GAN)生成对抗网络是一种通过让生成器和判别器相互博弈的方式,实现模型训练和生成样本的深度学习模型。
生成器负责生成与真实样本相似的假样本,判别器负责对真假样本进行分类。
深度学习(Deep Learning)综述及算法简介

Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle, Greedy Layer-Wise Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007
The ICML 2009 Workshop on Learning Feature Hierarchies webpage has a list of references.
The LISA public wiki has a reading list and a bibliography.
Geoff Hinton has readings from last year’s NIPS tutorial.
对于表达sin(a^2+b/a)的流向图,可以通过一个有两个输入节点a和b的图表示,其中一个节点通过使用a和b作为输入(例如作为孩子)来表示b/a ;一个节点仅使用a 作为输入来表示平方;一个节点使用a^2 和b/a 作为输入来表示加法项(其值为a^2+b/a );最后一个输出节点利用一个单独的来自于加法节点的输入计算SIN的最长路径的长度。
传统的前馈神经网络能够被看做拥有等于层数的深度(比如对于输出层为隐层数加1)。SVMs有深度2(一个对应于核输出或者特征空间,另一个对应于所产生输出的线性混合)。
神经网络与深度学习知识点整理

神经网络与深度学习知识点整理●神经网络基础●MP神经元模型●可以完成任何数学和逻辑函数的计算●没有找到训练方法,必须提前设计出神经网络的参数以实现特定的功能●Hebb规则●两个神经元同时处于激发状态时,神经元之间的连接强度将得到加强●Hebb学习规则是一种无监督学习方法,算法根据神经元连接的激活水平改变权值,因此又称为相关学习或并联学习。
●●感知机模型●有监督的学习规则●神经元期望输出与实际输出的误差e作为学习信号,调整网络权值●●LMS学习规则是在激活函数为f(x)=x下的感知器学习规则●由于激活函数f的作用,感知器实际是一种二分类器●感知器调整权值步骤●单层感知器不能解决异或问题●BP网络●特点:●同层神经网络无连接●不允许跨层连接●无反馈连接●BP学习算法由正向传播和反向传播组成●BP网络的激活函数必须处处可导——BP权值的调整采用 Gradient Descent 公式ΔW=-η(偏E/偏w),这个公式要求网络期望输出和单次训练差值(误差E)求导。
所以要求输出值处处可导。
s函数正好满足处处可导。
●运算实例(ppt)●Delta( δ )学习规则●误差纠正式学习——神经元的有监督δ学习规则,用于解决输入输出已知情况下神经元权值学习问题●δ学习规则又称误差修正规则,根据E/w负梯度方向调整神经元间的连接权值,能够使误差函数E达到最小值。
●δ学习规则通过输出与期望值的平方误差最小化,实现权值调整●●1●自动微分●BP神经网络原理:看书●超参数的确定,并没有理论方法指导,根据经验来选择●BP算法已提出,已可实现多隐含层的神经网络,但实际只使用单隐层节点的浅层模型●计算能力的限制●梯度弥散问题●自编码器●●自编码器(Auto-Encoder)作为一种无监督学习方法网络●将输入“编码”为一个中间代码●然后从中间表示“译码”出输入●通过重构误差和误差反传算法训练网络参数●编码器不关心输出(只复现输入),只关心中间层的编码————ℎ=σ(WX+b)●编码ℎ已经承载原始数据信息,但以一种不同的形式表达!●1●正则编码器——损失函数中加入正则项,常用的正则化有L1正则和L2正则●稀疏自编码器——在能量函数中增加对隐含神经元激活的稀疏性约束,以使大部分隐含神经元处于非激活状态●去噪自编码器——训练数据加入噪声,自动编码器学习去除噪声获得无噪声污染的输入,迫使编码器学习输入信号更加鲁棒的表达●堆叠自编码器●自编码器训练结束后,输出层即可去掉,网络关心的是x到ℎ的变换●将ℎ作为原始信息,训练新的自编码器,得到新的特征表达.●逐层贪婪预训练●1●深度神经网络初始化●●卷积神经网络●全连接不适合图像任务●参数数量太多●没有利用像素之间的位置信息●全连接很难传递超过三层●卷积神经网络是一种前馈神经网络,其输出神经元可以响应部分区域内的输入信息,适宜处理图像类信息●1●1●Zero Padding:在原始图像周围补0数量●卷积尺寸缩小,边缘像素点在卷积中被计算的次数少,边缘信息容易丢失●●卷积神经网络架构发展●1●深度发展●LeNet●具备卷积、激活、池化和全连接等基本组件●但GPU未出现,CPU的性能又极其低下●LetNet只使用在手写识别等简单场景,未得到重视●LeNet主要有2个卷积层(5*5)、2个下抽样层(池化层)、3个全连接层●通过sigmoid激活●全连接层输出:共有10个节点分别代表数字0到9,采用径向基函数作为分类器●AlexNet●第一次采用了ReLU,dropout,GPU加速等技巧●AlexNet网络共有:卷积层 5个(1111,55,3*3),池化层 3个,全连接层3个●首次采用了双GPU并行计算加速模式●第一卷积模块:96通道的特征图被分配到2个GPU中,每个GPU上48个特征图;2组48通道的特征图分别在对应的GPU中进行ReLU激活●第一层全连接:同时采用了概率为0.5的Dropout策略●VGG●通过反复堆叠3x3卷积和2x2的池化,得到了最大19层的深度●卷积-ReLU-池化的基本结构●串联多个小卷积,相当于一个大卷积的思想●使用两个串联的3x3卷积,达到5x5的效果,但参数量却只有之前的18/25●串联多个小卷积,增加ReLU非线性激活使用概率,从而增加模型的非线性特征●VGG16网络包含了13个卷积层,5个池化层和3个全连接层。
深度学习的实验总结(共9篇)

深度学习的实验总结(共9篇)深度学习的实验总结第1篇深度学习和传统机器学习都是机器学习领域的重要分支,但它们在方法和应用上存在明显的区别与独特的优势。
以下是它们之间的主要区别:1. 特征提取与学习:- 传统机器学习:通常依赖于特征工程 (feature engineering),这意味着专家需要人为地对数据进行提炼和清洗,选择或构造最相关的特征来训练模型。
- 深度学习:利用表示学习 (representation learning),机器学习模型自身能够从原始数据中自动学习和提取有用的特征。
这种方法不需要手动选择特征、压缩维度或转换格式。
2. 数据依赖性:- 传统机器学习:通常需要大量的标记数据来训练模型,因为模型的性能很大程度上取决于输入的数据质量。
- 深度学习:对于深度学习,尤其是当使用无监督学习方法时,可以处理大量未标记的数据。
此外,深度网络的多层结构使其能够学习数据的多层次表示。
3. 计算资源:- 传统机器学习:通常需要的计算资源较少,因为它们的模型结构简单。
- 深度学习:由于其复杂的网络结构和大量的参数,深度学习模型通常需要更多的计算资源,如GPU加速。
4. 模型解释性:- 传统机器学习:许多传统的机器学习算法(如决策树、支持向量机等)提供相对较高的模型解释性,因为它们的决策过程往往是直观的。
- 深度学习:深度学习模型,尤其是深层神经网络,通常被视为“黑箱”,因为它们的内部工作机制很难解释。
5. 应用领域:- 传统机器学习:广泛应用于各种领域,如金融、医疗、零售等,其中特征的选择和工程是关键步骤。
- 深度学习:由于其强大的表示学习能力,尤其在图像识别、语音识别和自然语言处理等领域表现出色。
深度学习的实验总结第2篇反向传播算法,全称误差反向传播(Back-propagation, BP)算法,是神经网络发展的重大突破,也是现在众多深度学习训练方法的基础。
它是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。
深度学习基础总结(附完整思维导图)

深度学习基础总结(附完整思维导图)来源:Python与算法社区本文为读者详细总结了深度学习的基础知识。
1 线型回归预测气温、预测销售额、预测商品价格等模型:权重,偏差模型训练:feed 数据学习模型参数值,使得误差尽可能小训练集、测试集、验证集、样本、标签、特征损失函数:回归常用平方误差函数;优化算法:小批量随机梯度下降(每次选一小批样本训练参数),每批样本大小叫做 batch size学习率:正数超参数:不是通过训练学出的,如学习率,批量大小网络输出层只有一个神经元节点全连接层:输出层中的神经元和输入层中各个输入完全连接基本要素:模型、训练数据、损失函数和优化算法2 softmax 回归图像分类、垃圾邮件识别、交易诈骗识别、恶意软件识别等softmax运算符将输出值变换成值为正,且和为1的概率分布交叉熵损失函数:更适合衡量两个概率分布差异softmax 回归是一个单层神经网络,输出个数等于类别个数3 多层神经网络激活函数:一种非线性函数ReLU函数:只保留正数元素,负数元素清零sigmoid函数:将元素值变换到0到1tanh(双曲正切):元素值变换到-1到14 模型选择模型在训练集上更准确时,不代表在测试集上就一定准确训练误差:训练数据集上表现出的误差;泛化误差:模型在测试集上表现的误差期望机器学习需要关注降低泛化误差模型选择:评估若干候选模型的表现并从中选择模型候选模型可以是有着不同超参数的同类模型验证集:预留训练和测试集之外的数据;折交叉验证:训练集分成份,共次轮询训练集欠拟合:模型无法得到较低的训练误差过拟合:模型的训练误差远小于测试集上的误差模型复杂度:低,容易欠拟合;高,容易过拟合数据集大小:训练样本少,尤其少于学习参数数时,容易过拟合;层数多时尽量数据大些5 必知技巧过拟合解决措施之一:权重衰减,常用L2正则L2惩罚系数越大,惩罚项在损失函数中比重就越大丢弃法(dropout):一定概率丢弃神经元正向传播:沿着输入层到输出层的顺序,依次计算并存储模型的中间变量反向传播:从输出层到输入层参数调整过程训练深度学习模型时,正向传播和反向传播间相互依赖数值稳定性的问题:衰减和爆炸层数较多时容易暴露,如每层都是一个神经元的30层网络,如果权重参数为0.2,会出现衰减;如果权重参数为2,会出现爆炸权重参数初始化方法:正态分布的随机初始化;Xavier 随机初始化。
深度学习文献阅读笔记(1)

深度学习⽂献阅读笔记(1) 转眼间已经研⼆了。
突然想把曾经看过的⽂献总结总结与⼤家分享,留作纪念,⽅便以后參考。
1、深度追踪:通过卷积⽹络进⾏差异特征学习的视觉追踪(DeepTrack:Learning Discriminative Feature Representations by Convolutional Neural Networks for visual Tracking)(英⽂,会议论⽂,2014年。
EI检索) 将卷积神经⽹络⽤于⽬标跟踪的⼀篇⽂章,可将CNN不只能够⽤做模式识别。
做⽬标跟踪也是能够。
毕竟本质上是⼀种特征提取的⼿段。
2、基于深度学习的车标识别⽅法研究(中⽂。
期刊,2015年。
知⽹) 将传统CNN⽤于车标识别,先进⾏车标定位提取。
在送⼊CNN中进⾏训练,最后採⽤⽀持向量机进⾏分类,属于⽼⽅法新问题。
实验硬件配置:主频2.80GHZCPU,2G内存,未⽤到GPU加速。
3、基于深度学习⽹络的射线图像缺陷识别⽅法(中⽂,期刊,2014年,知⽹) 将CNN直接⽤于射线图像缺陷检測,⽼⽅法新问题。
对CNN结构描写叙述得⾮常清楚,适合CNN⼊门。
4、深度学习及其在⽬标和⾏为识别中的新进展(中⽂,期刊,2014年,知⽹) 主要综述了深度学习中⾃编码器和限制玻尔兹曼机的结构以及应⽤进展。
综述⽐較全⾯,也够权威。
对两者的原理和改进进展都描写叙述得⾮常清楚,指出“深度学习得到的是⼀个多层深度结构,信号在这个多层结构中进⾏传播,最后得到信号的表达。
学习到多层的⾮线性的函数关系,更好的对视觉信息进⾏建模”,值得參考。
5、基于超像素卷积神经⽹络的显著性⽬标检測(Super CNN:A Superpixel wise Convolutional Neural Network for salient object detection)(英⽂,期刊,2015年,IEEE检索) CNN在⽬标检測领域的应⽤,先对图像进⾏超像素切割,得到三个序列(超像素序列,⼀个空间核矩阵。
强化学习7——DeepQ-Learning(DQN)公式推导

强化学习7——DeepQ-Learning(DQN)公式推导上篇⽂章介绍了价值函数逼近(Value Function Approximation,VFA)的理论,本篇⽂章介绍⼤名⿍⿍的DQN算法。
DQN算法是DeepMind 团队在2015年提出的算法,对于强化学习训练苦难问题,其开创性的提出了两个解决办法,在atari游戏上都有不俗的表现。
论⽂发表在了 Nature 上,此后的⼀些DQN相关算法都是在其基础上改进,可以说是打开了深度强化学习的⼤门,意义重⼤。
论⽂地址:⼀、DQN简介其实DQN就是 Q-Learning 算法 + 神经⽹络。
我们知道,Q-Learning 算法需要维护⼀张 Q 表格,按照下⾯公式来更新:Q(S t,A t)←Q(S t,A t)+α[R t+1+γmax a Q(S t+1,a)−Q(S t,A t)]然后学习的过程就是更新这张 Q表格,如下图所⽰:⽽DQN就是⽤神经⽹络来代替这张 Q 表格,其余相同,如下图:其更新⽅式为:Q(S t,A t,w)←Q(S t,A t,w)+α[R t+1+γmax aˆq(s t+1,a t,w)−Q(S t,A t,w)]其中 Δw :Δw=α(R t+1+γmax aˆq(s t+1,a t,w)−ˆq(s t,s t,w))⋅∇wˆq(s t,a t,w)⼆、Experience replayDQN 第⼀个特⾊是使⽤ Experience replay ,也就是经验回放,为何要⽤经验回放?还请看下⽂慢慢详述对于⽹络输⼊,DQN 算法是把整个游戏的像素作为神经⽹络的输⼊,具体⽹络结构如下图所⽰:第⼀个问题就是样本相关度的问题,因为在强化学习过程中搜集的数据就是⼀个时序的玩游戏序列,游戏在像素级别其关联度是⾮常⾼的,可能只是在某⼀处特别⼩的区域像素有变化,其余像素都没有变化,所以不同时序之间的样本的关联度是⾮常⾼的,这样就会使得⽹络学习⽐较困难。
[鱼书笔记]深度学习入门:基于Python的理论与实现个人笔记分享
![[鱼书笔记]深度学习入门:基于Python的理论与实现个人笔记分享](https://img.taocdn.com/s3/m/0157d41d77c66137ee06eff9aef8941ea76e4be7.png)
[鱼书笔记]深度学习⼊门:基于Python的理论与实现个⼈笔记分享为了完成毕设, 最近开始⼊门深度学习.在此和⼤家分享⼀下本⼈阅读鱼书时的笔记,若有遗漏,欢迎斧正!若转载请注明出处!⼀、感知机感知机(perceptron)接收多个输⼊信号,输出⼀个信号。
如图感知机,其接受两个输⼊信号。
其中θ为阈值,超过阈值神经元就会被激活。
感知机的局限性在于,它只能表⽰由⼀条直线分割的空间,即线性空间。
多层感知机可以实现复杂功能。
⼆、神经⽹络神经⽹络由三部分组成:输⼊层、隐藏层、输出层1. 激活函数激活函数将输⼊信号的总和转换为输出信号,相当于对计算结果进⾏简单筛选和处理。
如图所⽰的激活函数为阶跃函数。
1) sigmoid 函数sigmoid函数是常⽤的神经⽹络激活函数。
其公式为:h(x)=11+e−x如图所⽰,其输出值在 0到 1 之间。
2) ReLU 函数ReLU(Rectified Linear Unit)函数是最近常⽤的激活函数。
3) tanh 函数2. 三层神经⽹络的实现该神经⽹络包括:输⼊层、2 个隐藏层和输出层。
def forward(network, x): # x为输⼊数据# 第1个隐藏层的处理,点乘加上偏置后传⾄激活函数a1 = np.dot(x, W1) + b1z1 = sigmoid(a1)# 第2个隐藏层的处理a2 = np.dot(z1, W2) + b2z2 = sigmoid(a2)#输出层处理 identidy_function原模原样输出a3a3 = np.dot(z2, W3) + b3y = identify_function(a3)return y # y为最终结果3. 输出层激活函数⼀般来说,回归问题选择恒等函数,分类问题选择softmax函数。
softmax函数的公式:y k=e a k ∑n i=1e a i假设输出层有n个神经元,计算第k个神经元的输出y k。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Deep Learning(深度学习)学习笔记整理作者:Zouxyversion1.02013-04-08目录:一、概述二、背景三、人脑视觉机理四、关于特征4.1、特征表示的粒度4.2、初级(浅层)特征表示4.3、结构性特征表示4.4、需要有多少个特征?五、Deep Learning的基本思想六、浅层学习(Shallow Learning)和深度学习(Deep Learning)七、Deep learning与Neural Network八、Deep learning训练过程8.1、传统神经网络的训练方法8.2、deep learning训练过程九、Deep Learning的常用模型或者方法9.1、AutoEncoder自动编码器9.2、Sparse Coding稀疏编码9.3、Restricted Boltzmann Machine(RBM)限制波尔兹曼机9.4、Deep BeliefNetworks深信度网络9.5、Convolutional Neural Networks卷积神经网络十、总结与展望十一、参考文献和Deep Learning学习资源一、概述Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一。
虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生“自我”的意识。
是的,在人类和大量现成数据的帮助下,电脑可以表现的十分强大,但是离开了这两者,它甚至都不能分辨一个喵星人和一个汪星人。
图灵(图灵,大家都知道吧。
计算机和人工智能的鼻祖,分别对应于其著名的“图灵机”和“图灵测试”)在1950年的论文里,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是人还是电脑。
这无疑给计算机,尤其是人工智能,预设了一个很高的期望值。
但是半个世纪过去了,人工智能的进展,远远没有达到图灵试验的标准。
这不仅让多年翘首以待的人们,心灰意冷,认为人工智能是忽悠,相关领域是“伪科学”。
但是自2006年以来,机器学习领域,取得了突破性的进展。
图灵试验,至少不是那么可望而不可及了。
至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。
这个算法就是,Deep Learning。
借助于Deep Learning算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。
2012年6月,《纽约时报》披露了Google Brain项目,吸引了公众的广泛关注。
这个项目是由著名的斯坦福大学的机器学习教授Andrew Ng和在大规模计算机系统方面的世界顶尖专家JeffDean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深度神经网络”(DNN,Deep Neural Networks)的机器学习模型(内部共有10亿个节点。
这一网络自然是不能跟人类的神经网络相提并论的。
要知道,人脑中可是有150多亿个神经元,互相连接的节点也就是突触数更是如银河沙数。
曾经有人估算过,如果将一个人的大脑中所有神经细胞的轴突和树突依次连接起来,并拉成一根直线,可从地球连到月亮,再从月亮返回地球),在语音识别和图像识别等领域获得了巨大的成功。
项目负责人之一Andrew称:“我们没有像通常做的那样自己框定边界,而是直接把海量数据投放到算法中,让数据自己说话,系统会自动从数据中学习。
”另外一名负责人Jeff则说:“我们在训练的时候从来不会告诉机器说:‘这是一只猫。
’系统其实是自己发明或者领悟了“猫”的概念。
”2012年11月,微软在中国天津的一次活动上公开演示了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中机器翻译和中文语音合成,效果非常流畅。
据报道,后面支撑的关键技术也是DNN,或者深度学习(DL,DeepLearning)。
2013年1月,在百度年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个成立的就是“深度学习研究所”(IDL,Institue of Deep Learning)。
为什么拥有大数据的互联网公司争相投入大量资源研发深度学习技术。
听起来感觉deeplearning很牛那样。
那什么是deep learning?为什么有deep learning?它是怎么来的?又能干什么呢?目前存在哪些困难呢?这些问题的简答都需要慢慢来。
咱们先来了解下机器学习(人工智能的核心)的背景。
二、背景机器学习(Machine Learning)是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。
机器能否像人类一样能具有学习能力呢?1959年美国的塞缪尔(Samuel)设计了一个下棋程序,这个程序具有学习能力,它可以在不断的对弈中改善自己的棋艺。
4年后,这个程序战胜了设计者本人。
又过了3年,这个程序战胜了美国一个保持8年之久的常胜不败的冠军。
这个程序向人们展示了机器学习的能力,提出了许多令人深思的社会问题与哲学问题(呵呵,人工智能正常的轨道没有很大的发展,这些什么哲学伦理啊倒发展的挺快。
什么未来机器越来越像人,人越来越像机器啊。
什么机器会反人类啊,ATM是开第一枪的啊等等。
人类的思维无穷啊)。
机器学习虽然发展了几十年,但还是存在很多没有良好解决的问题:例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐等等。
目前我们通过机器学习去解决这些问题的思路都是这样的(以视觉感知为例子):从开始的通过传感器(例如CMOS)来获得数据。
然后经过预处理、特征提取、特征选择,再到推理、预测或者识别。
最后一个部分,也就是机器学习的部分,绝大部分的工作是在这方面做的,也存在很多的paper和研究。
而中间的三部分,概括起来就是特征表达。
良好的特征表达,对最终算法的准确性起了非常关键的作用,而且系统主要的计算和测试工作都耗在这一大部分。
但,这块实际中一般都是人工完成的。
靠人工提取特征。
截止现在,也出现了不少NB的特征(好的特征应具有不变性(大小、尺度和旋转等)和可区分性):例如Sift的出现,是局部图像特征描述子研究领域一项里程碑式的工作。
由于SIFT对尺度、旋转以及一定视角和光照变化等图像变化都具有不变性,并且SIFT具有很强的可区分性,的确让很多问题的解决变为可能。
但它也不是万能的。
然而,手工地选取特征是一件非常费力、启发式(需要专业知识)的方法,能不能选取好很大程度上靠经验和运气,而且它的调节需要大量的时间。
既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!Deep Learning就是用来干这个事情的,看它的一个别名UnsupervisedFeature Learning,就可以顾名思义了,Unsupervised的意思就是不要人参与特征的选取过程。
那它是怎么学习的呢?怎么知道哪些特征好哪些不好呢?我们说机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为的学科。
好,那我们人的视觉系统是怎么工作的呢?为什么在茫茫人海,芸芸众生,滚滚红尘中我们都可以找到另一个她(因为,你存在我深深的脑海里,我的梦里我的心里我的歌声里……)。
人脑那么NB,我们能不能参考人脑,模拟人脑呢?(好像和人脑扯上点关系的特征啊,算法啊,都不错,但不知道是不是人为强加的,为了使自己的作品变得神圣和高雅。
)近几十年以来,认知神经科学、生物学等等学科的发展,让我们对自己这个神秘的而又神奇的大脑不再那么的陌生。
也给人工智能的发展推波助澜。
三、人脑视觉机理1981年的诺贝尔医学奖,颁发给了David Hubel(出生于加拿大的美国神经生物学家)和TorstenWiesel,以及Roger Sperry。
前两位的主要贡献,是“发现了视觉系统的信息处理”:可视皮层是分级的:我们看看他们做了什么。
1958年,DavidHubel和Torsten Wiesel在JohnHopkins University,研究瞳孔区域与大脑皮层神经元的对应关系。
他们在猫的后脑头骨上,开了一个3毫米的小洞,向洞里插入电极,测量神经元的活跃程度。
然后,他们在小猫的眼前,展现各种形状、各种亮度的物体。
并且,在展现每一件物体时,还改变物体放置的位置和角度。
他们期望通过这个办法,让小猫瞳孔感受不同类型、不同强弱的刺激。
之所以做这个试验,目的是去证明一个猜测。
位于后脑皮层的不同视觉神经元,与瞳孔所受刺激之间,存在某种对应关系。
一旦瞳孔受到某一种刺激,后脑皮层的某一部分神经元就会活跃。
经历了很多天反复的枯燥的试验,同时牺牲了若干只可怜的小猫,David Hubel和Torsten Wiesel发现了一种被称为“方向选择性细胞(Orientation Selective Cell)”的神经元细胞。
当瞳孔发现了眼前的物体的边缘,而且这个边缘指向某个方向时,这种神经元细胞就会活跃。
这个发现激发了人们对于神经系统的进一步思考。
神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。
这里的关键词有两个,一个是抽象,一个是迭代。
从原始信号,做低级抽象,逐渐向高级抽象迭代。
人类的逻辑思维,经常使用高度抽象的概念。
例如,从原始信号摄入开始(瞳孔摄入像素Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。
这个生理学的发现,促成了计算机人工智能,在四十年后的突破性发展。
总的来说,人的视觉系统的信息处理是分级的。
从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分等,再到更高层,整个目标、目标的行为等。
也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。
而抽象层面越高,存在的可能猜测就越少,就越利于分类。
例如,单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是个层级体系。
敏感的人注意到关键词了:分层。
而Deep learning的deep是不是就表示我存在多少层,也就是多深呢?没错。
那Deep learning是如何借鉴这个过程的呢?毕竟是归于计算机来处理,面对的一个问题就是怎么对这个过程建模?因为我们要学习的是特征的表达,那么关于特征,或者说关于这个层级特征,我们需要了解地更深入点。
所以在说Deep Learning之前,我们有必要再啰嗦下特征(呵呵,实际上是看到那么好的对特征的解释,不放在这里有点可惜,所以就塞到这了)。
因为我们要学习的是特征的表达,那么关于特征,或者说关于这个层级特征,我们需要了解地更深入点。
所以在说Deep Learning之前,我们有必要再啰嗦下特征(呵呵,实际上是看到那么好的对特征的解释,不放在这里有点可惜,所以就塞到这了)。