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

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

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


出几道题目开场!


  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形式,都没法做到完全的单调性保证,只是尽量用人的先验来约束目标。


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


相关文章
|
人工智能 自然语言处理 搜索推荐
AI战略丨生成式人工智能应用场景与落地路径
GenAI 的应用落地是一项系统性工程,离不开战略、业务、技术、组织等多维度的统筹和推动。
|
7月前
HarmonyOS NEXT 实战系列06-路由
鸿蒙开发中,页面路由(@ohos.router)和组件导航(Navigation)都支持应用内页面跳转。页面路由更易上手,适合初学者,未来多用于混合场景;而组件导航灵活性更强,支持更丰富的动效与生命周期管理,且更适合一次开发多端部署。 **Router模块**通过URL实现页面切换,提供`router.pushUrl`(压栈跳转,保留当前页状态)和`router.replaceUrl`(替换当前页并销毁)两种模式。同时支持`Standard`(多实例)和`Single`(单实例)实例模式,可传递参数至目标页面。 掌握这些基础,即可进行多页面应用开发。
|
机器学习/深度学习 人工智能 自然语言处理
注意力机制详解(一)
注意力机制是受人类认知过程启发的一种深度学习技术,它允许模型动态地聚焦于输入的不同部分,根据上下文分配“注意力”。这种机制最早在序列到序列模型中提出,解决了长距离依赖问题,增强了模型理解和处理复杂数据的能力。基本的注意力计算涉及查询(Q)、键(K)和值(V),通过不同方式(如点积、拼接等)计算相关性并应用softmax归一化,得到注意力权重,最后加权组合值向量得到输出。自注意力是注意力机制的一种形式,其中Q、K和V通常是相同的。在自然语言处理(NLP)中,注意力机制广泛应用在Transformer和预训练模型如BERT中,显著提升了模型的表现。
|
开发工具 git
vscode 将已修改代码提交推送git时一直转圈也没有反馈
vscode 将已修改代码提交推送git时一直转圈也没有反馈
1827 0
|
自然语言处理 PyTorch 算法框架/工具
CLUE社区最新神器!PromptCLUE:大规模多任务Prompt预训练中文开源模型
CLUE社区最新神器!PromptCLUE:大规模多任务Prompt预训练中文开源模型
756 0
|
存储 前端开发 算法
常见的前端加密方式有哪些?运用场景有哪些?
【4月更文挑战第12天】前端加密技术包括对称加密(如AES、DES)、非对称加密(如RSA)和Hash算法(如MD5、SHA-1)。对称加密用于本地数据加密、HTTPS通信,非对称加密常用于用户登录认证,Hash算法适用于数据完整性校验和密码存储。应用场景包括用户登录认证、敏感数据传输、文件加密和支付安全。加密技术结合访问控制、安全审计等措施,能提升数据和用户信息安全。
1481 9
|
数据采集 存储 关系型数据库
Python爬虫-使用代理获取微信公众号文章
使用代理爬取微信公众号文章
862 0
|
网络协议 Linux 虚拟化
VMware安装Linux虚拟机之桥接模式网络配置图文详解(2)
VMware安装Linux虚拟机之桥接模式网络配置图文详解(2)
439 0
|
机器学习/深度学习 算法 搜索推荐
动手学强化学习(一):多臂老虎机 Multi-armed Bandit
 强化学习关注智能体和环境交互过程中的学习,这是一种试错型学习(trial-and-error learning)范式。在正式学习强化学习之前,我们需要先了解多臂老虎机问题,它可以被看作简化版的强化学习问题。与强化学习不同,多臂老虎机不存在状态信息,只有动作和奖励,算是最简单的“和环境交互中的学习”的一种形式。多臂老虎机中的探索与利用(exploration vs. exploitation)问题一直以来都是一个特别经典的问题,理解它能够帮助我们学习强化学习。
1381 1
下一篇
oss教程