近期学的一些AI相关知识总结-20200809

softmax

softmax是一种函数,假设数组中有n个元素,j表示第i个元素,那么这个元素的softmax值为 Si = e^i/Σj e^j

计算softmax实例

参考文献:
1.https://blog.csdn.net/bitcarmanlee/article/details/82320853

cross-entropy / 交叉熵

在二分类问题中,你可以根据神经网络节点的输出,通过一个激活函数如Sigmoid,将其转换为属于某一类的概率,为了给出具体的分类结果,你可以取0.5作为阈值,凡是大于0.5的样本被认为是正类,小于0.5则认为是负类。

 然而这样的做法并不容易推广到多分类问题。多分类问题神经网络最常用的方法是根据类别个数n,设置n个输出节点,这样每个样本神经网络都会给出一个n维数组作为输出结果,然后我们运用激活函数如softmax,将输出转换为一种概率分布,其中的每一个概率代表了该样本属于某类的概率。

 比如一个手写数字识别这种简单的10分类问题,对于数字1的识别,神经网络模型的输出结果应该越接近[0,1,0,0,0,0,0,0,0,0]越好,其中[0,1,0,0,0,0,0,0,0,0]是最理想的结果了

 但是如何衡量一个神经网络输出向量和理想的向量的接近程度呢?交叉熵(cross entropy)就是这个评价方法之一,他刻画了两个概率分布之间的距离,是多分类问题中常用的一种损失函数。

给定两个概率分布:p(理想结果即正确标签向量)和q(神经网络输出结果即经过softmax转换后的结果向量),则通过q来表示p的交叉熵为:

H(p,q) = **−**∑x p(x) · logq(x)

 注意:既然p和q都是一种概率分布,那么对于任意的x,应该属于[0,1]并且所有概率和为1

∀x, p(X=x)ϵ[0,1] 且 ∑x p(X=x) = 1

 交叉熵刻画的是通过概率分布q来表达概率分布p的困难程度,其中p是正确答案,q是预测值,也就是交叉熵值越小,两个概率分布越接近。

【样例】:
p是[1,0,0],某模型经过Softmax激活后的答案即预测值q是[0.5,0.4,0.1],那么这个预测值和正确答案之间的交叉熵为:

H(p=[1,0,0],q=[0.5,0.4,0.1])=−(1∗log0.5+0∗log0.4+0∗log0.1)≈0.3

 如果另外一个模型的预测值q是[0.8,0.1,0.1],那么这个预测值和正确答案之间的交叉熵为:

H(p=[1,0,0],q=[0.8,0.1,0.1])=−(1∗log0.8+0∗log0.1+0∗log0.1)≈0.1

 从直观上可以很容易的知道第二个预测答案要优于第一个,通过交叉熵计算得到的结果也是一致的。

1
2
3
4
5
6
7
8
9
10
11
12
13
import tensorflow as tf

labels = [[0.2,0.3,0.5],
[0.1,0.6,0.3]]
logits = [[4,1,-2],
[0.1,1,3]]

logits_scaled = tf.nn.softmax(logits)
result = tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)

with tf.Session() as sess:
print (sess.run(logits_scaled))
print (sess.run(result))

运行结果:

1
2
3
[[0.95033026 0.04731416 0.00235563]
[0.04622407 0.11369288 0.84008306]]
[3.9509459 1.6642545]

参考文献:
1.https://blog.csdn.net/yhily2008/article/details/80262321
2.https://www.cnblogs.com/always-fight/p/10370412.html

梯度下降法、随机梯度下降法、小批量梯度下降法

梯度下降使用整个训练数据集来计算梯度,因此它有时也被称为批量梯度下降下面就以均方误差讲解一下,假设损失函数如下:其中 是预测值, 是真实值,那么要最小化上面损失 ,需要对每个参数 运用梯度下降法:其中 是损失函数对参数 的偏导数、 是学习率,也是每一步更新的步长。

随机梯度下降法在机器学习\深度学习中,目标函数的损失函数通常取各个样本损失函数的平均,那么假设目标函数为:其中 是第 个样本的目标函数,那么目标函数在在 处的梯度为:如果使用梯度下降法(批量梯度下降法),那么每次迭代过程中都要对 个样本进行求梯度,所以开销非常大,随机梯度下降的思想就是随机采样一个样本 来更新参数,那么计算开销就从 下降到 。小批量梯度下降法随机梯度下降虽然提高了计算效率,降低了计算开销,但是由于每次迭代只随机选择一个样本,因此随机性比较大,所以下降过程中非常曲折(图片来自《动手学深度学习》),所以,样本的随机性会带来很多噪声,我们可以选取一定数目的样本组成一个小批量样本,然后用这个小批量更新梯度,这样不仅可以减少计算成本,还可以提高算法稳定性。小批量梯度下降的开销为 其中 是批量大小。

参考文献:https://www.zhihu.com/question/264189719/answer/932262940

ResNet

DenseNet

dense net

参考文献:
1.https://zhuanlan.zhihu.com/p/37189203

两种 attention

FBblocks

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2023 glisses
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信