级联相关是什么?边训练边自动增加隐藏神经元的网络
级联相关(Cascade-Correlation)是一种能够在训练过程中自动地构建网络结构的神经网络算法,由卡内基梅隆大学的 Scott Fahlman 和 Christian Lebiere 在 1990 年提出。与通常先确定好网络有几层、每层多少个神经元再进行训练的做法不同,级联相关从一个最简单的网络开始,在训练中一个一个地添加隐藏神经元,直到效果满意为止。这类方法被称为构造性神经网络。
它要解决的问题
在使用传统的神经网络时,网络的结构需要事先人为地确定,这往往要靠经验和反复的尝试:神经元太少,网络能力不够;太多,训练慢且容易过拟合。此外,Fahlman 还注意到反向传播训练中的一个问题,他称之为“移动目标问题”:所有的隐藏神经元同时在调整,每个神经元都想解决网络当前的误差,但其他神经元也在同时变化,它要适应的目标在不停地变,导致学习过程缓慢而混乱,很多神经元可能最后都去做了同一件事。
它是怎么做的
名字中的“级联”指网络的结构,“相关”指训练新神经元的方法。第一步:从一个没有隐藏层的网络开始,输入直接连接到输出,训练输出层的权重,直到误差不再明显下降。第二步:如果误差还不够小,就准备一个候选隐藏神经元,它接收所有的输入,以及之前已经加入网络的所有隐藏神经元的输出。训练这个候选神经元的输入权重,但目标不是直接降低网络的误差,而是让它的输出与网络当前的残差误差之间的相关性尽可能大。也就是说,让它专门去捕捉网络现在还没解决好的那部分误差。实际中通常同时训练一批候选神经元,挑选相关性最大的那个。第三步:把选中的神经元加入网络,并且冻结它的输入权重,以后不再改变,它就成了一个固定的特征检测器。然后把它的输出连接到输出层,重新训练所有输出层的权重。如此反复,每次添加一个新的隐藏神经元,直到误差达到要求。
由于每个新神经元都接收之前所有隐藏神经元的输出,网络形成了一个级联的结构:每新增一个神经元,相当于网络又加深了一层,后面的神经元可以建立在前面神经元学到的特征之上,组合出越来越复杂的特征。
优点和局限
级联相关的优点是:不需要事先确定网络的规模,网络会根据问题的难度自动地长到合适的大小;每次只训练一个神经元或输出层,避免了移动目标问题,训练速度往往比普通的反向传播快很多;已经学到的特征被冻结,便于增量地学习。当时它在“双螺旋”分类这个著名的难题上表现出色。它的局限是:网络会越来越深,每加一个神经元就深一层,可能变得很深很窄;冻结的权重无法再根据后续的学习进行调整;容易过拟合,需要用验证集来决定何时停止添加神经元。在深度学习时代,它已很少被直接使用,但它所体现的“让网络结构随数据自动生长”的思想,在后来的神经架构搜索、渐进式网络增长等研究中都能看到影子。