要回答这个问题,首先得知道神经网络都在计算些什么东西?之前我在迁移学习的文章中稍有提到,跳转链接在下面:
为什么其他任务预训练的模型参数,可以在我这个任务上起作用?http://t.csdnimg.cn/FVAV8 本文我不光从机器视觉,还举例自然语言处理和语音识别来更为全面的解答这个问题。当你知晓了神经网络在学什么东西后,你就会明白为什么深层的往往比浅层的好用,但这也并不是说深层的就一定好。
一、深层神经网络在计算些什么?
(1)先用个例子来感性解释一下
① 浅层神经网络
假设你在教一个小朋友认识不同的动物,最开始孩子可能通过直观的特征来区分,比如:“有毛的是动物,有翅膀的是鸟”。这时候孩子还只能用这种非常简单且低级的特征来进行分类。这就好比浅层神经网络,它智能捕捉到数据中最基本、最表面的特征。
② 深层神经网络
随着孩子的成长和学习的深入,开始理解更复杂的概念。比如:“鸟是脊椎动物,有羽毛,能飞行”。这种对动物本质属性的认知,相当于构建了一个更复杂,更抽象,更深层次的理解框架。这就像深层神经网络,每一层可以学习到更抽象、更高级的特征表示。
(2)以机器视觉为例
以机器视觉识别人脸为例,浅层、中层和深层神经网络各层在学习过程中承担的任务和所关注的特征可以形象地描述如下:
① 浅层
- 学习内容:浅层神经网络主要负责捕捉和学习图像的基本特征,这些特征通常是局部的、直观的且易于从原始像素中提取得到的。
- 具体特征举例:边缘(如人类的轮廓、眉毛的边缘等等)、纹理(如皮肤的质感、头发的纹理、胡须的分布等等)、色彩分布(如肤色区域、口红颜色等等)、简单几何形状(如眼睛和鼻孔这些圆形形状、嘴巴和眉毛等弧度曲线等等)
浅层就像一个初学绘画的学生,刚开始的时候只是绘画对象的基本线条和色彩,如画出人脸的大致轮廓、眉毛的位置、眼睛的形状等。
② 中层
- 学习内容:中层神经网络在浅层特征的基础上进行更复杂的组合和抽象,学习到局部结构和部件特征。
- 具体特征举例:部件(识别出构成人脸的关键部位,如眼睛、鼻子、嘴巴、耳朵等)、局部特征组合(如眼眉组合、鼻唇沟、面部对称性等,这些特征反映了人脸特定区域的相互作用和整体布局)、初步的不变性(对光照、表情、角度等变化有一定的鲁棒性,能够识别在一定变化下的相同人脸特征)
中层就像已经有一定绘画功底的学生,开始注重描绘对象的细节和各部分的相互关系,如细致刻画眼睛的形状、睫毛的长短,以及鼻子与嘴唇的比例协调等。
③ 深层
- 学习内容:深层神经网络致力于学习全局和高层次的抽象特征,这些特征代表了人脸的整体结构、身份特性和类别的本质属性。
- 具体特征举例:全局布局(人脸各部件间的全局空间关系,如三庭五眼的比例、脸型特征、五官的整体朝向等)、独特特征(与个体身份紧密相关的独特特征,如额头形状、下巴轮廓、眉骨突出程度等,这些特征有助于区分不同个体)、类内变异性(同一人不同表情、姿态、光照条件下的不变特征,即尽管表情或角度发生变化,仍能识别出这是同一个人)、类间差异性(不同个体间的关键区分特征,使得模型能够准确地区分大量不同的人脸)
深层就像是经验丰富的画家,不仅能精确描绘对象的所有细节,还能把握其精神气质和个性特征,使画作超越表象,传达出人物的身份特性和内在神韵。
(3)以自然语言处理为例
在自然语言处理(NLP)中的文本分类任务,特别是情感分析,浅层、中层和深层神经网络各层同样承担着不同的学习任务,逐步构建起对文本特征的多层次理解。
① 浅层
- 学习内容:主要关注文本的局部词汇特征和基本语言结构。
- 具体特征举例:词汇(学习单个词汇的出现频率、词形及其在词汇表中的索引等基本信息)、语法(捕捉词汇的词性如名词、动词、形容词等等,以及一些简单形态变化如复数、过去式等)、短语(对于基于词的模型,可能学习相邻词语的组合,初步捕捉短语级别的信息)
浅层如同初次阅读文本的学生,重点关注词汇的字面含义和基本语法结构,理解单个词汇和简单短语的意义。
② 中层
- 学习内容:在浅层特征基础上,进一步学习局部语义和上下文关联。
- 具体特征举例:局部语义(通过学习词汇在特定上下文中的含义,捕捉一词多义现象,如根据上下文识别出某个词的特定情感色彩或专业术语含义)、句法结构(理解更复杂的句法关系,如主谓宾结构、修饰关系、并列结构等,这有助于模型理解文本的逻辑层次)、上下文依赖(捕捉词汇之间的长期依赖关系,如动词与其宾语、形容词与其修饰对象之间的语义关联,以及词汇在句子中的情感连贯性)
中层如同具有一定阅读理解能力的学生,不仅能理解词汇和短语,还能把握它们在句子中的确切意义和相互关系,理解句子的局部语义结构。
③ 深层
- 学习内容:学习全局语义、主题概念和文本意图,并能够对整个文本进行抽象概括。
- 具体特征举例:全局感情线索(整合整个文本的情感线索,识别出文本总体的情感极性如正面、负面、中性,和强度)、主题建模(提炼出文本的核心话题或主题,这有助于理解文本讨论的主要内容及其情感关联)、篇章结构(理解和捕捉文本内部段落之间的逻辑关系,以及整个文本的起承转合,这对于长文本的情感分析尤为重要。)、文本类型(识别文本所属的文体类别,如新闻报道、评论、对话等,和写作风格,这些因素可能影响情感表达的方式和强度)
深层如同深度阅读并进行文本分析的专家,能够全面理解文本的主旨、情感基调、论述结构和整体风格,不仅知其言,更能解其意,把握文本的深层情感内涵和表达意图。
(4)以语音识别为例
在语音识别任务中,浅层、中层和深层神经网络各层负责学习不同级别的声音特征和语音模式。以下是对各层学习内容的具体描述:
① 浅层
- 学习内容:浅层神经网络主要关注基本声学特征和短暂的声学事件。
- 具体特征举例:声谱特征(学习从语音信号中提取的基本声学参数,如梅尔频率倒谱系数、线性预测编码系数等,这些特征反映了声音的频谱分布和能量变化)短时模式(识别短暂的声学事件,如特定频率的共振峰、清浊音的区分、辅音的爆发特征、元音的持续特性等)局部时序关系(捕捉相邻帧之间声学特征的微小变化,如音调的细微波动、连续辅音的过渡等)
浅层就像一位听觉敏锐的音乐家,专注于聆听音符的高低、强弱、长短,以及它们在短时间内如何交织成基本旋律片段。
② 中层
- 学习内容:中层神经网络关注局部语音单元和短期时序结构。
- 具体特征举例:音素特征(识别并区分构成语言的各个音素,如元音、辅音,以及它们在特定语言环境下的变体,如同音异义词的区分)音节与词边界(学习识别音节的起止位置和边界特征,以及词与词之间的间隔,这对于正确分割连续语音流至关重要)短语内部结构(理解短语内部的韵律特征,如重音、停顿、语速变化,这些特征有助于区分语义相关的词汇群组)
中层就像一位语言学者,不仅能听出单个音素,还能辨析它们如何组成有意义的音节和词,以及这些词如何按照语言规则组合成短语。
③ 深层
- 学习内容:于学习全局语言结构、语义信息和说话风格。
- 具体特征举例:语法结构(捕捉并理解语音中的句法信息,如主谓宾关系、从句嵌套、修饰成分等,这对于准确识别复杂的长句至关重要)、语义概念(通过学习词汇和短语在特定上下文中的含义,理解整句话的语义内容,这有助于减少多义词引起的歧义)、话语模式(识别并适应不同的话语类型,如陈述、疑问、命令。以及相应的语调模式,同时考虑说话人的语气、情绪和语境因素对语音识别的影响)、说话人及环境特征(学习说话人的个体特征,如性别、年龄、方言。以及录音环境因素,如背景噪声、回声、信道失真。以提高在各种实际场景下的识别性能)
深层如同精通多国语言的翻译官,不仅能听懂每个单词和短语,还能解析复杂的句子结构,理解其深层语义,并适应不同的说话风格和环境背景,最终准确还原出完整的口头表达。
二、为什么要使用深层表示?
深层的网络隐藏单元数量相对较少,隐藏层数目较多,如果浅层的网络想要达到同样的计算结果则需要指数级增长的单元数量才能达到。
深层的网络这种由低级到高级、由局部到整体的多层次理解。使得模型能够有效捕捉多样性和复杂性。
三、不是所有神经网络任务都需要很深的层次
(1)任务本身就不复杂
不同的机器学习任务对模型的复杂度需求各异。对于简单、线性可分或者特征与标签之间关系较为直接的问题,浅层神经网络或甚至传统的线性模型就足以胜任。
(2)过拟合风险
随着网络深度的增加,模型的参数数量通常会显著增长,这可能导致模型对训练数据过度敏感,学习到过于复杂的模式,尤其是在数据量有限的情况下。过拟合时,模型在训练集上表现良好,但在未见过的新数据上性能急剧下降。对于数据规模较小或特征维度较低的任务,增加网络深度可能会引入不必要的复杂性,增加过拟合风险,而浅层或适度深度的网络反而能提供更稳健的泛化能力。
(3)浪费计算资源
深度神经网络在训练和推断过程中通常需要更多的计算资源(如GPU时间、内存)和更长的训练时间。对响应速度和有严格要求的任务或者计算资源受限的场景,浅层或轻量级模型可能是更合适的选择。