给神经网络加入先验知识!

简介: 给神经网络加入先验知识!

如何给神经网络加入先验?


出几道题目开场!


  1. 广告展现预估场景,要求广告主充钱越多,曝光越多,如何用神经网络做到?


  1. 多层次文本分类,要求笔记本电脑概率高的时候,电子设备的概率要接近,如何做到?


  1. 多目标电商行为预测,要求加购,下单,支付的概率保持单调性,如何做到?


以上问题,都对应着给神经网络加入先验的狭义应用。想看答案翻到最后!


今天的班车原创日更,我们就仔细探讨一下这个问题。


广义上讲,给神经网络加入先验,包含约定结果假设,引导神经网络,限制学习路径等。


用一句话讲,我不要神经网络觉得,我要我觉得!


在前面文章,为什么GBDT可以超越深度学习,讲解了人对数据的理解,作用于特征工程时候,会更有利于提升决策树,并且引用了好风凭借力,祝我上青云的例子


那么问题来了,在决策树我会做特征,到了神经网络具体怎么操作呢?

我们从这四个方面展开,给大家抛砖引玉。


数据和特征



1.数据和特征层次


输入层次的先验引入主要是通过数据和特征下手,我们在前面文章,特征工程给了很好的例子可能是全网写特征工程最通透的...。


特征工程又不是传统机器学习算法的专属,神经网络良好的借用含有人先验知识的特征,也可以起到事半功倍的效果。


神经网络在非线性建模上有着无可比拟的优势,但一些特定的任务还是非常考验人的先验的。比如声纹识别领域,必须借助高级的特征工程,例如MFCC,这里面包含了大量的人工步骤和经验参数,预加重,分帧,加窗,快速傅里叶变换(FFT),梅尔滤波器组,离散余弦变换(DCT),等等,通过这些具体的操作把人对声音的刻画引入到神经网络。

Kaggle老话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。真的是金玉良言。


除此之外,在表数据也有很多特征辅助网络刷点的例子,比如CTR场景基本就是大量的特征构成的。引用DCN论文里的一句话:People generally consider DNNs as universal function approximators, that could potentially learn all kinds of feature interactions. However, recent studies found that DNNs are inefficient to even approximately model 2nd or 3rd-order feature crosses,他这里的意思就是说高阶的特征尽量往NN的后面放。其实原理直白了,我们前面的文章也都多多少少暗含了。就是富含先验特征是人工借力,你都有很多“人工”智能的成分了,就不要让NN瞎搞了,尽量靠后,这样NN的非线性搞砸的几率就变小了。


模型结构


2.模型结构层次


模型结构层次其实是大家一直在做的事情,具体的例子太多了。比如文本分类里面非常经典的textcnn模型,他假设了基本的文本分类原理。语义的局部组合性质,用3,4,5的卷积窗来模拟N-gram(词组)的语义学习。除此之外,图像分类常用的CNN中使用的卷积层就是局部假设,利用了图像像素距离越近相关性越强的先验 ,还有CTR中典型的神经网络交叉操作,都是人对数据和任务理解,在网络设计中具体的表达形式。


NLP中经典的注意力机制,也是如此。注意力机制现在几乎成了任何深度学习任务的必备组件了,他们提出的初衷都是人的先验,在神经网络中学习组件的具象化。


网络参数


3.网络参数层次


网络参数层次引入先验,这个分支路线点开了神经网络上预训练的技能树

包括不限于word2vec,Bert,乃至图像里面的预训练resnet,MAE等。前面写的文章讲的很清楚:


一文串起从NLP到CV 预训练技术和范式演进


他们搞的事情,就是把知识融入到网络参数中。为了达到这个目标,使用了很多目标任务选择方式的技能。比如NLP里从传统神经语言模型,发展到完形填空。CV里从大数据集分类预训练到图像复原重建。


当然除了目标任务选择,也涉及2里很多网络结构的设计。


模型蒸馏也算一种在网络参数层次+目标约束引入先验的具体操作。狭义的蒸馏是大的教师模型,用来指导小模型的训练,可以达到模型压缩,以及知识转移的作用。这里对模型蒸馏不再展开,可以查阅相关文章。


目标约束


4.目标约束层次


比如最近兴起的对比学习,他是很典型的在目标约束层次+数据和特征层次引入先验的。对比学习最简单的例子可以翻看前文


5行代码实现的对比学习,效果超好!


除了对比学习,文章开头题目中提到的问题,很多都是在目标约束层次来解决的。


回答开头的问题1,保持神经输出关于具体输入的单调性。神经网络的预测目标的单调性协议Loss,就是通过损失函数对单调性的约束,惩罚了破坏单调性的行为。



回答开头的问题2,回答层次分类约束的题目,包括各种先验的正则化,通过目标层级无环图,设计分层L2正则,约束了链接关系相近的类别,其预测值也要接近。



回答开头的问题3,回答多目标任务单调性的题目。我们可以通过这样的损失约束,来惩罚目标不不单调的行为。



当然,以上具体的正则化和Loss形式,都没法做到完全的单调性保证,只是尽量用人的先验来约束目标。


好了,班车也基本到站了。我们给文章做个总结,文章在数据和特征层次模型结构层次网络参数层次,目标约束层次四个方面总结了神经网络加入先验的方法。


相关文章
|
搜索推荐 机器学习/深度学习 算法
如何增加用户的参与感?交互式推荐来了!
一方面,互动能让用户感受到更多的参与感,并能一定程度上干预推荐结果,而不只是被动接受推荐结果;另一方面,系统通过与用户的互动能更加了解用户的偏好,从而提升推荐效果。那么,我们是如何让用户和推荐系统互动起来的呢?且看下文。
4927 0
|
3月前
|
人工智能 算法 数据库
给AI装上一个'超级大脑':信息检索如何改变RAG系统的游戏规则
从传统检索方法到现代向量检索,通过一个购物助手的故事,直观展示了不同检索技术的原理与应用。学会这些技巧,让你的AI不再是「记忆只有金鱼长度」的大模型!
200 24
|
人工智能 自然语言处理 搜索推荐
瞭望塔丨生成式人工智能应用场景与落地路径
GenAI 的应用落地是一项系统性工程,离不开战略、业务、技术、组织等多维度的统筹和推动。
|
9月前
HarmonyOS NEXT 实战系列06-路由
鸿蒙开发中,页面路由(@ohos.router)和组件导航(Navigation)都支持应用内页面跳转。页面路由更易上手,适合初学者,未来多用于混合场景;而组件导航灵活性更强,支持更丰富的动效与生命周期管理,且更适合一次开发多端部署。 **Router模块**通过URL实现页面切换,提供`router.pushUrl`(压栈跳转,保留当前页状态)和`router.replaceUrl`(替换当前页并销毁)两种模式。同时支持`Standard`(多实例)和`Single`(单实例)实例模式,可传递参数至目标页面。 掌握这些基础,即可进行多页面应用开发。
|
机器学习/深度学习 人工智能 搜索推荐
【电商搜索】现代工业级电商搜索技术-中科大-利用半监督学习改进非点击样本的转化率预测
【电商搜索】现代工业级电商搜索技术-中科大-利用半监督学习改进非点击样本的转化率预测
|
监控 网络协议 Java
IO 多路复用? 什么是 IO 多路复用? 简单示例(日常生活)来解释 IO 多路复用 一看就懂! 大白话,可爱式(傻瓜式)教学! 保你懂!
本文通过日常生活中的简单示例解释了IO多路复用的概念,即一个线程通过监控多个socket来处理多个客户端请求,提高了效率,同时介绍了Linux系统中的select、poll和epoll三种IO多路复用的API。
819 2
|
存储 前端开发 算法
常见的前端加密方式有哪些?运用场景有哪些?
【4月更文挑战第12天】前端加密技术包括对称加密(如AES、DES)、非对称加密(如RSA)和Hash算法(如MD5、SHA-1)。对称加密用于本地数据加密、HTTPS通信,非对称加密常用于用户登录认证,Hash算法适用于数据完整性校验和密码存储。应用场景包括用户登录认证、敏感数据传输、文件加密和支付安全。加密技术结合访问控制、安全审计等措施,能提升数据和用户信息安全。
1697 9
|
数据采集 存储 关系型数据库
Python爬虫-使用代理获取微信公众号文章
使用代理爬取微信公众号文章
1068 0
|
算法 搜索推荐
【直播预告】融合复杂目标且支持实时调控的重排模型在淘宝流式推荐场景的应用
【直播预告】融合复杂目标且支持实时调控的重排模型在淘宝流式推荐场景的应用
523 1