神经网络层结构的意义与维度诅咒

注意:本文引用自专业人工智能社区Venus AI

更多AI知识请参考原站 ([www.aideeplearning.cn])

神经网络的层级结构

之前的博文中讲解了神经网络算法和深度学习模型,读者们是否有疑问:为什么神经网络模型要有层级结构?深度学习模型为什么需要这么多的隐藏层?

答案很简单,这是算法分析数据的方式。先类比一个生活中的例子以便理解:当我们看到一张图片时,是否可以瞬间就获得其中的信息?其实不是,我们需要一定的思考时间,从多个角度去分析理解图片数据中表达的信息;这就如同神经网络中的多个层级结构一样,神经网络模型就是依靠这些层级结构从不同角度下提取原始数据信息的。

从数学角度来讲,深度学习模型每层的感知机数量都不同,这相当于对原始数据进行升、降维,在不同的维度空间下提取原始数据的特征。不同维度空间又是什么意思?举个例子,现在使用一个简单的线性分类器,试图完美地对猫和狗进行分类。首先可以从一个特征开始,如"圆眼"特征,分类结果如下图所示。

猫和狗在一维特征空间下的分类结果

猫和狗在一维特征空间下的分类结果

由于猫和狗都是圆眼睛,此时无法获得完美的分类结果。因此,可能会决定增加其它特征,如"尖耳朵"特征,分类结果如下图。

猫和狗在二维特征空间下的分类结果

猫和狗在二维特征空间下的分类结果

此时发现,猫和狗两个类型的数据分布渐渐离散,最后,增加第三个特征,例如"长鼻子"特征,得到一个三维特征空间,如下图。

猫和狗在三维特征空间下的分类结果

猫和狗在三维特征空间下的分类结果

此时,模型已经可以很好地拟合出一个分类决策面对猫和狗两个类型进行分类了。那么很自然地联想一下:如果继续增加特征数量,将原始数据映射到更高维度的空间下是不是更有利于分类呢?

事实并非如此。注意当增加问题维数的时候, 训练样本的密度是呈指数下降的。假设 10 个训练实例涵盖了完整的一维特征空间,其宽度为 5 个单元间隔。因此,在一维情况下,样本密度为 10/5=2 样本/间隔。

在二维情况下,仍然有 10 个训练实例,现在它用 5×5=25 个单位正方形面积涵盖了二维的特征空间。因此,在二维情况下,样本密度为 10/25=0.4 样本/间隔。

最后, 在三维的情况下, 10 个样本覆盖了 5×5×5=125 个单位立方体特征空间体积。因此,在三维的情况下,样本密度为 10/125=0.08 样本/间隔。

如果不断增加特征,则特征空间的维数也在增长,并变得越来越稀疏。由于这种稀疏性,找到一个可分离的超平面会变得非常容易。如果将高维的分类结果映射到低维空间,与此方法相关联的严重问题就凸显出来。猫和狗在高纬度特征空间下的分类结果如下图所示。注意,因为高维特征空间难以在纸张上表示,下图是将高维空间的分类结果映射到二维空间下的展示。在这种情况下,模型训练的分类决策面可以非常轻易且完美地区分所有个体。有读者可能会说:对于训练数据做完美的区分,这岂不是很好吗?

猫和狗在高纬度特征空间下的分类结果

猫和狗在高纬度特征空间下的分类结果

维度诅咒与过拟合

接着上一小节的问题:对于训练数据做完美的区分,这岂不是很好吗?

其实不然,因为训练数据是取自真实世界的,且任何一个训练集都不可能包含大千世界中的全部情况。就好比采集猫狗数据集时不可能拍摄到全世界的所有猫狗一样。此时对于这个训练数据集做完美的区分实际上会固化模型的思维,使其在真实世界中的泛化能力很差。这个现象在生活中其实就是"钻牛角尖"。举个例子:假设我们费尽心思想出了一百种特征来定义中国的牛,这种严格的定义可以很容易地将牛与其他物种区分开来。但是有一天,一只英国的奶牛漂洋过海游到了中国。由于这只外国牛只有90种特征符合中国对牛的定义,就不把它定义为牛了。这种做法显然是不合理的,原因是特征空间的维度太高,把这种现象称为"维度诅咒",当问题的维数变得比较大时,分类器的性能降低。"维度诅咒"现象如下图所示。

维度诅咒

维度诅咒

接下来的问题是"太大"指的是多大,如何避免维度诅咒?遗憾的是没有固定的规则来确定分类中应该有多少特征。事实上,这取决于可用训练数据的数量,决策边界的复杂性以及所使用分类器的类型。如果可以获得训练样本的理论无限量,则维度的诅咒将被终结。

在实际工作中,我们似乎都认同这样一个事实:如果增加数据提取的特征维度,或者说如果模型需要更高维度的输入,那么相应地,也需要增加训练数据。

例如在人工提取特征的时候,如果结合了多个特征,最后的求解模型的训练往往也需要更多的数据。又如在深度神经网络中,由于输入维度过高,往往需要增加大量的训练数据,否则模型会"喂不饱"。

回顾刚才的例子,由于高特征维度的空间膨胀,原来样本变得稀疏,原来距离相近的一些样本也都变得距离极远。此时相似性没有意义,需要添加数据使得样本稠密。这也一定程度的体现的数据量对于模型训练的重要性。

相关推荐
算法与编程之美几秒前
探索不同的优化器对分类精度的影响和卷积层的输入输出的shape的计算公式
人工智能·深度学习·机器学习·分类·数据挖掘
大千AI助手1 分钟前
微软SPARTA框架:高效稀疏注意力机制详解
人工智能·深度学习·神经网络·llm·大千ai助手·sparta·稀疏注意力机制
林九生1 分钟前
【人工智能】使用 vLLM 高效部署大语言模型:以 secGpt14b 为例
人工智能·语言模型·自然语言处理
云茧7 分钟前
机器学习中的Hello World:线性回归(一)
人工智能·机器学习·线性回归
他们叫我技术总监24 分钟前
从开发者视角深度评测:ModelEngine 与 AI 开发平台的技术博弈
java·人工智能·dubbo·智能体·modelengine
minhuan25 分钟前
构建AI智能体:八十三、当AI开始“失忆“:深入理解和预防模型衰老与数据漂移
人工智能·模型衰老·数据偏移·psi群体稳定性指标·ks统计量检验
AI浩26 分钟前
深入级联不稳定性:从 Lipschitz 连续性视角探讨图像恢复与目标检测的协同作用
人工智能·目标检测·php
笨鸟笃行27 分钟前
人工智能备考——大体题型讲解+1.1.1-1.1.5固定搭配总结
人工智能
大千AI助手28 分钟前
差分隐私随机梯度下降(DP-SGD)详解
人工智能·神经网络·差分隐私·sgd·大千ai助手·dp-sgd·差分隐私随机梯度下降
十三画者35 分钟前
【文献分享】DARKIN:基于蛋白质语言模型的零样本磷酸化位点与暗激酶关联基准测试
人工智能·语言模型·自然语言处理