"); //-->
图片源自Unsplash,由Thomas T上传
在快速发展的人工智能 (AI) 世界中,数据已成为无数创新应用和解决方案的命脉。实际上,大型数据集通常被认为是训练强大且准确的 AI 模型的支柱。但是,当手头的数据集相对较小时该怎么办呢?在本文中,我们将探讨特征工程在克服小数据集的局限性方面所起到的关键性作用。
玩具数据集
我们的旅程将从创建数据集开始。在这个例子中,我们将进行简单的信号分类。该数据集有两个类别:频率为1的正弦波属于类别0,频率为2的正弦波属于类别1。信号生成代码如下所示。该代码生成一个正弦波,引入加性高斯噪声,并随机化相位偏移。由于添加了噪声和相位偏移,我们获得了多样的信号,分类问题变得尤为重要(经过正确的特征工程仍然是很容易办到的)。
类别0信号的可视化类别1信号的可视化
深度学习性能
用作信号处理的最先进模型是卷积神经网络(CNN)。下面我们就来动手创建一个。这个特定的网络包含两个一维卷积层和两个全连接层。代码如下所示。
CNN模型是可以用来处理原始信号的。不过,由于其参数庞大的架构,这类模型往往需要大量的数据。然而我们先假设有足够的数据来训练神经网络。我使用信号生成创建了一个包含 200 个信号的数据集。每个实验重复十次以减少随机变量的干扰。代码如下所示:
CNN获得了 99.2% 的测试准确率,这对于最先进的模型来说是意料之中的。但是,这个指标是针对这些训练成功的实验运行获得的。我所说的“成功”是指在训练数据集上的准确率超过 60%。在这个例子中,CNN的权重初始化对于训练来说是成败的关键,有时会出现CNN的权重初始化随机性不好而出现问题的情况。训练的成功率为70%。
现在,让我们看看数据集很小的情况会发生什么。我将数据集中的信号量减少到 20 个。结果,CNN 获得了 71.4% 的测试准确率,准确率下降了 27.8 个百分点。这是不可接受的。然而,现在怎么办?要使用最先进的模型,需要数据集更大。在业界应用中,获得更多数据要么不可行,要么至少非常昂贵。我们应该放弃这个项目并继续前进吗?
不。当数据集很小时,特征就是你的朋友。
特征工程
这个特定的例子涉及基于信号频率的分类。因此,我们可以应用传统的傅里叶变换。傅里叶变换将信号分解为一系列以频率和振幅为参数的正弦波。因此,我们可以使用傅里叶变换来检查每个频率在形成信号中的重要性。这样的数据表示可以足够简化任务,使得小数据集就足够了。此外,傅里叶变换对数据进行结构化处理,以便我们可以使用更简单的模型,例如随机森林分类器。
将信号转换为频谱的可视化。左侧是类别 0 的信号频谱,右侧是类别 1 的信号频谱。图表中使用了对数刻度以便获得更好的可视化效果。本例中使用的模型对信号进行线性解释。
信号变换和训练随机森林分类器的代码如下所示:
随机森林分类器在 20 和 200 个信号长度的数据集上实现了 100% 的测试准确率,每个数据集的训练成功率也是 100%。因此,我们比CNN获得了更好的结果,而且所需的数据量更少,这一切都归功于特征工程。
过拟合的风险
虽然特征工程是一个强大的工具,但必须谨记从输入数据中减少不必要的特征。输入向量中特征越多,过拟合的风险就越高,特别是在小数据集中。每个不必要的特征都引入了随机波动的风险,使机器学习模型认为这可能是重要的模式。数据集中数据越少,随机波动产生不存在于现实世界中的相关性的风险就越高。
其中一个可能有助于修剪过大特征集合的办法是使用搜索启发式算法,例如遗传算法。特征修剪可以被描述为一个任务,即找到最少的特征数量,以便成功训练机器学习模型。这可以通过创建长度等于特征数据大小的二进制向量来编码。其中,“0”表示该特征不在数据集中,“1”表示该特征存在。然后,该向量的适应性函数是在修剪后的数据集上达到的机器学习模型的准确率之和,加上向量中零的数量并按足够权重缩小。
这只是去除不必要特征的诸多解决方案之一,但是它非常强大。
结论
尽管本文提供的例子相对简单,但它展示了业界应用人工智能系统时会遇到的典型问题。目前,深度神经网络在提供足够的数据情况下几乎可以做到我们想要的一切。然而现实情况是,数据量通常很少,很昂贵。 因此,人工智能的业界应用通常涉及对特征进行广泛的工程化处理,以简化问题,并从而减少训练模型所需的数据量。
感谢阅读。文中案例的代码可在以下链接中访问:https://github.com/aimagefrombydgoszcz/Notebooks/blob/main/when_dataset_is_small_features_are_your_friend.ipynb
除特别注明外,所有图片均由作者提供。
原文标题:When the dataset is small, features are your friends原文链接:https://towardsdatascience.com/when-the-dataset-is-small-features-are-your-friends-6e7f8dcc819e
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。