Selective类方法中的BitFit
它的核心思想是仅更新模型中的偏置项(bias terms)或部分偏置项,从而实现参数的稀疏更新。这种方法在小到中等规模的训练数据上表现出色,有时甚至能够超越全模型微调的性能。对于BERT模型,BitFit只更新了模型参数量的0.08%到0.09%,但依然能够与全参数微调方法如Adapter和Diff-Pruning相媲美,甚至在某些任务上略胜一筹。
在实现上,BitFit主要关注一下几个方面的偏置参数:
值得注意的是,虽然只更新了模型的一小部分参数,但BitFit在不同任务上的表现仍然可以与全参数微调相媲美。此外,通过实验发现,仅更新与query相关的偏置和特征维度放大的FFN层(intermediate)的偏置参数,也能达到与全参数微调相近的效果。
在神经网络中,偏置项(Bias Terms)是一种加在网络层的输入或输出上的常数项,用于帮助模型学习数据中的非线性模式。偏置项对于模型能否成功学习复杂的函数映射至关重要。下面是偏置项在不同上下文中的详细解释:
1、单个神经元的偏置项:
在单个神经元或感知器中,偏置项通常表示为b,并与输入数据 x 相加后通过激活函数 f 来生成输出 a ,公式表示为:
a = f(w * x + b)
其中,w是权重,x是输入,b是偏置项。
2、多层感知器中的偏置项:
在多层感知器或更复杂的网络结构中,每个层级都可能有自己的偏置项。例如,在全连接层中,每一层的输出可能会加上一个偏置向量b,然后输入到下一层。
3、卷积神经网络中的偏置项:
在卷积神经网络(CNN)中,偏置项可能针对每个卷积核或每个特征图(feature map)进行添加。
4、Transformer中的偏置项:
在Transformer架构中,偏置项可能用于注意力机制(如查询Q,键K,值V的计算中)或前馈网络(feed-forward network)中。
5、Batch Normalization中的偏置项:
批归一化(Batch Normalization)在对每个小批量数据进行归一化后,也会使用偏置项和缩放因子来恢复数据的原始范围。
6、Layer Normalization中的偏置项:
层归一化(Layer Normalization)在对层的激活输出进行归一化后,也会添加偏置项和缩放因子。
偏置项的主要作用是提供一个平移参数,允许模型在特征空间中进行更灵活的拟合。例如,如果所有权重初始化为零,没有偏置项的话,无论输入数据如何变化,神经元的输出都将是相同的,这将导致模型无法学习到有用的表示。通过引入偏置项,每个神经元可以独立地调整其输出,使得模型能够更好地拟合数据。