深度学习基础理论-CNN篇 

“端到端”思想

端到端CNN架构 端到端算法_神经网络

深度学习的一个重要思想即“端到端”的学习方式(end-to-end manner),属表示学习(representation learning)的一种。这是深度学习区别于其他机器学习算法的最重要的一个方面。其他机器学习算法,如特征选择算法(feature selection)、分类器(classifier)算法、集成学习(ensemblelearning)算法等,均假设样本特征表示是给定的,并在此基础上设计具体的机器学习算法。在深度学习时代之前,样本表示基本都使用人工特征(hand-crafted feature),但“巧妇难为无米之炊”,实际上人工特征的优劣往往很大程度决定了最终的任务精度。这样便催生了一种特殊的机器学习分支——特征工程(feature engineering)。特征工程在数据挖掘的工业界应用以及计算机视觉应用中都是深度学习时代之前非常重要和关键的环节。

特别是计算机视觉领域,在深度学习之前,针对图像、视频等对象的表示可谓“百花齐放、百家争鸣”。仅拿图像表示(image representation)举例,从表示范围可将其分为全局特征描述子(global desciptor)和局部特征(local descriptor),而单说局部特征描述子就有数十种之多,如SIFT、PCA-SIFT、SURF、HOG、steerablefilters……同时,不同局部描述子擅长的任务又不尽相同一些适用于边缘检测、一些适用于纹理识别,这便使得实际应用中挑选合适的特征描述子成为一件令人头疼的麻烦事。对此,甚至有研究者于2004年在相关领域国际顶级期刊TPAMI(IEEE Transactions on Pattren Recognition and Machine Intelligence)上发表实验性综述“A Performance Evaluation of Local Descripors”来系统性的理解不同局部特征描述子的作用,至今已获得近8000次引用。而在深度学习普及之后,人工特征已逐渐被表示学习根据任务自动需求“学到”的特征表示所取代。

更重要的是,过去解决一个人工智能问题(以图像识别为例)往往通过分治法将其分解为预处理、特征提取与选择、分类器设计等若干步骤。分治法的动机是将图像识别的母问题分解为简单、可控且清晰的若干小的子问题。不过分步解决子问题时,尽管可在子问题上得到最优解,但子问题上的最优并不意味着就能得到全局问题的最后解。对此,深度学习则为我们提供了另一种范式(paradigm)即“端到端”学习方式,整个学习流程并不进行人为的子问题划分,而是完全交给深度学习模型直接学习从原始输入到期望输出的映射。相比分治策略,“端到端”的学习方式具有协同增效的优势,有更大可能获得全局最优解。

端到端CNN架构 端到端算法_图像识别_02

图 卷积神经网络基本流程图

如上图所示,对深度模型而言,其输入数据是未经任何人为加工的原始样本形式,后续则是堆叠在输入层上的众多操作层。这些操作层整体可看作一个复杂的函数f(cnn),最终损失函数由数据损失(date loss)和模型参数的正则化损失(regularizationloss)共同组成,深度模型的训练则在最终损失驱动下对模型进行参数更新并将误差反向传播至网络各层。模型的训练过程可以简单抽象为从原始数据向最终目标的直接“拟合”,而中间的这些部件正起到了将原始数据映射为特征(即特征学习)随后再映射为样本标记(即目标任务,如分类)的作用。

 end

*欢迎在留言区分享您的观点  

*值班小Paddle:wangp

*为了方便大家问题的跟进解决,PaddlePaddle采用Github Issue来采集信息和追踪进度。大家遇到问题请搜索Github Issue,问题未解决请优先在Github Issue上提问,有助于问题的积累和沉淀