网站建设开发图片,手机微信网站怎么做的好,wordpress 访问地址修改密码,高平市规建设局网站1. 损失函数
损失函数是用来估量你模型的预测值f(x)与真实值Y的不一致程度#xff0c;它是一个非负实值函数,通常使用L(Y, f(x))来表示#xff0c;损失函数越小#xff0c;模型的鲁棒性就越好。损失函数是经验风险函数的核心部分#xff0c;也是结构风险函数重要组成部分。…1. 损失函数
损失函数是用来估量你模型的预测值f(x)与真实值Y的不一致程度它是一个非负实值函数,通常使用L(Y, f(x))来表示损失函数越小模型的鲁棒性就越好。损失函数是经验风险函数的核心部分也是结构风险函数重要组成部分。
经验风险一个损失函数的函数
结构风险可简单理解为经验风险一种损失函数的函数λ正则化项。
模型的结构风险函数包括了经验风险项和正则项通常可以表示成如下式子 其中前面的均值函数表示的是经验风险函数L代表的是损失函数后面的Φ是正则化项或者叫惩罚项它可以是L1也可以是L2或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的θ值。常见的损失函数有:
n log对数损失函数逻辑回归
n 平方损失函数最小二乘法
n 指数损失函数Adaboost
n Hinge损失函数SVM
n 0-1损失
n 绝对值损失
正则化项或者叫惩罚项 含义就是把整个模型中的所有权重w的绝对值加起来除以样本数量其中是一个惩罚的权重可以称为正则化系数或者惩罚系数表示对惩罚的重视程度。如果很重视结构风险即不希望结构风险太大我们就加大迫使整个损失函数向着权值w减小的方向移动换句话说w的值越多、越大整个因子的值就越大也就是越不简洁刚才这种正则化因子叫做L1正则化项常用的还有一种叫带有L2正则化项的损失函数。
将w做了平方后取加和。
2. 泛化能力
欠拟合和过拟合概念
欠拟合就是拟合效果非常差比如一个一元二次方程却用一元一次方程去拟合这样的拟合效果肯定会很差。过拟合则是模型过于复杂将训练数据拟合的十分到位这样就容易拟合上许多噪音数据这样对于训练数据他的误差会很小但是对于预测数据即一些从来没有碰到过的数据他的预测效果会特别差。对于未知数据的预测好坏通常叫做泛化能力。
如何判定模型是过拟合还是欠拟合
通常的办法是将训练数据分成2部分一部分用来训练让另一部分作为测试数据检查他的泛化能力如果泛化能力很差就是欠拟合如果训练数据预测的很好但是测试数据的精度却很差就是过拟合我们可以通过学习曲线来将他可视化。
学习曲线
学习曲线其实就是把训练数据集取前i个样本i 从1到训练数据样本总数把模型的训练误差与预测误差都给表示出来从而看误差的走势以及两者误差之间的关系会发现最后误差一般都趋于稳定如果模型较好两者之间的差距也比较小。
3. 张量
想要了解张量(Tensor),首先需要对向量(Vector)有一个清晰的了解,向量通常都是这样一个箭头……用来表示一个既有幅度magnitude又有方向direction的物理量比如重力、磁力或者一个粒子的速度。这个箭头的长度表示幅度箭头的指向表示方向。
此外向量还可以用来表示一个平面表示方法就是让向量代表垂直于这个平面的方向法线方向。
这么看来向量可以表示很多东西表示力、速度甚至平面不过仔细想想向量也只表示了幅度magnitude与方向direction两个要素而已。
还有很多物理量用向量是没法表示的后面会提到向量其实是一个更广泛的表示方法的特例。对的你猜对了这个更广泛的方法就是张量Tensor。为了更好的解释张量是什么有两个概念需要先搞清楚 分量 (Components) 与基向量 (Basis Vectors。张量是一种表示物理量的方式这个方式就是用基向量与分量组合表示物理量Combination of basis vector and component。
张量是多维数组目的是把向量、矩阵推向更高的维度。
4. 数据预处理之独热编码One-Hot
One-Hot编码又称为一位有效编码主要是采用N位状态寄存器来对N个状态进行编码每个状态都由他独立的寄存器位并且在任意时候只有一位有效。
One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后每个整数值被表示为二进制向量除了整数的索引之外它都是零值它被标记为1。
为什么使用one-hot编码来处理离散型特征?
在回归分类聚类等机器学习算法中特征之间距离的计算或相似度的计算是非常重要的而我们常用的距离或相似度的计算都是在欧式空间的相似度计算计算余弦相似性基于的就是欧式空间。
而我们使用one-hot编码将离散特征的取值扩展到了欧式空间离散特征的某个取值就对应欧式空间的某个点。
将离散型特征使用one-hot编码确实会让特征之间的距离计算更加合理。
比如有一个离散型特征代表工作类型该离散型特征共有三个取值不使用one-hot编码其表示分别是x_1 (1), x_2 (2), x_3 (3)。两个工作之间的距离是(x_1, x_2) 1, d(x_2, x_3) 1, d(x_1, x_3) 2。那么x_1和x_3工作之间就越不相似吗显然这样的表示计算出来的特征的距离是不合理。那如果使用one-hot编码则得到x_1 (1, 0, 0), x_2 (0, 1, 0), x_3 (0, 0, 1)那么两个工作之间的距离就都是sqrt(2).即每两个工作之间的距离是一样的显得更合理。
不需要使用one-hot编码来处理的情况
将离散型特征进行one-hot编码的作用是为了让距离计算更合理但如果特征是离散的并且不用one-hot编码就可以很合理的计算出距离那么就没必要进行one-hot编码。
比如该离散特征共有1000个取值我们分成两组分别是400和600,两个小组之间的距离有合适的定义组内的距离也有合适的定义那就没必要用one-hot 编码。
离散特征进行one-hot编码后编码后的特征其实每一维度的特征都可以看做是连续的特征。就可以跟对连续型特征的归一化方法一样对每一维特征进行归一化。比如归一化到[-1,1]或归一化到均值为0,方差为1。
5. 交叉熵
关于交叉熵在loss函数中使用的理解 交叉熵cross entropy是深度学习中常用的一个概念一般用来求目标与预测值之间的差距。以前做一些分类问题的时候没有过多的注意直接调用现成的库用起来也比较方便。当用到了交叉熵发现自己对交叉熵的理解有些模糊不够深入。遂花了几天的时间从头梳理了一下相关知识点才算透彻的理解了特地记录下来以便日后查阅。
信息论 交叉熵是信息论中的一个概念要想了解交叉熵的本质需要先从最基本的概念讲起。
1 信息量 首先是信息量。假设我们听到了两件事分别如下 事件A巴西队进入了2018世界杯决赛圈。 事件B中国队进入了2018世界杯决赛圈。 仅凭直觉来说显而易见事件B的信息量比事件A的信息量要大。究其原因是因为事件A发生的概率很大事件B发生的概率很小。所以当越不可能的事件发生了我们获取到的信息量就越大。越可能发生的事件发生了我们获取到的信息量就越小。那么信息量应该和事件发生的概率有关。
假设XX是一个离散型随机变量其取值集合为χχ,概率分布函数p(x)Pr(Xx),x∈χp(x)Pr(Xx),x∈χ,则定义事件Xx0Xx0的信息量为
I(x0)−log(p(x0)) I(x0)−log(p(x0))
由于是概率所以p(x0)p(x0)的取值范围是[0,1][0,1],绘制为图形如下 可见该函数符合我们对信息量的直觉 2 熵 考虑另一个问题对于某个事件有nn种可能性每一种可能性都有一个概率p(xi)p(xi) 这样就可以计算出某一种可能性的信息量。举一个例子假设你拿出了你的电脑按下开关会有三种可能性下表列出了每一种可能的概率及其对应的信息量
序号 事件 概率p 信息量I A 电脑正常开机 0.7 -log(p(A))0.36 B 电脑无法开机 0.2 -log(p(B))1.61 C 电脑爆炸了 0.1 -log(p(C))2.30 注文中的对数均为自然对数
我们现在有了信息量的定义而熵用来表示所有信息量的期望即 H(X)−∑i1np(xi)log(p(xi)) H(X)−∑i1np(xi)log(p(xi)) 其中n代表所有的n种可能性所以上面的问题结果就是 H(X)−[p(A)log(p(A))p(B)log(p(B))p(C))log(p(C))]0.7×0.360.2×1.610.1×2.300.804 H(X)−[p(A)log(p(A))p(B)log(p(B))p(C))log(p(C))]0.7×0.360.2×1.610.1×2.300.804 然而有一类比较特殊的问题比如投掷硬币只有两种可能字朝上或花朝上。买彩票只有两种可能中奖或不中奖。我们称之为0-1分布问题二项分布的特例对于这类问题熵的计算方法可以简化为如下算式 H(X)−∑i1np(xi)log(p(xi))−p(x)log(p(x))−(1−p(x))log(1−p(x)) H(X)−∑i1np(xi)log(p(xi))−p(x)log(p(x))−(1−p(x))log(1−p(x)) 3 相对熵KL散度 相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x)我们可以使用 KL 散度Kullback-Leibler (KL) divergence来衡量这两个分布的差异
维基百科对相对熵的定义
In the context of machine learning, DKL(P‖Q) is often called the information gain achieved if P is used instead of Q.
即如果用P来描述目标问题而不是用Q来描述目标问题得到的信息增量。
在机器学习中P往往用来表示样本的真实分布比如[1,0,0]表示当前样本属于第一类。Q用来表示模型所预测的分布比如[0.7,0.2,0.1] 直观的理解就是如果用P来描述样本那么就非常完美。而用Q来描述样本虽然可以大致描述但是不是那么的完美信息量不足需要额外的一些“信息增量”才能达到和P一样完美的描述。如果我们的Q通过反复训练也能完美的描述样本那么就不再需要额外的“信息增量”Q等价于P。
KL散度的计算公式 DKL(p||q)∑i1np(xi)log(p(xi)q(xi))(3.1) (3.1)DKL(p||q)∑i1np(xi)log(p(xi)q(xi))
n为事件的所有可能性。 DKLDKL的值越小表示q分布和p分布越接近 4 交叉熵 对式3.1变形可以得到
DKL(p||q)∑i1np(xi)log(p(xi))−∑i1np(xi)log(q(xi))−H(p(x))[−∑i1np(xi)log(q(xi))] 等式的前一部分恰巧就是p的熵等式的后一部分就是交叉熵 H(p,q)−∑i1np(xi)log(q(xi)) H(p,q)−∑i1np(xi)log(q(xi)) 在机器学习中我们需要评估label和predicts之间的差距使用KL散度刚刚好即DKL(y||y^)DKL(y||y^)由于KL散度中的前一部分−H(y)−H(y)不变故在优化过程中只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss评估模型。
6. tensorflow训练神经网络的步骤:
1定义神经网络的结构和前向传播的输出结果
2定义损失函数选择反向传播优化的算法
3设定会话(tf.Session)并且在训练数据上反复迭代运行反向传播优化算法
7. 物体检测算法常用到的概念
下面我们讲解一下在物体检测算法中常用到的几个概念BboxIoU非极大值抑制。
Bounding Box(bbox)
bbox是包含物体的最小矩形该物体应在最小矩形内部如上图红色框蓝色框和绿色框。
物体检测中关于物体位置的信息输出是一组(x,y,w,h)数据其中x,y代表着bbox的左上角(或者其他固定点可自定义)对应的w,h表示bbox的宽和高.一组(x,y,w,h)可以唯一的确定一个定位框。
Intersection over Union(IoU)
对于两个区域R和R′,则两个区域的重叠程度overlap计算如下: O(R,R′)|R∩R′|/|R∪R′|
在训练网络的时候我们常依据侯选区域和标定区域的IoU值来确定正负样本
非极大值抑制(Non-Maximum Suppression又称NMS) 非极大值抑制(NMS)可以看做是局部最大值的搜索问题NMS是许多计算机视觉算法的部分。如何设计高效的NMS算法对许多应用是十分关键的例如视频跟踪、数据挖掘、3D重建、物体识别以及纹理分析等。
这里我们主要针对非极大值抑制在物体检测上的应用非极大值抑制就是把不是极大值的抑制掉在物体检测上就是对一个目标有多个标定框使用极大值抑制算法滤掉多余的标定框。
下图一个小猫有多个红框标定使用非极大值抑制算法后只有一个框。