首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多标签分类的多任务学习体系结构

多标签分类的多任务学习体系结构
EN

Data Science用户
提问于 2018-03-08 19:10:16
回答 1查看 2.2K关注 0票数 1

我正在处理一个分类问题。数据集是从画家的数量收集的,这是一个由卡格尔主持的竞赛。任务是确定画家,风格和类型给出的绘画。

到目前为止,我训练了个别的模型来预测画家,风格,类型给出的绘画。现在,我想结合多任务学习(即)开发一个单一的模型,可以预测所有三个任务。

我目前面临的问题是设计架构。

代码语言:javascript
复制
      Model                         No of classes (Softmax)
   (Individual Models)                   
   --------------------             -----------------------
 Model predicts painter                     8 (8 - painters)
 given paintings 

 Model predicts style                       10 (10 style classes)
 given paintings      


 Model predicts genre                       23 (23 genre classes)
 given paintings    

我不知道如何把上面的模型结合在一起。任何建议或反馈都是有帮助的。

EN

回答 1

Data Science用户

回答已采纳

发布于 2018-03-08 19:32:49

您应该设计一个多任务模型(MTM)。MTM能够在多个任务之间共享来自输入的经验表示。更准确地说,我们试图同时优化一个具有m类型损失函数的模型,每个任务一个。因此,MTM将在其早期层学习更通用的特性,这些特性应该用于多个任务。然后,随后的层逐渐变得更加特定于所需任务的细节,可以将其划分为多个分支,每个分支用于特定任务。

您需要如下所示的体系结构:

代码语言:javascript
复制
# Your input and hidden layers
inp = Input(...)     
x = Layer1(...)(inp)
x = Layer2(...)(x)
...
x = Layer_N-1(...)(x) 

# Your 'm' output layers
out_1 = Layer_N(x) 
out_2 = Layer_N(x)
...
out_m = Layer_N(x)

# your model
MTM = Model(inputs=inp, outputs=[out_1,out_2,...,out_m])
MTM.compile(loss=[loss_func_1, loss_func_2,..., loss_func_m], 
      optimizer='xxx', 
      metrics=xxx)

MTM.fit(train_data, [train_labels_1,train_labels_2,...,train_labels_m],                
          batch_size = xxx,
          epochs = xxx)

如果您想在Keras中找到一个真实的例子,我已经为我的项目ConvNet实现了一个2任务的这里

票数 3
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/28827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档