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

    文章

    4941

    浏览量

    73129
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136224
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 2630次阅读

    STM32+Android实现的智能家政机器人电路代码论文及项目源码

    STM32+Android实现的智能家政机器人电路代码论文及项目部分截图:
    发表于 05-28 21:22

    【「# ROS 2智能机器人开发实践」阅读体验】视觉实现的基础算法的应用

    学习建议 对于初学者,建议先通过仿真(如Gazebo)验证算法,再迁移到真实机器人,以降低硬件调试成本。 多参与开源社区(如ROS2的GitHub项目),学习前沿技术并贡献代码
    发表于 05-03 19:41

    18个常用的强化学习算法整理:从基础方法到高级模型的理论技术与代码实现

    本来转自:DeepHubIMBA本文系统讲解从基本强化学习方法到高级技术(如PPO、A3C、PlaNet等)的实现原理与编码过程,旨在通过理论结合代码的方式,构建对强化学习算法的全面理解。为确保内容
    的头像 发表于 04-23 13:22 1292次阅读
    18个常用的强化<b class='flag-5'>学习</b>算法整理:从基础方法到高级模型的理论技术与<b class='flag-5'>代码</b>实现

    请问STM32部署机器学习算法硬件至少要使用哪个系列的芯片?

    STM32部署机器学习算法硬件至少要使用哪个系列的芯片?
    发表于 03-13 07:34

    ,让机器人与HMI屏无缝对接

    导读随着工业自动化向智能化发展,机器人与HMI屏的通信变得至关重要。本文将为您介绍一款创新的解决方案,打破了通信协议的壁垒,实现机器人与HMI屏的无缝连接。随着工业自动化向智能化的迈进,生产制造业
    的头像 发表于 02-17 11:39 727次阅读
    <b class='flag-5'>它</b>,让<b class='flag-5'>机器</b>人与HMI屏无缝对接

    机器学习模型市场前景如何

    当今,随着算法的不断优化、数据量的爆炸式增长以及计算能力的飞速提升,机器学习模型的市场前景愈发广阔。下面,AI部落小编将探讨机器学习模型市场的未来发展。
    的头像 发表于 02-13 09:39 617次阅读

    单片机学习—C51源代码和Proteus仿真文件

    单片机学习—C51源代码和Proteus仿真文件.zip, 有各种例子
    发表于 02-10 13:46 2次下载

    嵌入式机器学习的应用特性与软件开发环境

    作者:DigiKey Editor 在许多嵌入式系统中,必须采用嵌入式机器学习(Embedded Machine Learning)技术,这是指将机器学习模型部署在资源受限的设备(如微
    的头像 发表于 01-25 17:05 1209次阅读
    嵌入式<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的应用特性与软件开发环境

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

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

    【「具身智能机器人系统」阅读体验】1.全书概览与第一章学习

    简单的具身智能机器人的应用案例。具体目录如下: 第一章学习 具身智能机器人是指能够在无人工干预下自主执行任务的机器人。相较于传统非具身智能机器
    发表于 12-27 14:50

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

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

    《具身智能机器人系统》第7-9章阅读心得之具身智能机器人与大模型

    研读《具身智能机器人系统》第7-9章,我被书中对大模型与机器人技术融合的深入分析所吸引。第7章详细阐述了ChatGPT for Robotics的核心技术创新:摒弃了传统的分层控制架构,创造性地
    发表于 12-24 15:03

    zeta在机器学习中的应用 zeta的优缺点分析

    在探讨ZETA在机器学习中的应用以及ZETA的优缺点时,需要明确的是,ZETA一词在不同领域可能有不同的含义和应用。以下是根据不同领域的ZETA进行的分析: 一、ZETA在机器学习
    的头像 发表于 12-20 09:11 1624次阅读

    构建云原生机器学习平台流程

    构建云原生机器学习平台是一个复杂而系统的过程,涉及数据收集、处理、特征提取、模型训练、评估、部署和监控等多个环节。
    的头像 发表于 12-14 10:34 673次阅读