版本对应:

本网页讨论的机器学习内容,为特定的机器学习内容(并未与CFD结合)。在《无痛苦NS方程笔记》中, 特定的将CFD与机器学习互相结合起来,无普适性机器学习内容。

ML: 极限学习机

极限学习机的思想非常简单。因为神经网络可以看做是一个拟合的过程,另一方面,最小二乘法也可以用来数据拟合,这在机器学习被提出之前有大量的应用。极限学习机的设计思想即为:

  1. 只存在一层隐藏层,神经元数量固定后,从输入到这一层的权重和偏置随机生成且固定不变;

  2. 附加一层激活层(一些人认为激活层与第一层可以当做一层隐藏层);

  3. 通过最小二乘法计算激活层到输出层的权重;

可见极限学习机可以看做是特别简单的神经网络(在这里公式都不需要写了),不同点上面三点已经全部提现。在CFD领域,一些文章采用了极限学习机来进行研究,比如Maulik和San就采用了极限学习机来进行了LES的数据驱动建模工作[MS17]

有意思的是极限学习机目前比较有争议。尤其是卷积神经网络的提出者LeCun对其持有非常怀疑的态度。在一些公开可追溯的链接里面,LeCun对其观点进行了总结:

极限学习机到底有什么好的?我不明白ELM有什么特别好的。有人能解释一下吗?ELM基本上是一个两层神经网络,其中第一层是固定和随机的,第二层是训练的。这种想法有很多问题。因为随机连接第一层几乎是最愚蠢的做法。这在标记数据量很小的情况下,可能会有效。其优点类似于支持向量机(虽然程度较低):需要监督训练的参数很少(因为第一层是固定的)且容易正则化(因为它们构成一个线性分类器)。但既然如此,为什么不直接用支持向量机呢?在小模型中,这种随机一层网络可能表现尚可。但你永远不会看到它们在复杂任务上打破记录,比如语音识别等。

当然在这个链接里面,大量的人认为LeCun的观点也存在问题。很多人认为简单的并不是愚蠢的。在CFD算法领域也一样,只有简单的且精准的算法才能获得最广泛的应用。一些算法很精准,但是太复杂并不能够大量的被应用。因此有关极限学习机的探讨,目前还在持续进行下去。

[MS17]

Romit Maulik and Omer San. A neural network approach for the blind deconvolution of turbulent flows. Journal of Fluid Mechanics, 831:151–181, 2017.