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

    文章

    4796

    浏览量

    68706
  • 机器学习
    +关注

    关注

    66

    文章

    8423

    浏览量

    132744
收藏 人收藏

    评论

    相关推荐

    传统机器学习方法和应用指导

    在上一篇文章中,我们介绍了机器学习的关键概念术语。在本文中,我们会介绍传统机器学习的基础知识和多种算法特征,供各位老师选择。 01 传统机器
    的头像 发表于 12-30 09:16 226次阅读
    传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法和应用指导

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器
    的头像 发表于 12-25 11:54 117次阅读

    什么是机器学习?通过机器学习方法能解决哪些问题?

    计算机系统自身的性能”。事实上,由于“经验”在计算机系统中主要以数据的形式存在,因此机器学习需要设法对数据进行分析学习,这就使得逐渐成为智能数据分析技术的创新源之一,
    的头像 发表于 11-16 01:07 440次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习机器
    的头像 发表于 11-15 09:19 496次阅读

    具身智能与机器学习的关系

    (如机器人、虚拟代理等)通过与物理世界或虚拟环境的交互来获得、发展和应用智能的能力。这种智能不仅包括认知和推理能力,还包括感知、运动控制和环境适应能力。具身智能强调智能体的身体和环境在智能发展中的重要性。 2. 机器学习的定义
    的头像 发表于 10-27 10:33 397次阅读

    【《时间序列与机器学习》阅读体验】+ 时间序列的信息提取

    之前对《时间序列与机器学习》一书进行了整体浏览,并且非常轻松愉快的完成了第一章的学习,今天开始学习第二章“时间序列的信息提取”。 先粗略的翻阅第二章,内容复杂,充斥了大量的定义、推导计
    发表于 08-14 18:00

    【「时间序列与机器学习」阅读体验】+ 鸟瞰这本书

    这本书不仅内容丰富,而且当我打开时,它还带有一种特殊的含义--页面上的签名来自一次温暖的社区活动。这些签名充当了作者、读者和整个学习社区之间的纽带,见证了知识的转移和成长的乐趣。 本书目录结构
    发表于 08-12 11:28

    【「时间序列与机器学习」阅读体验】+ 简单建议

    这本书以其系统性的框架和深入浅出的讲解,为读者绘制了一幅时间序列分析与机器学习融合应用的宏伟蓝图。作者不仅扎实地构建了时间序列分析的基础知识,更巧妙地展示了机器学习如何在这一领域发挥巨
    发表于 08-12 11:21

    【《时间序列与机器学习》阅读体验】+ 了解时间序列

    收到《时间序列与机器学习》一书,彩色印刷,公式代码清晰,非常精美。感谢作者,感谢电子发烧友提供了一个让我学习时间序列及应用的机会! 前言第一段描述了编写背景: 由此可知,这是一本关于时
    发表于 08-11 17:55

    pycharm如何训练机器学习模型

    PyCharm是一个流行的Python集成开发环境(IDE),提供了丰富的功能,包括代码编辑、调试、测试等。在本文中,我们将介绍如何在PyCharm中训练机器学习模型。 一、安装Py
    的头像 发表于 07-11 10:14 841次阅读

    机器学习中的数据分割方法

    机器学习中,数据分割是一项至关重要的任务,直接影响到模型的训练效果、泛化能力以及最终的性能评估。本文将从多个方面详细探讨机器学习中数据分
    的头像 发表于 07-10 16:10 1881次阅读

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器学习
    的头像 发表于 07-02 11:25 1117次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1422次阅读

    深入探讨机器学习的可视化技术

    机器学习可视化(简称ML可视化)一般是指通过图形或交互方式表示机器学习模型、数据及其关系的过程。目标是使理解模型的复杂算法和数据模式更容易,使技术和非技术利益相关者更容易理解
    发表于 04-25 11:17 428次阅读
    深入探讨<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的可视化技术

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型。
    的头像 发表于 01-08 09:25 1009次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型