人工智能机器学习和深度学习习

近年来,作为中比较火的一种方法出现在我们面前,但是和非的相比(我将深度学习归于机器学习的领域内),还存在着几点很大的不同,具体来说,有以下几点:

1、深度学习,顾名思义,网络变深了,这就意味着这种深度学习类的网络可能有更多的laye,这意味着什么呢?也即表示这种深层的网络需要学习更多的参数,尽管我们知道在CNN中有共享参数等等技巧,但在此前提下,不妨认为随着网络层数的增多,需要学习的参数也在增加,那问题又来了,参数增加有什么问题吗?当然有问题,这是我们在机器学习领域内探讨的最多的一个问题,因为我们的目的都是为了减少泛化误差,提高模型的泛化能力,而在这一点,显然深度学习比一般意义的机器学习模型要复杂,复杂的模型训练不当,我们知道的,模型的泛化能力会显著下降。

2、深度学习比一般意义的机器学习模型要复杂,不仅表现在上一点的模型本身(指的是layers和paramers),也表现在不同的工作原理上。深度学习不再需要人工设计指定的特征,分类的特征是模型自己去学到的,这一点上意味着深度学习需要有更多的data,这又是和一般意义上的机器学习有所区别的。举个例子,同样是识别车辆,Haar-like+Adaboost可能只需要2-3k训练集,但对于深度学习来说,可能需要20-30k的数据集,当然这么多的data本身是和模型相匹配的,但是在一般意义上,不妨认为深度学习需要更多的data(本文不探讨大数据和深度学习(人工智能)的关系,只在一般意义上做出说明)。

综上所述,其实我们已经认识到了深度学习的本质,其实很简单,就是数据和模型,两者之间相辅相成,相互促进。认识到了深度学习的本质和与一般意义上的机器学习的区别,你才能明白调参和训练的技巧和建议对于深度学习而言是多么的重要,毫不夸张的说,直接影响到我们刚刚谈到的模型的泛化能力,而且是根本原因。

从我们准备数据集到训练到理想的模型的过程顺序,我们把其分成如下几个部分分别叙述。

个人理解数据增强主要是在准备数据集时,由于需要的data较多又得不到满足,则可以通过对颜色(color)、尺度(scale)、裁剪(crop)、翻转(Flip)、添加噪声(Noise)、旋转(Rotaon)等等,这样就增加了数据集的数目,解决的是data不足的问题,近几年GAN模型的研究也取得了较大的发展,其主要的出发点就是解决了监督学习data不足的问题,经常可用于虚拟场景的仿真等等,感兴趣的可以深入研究。

个人理解的是有了数据之后,难道就一定能很好的利用这些数据吗?如何评价这些数据的好坏?那要对数据进行预处理,预处理的前提是要正确的理解数据。数据之间存在相关性吗?假设你用了data augmentaon,那显然数据集之间的相关性是较大的,说直白点,你用了两张一模一样的数据在训练集里,意义何在?所以接下来要讲的数据预处理很重要。常用的方法有:normalizaon(归一化)、PCA(主成分分析)、Whitening(白化)等。

(1)Normalization。可以这样认为,归一化主要在干这样一件事:把数据从一个一般的分布,变成0均值、单位方差的分布,为什么这么干呢?原因是这么做更容易收敛,这种方法在Caffe框架中普遍使用(mean value或者mean binaryproto 文件)。Batch Normalization(BN)是一个升级版本,作者主要考虑当使用了饱和的激活函数时,例如sigmoid函数变成0均值、单位方差则会出现在该函数中间近似线性的那一段,这是非常糟糕的,中间线性的部分的拟合能力最差,因此降低了模型的表达capacity,所以BN应运而生,实验表明,其效果sigmoid函数比Relu函数要好。

(2)PCA。研究如何以最少的信息丢失将众多原有的变量信息浓缩到少数几个维度上,即所谓的主成分。首先计算出协方差矩阵,然后求出协方差矩阵的特征向量,并用其对原特征进行线性变换,实现降维。

(3)Whitening。去除特征向量中各个特征之间的相关性,同时保证每个特征的方差一致。 设特征向量 X = (X1,X2,X3),对于向量 X,可以计算出相应的协方差矩阵(根据已有数据集来估计)。我们希望协方差矩阵是一个对角矩阵,因为这意味着 X 的每个元素之间都是互不关联的,但是我们的数据并不具备这样的性质。为了解耦数据,我们需要对原始特征向量执行一个变换,从而使得变换后的向量 Y 的各个特征之间相关性为0。设 Σ 是 X 的协方差矩阵,有:ΣΦ=ΦΛ, 那么 Λ 中的每个元素都是协方差矩阵的特征值,Φ 的每个列向量是相应的特征向量。如果对特征向量做变换:Y = XΦ = X(Φ1,Φ2,Φ3),此时根据向量 Y 计算出来的协方差矩阵是一个对角矩阵。对角矩阵 Λ 的特征值就是 Y 的每个元素的方差,可以全部相同,也可能不相同,如果对变换后的特征向量的某些维度进行缩放,使得 Λ 的每个元素都相等,那么整个过程就是 whitening。

当前两步完成之后,可以考虑模型参数的初始化方式了。此处举出实例,Caffe中的参数初始化方式有7种方法,分别为:constant、gaussian、positive_unitball、uniform、xavier、msra和bilinear。用的较多的是xavier用在权重初始化上,constant用在偏置初始化上。

深度学习之所以具有丰富的表达能力,非常关键的一点是激活函数,这就相当于一系列叠加在一起的非线性处理单元,可以想象出这一系列叠加的非线性处理单元原则上可以逼近任意函数(这指的是从输入到输出效果)。几种常用的激活函数:sigmoid、tanh和Relu,但是我们又介绍过之前广泛使用的sigmoid和tanh等饱和激活函数,使用它们在很深网络模型中的训练效果往往很不好,因为存在梯度消失的问题,例如下图中是一个sigmoid函数的例子,由于在反向传播时,需要乘以激活函数的一阶导数,这样逐层往前传,可想/...

对于Common Crawl上的语言建模,具有128GPU的同步SGD实现了标准分布式训练的最佳结果...

根据麦肯锡的报告,预计到2025年,全球将会累计产生 10 亿人次的全基因组数据。

Q-learning和SARSA是两种最常见的不理解环境强化学习算法,这两者的探索原理不同,但是开发...

几乎所有目前最先进的神经网络都用到了dropout. 这篇教程介绍如何通过几行Python代码在神经...

本次大赛将以一个互联网应用(如CTR)为切入点,比赛协办方将提供资源(包括 AI 加速器)和数据集,...

用强化学习方法教机器人(模拟器里的智能体),能学会的动作花样繁多,细致到拿东西、豪放到奔跑都能搞定,...

当我们把区块链和需要大量训练数据的机器学习模型结合在一起后,普通开发者能否打破科技巨头的垄断,创造出...

今天手机中AI的绝大部分功能,甚至可以说90%以上的功能,都是识别。这是基于机器学习理论下AI发展的...

汽车销量还会持续上升:尽管保有量下降,但汽车销量将明显增加。传统车辆将长时间滞留在保有量中。而相比之...

通过对人脑处理信息时所采用方法的抽象总结和模拟,提出了神经网络的概念。未经处理的数据(图像,声音信息...

他解释说,其目标在于培养内部软件工程师,使其在一至两年内熟习深度学习。而当被问及DeepScale的...

而对于自底向上的模式,将商业模型中的一部分委派给机器学习,甚至从机器学习中得到全新的商业想法。自底向...

认知计算API:应用程序编程接口(API)使开发人员可以轻松地将技术或服务集成到正在构建的应用程序或...

2013年德国政府提出的“工业4.0”战略就涵盖了人工智能。“工业4.0”战略着重在制造业等领域利用...

我从一篇pix2code论文和另一个应用这种方法的相关项目中获得灵感,决定把我的任务按照图像标注方式...

Ashwin Kumar开发了基于图像标注的模型,允许用户从手绘的示意图创建可以工作的HTML网站。...

人工智能的再次兴起让机器学习(Machine Learning)这个名词进入了公众的视野,它成为当前解决很多人工智能问题的核心基石。关于机器学习发展的介绍繁杂众多,参差不齐。在SIGAI原创文章《机器学习——波澜壮阔四十年》里,系统的梳理了机器学习的发展史,全面的介绍了机器学习的大致内容,希望文章对你有所帮助。(/sigai_csdn/article/details/)更多的原创干货可以关注SIGAI的scdn账号,一起好好学习,天天向上。

我要回帖

更多关于 机器学习和深度学习 的文章

 

随机推荐