激活函数、条件熵和最大熵在机器学习的应用

文章目录

摘要

本周学习内容探讨了神经网络中激活函数的选择及其对梯度消失问题的影响。通过使用 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中的每一列代表人工标记的一个标签,如,猫、狗...其中,a~i~是概率,必然大于等于0,同时无论结果分类是否正确,其必然都有一个确定的分类。

其中a~i~是通过z计算得到的,同时保证满足上述条件,为使投射结果为0~正无穷大,使用对数的方式以及归一化对激活函数进行处理。

上图中,归一化的过程也就是求softmax的过程。

回顾交叉熵并重新定义损失函数

sigmoid和softmax的关系

通过上图公式可以看出,sigmoid是只有一种分类情况下的softmax.

思考:上面sigmoid函数中有t~1~和t~2~两个参数(p~1~和p~2~两个概率),如果是针对两个感知机的情况应该如何处理呢?

上图左边是针对一个感知机的情况(在计算概率的时候,只有当t~1~发生改变时p~1~和p~2~才发生改变),其损失函数可以理解为是猫的标签和不是猫的标签的交叉熵求和。右图是针对两个感知机的情况(在右图中,t~1~和t~2~对概率都有影响),其损失函数可以理解为是猫的标签和是狗的标签的交叉熵求和。

条件熵

假设有如下两个事件

求系统的熵必须把单一的熵都考虑进来,实质也就是求期望的过程,最后可以得到条件熵的公式如下:
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个,同样也设置同样的"特征函数",求正态分布的概率分布中求一阶矩二阶矩三阶矩的过程可以简化成只用求一阶矩。

上述X~m~设置的好处就是把原来很多维空间情况最后都投射到一维上。

我们的目标还是求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 激活函数的关系,进一步指出最大熵原理在神经网络中的广泛应用。

相关推荐
肖永威22 分钟前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
IT古董3 小时前
【人工智能】Python在机器学习与人工智能中的应用
开发语言·人工智能·python·机器学习
机器人虎哥4 小时前
【8210A-TX2】Ubuntu18.04 + ROS_ Melodic + TM-16多线激光 雷达评测
人工智能·机器学习
罗小罗同学6 小时前
医工交叉入门书籍分享:Transformer模型在机器学习领域的应用|个人观点·24-11-22
深度学习·机器学习·transformer
孤独且没人爱的纸鹤6 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
羊小猪~~6 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
不去幼儿园8 小时前
【MARL】深入理解多智能体近端策略优化(MAPPO)算法与调参
人工智能·python·算法·机器学习·强化学习
无脑敲代码,bug漫天飞9 小时前
COR 损失函数
人工智能·机器学习
HPC_fac1305206781610 小时前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
老艾的AI世界18 小时前
AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)
人工智能·深度学习·神经网络·机器学习·ai·ai翻唱·ai唱歌·ai歌曲