时间:2021-05-22
记录一下:
# Three loss functionscategory_predict1 = Dense(100, activation='softmax', name='ctg_out_1')( Dropout(0.5)(feature1))category_predict2 = Dense(100, activation='softmax', name='ctg_out_2')( Dropout(0.5)(feature2))dis = Lambda(eucl_dist, name='square')([feature1, feature2])judge = Dense(2, activation='softmax', name='bin_out')(dis)model = Model(inputs=[img1, img2], outputs=[category_predict1, category_predict2, judge])model.compile(optimizer=SGD(lr=0.0001, momentum=0.9), loss={ 'ctg_out_1': 'categorical_crossentropy', 'ctg_out_2': 'categorical_crossentropy', 'bin_out': 'categorical_crossentropy'}, loss_weights={ 'ctg_out_1': 1., 'ctg_out_2': 1., 'bin_out': 0.5 }, metrics=['accuracy'])补充知识:多分类loss函数本质理解
一、面对一个多分类问题,如何设计合理的损失函数呢?
1、损失函数的本质在数学上称为目标函数;这个目标函数的目标值符合最完美的需求;损失函数的目标值肯定是0,完美分类的损失必然为0 ;
2、损失函数分为两部分,一部分为正确的分类,一部分为错误的分类;保留其中任何一个部分都可以达到目标;就好比两条路都可以通向罗马;都可以通过转化均可以令损失函数的最小值为0时,为目标值;(当然最小值不一定要为0 );最关键是最小化方向是通向目标值的;
3、多分类问题涉及概率问题,目标函数中设计只保留正确的部分(为什么不保留错误部分,我想都可以达到目的,这里保留正确部分,计算更方便);用极值思维想象完美分类情况下,输出的正确类别的概率必然是1,所以损失函数loss=-1/n(Px1+Px2+Px3+……);Px1代表样本x为x1的情况下,输出样本类别相同的概率;最好的情况就是p值都为1;损失值为0 ,可loss函数为-1;如何设计才能等效呢?答案就是加log函数;Loss=-1/n(logPx1+logPx2+logPx3+……);目标函数最小值就是0;
二、 如何在损失函数中只保留正确的部分呢?
1、从逆向的角度而言,错误部分的前面加个系数0,正确部分为1;从简单开始做起,比如说01分类,y*(logPy=1)+(1-y)*(logPy=0); y为样本真实分类;这个就能保存了;y=1时,就保留了第一部分,y=0时就保留了第二部分;但当将01分类扩展成三分类甚至多分类时,这种情况就不能够适应了;这是因为没有明白本质问题;
2、可以将真实样本标签输出转化成概率值;只是正确的概率值为1,其他类别概率为0;这样就可以完美解决多分类的问题;就是说每一个模型输出类别Log概率前乘以一个概率值; 这个公式里面的P值全为1;为0的忽略掉了;
三、如何优化呢?
1、模型输出的概率值转化为一个h(x)的函数;通过改变函数内部的w值来达到最小值;也许达不到0值;这个跟函数的Power(拟合能力)有关;
四、cross-entropy loss公式怎么写呢?
Y代表样本的one-hot向量;yhat代表softmax输出的向量;
以上这篇keras 多任务多loss实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在Keras中可以自定义损失函数,在自定义损失函数的过程中需要注意的一点是,损失函数的参数形式,这一点在Keras中是固定的,须如下形式:defmy_loss(
ipad3的使用说明书,ipad3说明书,ipad3的技巧! 首先,要确定多任务手势已经打开! 打开方法:设置->通用->多任务手势接下来,详细解释多任
微信多任务窗口如何使用?苹果手机可以用微信多任务窗口功能吗?iphone怎么用多窗口微信?在微信中想要看文章的同时聊天怎么操作?苹果微信多界面用法介绍。
微信多任务窗口如何使用?苹果手机可以用微信多任务窗口功能吗?iphone怎么用多窗口微信?在微信中想要看文章的同时聊天怎么操作?苹果微信多界面用法介绍。
本文以实例简单解析了php多任务程序的实现方法,具体代码如下:_pref=0;}publicstaticfunctiongetInstance($file){i