深度学习-多标签分类

multi-class(多类分类)和muliti-label(多标签分类)区别

	multi-class是相对二分类来说的,即要分类的类别不止两个,如手写数字识别mnist(10个类别取一个)
	multi-label则是更加普遍的情况,为什么一张图片不是猫就是狗呢?难道不能训练一个人工智能,它能告
诉我这张图片既有猫又有狗呢。
	其实关于多标签学习的研究,已经有很多成果了,主要解法如下:
	1.不扩展基础分类器本来算法,只通过转换原始问题来解决多标签问题。
	2.扩展基础分类器算法来适配多标签问题。

keras的multi-label

from keras.models import Sequential
from keras.layers import Dense
model=Sequential()
print("create model. feature_dim = %s, label_dim = %s" % (self.feature_dim, self.label_dim))
model.add(Dense(500, activation='relu', input_dim=self.feature_dim))
model.add(Dense(100, activation='relu'))
model.add(Dense(self.label_dim, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
return model

备注:
1.整个网络是full connected网络
2.网络输入层=你的特征维度
3.隐藏层是500*100,激励函数选择relu,隐藏层节点数量和深度可自行调整
4.输出层是label的维度,选择sigmoid激励函数,输出值在0-1之间
5.训练数据的label用0,1来表示,0代表数据没有这个label,1代表数据有这个label,例如3个label的向量[天空,人,大海]=[1,1,0]表示这张图片有天空和人,但没有大海。
6.使用binary_crossentropy作损失函数评价,在训练过程不断降低交叉熵,使1的label的节点输出值更接近1,0的label的节点输出值接近0.

多标签分类难点

1.标签数量不确定,有些样本可能仅有一个标签,有些样本的标签数量可能高达几十个。
2.标签之间相互依赖,例如蓝天标签样本很大概率包含白云,解决标签之间依赖问题也是一大难点。

多标签学习算法分类

1.问题转换方法。该类算法的基本思想是对多标签训练样本进行处理,将多标签学习问题转化为其他已知问题求解,代表算法有Binary Relevance。总体来说这类算法考虑了标签之间的联系,但对于较大数据集算法的复杂度较突出。
2.算法适应方法。如ML-KNN,CML等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值