2019,Machine learning in acoustics: Theory and applications
声学数据为生物学、通信、海洋和地球科学等领域提供了科学和工程方面的见解。我们调查了包括深度学习在内的机器学习(ML)在声学领域的最新进展和变革潜力。ML是一个广泛的技术家族,通常基于统计学,用于自动检测和利用数据中的模式。相对于传统的声学和信号处理,ML是数据驱动的。给定足够的训练数据,ML可以发现特征与所需标签或操作之间的复杂关系,或者特征本身之间的复杂关系。通过大量的训练数据,ML可以发现描述复杂声学现象的模型,如人类语音和混响。声学领域的机器学习正在迅速发展,取得了令人瞩目的成果和巨大的未来前景。我们首先介绍了机器学习,然后重点介绍了机器学习在四个声学研究领域的发展:语音处理中的源定位、海洋声学中的源定位、生物声学和日常场景中的环境声。
I.INTRODUCTION
声学数据在非常广泛的领域提供了科学和工程见解,包括人类语音和动物发声的机器解释,海洋源定位,以及海洋地球物理结构成像在所有这些领域中,数据分析因许多挑战而变得复杂,包括数据损坏、缺失或稀疏测量、混响和大数据量。例如,单个事件或话语的多个声音到达使源定位和语音解释成为机器的一项艰巨任务。在许多情况下,如声学断层扫描和生物声学,可以收集大量数据。随着数据集规模的增加,手动识别声学特征和事件所需的人力迅速变得有限。此外,数据中可能存在不容易被人类认知识别的模式。
机器学习(ML)技术使自动化数据处理和模式识别能力在许多领域取得了广泛的进展,包括计算机视觉、图像处理、语音处理和(地球)物理科学。ML在声学领域是一个快速发展的领域,针对上述声学挑战有许多引人注目的解决方案。基于ML的技术在声学领域的潜在影响,以及他们最近受到的关注,促使这篇综述。
从广义上讲,ML是一系列自动检测和利用数据模式的技术。例如,在ML中,模式被用于基于测量属性估计数据标签,例如基于声音阵列记录的动物物种或它们的位置。这些测量方法和标签通常是不确定的;因此,经常涉及到统计方法。通过这种方式,ML为机器提供了一种获取知识或“学习”的方法。ML方法通常分为两大类:有监督学习和无监督学习。还有第三类被称为强化学习,尽管在本文中没有讨论。在监督学习中,目标是学习给定标记输入和输出对的输入到输出的预测映射。标签可以是分类标量,也可以是实值标量,分别用于分类和回归。在无监督学习中,没有给出标签,任务是在数据中发现感兴趣的或有用的结构。无监督学习的一个例子是聚类分析(例如K-means)。有监督模式和无监督模式也可以组合。即,当标签只提供部分或上下文信息时,可以使用半监督和弱监督学习方法。
传统上,声学研究的重点是开发高水平的物理模型,并使用这些模型来推断环境和环境中物体的属性。基于物理原理的复杂性模型由图1中的x轴表示。随着数据量的增加,数据驱动的方法已经取得了巨大的成功。可用数据量由图1中的y轴表示。预计随着物理科学领域的数据越来越多,我们将能够更好地将先进的声学模型与ML结合起来。
在ML中,最好直接从数据中学习数据的表示模型,它为手头的ML任务提供了有用的数据模式,而不是通过使用特定的领域知识来设计表示ML可以建立在物理模型和领域知识的基础上,通过找到对给定任务“最优”的表示(例如,特征的转换)来改进解释。ML中的表示是模式,即输入特征,是数据的特定属性。特征包括人类语言的频谱特征,或物理环境的形态特征。ML管道的特征输入可以是信号(数据)的原始测量,也可以是数据的转换,例如,由经典的主成分分析(PCA)方法获得。更灵活的表示,包括高斯混合模型(GMMs)获得使用期望最大化(EM)。ML的基本概念绝不是新的。例如,线性判别分析(LDA)是一种基本的分类模型,早在20世纪30年代就已发展起来k均值聚类算法和感知器1算法是现代神经网络(NNs)的前身,于20世纪60年代发展起来。感知器算法发表后不久,人们对神经网络的兴趣减弱,直到20世纪80年代反向传播算法被开发出来。目前,我们正处于对ML和AI原理感兴趣的“第三波”之中近年来。
声学领域的ML研究取得了重大进展。与传统的信号处理方法相比,基于ML的方法可以提供更好的性能。然而,基于ML的方法有一个明显的局限性,那就是它们是数据驱动的,因此需要大量的数据来进行测试和训练。传统方法还具有比许多ML模型更具可解释性的优点。特别是在深度学习中,机器学习模型可以被认为是“黑盒”——这意味着机器学习系统的输入和输出之间的干预操作不一定是物理直观的。此外,由于没有自由启动定理,为一项任务优化的模型可能在其他任务上表现更差。这篇综述的目的是指出,尽管存在这些挑战,ML在声学方面具有相当大的潜力。
II.MACHINE LEARNING PRINCIPLES
ML是数据驱动的,可以对数据中可能比传统方法更复杂的模式进行建模。用于建模和预测数据的经典信号处理技术都是基于可证明的性能保证。这些方法使用简化的假设,如高斯无关和同分布(iid)变量和二阶统计量(协方差)。然而,与传统方法相比,ML方法,特别是最近的DL方法,在许多任务中表现出了更好的性能但是,ML模型增加的灵活性也带来了一定的困难。
通常,ML模型及其训练算法的复杂性使得保证其性能变得困难,并可能阻碍模型解释。此外,ML模型可能需要大量的训练数据,尽管我们注意到利用ML技术并不需要“大量”的训练数据。由于没有免费的午餐定理,在一项任务中表现最大化的模型在其他任务中表现可能更差。如果只有特定的任务需要高性能,并且有足够的训练数据,那么机器学习的好处可能会超过这些问题。
A.Inputs and outputs
在声学和信号处理中,测量模型使用一组模型来解释一组观测结果。解释观测结果的模型通常被称为“正向”模型。为了找到最好的模型参数,正演模型被“反转”。然而,ML测量模型是通过与输入和输出相关的模型来表达的,这两个模型都是观察到的,
Here, \(x\in \R^N\) are N inputs
and \(y\in \R^P\) are P outputs to the model \(f(x)\)
\(f(x)\) can be a linear or non-linear mapping from input to output.
\(\epsilon\) is the uncertainty in the estimate \(f(x)\) which is due to model limitations and unvertainty in the measurements.
因此,ML测量模型(1)与典型的“正向”模型的“逆”有相似之处。
根据Eq.(1),x是对N个输入的单个观察,称为特征,从中我们想估计一组输出y。例如,在一个简单的前馈神经网络(第IIIC章和第V章)中,输入层(x)的维度为N,输出层(y)的维度为p。然后,神经网络构成一个非线性函数f(x),将输入和输出联系起来。为了训练神经网络[学习f(x)],需要许多输入/输出对的样本。定义\(X= [x1,..,xM]^T\in \R^{M\times N}\)和\(Y= [y1,..,yM]\in \R^{P\times M}\)输入/输出对的M个样本对应的P个输出。我们在这里注意到有许多ML场景,其中输入样本和输出样本的数量是不同的(例如,循环nn的输入样本比输出样本多)。
如上所述,使用ML从特征x中获得输出y,称为监督学习(第III节)。通常,我们希望在不显式指定输出的情况下发现数据中感兴趣的或有用的模式。这被称为无监督学习(第IV节)。在无监督学习中,目标是学习数据中有趣或有用的模式。在无监督学习的许多情况下,输入和期望的输出就是特征本身。
B.Supervised and unsupervised learning
机器学习方法通常可以分为监督学习任务和无监督学习任务。在监督学习中,任务是在给定标记的输入和输出对的情况下,学习从输入到输出的预测映射。监督学习是使用最广泛的ML类别,包括熟悉的方法,如线性回归(也称为岭回归)和最近邻分类器,以及更复杂的支持向量机(SVM)和神经网络(NN)模型——有时被称为人工NN,因为它们与生物大脑中的神经结构关系较弱。在无监督学习中,没有给出标签,任务是在数据中发现有趣或有用的结构。这有许多有用的应用,包括数据可视化、探索性数据分析、异常检测和特征学习。无监督方法,如PCA, K-means, 和高斯混合模型(GMMs)已经使用了几十年。更新的方法包括t-SNE,字典学习,以及深度表示(例如,自动编码器)重要的一点是,无监督方法的结果既可以直接使用,例如用于潜在因素的发现或数据可视化,也可以作为监督学习框架的一部分,其中它们提供了特征的转换版本,以提高监督学习的性能。
C.Generalization: Train and test data
ML的核心要求是,学习的模型必须在未观察到的数据和观察到的数据上表现良好。模型很好地预测未见数据的能力称为泛化。我们首先讨论相关术语,然后讨论如何泛化ML模型评估。
通常,术语复杂性用于表示数据关系或ML任务的复杂程度。一个特定的ML模型能够很好地近似特定复杂性的数据关系(例如,特征和标签之间)的能力就是容量。这些术语并没有严格的定义,但是人们已经努力在数学上使这些概念形式化。例如,Vapnik-Chervonenkis (VC)维在二元分类器的情况下提供了一种量化模型容量的方法数据复杂性可以解释为特征之间存在有用关系的维数。更高的复杂性意味着更高维度的关系。我们注意到,ML模型的容量可能受到训练数据数量的限制。
一般来说,当ML模型的容量适合所提供的数据和任务的复杂性时,其性能最好。对于不匹配的模型数据/任务复杂性,可能会出现两种情况。如果一个大容量模型被用于一个低复杂度的任务,模型将会过度拟合,或者学习训练集的噪声或特性。在相反的情况下,在高复杂性任务上训练的低容量模型往往会对数据进行欠拟合,或者无法学习到足够多的底层物理细节。过拟合和欠拟合都降低了ML模型的泛化能力。ML模型在训练和测试观察上相对于模型参数的行为可用于确定适当的模型复杂性。接下来我们将讨论如何做到这一点。我们注意到,可以使用ML模型的偏差和方差来量化欠拟合和过拟合。偏差是我们估计目标y的平均值与真实平均值之间的差值,方差是估计目标围绕估计平均值的期望方差平方。
为了估计ML模型在未见观测上的性能,从而评估其泛化,可以将从完整训练集中提取的一组测试数据排除在模型训练之外,并在给定当前参数的情况下用于估计泛化。在许多情况下,使用交叉验证技术(第IID节)将用于开发ML模型的数据重复分割为不同的训练和测试数据集。测试数据用于调整模型超参数(例如,正则化、先验、神经网络单元/层数)以优化泛化。超参数依赖于模型,但通常控制模型的容量。
在图2中,我们使用多项式回归说明了模型容量对训练和测试误差的影响。训练和测试数据(10点和100点)由含加性高斯噪声的正弦信号(y= sin 2πx,左)生成。将训练数据拟合为0 ~ 9阶的多项式模型,并比较了测试数据和训练数据预测的RMSE。
其中M是样本(测试或训练)的数量,ym是ym的估计。增加模型容量(复杂度)会降低训练误差,直到度9,其中度加上截距与训练点的数量(自由度)相匹配的RMSE随着复杂度的增加而降低对试验数据进行预测,多项式阶数大于3时误差不显著减小,多项式阶数大于5时误差增大。因此,我们更倾向于使用3次的模型,尽管5次的测试误差最小。在真实数据上的ML应用中,使用交叉验证生成测试/训练误差曲线,以提高模型选择的鲁棒性。
或者,可以通过将数据分为三个不同的集(训练、验证和测试)来训练、调优和评估模型。在这种情况下,模型对训练数据进行拟合,其在验证数据上的性能用于优化超参数。只有在训练数据和验证数据上完全调优超参数之后,才能在测试数据上评估模型性能。在这里,测试数据保存在一个“保险库”中,也就是说,它不应该影响模型参数。
D.Cross-validation
在许多情况下,我们没有足够的样本来将数据分为三个完全具有代表性的子集(训练、验证和测试)。因此,我们更喜欢使用交叉验证的工具,只有两个数据子集:训练和测试。交叉验证通过从数据中创建多个训练集和测试集(没有替换)来评估模型泛化。本例中的模型参数使用“测试”数据进行调优。
一种流行的交叉验证技术称为K-fold交叉验证,通过将训练数据划分为K个大小大致相等的数据子组(称为折叠)来评估模型泛化。一个折叠被排除在模型之外训练和误差是在排除折叠上计算的。此过程执行K次,第K次折叠作为测试数据,剩余的K - 1次折叠用于模型训练。将目标值按\(Y= [Y1,..,YK]\)分成几次折,输入\(X= [X1T,..,XKT]^T\),交叉验证误差CVerr为
with \(f^{~i}\) the model learned using all folds except \(i\),
\(\theta\) the hyperparameters,
and \(L\) a loss function.
\(CV_{err}(f,\theta)\) gives a curve describing the cross-validation (test) error as a function of the hyperparameters.
使用交叉验证时会出现一些问题。首先,它需要和细分数据一样多的训练。此外,使用交叉验证调优多个超参数可能需要大量参数数量呈指数级增长的训练运行。前面提到的测试/训练范式的一些替代方法在优化中直接降低了模型的复杂性。这些约束包括著名的赤池信息准则(AIC)和贝叶斯信息准则(BIC)。然而,AIC和BIC不考虑参数的不确定性,往往倾向于过于简单的模型。在完全贝叶斯方法中(如第ПF节所述),参数不确定性和模型复杂性都被很好地建模。
E.Curse of dimensionality
通常高维的数据也给ML带来了挑战,被称为“维数灾难”。考虑特征x在N维上均匀分布(如图3所示),归一化特征值\(xn=l\),则\(l\)(例如将邻域描述为超立方体)构成特征空间体积的分数递减。体积的分数由\(f_{v}= f_{l}^{N}\)给出,\(f_v\)和\(f_l\)分别是体积和长度的分数。同样,数据在高维空间中的分布也趋于稀疏。维数的灾难最强烈地影响了依赖于特征空间中的距离度量的方法,例如K-means,因为邻域不再是“局部的”。维数灾难的另一个结果是可能配置的数量增加,这可能导致ML模型需要更多的训练数据来学习表示。
有了对数据的先验假设,作为模型约束强制执行(例如,总变量或l2正则化),使用更小的数据集进行训练是可能的这与学习流形的概念有关,或者是显著特征的低维嵌入。虽然流形假设并不总是正确的,但它至少对涉及图像和声音的过程是大致正确的[更多讨论,参见参考文献16(第156-159页)]。
F.Bayesian machine learning
实现ML方法的一个理论上有原则的方法是使用概率工具,这是一个关键的方法促使现代科学和工程发展。贝叶斯统计为将物理系统的先验知识和不确定性集成到机器学习模型中提供了一个框架。它还为估计参数的不确定性分析提供了方便。自然地,贝叶斯规则在许多声学应用中起着基本的作用,特别是在基于模型的逆方法的参数估计方法中。在更广泛的ML社区中,也有尝试将ML扩展为基于贝叶斯模型的,请参阅参考文献31。我们在这里讨论了概率的基本规则,因为它们与贝叶斯分析有关,并展示了贝叶斯规则如何用于估计ML模型参数。
两个简单的概率规则对贝叶斯ML具有基本的重要性。它们是求和规则
和乘积规则
这里,ML模型的输入x和输出y是不确定的量。求和规则指出,边际分布p(x)是通过对所有y值的联合分布p(x,y)求和得到的。乘积规则指出,p(x,y)是作为条件分布p(ylx)和p(y)的乘积得到的。
贝叶斯规则由和规则和乘积规则得到
它给出了以输入x为条件的模型输出y作为联合分布p(x, y)除以边际p(x)
在ML中,我们需要选择一个合适的模型f(×),并估计模型参数\(\theta\),以便从输入x中最好地给出所需的输出y。这是一个逆问题。以数据为条件的模型参数表示为\(p(\theta|x, y)\),由贝叶斯规则可得
\(p(\theta)\) is the prior distribution on the parameters
\(p(y|x,\theta)\) called the likelihood,
and \(p(\theta|x,y)\) the posterior
The quantity \(p(y|x)\) is the distribution of the data, also called the evidence or type II likelihood
参数θ的贝叶斯估计使用Eq.(6)获得。假设一个标量线性模型\(y =f(x) + \epsilon, f(x)= x^Tw\),其中参数\(\theta=w\in\R^N\)是权重(详情见第IIA节)。如果我们假设先验p(w)是高斯分布,N(μ, Г), μ均值和协方差Г,则可以获得参数估计的简单解决方案。通常,我们还假设一个高斯似然p(x,ylθ), \(N(x^Tw, \sigma_{\epsilon})\),均值\(x^Tw\),协方差\(\sigma_{\epsilon}\)。我们得到,参见参考文献13(第93页)
公式对于序列估计是非常有效的,因为先验是共轭的,也就是说,它与后验具有相同的形式。在声学中,该框架已用于距离估计和通过稀疏贝叶斯学习方法进行稀疏估计。在后者中,稀疏性由对角先验协方差矩阵控制,其中先验方差为零的项将迫使后验方差和均值为零。
利用先验知识和对数据的假设,贝叶斯方法进行参数估计可以防止反拟合。此外,贝叶斯方法提供了目标估计y的概率分布。图4显示了图2中提出的多项式曲线拟合的贝叶斯估计。给出了模型预测结果的均值和标准差。在这里,贝叶斯曲线拟合是在假设噪声标准偏差(σ=0.2)的先验知识的情况下进行的,并且在权重上具有高斯先验(ow=10)。超参数可以使用经验贝叶斯(empirical bayes)从数据中估计出来。这与测试训练误差分析(图2)相反,其中对数据的假设较少,噪声是未知的。我们注意到,由于估计后验分布与优化相比增加了计算成本,正式实现贝叶斯参数估计并不总是实际的。在实际情况下,贝叶斯模型很好地描述了ML结果,因为它们显式地提供了带有后验分布的模型参数估计的不确定性,并且还允许显式地规范参数分布(先验)和数据不确定性的先验知识。