热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

新兴机器学习算法:在线学习

1.前言前面介绍的是对于所有训练样本{(xi,yi)}i1->n同时进行学习的回归、分类算法。一般来说,在训练样本不同时给定的情况下,比起将所有的训练样本集中起来同
1.前言
前面介绍的是对于所有训练样本{(xi,yi)}i=1->n同时进行学习的回归、分类算法。一般来说,在训练样本不同时给定的情况下,比起将所有的训练样本集中起来同时进行学习,把训练样本逐个输入到学习算法中,并在新的数据进来的时候马上对现在的学习结果进行更新,这样的逐次学习算法更加有效。本篇博客介绍可以进行逐次学习的在线学习算法,当训练样本总数n非常大的时候,在线学习算法对于有限内存的利用、管理来说非常有效,是大数据时代的一种优秀的机器学习算法。
为了便于理解,仅仅讨论简单的关于输入的线性模型:

但是,这里讨论的内容,都可以直接扩展为与参数相关的线性模型:

2.被动攻击学习

2.1 梯度下降量的抑制

回归和分类中对参数的学习都是使与训练样本相关的损失达到最小。在训练样本(x,y)逐个给定的在线学习中,可以使用随机梯度算法进行参数的更新。首先切得与新输入的训练样本(x,y)相关的损失J的梯度▽J。然后朝着梯度下降的方向对参数Θ进行更新。

在这里,e为表示梯度下降幅度的正常值。
概率梯度下降法中,当梯度下降幅度过大时,学习结果往往会不稳定;而当梯度下降幅度过小时,又会使得收敛速度变慢。
梯度下降法中幅度的设定
下降幅度过大,学习结果不稳定;下降幅度过小,收敛速度慢
一般来说,如果能合理选择平方损失等损失函数的话,也能一起呵成地使梯度快速下降到谷底(也就是说可以求得下降过程中的最有解析解,即平稳解)。
因此,一般会引入一个惩罚系数,即偏离现在的解Θ'的幅度,对梯度下降量进行适当的调整:

其中,λ为正的标量。这样的学习方法对基金的梯度下降可以进行有效地抑制,称为被动攻击学习。

2.2 被动攻击分类

进行分类时的损失函数,一般使用Hinge损失的平方形式,即二乘Hinge损失:

在这里,m=Θ'xy表示的是间隔。二乘Hinge损失,可以用损失右侧等于零是的损失来解释:

与分类问题相对应的二乘Hinge损失
与二乘Hinge损失相对应的被动攻击学习中,可以求得解析解。具体而言,先进行分解,变成一个最优化的问题:

继而利用拉格朗日乘子可以求解。
下图给出的是被动攻击分类的具体算法流程:

下图给出了被动攻击分类的实例:

被动攻击分类的实例
经过三次迭代后,基本上得到了与最终结果类似的分类,正样本和负样本都得到了很好的分离。

2.3 被动攻击回归

稍微改变一下损失函数的话,被动攻击学习的思想对回归问题也是适用的。在这里,对于残差r=Θ'x-y,使用L2损失或L1损失:

推到过程相同。可以的带如下与L2损失或L1损失相对应的如下参数更新规则。

3.适应正则化学习
被顶攻击学习中使用的是没有上界的损失函数,因此不能很好滴处理异常值。如果采用图基(Tukey)或Ramp损失等有上界的损失函数的话,就可以大幅度提高他对异常值的鲁棒性。然而,具有上界的损失函数是非凸函数,想要进行最优化求解往往很困难。
这里重点介绍一种利用在线学习特性的鲁邦学习方法——适应正则化学习

3.1 参数分布的学习

适应正则化学习,并不只是对参数Θ进行学习,而是对参数的概率分布进行学习。具体而言,首先假定参数Θ的概率分布为高斯分布。用下面的概率密度函数决定概率分布:

期望为u=(0,0)'/协方差矩阵为(2,1;1,2)的高斯分布
适应正则化学习中,对下式的规则为最小时所对应的Θ的期望值u和协方差矩阵∑进行学习:

第一项的J(u),表示的是新输入的训练样本(x,y)满足参数Θ=u时的损失。第二项为协方差矩阵对应的正则化项,根据训练输入样本向量x的各种元素大小,对正则化的大小进行调整。第三项的作用于被动攻击学习类似,
即调整解的变化量。式中,C>0表示的是正则化参数的倒数,u'和∑'是当前迭代次数下对应的均值与协方差的解。KL(p||q)是概率密度函数p到q的KL距离:

同理,改变参数的更新规则,也可以利用适应正则化进行分类与回归。


推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文详细介绍了商汤科技面试中涉及的CV算法面经内容,包括CornerNet的介绍与CornerPooling的解决方案、Mimic知识蒸馏的实现方式、MobileNet的特点、普通卷积和DW PW卷积的计算量推导、Residual结构的来源等。同时还讨论了在人脸关键点和检测中的mimic实现方式、pose对人脸关键点的提升作用、目标检测中可能遇到的问题以及处理检测类别冲突的方法。此外,还涉及了对机器学习的了解程度和相似度分析的问题。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • Python入门后,想要从事自由职业可以做哪方面工作?1.爬虫很多人入门Python的必修课之一就是web开发和爬虫。但是这两项想要赚钱的话 ... [详细]
author-avatar
gaoxuxinyue23
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有