习题4-1 对于一个神经元,并使用梯度下降优化参数时,如果输入恒大于0,其收敛速度会比零均值化的输入更慢.
零均值化:零均值化是数据预处理的一种方法,它通过减去每个特征的均值,使得每个特征的均值为0,从而消除量纲和数值大小的影响,便于更好地进行数据分析。
在梯度下降算法中,每次权重更新都与输入数据的梯度有关。如果输入数据的布不均匀,那么梯度的计算也会受到影响。
对于输入数据恒大于0的情况,数据的分布可能非常不均匀,这意味着在计算梯度时,除以一个非常小的值(接近于0),这会导致梯度爆炸,使得学习率过大,导致收敛速度变慢。
相反,如果对输入数据进行零均值化处理,可以消除数据分布不均匀的影响,使得梯度计算更加稳定。这有助于加快收敛速度和提高训练效果。
习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N+1,输入层大小为,输出层大小为1,隐藏层的层数为L,每个隐藏层的神经元数量为,试分析参数数量和隐藏层层数L的关系。
这里只考虑参数
令参数数量为,由于简单的前馈神经网络中都是全连接层,即第 层中所有结点与第 层中所有结点两两互连,因此每两层之间的参数为两层结点数量相乘。例如,第层中有 x 个结点,第 层中有个结点,则其间的参数有个。
设:输入层与第二层之间的参数为
隐藏层之间的参数
倒数第二层与输出层之间的参数
参数数量和隐藏层层数L之间存在正相关关系。随着隐藏层层数L的增加,参数的数量也将增加。
需要注意的是,增加隐藏层数并不一定会导致更好的性能。在某些情况下,增加隐藏层的复杂性可能会使模型更容易过拟合,导致泛化性能下降。因此,在设计和训练神经网络时,我们需要在参数数量和模型性能之间进行权衡。
习题4-7 为什么在神经网络模型的结构化风险函数中不对偏置进行正则化?
偏置参数通常被用来调整神经元的激活阈值,影响模型的训练速度和模型的表达能力。在训练神经网络时,偏置参数的作用是调整输入数据的规模,使其落入激活函数的非线性区域,从而让模型能够学习复杂的非线性关系。
正则化:正则化的主要目的是消除模型复杂度过高导致的过拟合问题。通过正则化,我们可以对模型的参数进行惩罚,使得模型更加简单,从而更好地泛化新的数据。在机器学习中,正则化通常用于约束模型的权重,以防止模型在训练数据上过度拟合。
虽然偏置参数在神经网络中具有重要的作用,但它们并不直接决定模型的复杂度。这个偏置 对于函数来说只是平移,并且 对输入的改变是不敏感的,无论输入变大还是变小, 对结果的贡献只是一个偏置。因此,对偏置参数进行正则化可能不会像对权重参数那样有效地防止过拟合。此外,偏置参数的正则化也可能导致模型的学习速度变慢。
习题4-8 为什么在用反向传播算法进行参数学习时要采用随即参数初始化的方式而不是直接令,?
因为随机初始化可以增加模型的泛化能力,避免过拟合。
如果直接将w和b初始化为0,那么所有的输入特征对于模型来说都是等价的,模型无法区分它们的重要性,这样会导致模型在训练时过于简单,无法捕捉到数据的复杂模式,从而出现过拟合的问题。而随机初始化可以给每个特征赋予随机的权重,这样模型就可以根据每个特征的重要性来学习参数。在训练过程中,随机初始化的参数可以提供更多的搜索空间,使模型能够找到更好的参数组合,从而提高模型的泛化能力。
此外,随机初始化还可以增加模型的鲁棒性。由于每个特征的权重都是随机的,所以即使某个特征的数值发生了一些变化,也不会对模型的预测结果产生太大的影响。这样就可以减少模型对训练数据的依赖,使其能够更好地泛化到新的数据。
习题4-9 梯度消失问题是否可以通过增加学习率来缓解?
梯度消失问题:是因为在训练多层神经网络时,使用链式法则计算梯度时,连乘多个导数可能会导致梯度值迅速减小,以至于梯度接近于0,使得参数更新变得非常缓慢,甚至无法进行有效的学习。这个问题通常出现在使用Sigmoid或tanh等激活函数的情况下,因为这些函数在输入值过大或过小的情况下,导数趋近于0,导致梯度消失。此外,如果神经网络的层级过深,也可能导致梯度消失问题。
增加学习率可能会使训练过程中的梯度爆炸,导致参数更新过于剧烈,很容易使得参数跳过最优值点,然后梯度方向改变,导致参数优化时无法收敛,从而使训练过程变得不稳定。因此,不能通过简单地增加学习率来解决梯度消失问题。