0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于代码的机器学习是什么,它的原理如何

独爱72H 来源:CDA数据分析师 作者:CDA数据分析师 2020-03-20 15:36 次阅读

(文章来源:CDA数据分析师)

随着IT组织的发展,其代码库的大小以及开发人员工具链的复杂性也在不断增长。工程负责人对其代码库,软件开发过程和团队状态了解的非常有限。通过将现代数据科学和机器学习技术应用于软件开发,大型企业有机会显著提高其软件交付性能和工程效率。

在过去的几年中,许多大型公司,例如Google,Microsoft,Facebook以及类似Jetbrains等较小的公司已经与学术研究人员合作,为基于代码的机器学习奠定了基础。

基于代码的机器学习是什么,它的原理如何

基于代码的机器学习?代码机器学习(MLonCode)是一个新的跨学科研究领域,涉及自然语言处理,编程语言结构以及社会和历史分析,例如贡献图形和提交时间序列。MLonCode旨在从大规模的源代码数据集中学习,从而能自动执行软件工程任务,例如辅助代码审查,代码重复数据删除,软件专业知识评估等。

为什么MLonCode很难?某些MLonCode问题要求零错误率,例如与代码生成有关的错误率。自动程序修复是一个特定的示例。一个微小的单一错误预测可能会导致整个程序的编译失败。

在其他一些情况下,错误率必须足够低。理想的模型应犯的错误应尽可能少,所以用户(软件开发人员)的信噪比仍是可承受且值得信赖的。因此,可以使用与传统静态代码分析工具相同的方式来使用该模型。最佳实践挖掘就是一个很好的例子。

最后,绝大多数MLonCode问题是无监督的,或至多是弱监督的。手动标记数据集可能会非常昂贵,因此研究人员通常必须开发相关的启发式方法。例如,有许多相似性分组任务,例如向相似的开发人员展示或根据专业领域帮助团队。我们在本主题中的经验在于挖掘代码格式化规则,并将其应用于修复错误,这与短绒一样,但完全不受监督。有一个相关的学术竞赛来预测格式问题,称为CodRep。

基于代码的机器学习是什么,它的原理如何

MLonCode问题包括各种数据挖掘任务,这些任务从理论上讲可能是微不足道的,但由于规模或对细节的关注,在技术上仍然具有挑战性。示例包括代码克隆检测和类似的开发人员聚类。此类问题的解决方案在年度学术会议“ 采矿软件存储库”中进行了介绍。

采矿软件存储库会议徽标。解决MLonCode问题时,通常用以下方式之一表示源代码:频率字典(加权词袋,BOW)。示例:函数内的标志符;文件中的graphlet;存储库的依赖性;可以通过TF-IDF加权频率等。这些表示是最简单,可伸缩性最高的。顺序令牌流(TS),对应于源代码解析序列。该流通常通过指向相应抽象语法树节点的链接来增强。此表示形式对常规自然语言处理算法(包括序列到序列深度学习模型)很友好。

一棵树,它自然地来自抽象语法树。在进行不可逆的简化或标志符后,我们执行各种转换。这是最强大的表示形式,也是最难使用的表示形式。以下是相关的ML模型包括各种图嵌入和门控图神经网络

解决MLonCode问题的许多方法都基于所谓的自然假说(Hindle等):“从理论上讲,编程语言是复杂,灵活且功能强大的,但很多人实际上编写的程序大多是简单且相当重复的,因此它们具有有用的可预测统计属性,可以在统计语言模型中捕获并用于软件工程、任务。”

该声明证明了大代码的有用性:分析的源代码越多,强调的统计属性越强,并且训练有素的机器学习模型所获得的指标越好。底层关系与当前最新的自然语言处理模型相同:如XLNet,ULMFiT等。类似地,通用MLonCode模型可以在下游任务中进行训练和利用。
(责任编辑:fqj)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4557

    浏览量

    66884
  • 机器学习
    +关注

    关注

    66

    文章

    8136

    浏览量

    130670
收藏 人收藏

    评论

    相关推荐

    机器学习发展历程

    机器学习发展历程:机器学习发展现状、机器学习发展前景和机器
    的头像 发表于 08-17 16:30 1228次阅读

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?
    的头像 发表于 08-17 16:30 1419次阅读

    机器学习theta是什么?机器学习tpe是什么?

    机器学习theta是什么?机器学习tpe是什么? 机器学习是近年来蓬勃发展的一个领域,其相关技术
    的头像 发表于 08-17 16:30 1245次阅读

    机器学习是什么意思?机器学习属于什么分支?机器学习有什么用处?

    机器学习是什么意思?机器学习属于什么分支?机器学习是什么有什么用处?
    的头像 发表于 08-17 16:30 1291次阅读

    机器学习与数据挖掘的区别 机器学习与数据挖掘的关系

    机器学习与数据挖掘的区别 , 机器学习与数据挖掘的关系 机器学习与数据挖掘是如今热门的领域。随着
    的头像 发表于 08-17 16:30 1546次阅读

    机器学习算法入门 机器学习算法介绍 机器学习算法对比

    机器学习算法入门 机器学习算法介绍 机器学习算法对比 机器
    的头像 发表于 08-17 16:27 637次阅读

    机器学习算法总结 机器学习算法是什么 机器学习算法优缺点

    机器学习算法总结 机器学习算法是什么?机器学习算法优缺点?
    的头像 发表于 08-17 16:11 1110次阅读

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    机器学习算法汇总 机器学习算法分类 机器学习算法模型 机器
    的头像 发表于 08-17 16:11 734次阅读

    机器学习和深度学习的区别

    机器学习和深度学习的区别 随着人工智能技术的不断发展,机器学习和深度学习已经成为大家熟知的两个术
    的头像 发表于 08-17 16:11 3420次阅读

    机器学习可以分为哪几类?机器学习技术有哪些?

    机器学习可以分为哪几类?机器学习技术有哪些 机器学习(Machine Learning,ML)是
    的头像 发表于 08-17 16:11 4415次阅读

    机器学习和深度学习的区别

      机器学习是一种方法,利用算法来让机器可以自我学习和适应,而且不需要明确地编程。在许多应用中,需要机器使用历史数据训练模型,然后使用该模型
    发表于 08-02 17:36 389次阅读

    如何使用Arm CMSIS-DSP实现经典机器学习

    通常,当开发人员谈论机器学习(ML)时,他们指的是神经网络(nn)。 神经网络的巨大优势在于,你不需要成为一个领域专家,而且可以迅速找到一个可行的解决方案。神经网络的缺点是它们通常需要无数的记忆
    发表于 08-02 07:12

    21句话入门机器学习

    Python,略知NumPy,认真读完这21句话,逐行敲完示例代码,就可以由此进入自由的王国。作者|天元浪子责编|欧阳姝黎出品|CSDN博客01机器学习有四种用途
    的头像 发表于 07-31 23:44 425次阅读
    21句话入门<b class='flag-5'>机器</b><b class='flag-5'>学习</b>

    联合学习在传统机器学习方法中的应用

    联合学习在传统机器学习方法中的应用
    的头像 发表于 07-05 16:30 558次阅读
    联合<b class='flag-5'>学习</b>在传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法中的应用

    高效理解机器学习

    来源:DeepNoMind对于初学者来说,机器学习相当复杂,可能很容易迷失在细节的海洋里。本文通过将机器学习算法分为三个类别,梳理出一条相对清晰的路线,帮助初学者理解
    的头像 发表于 05-08 10:24 362次阅读
    高效理解<b class='flag-5'>机器</b><b class='flag-5'>学习</b>