全连接网络的设计---深度特征交叉网络 DCN (Deep & Cross Network)

本文探讨了深度特征交叉网络DCN中特征相乘部分的实现及其不优雅之处,提出传统MLP的改进方法。重点介绍了矩阵相乘与点积操作在DCN中的作用,并讨论了网格搜索在参数调整中的应用。研究发现,模型性能并非单纯依赖于深度,而是多层感知机与DCN结合的效果。
摘要由CSDN通过智能技术生成

2022-03-28更新:dcn的这种特征交叉方式个人觉得有点不优雅,且组合方式解释性较差。

之前常常研究CNN的网络结构,却不知道多层感知机(MLP)的设计也有很多讲究。可以设计出很多不同的网络。

对于传统的分类算法来说,输入数据通常是一个一维的向量,向量中的每个值都是一个特征,这时候可以选择的分类算法很多,svm,逻辑回归,决策树,多层感知机等。

多层感知机也是用的比较多的方法,这里介绍一个多层感知机的一个改进。加入一个深度特征交叉网络。如下图黄色单元所示:
在这里插入图片描述
可以看到有个公式:
在这里插入图片描述
整个核心就是这个公式。x0是一个列向量,其中的主要运算可以看成:

  1. x0和自己的转置进行相乘(矩阵的相乘);
  2. 然后和一个权重向量相乘;
  3. 最后和自己原始的x相加。

具体的矩阵shape看图片中黄色的注释。

1、乘积
用于矩阵相乘,表示为C=A*B,A的列数与B的行数必须相同,C也是矩阵,C的行数等于A的行数,C的列数等于B的列数。Cij为A的第i行与B的第j列的点积。
2、点积
用于向量相乘,表示为C=A.*B,A与B均为向量,C为标量,也称标量积、内积、数量积等

x和自己的转置相乘,相当于得到了一个二次方的项,然后乘以一个权重w,权重w的作用是给二次方的项加权,极端情况就是w中的某个值为0,那么这个多项式就不会传下去了。然后加上原来的x,这样原来的x就传下去了。最后经过L层,那么就可以得到0-L次方的一个特征,因为有权重w的存在,所以存在不同次方的项。
在这里插入图片描述
注:其实从公式上看是有问题的,为什么a方,ab,ac前面加权后要📷,并且w2这个权重会给三个特征组合共用其实也是个问题!!!在推荐上这样进行特征组合其实理由并不充分。而模型精度提高可能仅仅是复杂度提高了的原因。

最后,多次项的特征和多层感知机提取的特征一块concat到一起,然后做个分类。

cross layer 的特征相乘部分可以展开写成这样:

在这里插入图片描述

具体调参方式:

直接贴论文中的,文章中是通过网格搜索,并且多层感知机部分是每层的神经元个数相同,搜索的时候搜索两个参数,一个是层数,另外一个是神经元个数,这样就降低了搜索的复杂度,相比每层神经元个数都不同来说。

cross net部分搜索的是层数,从1到6,当layer数=0的时候相当于就只有多层感知机。
在这里插入图片描述

网格搜索的参数对比:

可以看出,不一定是dnn的层数越高性能越好。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值