我们可以使用先验信息来改进神经网络的结果吗?如果是这样,我们如何将其纳入学习过程?

数据挖掘 机器学习 神经网络 深度学习
2022-03-12 13:18:36

为函数 在区间上。假设,我们的目标是使用某种形式的神经网络看起来像这样:fα(x)

fα(x)=x2+αsin(x),
[5,5]α=2f2(x)f2

在此处输入图像描述

我们得到一组 f_2 的噪声测量值我们想从中学习具体来说,给定一组随机样本,其中 其中的正态分布噪声f2f2{yi,xi}i=1n

yi=f2(xi)+N(0,σ),
N(0,σ)σ

在此处输入图像描述

现在我们可以使用样本来估计未知函数但是,在此之前,请注意的一般行为被函数很好地捕获:{yi,xi}i=1nf2f2f0(x)=x2

在此处输入图像描述

现在假设不仅给出了我们还给出了噪声样本函数,我们被告知是一个不错的近似值换句话说,我们对函数的一般外观有一些先验知识。{yi,xi}i=1nf2f0f2f2

的这种先验知识纳入我们的神经网络学习过程中,以便我们能够比仅根据噪声样本自己估计f2f2

如果是这样,我们有哪些选择可以将这些知识整合到神经网络中?神经网络的类型(CNN、RNN 等)是否会影响我们整合先验信息的方式?

PS 我来自统计学/数学,虽然我了解神经网络的一般原理,但我才刚刚开始使用它们。

PPS 这是图像的 Matlab 代码

rng(123);

N = 100;
x = linspace(-5,5,N);
alpha = 2;
sigma = 4;

f_0 = x.^2;
f_alpha = x.^2 + alpha*sin(5*x);
f_sigma = f_alpha + sigma*randn(N,1).';

figure
hold on, grid on
plot(x,f_0,'k--')
plot(x,f_alpha,'b')
plot(x,f_sigma,'r.')
2个回答

您可能指的是迁移学习。

迁移学习的过程主要归结为在训练期间在较小的模型(子集)中使用多层预训练的大模型(超集)。

其他配置可能包括冻结一些预训练层(在训练期间不更新)和解冻其他层(在反向传播期间更新权重/偏差)。

在循环网络中使用预训练的词嵌入层(word2vec、GloVe)是很常见的。

我还没有开始使用 NN,但有没有可以组合在一起的 Ensemble 模型?我知道 sklearn 有一个集成模型 AdaBoost 和 GradientBoost。NN可以吗?