文章目录
- 摘要
- Abstract
- sigmoid 和 softmax
- sigmoid和softmax的关系
- 条件熵
- 最大熵
- 总结
摘要
本周学习内容探讨了神经网络中激活函数的选择及其对梯度消失问题的影响。通过使用 ReLU 函数替代 Sigmoid 函数来改善梯度消失问题的优化方法,同时分析了 Sigmoid、Softmax 激活函数在不同分类场景中的适用性。了解了条件熵和最大熵的定义,及其在概率分布建模中的重要性,结合特征函数与傅里叶变换揭示了最大熵原理如何支持概率分布估计。同时,最大熵、极大似然估计与交叉熵三者在神经网络模型中均可用于参数调整。
Abstract
This week’s learning explores the selection of activation functions in neural networks and their impact on the gradient disappearance problem. By using ReLU function instead of Sigmoid function to improve the optimization method of gradient disappearance problem, the applicability of Sigmoid and Softmax activation function in different classification scenarios is analyzed. We understand the definition of conditional entropy and maximum entropy and their importance in probability distribution modeling. Combining characteristic function and Fourier transform, we reveal how maximum entropy principle supports probability distribution estimation. At the same time, maximum entropy, maximum likelihood estimation and cross entropy can be used for parameter adjustment in the neural network model.
sigmoid 和 softmax
对于上周学习的梯度下降法,有一个很大的缺点是计算量非常的庞大。下面进一步优化和改进梯度下降法,其中一个方法就是把隐藏层的感知机的激活函数换掉,从原来的sigmoid换成ReLu函数。
对于sigmoid函数的图像如下:
在上面的绿色框框中的梯度变化非常小,然后再通过反向传播,传播到前面几层会造成梯度消失问题,但对于ReLu激活函数就不会出现此类问题,其ReLu的激活函数如下图:
对于小于0部分,是一条直线其梯度不变,能避免梯度消失的问题,但对于ReLu函数其最大值可以无穷大,但在训练神经网络的损失函数时,使用最大似然估计或者交叉熵都是使用到的概率,在0~1之间。因此,有一种解决方案就是,前面使用ReLu激活函数,后面最后一层使用sigmoid函数。但是对于多分类问题,其sigmoid函数就不再适用了,因为sigmoid函数只能解决一种分类问题,因此需要引入softmax函数。但使用哪个函数具体问题也需要具体分析。
当一个网络只有一个感知机的时候如下图
当网络有多个感知机时对应如下图
y中的每一列代表人工标记的一个标签,如,猫、狗…其中,ai是概率,必然大于等于0,同时无论结果分类是否正确,其必然都有一个确定的分类。
其中ai是通过z计算得到的,同时保证满足上述条件,为使投射结果为0~正无穷大,使用对数的方式以及归一化对激活函数进行处理。
上图中,归一化的过程也就是求softmax的过程。
回顾交叉熵并重新定义损失函数
sigmoid和softmax的关系
通过上图公式可以看出,sigmoid是只有一种分类情况下的softmax.
思考:上面sigmoid函数中有t1和t2两个参数(p1和p2两个概率),如果是针对两个感知机的情况应该如何处理呢?
上图左边是针对一个感知机的情况(在计算概率的时候,只有当t1发生改变时p1和p2才发生改变),其损失函数可以理解为是猫的标签和不是猫的标签的交叉熵求和。右图是针对两个感知机的情况(在右图中,t1和t2对概率都有影响),其损失函数可以理解为是猫的标签和是狗的标签的交叉熵求和。
条件熵
假设有如下两个事件
求系统的熵必须把单一的熵都考虑进来,实质也就是求期望的过程,最后可以得到条件熵的公式如下:
H ( Y ∣ X ) = − ∑ x , y P ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) = E ( H ( Y ∣ X = x ( k ) ) ) ( 1 ) \begin{aligned} &H(Y|X) =-\sum_{x,y}P(x)P(y|x)logP(y|x) =E\left(H\left(Y|X=x^{(k)}\right)\right)\end{aligned} (1) H(Y∣X)=−x,y∑P(x)P(y∣x)logP(y∣x)=E(H(Y∣X=x(k)))(1)
最大熵
当分布式均匀分布时(等概分布),其熵最大,也就是不确定也越大。
运用正态分布的例子(只需要确定期望和方差就可以描述要一个正态分布),希望能通过一写参数来确定任何一个概率分布描述出来。
对于上述公式描述一个正态分布只有要知道一阶矩和二阶矩,通过这个思路可以得出任何一个分布都可以通过来表现阶矩向量。
为说明上述思路的正确性,数学家们定义了一个特征函数(任何一个概率分布都可以通过一个特征函数对应起来)
对密度函数f(x)求傅里叶变换
傅里叶变换的结果函数和特征函数共轭关系,也再次说明了可以找到一种方法,将一个概率分布和特征函数能做一一对应。
我们的目标是在未知概率分布的具体函数表达式,只知道一些样本数据时,还想让两个概率分布一样,应该怎么解决这个问题。
现在找到了一种思路
只需要P和Q的期望相同,也就表明了两个概率分布是相同的。
对于结构性数据而言,我们可以通过经验概率来描述一个分布:
在神经网络中,我们可以参照上述的计算
上述的目标就是求在已知特征序列属于哪类类别的概率。
通过贝叶斯公式可以去近似p(y|x)
对于怎么去近似分布问题:假设有如下事件
对于一个事件的二项伯努利分布其求期望在给定特征函数X也就是求概率。扩张到多个事件m个,同样也设置同样的“特征函数”,求正态分布的概率分布中求一阶矩二阶矩三阶矩的过程可以简化成只用求一阶矩。
上述Xm设置的好处就是把原来很多维空间情况最后都投射到一维上。
我们的目标还是求P(y|x)的最大值,也就是保证H(Y|X)最大。
保证经验概率 P ~ \tilde{P} P~和目标的概率P是相等的,同时还要满足对于所有分类结果的求和条件概率值为1.
上述求解需要用到拉格朗日乘数法求解。
对p,和 λ \lambda λ分别求偏导为0,可以得到以下结果:
为使上述公式更加具象化,假设x是输入的一张图片
上面的推理过程也印证了求最大熵和softmax的关系,e的引入是通过求熵逆的过程。
在以往的过程中,我们在确定参数一般都是用极大似然估计的方法或者交叉熵的方法。通过上面的学习,现在得到了一种新的方法,即使用最大熵的方法。它们的关系如何?
上图表明了机器学习的过程,在人脑模型中,通过人为寻找特征构建特征函数,使用拉格朗日乘数法来求解条件概率,然而在神经网络中隐藏层可以自动寻找特征(学习的过程),而输出层则使用最大熵原则来确定p(y|x).
在调整参数,有三种等价的方法:极大似然估计、交叉熵、最大熵。
总结
本周分析了不同激活函数对网络学习效果的影响,通过 ReLU 函数解决梯度消失的问题,并结合 Sigmoid 和 Softmax 函数,讨论了激活函数的选取对模型训练的影响。在分类问题中,ReLU 激活函数在前几层使用,而最后一层则使用 Sigmoid 或 Softmax 以适应不同类别数量的要求。为了进一步提升模型的稳定性与有效性,文中引入条件熵、最大熵等理论,并从数学角度解释了熵在描述分布均匀性中的作用。最大熵原理在未知概率分布的情况下,通过匹配一阶和二阶矩来估计概率分布,确保不确定性最大,从而获得较优模型。最终,结合拉格朗日乘数法推导出最大熵与 Softmax 激活函数的关系,进一步指出最大熵原理在神经网络中的广泛应用。