DICNet: Deep Instance-Level Contrastive Network for Double Incomplete Multi-View...个人解读

1.解决问题

1-1.DIMVMLC

  • double incomplete multi-view multi-label classification issue
  • 双重不完全多视图多标签分类问题
  • 即多视图有缺失且多标签有缺失

1-2.具体

  • 视图缺失时能更好进行多标签预测(通过权重解决)

2.算法特色

  • 使用了DNN
  • 使用了权重(即view和label的有效性数据,我猜是0/1)

3.缺陷

  • 训练时要提前知道label标签是否有效

4.网络

在这里插入图片描述

4-1.encoder

  • 作用:提取深层特征(得到初步分类)
  • 结构:
    3层linear + relu提取深层特征,1层linear + batch_norm得到初步分类
  • 维度变化:
    (view_num, batch_size, 不全是0的列的数量(对每个iv都不同))
    -> (view_num, batch_size, label总数)

4-2.分类器

  • 作用:使用神经网络进行分类

  • 预处理后的输入:batch中,每个sample有效label的总和除以有效label数量,即平均label(即z)
    在这里插入图片描述

  • 结构:relu,linear,sigmoid
    在这里插入图片描述

  • 维度变化:不变
    (view_num, batch_size, label总数)
    -> (view_num, batch_size, label总数)

4-3.decoder

  • 作用:encoder提取的特征尽可能还原为X
  • 结构:
    3层linear + relu,2层蠢linear
  • 维度变化:
    (view_num, batch_size, label总数)
    -> (view_num, batch_size, 不全是0的列的数量(对每个iv都不同))

5.损失函数

5-1.loss_Cont对应文章中Lic

  • 作用: 让同一sample的不同view特征更近,不同sample的特征更远
  • 步骤:

1.对batch数据每次取两组不同view特征,得2组(batch, label总数)的数据
2.只保留2组中label都有效的,得2组(有效数据, label总数)的数据
3.对每个label进行L2-norm
4.连接2组数据,求sim_mat,得(2*有效数据, label总数)的sim矩阵
5.对每一组数据使用交叉熵损失

  • 关键:
    L2-norm后可以直接求S(sim)
    使用nn.CrossEntropyLoss(reduction=“sum”)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

关于为什么要这个损失:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5-2.loss_CL

  • 作用: 使分类器结果与真实类别更相似

  • 步骤:直接一个交叉熵损失

  • 关键:
    torch中tensor的*和.mul相同,都是每个元素相乘(不是矩阵相乘)
    交叉熵是让分布更相似,但是不懂为啥

    在这里插入图片描述

5-3.loss_AE

  • 作用: 重新生成的X与原来更相似
  • 步骤: 直接一个带权重的平均平方损失
  • 关键: wmse是带权重的平均平方损失,这个很简单,权重不可训练
    在这里插入图片描述

5-4.总loss

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值