gpt4 book ai didi

machine-learning - 确定神经网络内的参数总数

转载 作者:行者123 更新时间:2023-11-30 09:39:58 25 4
gpt4 key购买 nike

如果我们有一个输入层有 20 个节点 + 2 个隐藏层(大小 10 和 5)的神经网络,我们如何计算这样一个网络中的参数总数?

此外,我们如何知道哪些激活函数适合这样的网络?权重是什么形状?

最佳答案

首先,我们来讨论一下网络的结构(不考虑激活函数)。我们知道,对于任何激活y_i = I(w_i,x),参数本身都表示为向量w_ix的点积> 在考虑函数本身之前。因此,一种方便的思考方法是网络中的每一层只是输入向量本身的线性变换:Wx。因此,要从 20 维特征向量 x 到 10 维输出,然后是 5 维,我们需要使用两个矩阵:一个 10x20(我们称之为隐藏层 1) W_1)和 5x10(我们称之为隐藏层 2 W_2。因此,输入层 (W_0) 只是一个对角矩阵20x20,对角线是应用于每个单独输入的权重。因此,在某种意义上,Y 作为 5x1 向量可以被认为是 Y = W_2 W_1 W_0 x .这样思考时,您可以立即看到需要的参数数量(在本例中,总共 270 个)。

关于哪种激活函数更优越存在很多争论,至少在我第一次开始研究人工神经网络时是这样。需要记住的一件事是,每个激活函数都需要权衡。这些函数在输入向量的某些条件下具有优势,但也以整体计算复杂性和面对大权重时的灵敏度降低为代价。例如,如果使用 tanh() 作为激活函数,如果单个权重的大小超过其他权重的 100 倍,则反向传播误差增量将大幅改变该节点的所有其他权重,但该单一重量几乎没有影响。这可能会带来很大的问题,因为你很容易受到局部最小值的训练。此外,在考虑 GPGPU 加速时,d/dx[tanh(x)] 的计算效率不高。但是(尽管我已经使用过该函数),它在处理频域或指数相关特征时实际上非常有效。

那么,权重会是什么形状?这不是一个容易回答的问题,因为它的基础是:

  • 您的网络结构
  • 使用激活函数
  • 反向传播启发式算法(例如,用 CNN 代替一般的 BP)
  • 训练集中的基本模式

最后一个是最重要的,但是在训练之前很容易确定权重是否存在潜在的形状/结构。作为最佳实践,请考虑首先在训练集上使用主成分分析 (PCA)。如果您发现集合中的绝大多数可以用非常小的主成分子集合理地表示,那么训练有素的网络很可能在最早的隐藏层中显得稀疏(甚至带状)。

关于machine-learning - 确定神经网络内的参数总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59449744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com