深度学习和浅层学习的区别

简单来说,浅层学习采取的是分段学习的手段,而深度学习采取的是端到端学习的手段。

比如给出一幅图像,若是采用浅层学习,我们首先需要从图像中检测出其关键的信息点,然后对这些信息点进行表达,如著名的Sift算法,就形成了每个像素点128维的向量,我们可以对信息点的表达向量进行聚类,得到信息点所组成的视觉词典,在视觉词典的基础之上,我们用一个一个的视觉单词来表达整幅图像,由于图像具有空间近邻关系,因此,我们可以通过金字塔模型来捕获视觉单词之间所形成的空间结构,在金字塔模型的基础之上,可以形成图像的视觉直方图,图像从 表达成了视觉图像直方图的向量形式,居于此我们可以对图像进行聚类、分类。
不同阶段(子任务)的分析手段我们可以加以改造,即在每一个阶段里我们可以用自己所定义的良好算法得到该阶段可以得到的更好的结果。

深度学习采取的是端到端的学习方法,这里的端到端指的是输入端到输出端,从输入端输入经过卷积、池化、反向传播等操作后可得到原始数据的特征表达,基于此特征表达,我们能够对原始数据进行识别与分类,在这个过程里,我们没有 将学习的任务分成一段一段不同的子任务加以分析与处理。
也就是说,深度学习和浅层学习采取了完全不同的处理手段,它是从输入端输入数据,然后传到中间层,通过层层抽象的方法直接得到输入数据的特征表达,进而对这种特征表达进行分析与处理,它是一种端到端的学习方法。
在这里插入图片描述

举例——英文到中文的翻译

浅层学习:(分段学习机制)
依次经历词性标注,语法解析树,语义分析等不同阶段,在不同步阶段里,我们可以引用更改适合该阶段处理的典型算法,如条件随机差等不同模型在不同阶段完成其特定任务,最终基于语法解析树,我们可以把英文翻译成中文。

深度学习:(端到端学习机制)
例如输入 You are pretty,在深度学习里,先把you, are, pretty 这三个单词映射成一个一个的向量,然后基于此向量做一个编码,编码的结果实际上刻画了整个英文句子的上下文关系,然后再设计一个解码器,从编码的结果里面逐一地翻译出you are pretty这样的中文单词。
当然,在深度学习里面,编码器和解码器是基于已标注的海量语料库学习得到,一旦学习得到了编码器和解码器,那么我们可以想象,任何一句英文的句子,首先通过训练得到的编码器进行编码,以刻画整段句子上下文之间的语义,然后基于训练得到的解码器,去解码出该英文句子所对应的中文句子。
所以自然语言处理的机器翻译任务而言,浅层学习采取的是词性标注,语法解析树,语义分析这种一段一段学习与处理的方式,而深度学习直接从输入数据出发,输出输入数据所对应的中文翻译的结果,是一个端到端学习的机制。
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐