关于机器学习:ChatGPT4为什么能让马斯克眼红到起诉

令马斯克眼红到起诉的GPT-4到底是什么? 在人工智能(AI)畛域的倒退历程中,GPT-4的推出被视为一个重要的里程碑。然而,就在这项技术引领AI行业迈向新高度之时,特斯拉CEO埃隆·马斯克因与OpenAI及其CEO萨姆·奥尔特曼等人在合同协定上产生争议,并对其提起诉讼,引起了宽泛关注。 这一事件不仅在技术界引起了微小触动,也引发了外界对GPT-4技术的价值和后劲更深刻的好奇和关注。 那么,GPT-4到底是什么,为何会成为马斯克和OpenAI之间争议的焦点呢? GPT-4简介GPT-4,即Generative Pre-trained Transformer 4,是由OpenAI开发的最新一代语言预测模型。作为GPT系列的最新成员,GPT-4在自然语言解决(NLP)畛域获得了微小的停顿。它不仅可能更精确地了解和生成人类语言,还展现出了前所未有的推理、创作以及与人类进行天然对话的能力。 PS:前两天刚降级到了GPT4,我用了我也眼红啊!ChatGPT4.0降级教程其特点包含: 更为深刻的理解能力:GPT-4具备更精确的语义理解能力,可能解析简单的语言构造和隐含意义,在语言翻译、文本摘要等工作中体现出更高的准确性。更加天然的语言生成:GPT-4生成的文本晦涩天然,靠近人类写作格调,使其在创作文章、诗歌等方面具备更强的能力。常识笼罩更全面:借助丰盛的训练数据,GPT-4把握了更宽泛的常识,可能涵盖更多畛域的问题,提供更全面的答案。推理能力更强:GPT-4展现出更为杰出的逻辑推理能力,可能解决更简单的问题,并提供更深刻的剖析。马斯克与OpenAI的纠纷作为OpenAI的联结创始人之一,马斯克对公司最后的愿景和使命深感情怀。 在OpenAI创建之初,公司鼓吹着服务于人类福祉的AI技术倒退指标,并始终秉持着开源和非营利的准则。 然而,随着公司策略的调整,重心转向了盈利,并与微软建设了亲密的单干。马斯克认为这是对最后的创建主旨的背弃,特地是GPT-4的研究成果并未像晚期那样凋谢共享,而是次要服务于微软的商业利益。 GPT-4的商业化争议GPT-4的开源非开源之争引发了业界的宽泛探讨与争议。 一方面,这标记着OpenAI在技术倒退和商业运作上迈入了新阶段,突显了AI技术商业化的微小后劲; 另一方面,这一决定也引起了包含马斯克在内的泛滥AI和开源社区的担心和不满。他们放心这种做法可能会限度AI技术的翻新和遍及,最终影响AI技术为全人类带来的益处。 GPT-4的技术后劲和社会影响GPT-4的技术冲破为人工智能的利用和倒退开启了新的篇章。 从文本生成、主动编程、语言翻译到简单问题解答,GPT-4的利用范畴宽泛,其对经济、教育、医疗等多个畛域的潜在影响微小。 然而,随着技术的提高,也带来了对人类工作的冲击、信息真实性的挑战以及AI伦理和平安的问题,须要全社会独特面对和解决。 结语GPT-4不仅是一项技术革新,也是人工智能倒退中的一个争议焦点。 马斯克与OpenAI之间的诉讼,不仅仅是商业合同的纠纷,更是对AI倒退方向和价值取向的一次公开答辩。 无论后果如何,GPT-4都将持续在AI的历史长河中占据一席之地,引领着技术和社会向前提高。

March 3, 2024 · 1 min · jiezi

关于机器学习:机器学习-Octave语言

场景Octave语言是一种高级数值计算和数据可视化的开源软件。它提供了一种不便的形式来执行数值计算、数据分析和可视化,特地是在迷信和工程畛域中。明天学习了一下Octave的基本操作,记录一下。 下载去Octave官网下载即可。octave下载可自行下载。 基本操作根本运算Octave的根本运算非常不便,只需输出 相似 1 + 1即可。非常简单,如果应用java / python / c# 还是要写个一两行代码的、 矩阵&向量操作在机器学习中,矩阵&向量承当着十分重要的角色,在python中,咱们常常会应用numpy 库做这些操作,python中的基本操作应该是这样的: import numpy as np# 创立向量vector = np.array([1, 2, 3, 4, 5])print("向量:")print(vector)# 创立矩阵matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print("\n矩阵:")print(matrix)# 创立非凡矩阵# 单位矩阵identity_matrix = np.eye(3)print("\n单位矩阵:")print(identity_matrix)# 全零矩阵zero_matrix = np.zeros((2, 3))print("\n全零矩阵:")print(zero_matrix)# 全一矩阵ones_matrix = np.ones((3, 2))print("\n全一矩阵:")print(ones_matrix)# 创立随机矩阵random_matrix = np.random.rand(2, 2)print("\n随机矩阵:")print(random_matrix)在octave中,生成一个矩阵A=[1 2;3 4;5 6]即可生成一个矩阵应用;离开就是行,咱们能够再试试这操作非常简单。 生成向量1到6,2到99试一试非常简单只须要, n:m 即可生成向量。 之前咱们已经提到过步长的概念,那么咱们从1到10 以2为步长咱们以Octave的命令应该是:n:步长:m这就是在Octave中的提现,是不是非常简单?再来,咱们要后果生成2行3列后果全为1的元素2行5列的0矩阵随机随机且合乎正态分布n阶单位矩阵 生成幻方矩阵(每行每列的和对角线的和雷同) 完结这是一些基本操作,前面我会持续学习计算和绘图。

March 3, 2024 · 1 min · jiezi

关于机器学习:Pytorch中张量的高级选择操作

在某些状况下,咱们须要用Pytorch做一些高级的索引/抉择,所以在这篇文章中,咱们将介绍这类工作的三种最常见的办法:torch.index_select, torch.gather and torch.take 咱们首先从一个2D示例开始,并将抉择后果可视化,而后延申到3D和更简单场景。最初以表格的模式总结了这些函数及其区别。 torch.index_selecttorch.index_select是 PyTorch 中用于按索引抉择张量元素的函数。它的作用是从输出张量中依照给定的索引值,选取对应的元素造成一个新的张量。它沿着一个维度抉择元素,同时放弃其余维度不变。也就是说:保留所有其余维度的元素,但在索引张量之后的指标维度中抉择元素。 num_picks = 2 values = torch.rand((len_dim_0, len_dim_1)) indices = torch.randint(0, len_dim_1, size=(num_picks,)) # [len_dim_0, num_picks] picked = torch.index_select(values, 1, indices)下面代码将失去的张量形态为[len_dim_0, num_picks]:对于沿维度0的每个元素,咱们从维度1中抉择了雷同的元素。 当初咱们应用3D张量,一个形态为[batch_size, num_elements, num_features]的张量:这样咱们就有了num_elements元素和num_feature特色,并且是一个批次进行解决的。咱们为每个批处理/个性组合抉择雷同的元素: import torch batch_size = 16 num_elements = 64 num_features = 1024 num_picks = 2 values = torch.rand((batch_size, num_elements, num_features)) indices = torch.randint(0, num_elements, size=(num_picks,)) # [batch_size, num_picks, num_features] picked = torch.index_select(values, 1, indices)上面是如何应用简略的for循环从新实现这个函数的办法: ...

March 2, 2024 · 2 min · jiezi

关于机器学习:基于yolov5实现的AI智能盒子框架

2021-2023是积淀的几年,经济不景气,各行各业都不太好混,所以这几年也没有太多心理花在csdn上为各大网友写一些技术文章,2024年初,也算是给本人留下一点岁月的脚印吧,所以把这段时间精心钻研的货色写进去供大家交换,顺带也看看是否有机会遇到能帮忙到其余技术公司或敌人,在交换中实现双赢,有须要的敌人能够威信(幺捌零叁捌捌伍陆柒零贰,威信与电画同号),具体单干形式具体交换。 开发背景从事安防多年,但根本都是从事音视频的编解码工作,很少解决图形图像相干算法,起因如下:(1)图形图像相干算法如车牌辨认辨认、人脸识别等如果是本人研发,波及到高等数学等及图形图像解决等浅近的反对,开发难度较大;(2)前n年根本没有开源的、繁难的不须要相熟底层算法的AI辨认框架,很难将生存中波及的AI辨认或机器学习的相干算法变成事实;次要基于以上两点,导致AI相干的算法落地很难、实现很难、利用更难! 而后,基于百度paddle和yolo的开源框架呈现了,这使得AI辨认难度大大降落,利用门槛大大降低,然而paddle则是面向服务器,对硬件要求较高,部署也绝对简单,很难将广泛利用到生存中,所以通过多番调研yolo则是咱们最好的抉择。抉择yolo有如下劣势(1)开源且辨认效率十分高,仅需一次辨认即可实现所有对象的分类辨认。(2)能够利用到服务器中,也能够利用到小型硬件中,本文部署的硬件就反对windows/ubun,反对jetson nano、jetson orin nano等3款中高低档硬件(约5000元、3000元、1000元)(3)开源技术论坛和材料较多(4)反对应用python,反对跨平台部署(一套代码,多套环境部署) 在安防畛域,基于音视频的根底操作曾经基本上没有任何难度(看视频、直播、录像等),但基于音视频的AI利用却很难,但随着技术的成熟,这些利用也变得越来越多,联合生存理论需要的场景就有很多,例如(1)非法闯入:夜间无人值守或重要地点进出监控(2)摔倒检测:关爱老人,老人摔倒检测或打架斗殴跌倒检测,可用于社区、监狱、广场、学校等场合。(3)明火辨认:严禁烟火的第三方辨认火焰,避免火宅,可用于森林、车间、化工产等场合。(4)烟雾排放:同明火场景。(5)越界检测:越过指定边界,产生报警,个别用于行人辨认与闯入检测,联合视频区域检测。可用于无人值守场景。(6)睡岗检测:工作期间睡觉检测,防止安全事故产生。(7)离岗检测:工作期间来到岗位检测,防止安全事故产生。(8)人群聚众:检测人员汇集,防止打群架、防止踩踏事件产生。(9)攀高检测:检测人员是否进行攀登,防止安全事故产生。(10)打架斗殴:检测人员是否打架,可用于学校、公共场所。(11)人脸抓拍:人脸数据抓拍,可推送给人脸识别服务进行1&1辨认及陌生人辨认。(12)遮挡检测:检测摄像机是否被人为遮挡或被损坏。协调运维人员进行保护。(13)垃圾满溢:检测垃圾桶垃圾是否满溢,帮助环卫人员智能调度环卫车辆,节俭人力和物力。(14)占道经营:检测是否有占用路线非法经营,帮助城管治理,加重工作量。(15)安全帽辨认:工地安全帽辨认,进步工地平安。(16)反光衣辨认:工地反光衣辨认,避免非工作人员闯入工地区域。(17)电动车进电梯:检测电动车进出电梯,避免火灾产生。(18)口罩检测:明厨亮灶,检测食品从业人员是否佩戴口罩。(19)虫害辨认:智慧农业,通过AI辨认虫害,智能领导农户作业。(20)动物辨认:公共场所,不容许动物进出场合。(21)电梯超员检测:电梯人员是否超载工作。(22)河边垂钓检测:严禁垂钓河边检测人员是否有钓鱼或捕鱼行为。(23)河边游泳检测:严禁游泳河边检测人员是否有上水游泳行为。(24)人数统计:人数统计或客流统计,通过AI形式统计绘制市场的客流热力求。(25)抽烟检测:明厨亮灶,检测从业人员是否有吸烟行为。(25)泥头车辨认:街道泥头车随便、掉土的事件。(27)打电话辨认:检测开车是否有打电话行为。(28)机动车/非机动车辨认:机动车和非机动车辨认。(29)车流量统计:辨认车辆及统计车流量以上是我总结的贴近生活,很有可能在生活中十分实用的场景,这些算法都是能够通过数据采集进行一一训练的。 技术实现开发环境:pycharm开发语言:python、vue2.0、pytorch、vision部署环境:(1)windows-conda、jetson-nano:conda(低配)、(2)jetson orin nano:python、cuda、cudnn(sdk)(中高配)(3)orange PI(正在适配中)硬件选型:(1)低配jetson naco(b01替换版本),ubuntu,价格1312元(含外壳),0.5tops,剖析实时视频约4路;一张图约200ms~300ms耗时;(2)中配jetson orin nano,ubuntu,价格3200元高低,20tops,剖析实时视频约8路;一张图约100ms耗时;(3)高配jetson orin nano,Ubuntu,价格在5200元高低,70-100tops,剖析实时视频约16路;一张图约30ms耗时;(4)国产华为芯片orange PI,4G,16外围,价格在1000元左右,剖析视频预估在16路;(正在适配中,硬件一片难求) 产品成果为此,我开发了一个AI盒子框架,这个框架能够动静增加训练好的模型、动静增加须要剖析的网络摄像机、动静为每一路摄像机增加不同的剖析场景(算法)、动静配置AI盒子参数、动静重启AI盒子等性能;AI盒子提供了 (1)登录AI盒子AI盒子登录页面提供用户名和明码模式登录,登录后能够批改初始密码。 为适配不同的中央需要,AI盒子最新版本,反对中文简体版本、英文版本和中文繁体版本。 (2)零碎首页AI盒子次要提供设施治理、报警治理、录像治理、模型配置以及零碎设置性能。(3)设施治理能够动静增加须要剖析的设施,此处的设施为网络设备,AI盒子通过设施的rtsp标准协议从摄像机获取视频流,而后进行抽帧剖析,抽帧距离能够动静进行配置。能够管制设施进行AI抽帧的剖析时间段管制,如早上08:00开始剖析,到早晨23:00截止。能够配置设施剖析的区域,区域反对多边形绘制(区域入侵)、绘制边界线段(周界检测)(4)场景治理一个设施抽帧的图片,能够做不同场景的算法剖析,例如一个摄像机能够同时剖析明火烟雾检测、攀登检测,也能够剖析更多的算法(当然,算法越多,耗时就减少,不过对于在1-3秒内能实时响应就曾经是十分实用了,能够疏忽)(5)报警治理当剖析场景检测到超过设定置信度的预警时,会存储到AI盒子中,AI盒子会将报警异步推送到配置的第三方平台中,能够在AI盒子中保留n天如果AI盒子关上报警录像性能,AI盒子会主动录取事件产生的前3秒以及后3秒,总共6秒录像,这些录像也会被推送给第三方平台 (6)录像治理此外AI盒子反对视频转发(rtmp)、手动抓拍、近程录像性能,录像后能够存储在AI盒子,当推送给第三方平台后会主动从本地移除 (7)模型治理AI盒子提供模型载入、辨认、上报等残缺框架,并不固化整个流程,所以对AI盒子而已,算法、设施、场景都是灵便能够配置的,反对动静的模型增加性能,咱们能够将训练好的模型动静增加到AI盒子中模型能够包含所有剖析,哪些是属于失常的(不会报警的),哪些属于异样的(显示红框,可能要报警的) (8)系统配置AI盒子反对系统配置,配置我的项目包含AI盒子编码(推送到第三方,区别多个盒子)、报警保留天数、并发剖析数量管制、辨认后是否显示标签、是否反对报警联动录像、是否凌晨主动重启、报警第三方平台介绍地址、长连贯管制地址。(9)GPIO及modbus联动此外,AI盒子反对本身引脚联动或t通过外接modbus协定进行对接,以下为AI盒子定制的一个仓库物料支付场景:A、人通过人脸机刷脸开门进入物料仓库(人脸机器联动门磁)B、门禁从常开(1状态)变为断点开门状态(0),AI盒子检测到人员进入,开始联动摄像机进行录像;C、人员进入仓库后支付物料,拿去实现之后将物料搁置到物料台,而后按墙壁上的拍照IO开关;D、AI盒子检测到AI开关后,联动摄像机视频进行物料实物抓拍,能够抓图多张;E、人员拍照后拿取物料并来到物料仓库,门磁从开门(0)状态复原为常闭状态(0);F、AI盒子检测到关门信号,进行联动录像,并将从门禁到出门的录像+物料拍照打包存储并发送给第三方平台;这样,一个人从进门支付物料开始录像==>物料拍照==>进行录像整个过程留影留像,保留了整个过程的证据。如果是非法闯入则主动通过AI预警进行报警录像,产生非法闯入预警,如果正常人脸刷脸进入则不会产生非法报警。 源码预览(1)服务启动 """===========导入装置的python库==========="""import sysfrom pathlib import Pathfrom box.box import Boxfrom utils.general import check_requirements# 获取以后文件门路FILE = Path(__file__).resolve()# 获取以后文件父目录-YOLOv5根目录ROOT = FILE.parents[0]# 获取绝对路径PARENT = ROOT# 将根目录增加到零碎path中if str(ROOT) not in sys.path: sys.path.append(str(ROOT))# 程序启动入口if __name__ == '__main__': # 查看申请参数 check_requirements(ROOT / 'requirements.txt', exclude=('tensorboard', 'thop')) # 创立AI盒子 box = Box() # 初始化盒子 box.init() # 启动AI盒子 box.start() # 期待盒子退出 box.join() # 进行AI盒子 box.stop()(2)websocket协定 ...

March 1, 2024 · 6 min · jiezi

关于机器学习:机器学习-梯度下降算法

梯度降落算法在机器学习中,梯度降落算法罕用于最小化代价函数(或损失函数),以此来优化模型的参数。代价函数掂量的是模型预测值与理论值之间的差别。通过最小化这个函数,咱们能够找到模型预测最精确的参数。 代价函数代价函数(Cost Function)或损失函数(Loss Function),是用来掂量模型预测值与实在值之间差别的一个函数。在回归问题中,一个常见的代价函数是均方误差其中n是样本数量,yi是样本的实在值,被减去的则是预测值,这个值越小,阐明预估越靠近实在值。 理论案例:从简略线性回归了解梯度降落算法假如咱们有一组数据,示意屋宇的大小与其价格的关系。咱们想要构建一个简略的线性回归模型来预测房价,模型模式为 y=wx+b,其中 y 是房价,x 是屋宇大小,w 是斜率,b 是截距。第一步要做的是:初始化模型参数:随机抉择w 和 b 的初始值,比方 w=0 和 b=0。计算代价函数的梯度:首先,咱们须要定义代价函数,这里咱们应用均方误差。而后,计算代价函数对于每个参数的梯度。咱们随便给出一组数据:(1,2),(2,4),(3,6)咱们的目标是尽量用y=wx+b去拟合这些数据。w梯度计算公式是:b的则是w=0,b=0得出得梯度别离是: -56/3和 -8。这个线性模型是一条 y=0的直线,显然无奈拟合这些数据.咱们此时设置 w=0.1,b=0.1来拟合,又失去了两个梯度,可能这次的线性模型拟合度会好一些,那么再设置w=0.2,b=0.2,会不会又好一点呢?咱们每次选用w,b都会失去一个预测值,而后咱们能够算出他的代价函数(误差)值,咱们就能够画出这样一张图。其中咱们要找的点就是误差最低的那一个点,咱们可能会从任何中央登程,去找那个点,这个过程使用到的就是梯度降落算法 正式介绍通过下面那个小例子,咱们曾经晓得了,梯度降落算法罕用于最小化代价函数(或损失函数),以此来优化模型的参数。代价函数掂量的是模型预测值与理论值之间的差别。通过最小化这个函数,咱们能够找到模型预测最精确的参数。 形象咱们能够形象这个过程:设想一下,你在山顶,指标是以最快的速度下到山脚。因为你被蒙上了眼睛,看不见四周的环境,所以你只能通过感觉脚下的坡度来判断下一步该往哪个方向走。这个“感觉坡度”的过程,就有点像梯度降落算法的工作原理。 梯度的含意“梯度”(Gradient)其实就是指函数在某一点上的斜率,或者说是这一点最陡的回升方向。梯度通知你,如果你想让函数值减少得最快,应该往哪个方向走。相应地,梯度的反方向就是函数值降落最快的方向。 梯度降落的工作原理梯度降落算法的核心思想就是:在以后地位计算梯度(即斜率),而后沿着梯度的反方向走一小步,反复这个过程,直到达到山脚(即找到函数的最小值点)。 梯度降落--专属案例假如咱们有一个函数 y=x^2这个求最小值,这个案例不是让你应用高中数学去解答,你能够不假思索答复是0,然而不是我想要学习的。让咱们以梯度降落的形式求解,初始化: 假如咱们随机抉择一个终点,x=2。计算梯度: 对f(x) 求导失去它的梯度 f(x)=2x。在x=2 处的梯度是4。此时咱们更新x,咱们假如咱们走一小步,0.1那么此时x应该是:x = x - 学习率 梯度 = 2 - 0.1 4 = 1.6 计算此时的梯度,反复这个过程,直到x的更新值很小很小,有限趋近于0,此时实际上x的值(在y=x^2中)也有限趋近于0,y也趋近于0了。 注意事项学习率的抉择:学习率太大可能导致“跨过”最低点,甚至发散;学习率太小又会导致收敛速度很慢。因而,抉择一个适合的学习率十分要害。收敛条件:通常会设置一个阈值,当间断两次迭代的x值变动十分小(小于这个阈值)时,咱们就认为算法曾经收敛。 完结咱们计算房价,假如线性模型,求w,b,咱们应用均方误差(MSE)作为代价函数,来掂量模型预测值与理论值之间的差别,咱们应用梯度降落模型计算w,b的梯度,失去了误差,咱们通过管制迭代次数和学习率,一直的批改w,b,以使得误差越来越小,误差越来越小,即w,b的变动十分小或达到一个预设的迭代次数。这就是梯度降落算法。对于不同类型的机器学习问题,老本函数的抉择也会不同。例如:回归问题:罕用的老本函数是均方误差(Mean Squared Error, MSE),它计算的是预测值与理论值之间差别的平方的平均值。这个值越小,示意模型的预测越精确。分类问题:对于二分类问题,一个常见的老本函数是穿插熵(Cross-Entropy),它量化的是理论标签与预测概率之间的差别。在梯度降落算法中,咱们的指标是找到模型参数的值,这些参数值能使老本函数的值最小化。换句话说,咱们心愿找到的参数能让模型的预测尽可能靠近理论状况,从而最小化误差。通过迭代地更新模型参数,梯度降落算法可能逐渐迫近这个最优参数组合,实现老本的最小化。

March 1, 2024 · 1 min · jiezi

关于机器学习:谷歌Gemma介绍微调量化和推理

谷歌的最新的Gemma模型是第一个应用与Gemini模型雷同的钻研和技术构建的开源LLM。这个系列的模型目前有两种尺寸,2B和7B,并且提供了聊天的根本版和指令版。 用一句话来总结Gemma就是:学习了Llama 2和Mistral 7B的长处,应用了更多的Token和单词进行了训练了一个更好的7B(8.5B)模型。所以这篇文章咱们将介绍Gemma模型,而后展现如何应用Gemma模型,包含应用QLoRA、推理和量化微调。 Gemma 7B 其实是 8.5B1、模型细节 谷歌的公布这份技术报告中提供了模型的更多细节 能够看到Google总结了每个模型的参数数量,并且辨别了嵌入参数和非嵌入参数。对于7B模型,有7.7B个非嵌入参数。如果思考参数总数,Gemma 7B有8.54B个参数… 相比之下Gemma更靠近9B。将Gemma作为“7B”LLM公布能够算是一种误导,但这也很好了解,因为必定心愿将本人的LLM与之前公布的7B进行比拟,而更多的参数往往意味着更好的性能,对吧。 为了便于比拟,咱们总计了其余风行的“7B”模型的参数总数: Llama 2 7B: 6.74BMistral 7B: 7.24BQwen-1.5 7B: 7.72BGemma 7B: 8.54B能够看到,其实Gemma 7B比Llama 2 7B多1.8B个参数,依照参数越多,性能越好的实践,Gemma 比其余模型好是必然的。 在google的报告中还具体介绍了模型的架构: 能够解决多达8k个令牌的上下文。为了高效扩大,他们应用了multi-query attention和RoPE嵌入,并且兼容FlashAttention-2。 Gemma的嵌入词表是目前开源模型中最大的,有256k个。它比Llama 2的词汇量大8倍,比Qwen-1.5的词汇量大1.7倍,而Qwen-1.5的词汇量曾经被认为十分大了。除了词汇表大小之外,Gemma架构十分规范。更大的嵌入词表通常意味着模型被训练成多语言的。然而谷歌却说这些模型次要是为英语工作训练的。 然而依据目前公布的模型来看,谷歌的确在涵盖多种语言的数据上训练了模型,如果针对多语言工作进行微调应该会产生良好的性能。 2、Gemma的训练数据 Gemma 2B和7B别离承受了2万亿个和6万亿个token的训练。这意味着Gemma 7B承受的token比Llama 2多3倍。这里猜想起因如下: 因为词汇表十分大,须要对模型进行更长的训练,以便更好地学习词汇表中所有标记的嵌入。扩充训练的token后损失应该还是升高的,这也与词汇表十分大绝对应。咱们能够这么了解词汇表越大,可能须要的训练token就越多,当然可能体现就会越好。 对于模型的指令版本,他们对由人类和合成数据组成的指令数据集进行了监督微调,而后进行了基于人类反馈的强化学习(RLHF)。 3、公共测试数据上的体现 谷歌在规范基准上对Gemma进行了评估,并将后果与Llama 2(在论文中拼写为lama -2…)和Mistral 7B进行了比拟。 在大多数工作中,Gemma 7B比其余模型取得了更好的分数。然而这里有2个问题: 1、咱们还是要对这些基准分数持保留态度。因为谷歌没有通知咱们是如何计算这些分数的。 2、还是模型参数问题,8.5B实践上应该就会比7B要好,所以分数进步是很失常的 本地运行Gemma 2B和7BHugging Face的Transformers和vLLM都曾经反对Gemma模型,硬件的要求是18gb GPU。 咱们先介绍vLLM import time from vllm import LLM, SamplingParams prompts = [ "The best recipe for pasta is" ] sampling_params = SamplingParams(temperature=0.7, top_p=0.8, top_k=20, max_tokens=150) loading_start = time.time() llm = LLM(model="google/gemma-7b") print("--- Loading time: %s seconds ---" % (time.time() - loading_start)) generation_time = time.time() outputs = llm.generate(prompts, sampling_params) print("--- Generation time: %s seconds ---" % (time.time() - generation_time)) for output in outputs: generated_text = output.outputs[0].text print(generated_text) print('------')而后是Transformers ...

February 29, 2024 · 2 min · jiezi

关于机器学习:小技巧让ChatGPT像真人一样对话

【精简】太长不看版本首先依据教程:ChatGPT4.0降级教程 开明ChatGPT4.0(如果曾经有能够跳过这一步) 进入GPTs中搜寻“【真人】说人话的GPT”,而后就能够让GPT像真人一样谈话啦 回绝机械风,让ChatGPT像真人一样对话在这个信息爆炸的时代,人工智能技术的疾速倒退让咱们的生存变得更加便捷。 特地是在自然语言解决畛域,ChatGPT的呈现无疑是一次革命性的提高。 然而,尽管ChatGPT在很多方面体现出了惊人的能力,但不可避免地,它在对话中依然存在肯定的机械感。 而OpenAI不是推出了GPTs嘛,能够让用户自定义prompt,最近我就在下面找到了一个能够让ChatGPT像真人一样对话的GPTs,这就分享给大家。 1. GPTs是什么GPTs,全称是GPT store,是一项让用户可能依据本人的需要和偏好创立专属 AI 助手的技术。 通过简略的操作,用户能够定制出一个既能进步工作效率又能为日常生活带来便当的 AI 搭档,从解决电子邮件到提供创意灵感,GPTs 让个性化 AI 的利用变得触手可及,无需简单的技术背景,大大拓宽了 AI 技术的利用范畴,让其不再仅限于专家畛域,而是走进了普通人的日常生活中。 此外,GPTs是仅针对GPT4.0用户的哦,所以如果你须要不便、快捷实惠的降级形式的话(不是淘宝那种盗版的哈),能够看这篇文章:ChatGPT4.0降级教程 2. 什么是“【真人】说人话的GPT”?“【真人】说人话的GPT”是扑扑特桔在GPT store外面找到的一个GPTs,它通过模仿中国人在互联网上用中文发言时的语言特点,让GPT的对话形式更加通俗易懂、亲切天然、活泼鲜活,从而达到与真人对话简直无异的成果。 这一版本尤其重视用词的抉择、语气的调整、句子的结构,以及句式的轻松爽口,力求在每一次对话中都能给用户带来愉悦的体验。 举个例子,我从知乎下面轻易找一个问题丢给它,看看它是怎么答复的:咱们再看一下原版ChatGPT4是怎么答复的: 从输入后果来看,“【真人】说人话的GPT”这个GPTs显著要比原版的GPT4要好,让人读起来更亲热,没有那么浓重的机械风。 3. 如何应用?要应用“【真人】说人话的GPT”,用户须要开明GPT Plus服务,也就是开明ChatGPT4.0,这样才能够应用GPTs。 如果你须要不便、快捷实惠的开明渠道的话(不是淘宝那种盗版的哈),能够看这篇文章:ChatGPT4.0降级教程 当你开明完GPT4.0之后,首先进入主页,点击左上角的“Explore GPTs”而后搜寻“【真人】说人话的GPT”,进去的第一个就是啦 4. 总结首先须要开明GPT Plus服务,进入GPT store搜寻并抉择“【真人】说人话的GPT”,就能够开始应用啦。 此外,除了这个GPTs,当你开明GPT4.0后,还有数十个类别中上万个GPTs等你应用哦,快来试试吧!

February 29, 2024 · 1 min · jiezi

关于机器学习:千卡利用率超98详解JuiceFS在权威AI测试中的实现策略

2023 年 9 月,AI 畛域的权威基准评测 MLPerf 推出了 Storage Benchmark。该基准测试通过模仿机器学习 I/O 负载的办法,在不须要 GPU 的状况下就能进行大规模的性能压测,用以评估存储系统的在 AI 模型训练场景的适用性。 目前反对两种模型训练:BERT (自然语言模型) 和 Unet3D(3D医学成像)。尽管目前不反对大语言模型如 GPT、LLaMA,但 BERT 与大语言模型同为多层 transformer 构造,大语言模型的用户仍可从 BERT 训练后果取得肯定的参考。 高性能存储产品厂商 DDN、Nutanix、Weka 和 Argonne National Laboratory(简称 ANL)公布了 MLPerf 的测试后果作为行业参考,咱们也应用 JuiceFS 企业版进行了测试,让用户理解它在模型训练中的体现。 测试中最直观的指标是 GPU 利用率,大于 90% 为测试通过,示意存储系统可能满足训练业务的性能需求。JuiceFS 在 Unet3D 的 500 卡规模测试中,GPU 利用率放弃在 97% 以上;在 BERT 的1000 卡规模测试中,GPU 利用率放弃在 98% 以上。 01 测试筹备JuiceFS 企业版是基于对象存储的并行文件系统,相比社区版它提供了更强的元数据引擎和缓存治理能力,它的架构图如下: 咱们在华为云上搭建了一套企业版 JuiceFS 文件系统,应用华为云 OBS 作为数据长久层,部署了 3 节点的元数据集群和多节点的分布式缓存集群,硬件规格如下: 元数据节点:m7.2xlarge.8 | 8vCPUs | 64GiB对象存储:OBS,带宽下限 300 Gb/s客户端节点:ir7.16xlarge.4 | 64vCPUs | 256GiB | Local SSD 2*1,600GiB | 网卡带宽 25 Gbps (以太网)筹备好文件系统后,咱们应用 mlperf 的脚本生成后续模拟训练所须要的数据集,所有的测试中 batch size 和 steps 均采纳默认设置。目前仅反对模仿 NVIDIA v100 GPU,后文中提到的 GPU 均是模仿 v100。 ...

February 28, 2024 · 2 min · jiezi

关于机器学习:机器学习科学库全md文档笔记Matplotlib详细使用方法已分享附代码

本系列文章md笔记(已分享)次要探讨人工智能相干常识。次要内容包含,理解机器学习定义以及利用场景,把握机器学习根底环境的装置和应用,把握利用罕用的科学计算库对数据进行展现、剖析,学会应用jupyter notebook平台实现代码编写运行,利用Matplotlib的基本功能实现图形显示,利用Matplotlib实现多图显示,利用Matplotlib实现不同画图品种,学习Numpy运算速度上的劣势,晓得Numpy的数组内存块格调,理解Numpy与Pandas的不同,学习Pandas的应用,利用crosstab和pivot_table实现穿插表与透视表,利用Pandas实现数据的读取和存储,并且理解残缺机器学习我的项目的流程。全套笔记代码自取gitee仓库:请移步这里获取文档和代码感兴趣的小伙伴能够自取哦,欢送大家点赞转发~共 7 章,33 子模块 Matplotlib学习指标利用Matplotlib的基本功能实现图形显示利用Matplotlib实现多图显示利用Matplotlib实现不同画图品种3.2 根底绘图性能 — 以折线图为例学习指标指标 把握给图形增加辅助性能(如:标注、x,y轴名称、题目等)晓得图形的保留晓得如何屡次plot绘制图形晓得如何多个坐标系显示图形晓得折线图的利用场景1 欠缺原始折线图 — 给图形增加辅助性能为了更好地了解所有根底绘图性能,咱们通过天气温度变动的绘图来交融所有的根底API应用 需要:画出某城市11点到12点1小时内每分钟的温度变动折线图,温度范畴在15度~18度 成果: 1.1 筹备数据并画出初始折线图import matplotlib.pyplot as pltimport random # 画出温度变动图 # 0.筹备x, y坐标的数据 x = range(60)y_shanghai = [random.uniform(15, 18) for i in x] # 1.创立画布 plt.figure(figsize=(20, 8), dpi=80) # 2.绘制折线图 plt.plot(x, y_shanghai) # 3.显示图像 plt.show() 1.2 增加自定义x,y刻度plt.xticks(x, **kwargs)x:要显示的刻度值 plt.yticks(y, **kwargs)y:要显示的刻度值 # 减少以下两行代码 # 结构x轴刻度标签 x_ticks_label = ["11点{}分".format(i) for i in x] # 结构y轴刻度 y_ticks = range(40) # 批改x,y轴坐标的刻度显示 plt.xticks(x[::5], x_ticks_label[::5])plt.yticks(y_ticks[::5]) ...

February 26, 2024 · 3 min · jiezi

关于机器学习:机器学习算法KNN鸢尾花种类预测案例和特征预处理全md文档笔记已分享附代码

本系列文章md笔记(已分享)次要探讨机器学习算法相干常识。机器学习算法文章笔记以算法、案例为驱动的学习,随同浅显易懂的数学知识,让大家把握机器学习常见算法原理,利用Scikit-learn实现机器学习算法的利用,联合场景解决理论问题。包含K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚类算法。K-近邻算法的间隔公式,利用LinearRegression或SGDRegressor实现回归预测,利用LogisticRegression实现逻辑回归预测,利用DecisionTreeClassifier实现决策树分类,利用RandomForestClassifie实现随机森林算法,利用Kmeans实现聚类工作。全套笔记和代码自取移步gitee仓库: gitee仓库获取残缺文档和代码感兴趣的小伙伴能够自取哦,欢送大家点赞转发~共 7 章,44 子模块 K-近邻算法学习指标把握K-近邻算法实现过程晓得K-近邻算法的间隔公式晓得K-近邻算法的超参数K值以及取值问题晓得kd树实现搜寻的过程利用KNeighborsClassifier实现分类晓得K-近邻算法的优缺点晓得穿插验证实现过程晓得超参数搜寻过程利用GridSearchCV实现算法参数的调优1.8 案例:鸢尾花品种预测—流程实现1 再识K-近邻算法APIsklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm='auto') n_neighbors: int,可选(默认= 5),k_neighbors查问默认应用的街坊数algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’} 疾速k近邻搜索算法,默认参数为auto,能够了解为算法本人决定适合的搜索算法。除此之外,用户也能够本人指定搜索算法ball_tree、kd_tree、brute办法进行搜寻, brute是蛮力搜寻,也就是线性扫描,当训练集很大时,计算十分耗时。kd_tree,结构kd树存储数据以便对其进行疾速检索的树形数据结构,kd树也就是数据结构中的二叉树。以中值切分结构的树,每个结点是一个超矩形,在维数小于20时效率高。ball tree是为了克服kd树高纬生效而创造的,其结构过程是以质心C和半径r宰割样本空间,每个节点是一个超球体。2 案例:鸢尾花品种预测2.1 数据集介绍Iris数据集是罕用的分类试验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量剖析的数据集。对于数据集的具体介绍: 2.2 步骤剖析1.获取数据集2.数据根本解决3.特色工程4.机器学习(模型训练)5.模型评估2.3 代码过程导入模块from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.neighbors import KNeighborsClassifier先从sklearn当中获取数据集,而后进行数据集的宰割 # 1.获取数据集 iris = load_iris() # 2.数据根本解决 # x_train,x_test,y_train,y_test为训练集特征值、测试集特征值、训练集目标值、测试集目标值 x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)进行数据标准化 特征值的标准化 # 3、特色工程:标准化 transfer = StandardScaler()x_train = transfer.fit_transform(x_train)x_test = transfer.transform(x_test)模型进行训练预测 # 4、机器学习(模型训练) estimator = KNeighborsClassifier(n_neighbors=9)estimator.fit(x_train, y_train) # 5、模型评估 # 办法1:比对实在值和预测值 y_predict = estimator.predict(x_test)print("预测后果为:\n", y_predict)print("比对实在值和预测值:\n", y_predict == y_test) # 办法2:间接计算准确率 score = estimator.score(x_test, y_test)print("准确率为:\n", score)1.9 练一练同学之间探讨方才实现的机器学习代码,并且确保在本人的电脑是哪个运行胜利总结在本案例中,具体实现内容有:应用可视化加载和摸索数据,以确定特色是否能将不同类别离开。通过标准化数字特色并随机抽样到训练集和测试集来筹备数据。通过统计学,精确度度量进行构建和评估机器学习模型。k近邻算法总结长处: * **简略无效** * **从新训练的代价低** * **适宜类域穿插样本** * KNN办法次要靠四周无限的邻近的样本,而不是靠判断类域的办法来确定所属类别的,因而对于类域的穿插或重叠较多的待分样本集来说,KNN办法较其余办法更为适宜。 * **适宜大样本主动分类** * 该算法比拟实用于样本容量比拟大的类域的主动分类,而那些样本容量较小的类域采纳这种算法比拟容易产生误分。毛病: * **惰性学习** * KNN算法是懒惰学习办法(lazy learning,基本上不学习),一些踊跃学习的算法要快很多 * **类别评分不是规格化** * 不像一些通过概率评分的分类 * **输入可解释性不强** * 例如决策树的输入可解释性就较强 * **对不平衡的样本不善于** * 当样本不均衡时,如一个类的样本容量很大,而其余类样本容量很小时,有可能导致当输出一个新样本时,该样本的K个街坊中大容量类的样本占多数。该算法只计算“最近的”街坊样本,某一类的样本数量很大,那么或者这类样本并不靠近指标样本,或者这类样本很凑近指标样本。无论怎样,数量并不能影响运行后果。能够采纳权值的办法(和该样本间隔小的街坊权值大)来改良。 * **计算量较大** * 目前罕用的解决办法是当时对已知样本点进行剪辑,当时去除对分类作用不大的样本。1.10 穿插验证,网格搜寻1 什么是穿插验证(cross validation)穿插验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成4份,其中一份作为验证集。而后通过4次(组)的测试,每次都更换不同的验证集。即失去4组模型的后果,取平均值作为最终后果。又称4折穿插验证。 ...

February 25, 2024 · 3 min · jiezi

关于机器学习:人工智能实现自动抠图证件照老照片修复模糊图片处理

后续相干教程打算: 1.主动抠图,换背景,实现制作证件照相干教程,效果图如下![上传中...]() 2.人像解决成卡通和素描成果,效果图如下 3.老照片批改,效果图如下 4.含糊图片解决,成果如下 可关注哔哩哔哩:可关注星球:

February 24, 2024 · 1 min · jiezi

关于机器学习:Paper-Digest-突破个性化推荐数据稀疏性长尾增强的图对比学习算法研究

00 导读本文将介绍的论文 Long-tail Augmented Graph Contrastive Learning for Recommendation 已被 ECML/PKDD 2023 Research Track 接管。 论文链接:https://arxiv.org/abs/2309.11177论文中提到的模型实现,曾经齐全复现到 OpenAGL 里了,详情:https://github.com/TuGraph-family/TuGraph-AntGraphLearning/blob/main/README\_CN.md01 背景举荐零碎是电子商户乃至在线广告等泛滥在线服务的要害组成部分。其经典办法协同过滤(collaborative filtering, CF)通过观测 user / item 间的交互行为(例如点击、支付等)来产出其嵌入表征,这在个性化举荐中施展着至关重要的作用。最近,基于图神经网络的举荐办法(例如 LightGCN 等)体现出了微小的后劲,该办法将 user - item 交互数据表示为图,并通过邻域信息流传来迭代学习更无效的节点示意。与传统的 CF 办法相比,基于 GCN 的举荐办法可能更好的捕获高阶协同信号,从而改良节点表征的学习。 只管基于 GCN 的举荐办法曾经被证实了其有效性,但它在实在场景中仍面临着许多数据稠密性的问题。因为现有大多数模型遵循监督学习的训练范式,而可观测的监督信号往往仅占总交互空间极少的一部分,这也导致该类办法可能难以学到更加充沛的表征。近期,有钻研工作(例如 SGL、SimGCL 等)试图通过比照学习来缓解交互数据的稠密性,它们通常依赖于预约义好的数据加强策略,如构造扰动(node/edge dropout)或特色扰动。然而,这些办法没有思考到 Graph 中头部节点与尾部节点间存在的显著差别,其也不足为不同数据集构建自适应数据加强的能力,因此此类办法可能产出不平均的散布示意,这也影响了比照学习办法自身的性能。举一个简略的例子,尾部节点因为其自身仅有大量的街坊使其在 GNN 中的表征成果远弱于头部节点,间接的构造扰动会删减其本就大量的街坊边缘,而间接的特色扰动又会引入很大的噪声,显然,本可利用于头部节点的办法难以间接作用于尾部节点中,这也就导致了现有图比照学习的办法在尾部节点的成果欠佳。 鉴于上述的限度与挑战,咱们提出了一种新的长尾加强的图比照学习办法(LAGCL)。简略来说,如图 1 所示,(a) 中的头部用户与 (b) 中的尾部用户有着类似的偏好,咱们的办法旨在从头部用户中提取出一种迁徙模式,并无效的将其利用于尾部用户中,如 (c) 所示。具体的,咱们设计了一个 auto drop 模块,它能够将头部节点(real-head node)通过自适应采样产出模仿实在尾部节点(real-tail node)的伪尾部节点(pseudo-tail node)。而后,咱们利用 pseudo-tail node 以后的子图构造以及其完好子图构造来学习常识迁徙模块(knowledge transfer module),该模块旨在通过为尾部节点增加预测的邻域缺失信息来将其裁减为 pseudo-head node(即长尾加强的尾部节点,augmented tail node)。咱们应用生成反抗网络来确保自适应采样产出的 pseudo-tail node 更像 real-tail node,同时也确保 pseudo-head node 无论从信息量还是信息精度上都更靠近 real-head node。最初,咱们通过对 real/pseudo head node 做特色扰动下的比照学习,进一步的晋升长尾加强节点的稳定性与整体表征的平均性。 ...

February 21, 2024 · 2 min · jiezi

关于机器学习:机器学习科学库全md文档笔记Jupyter-Notebook和Matplotlib使用已分享附代码

本系列文章md笔记(已分享)次要探讨人工智能相干常识。次要内容包含,理解机器学习定义以及利用场景,把握机器学习根底环境的装置和应用,把握利用罕用的科学计算库对数据进行展现、剖析,学会应用jupyter notebook平台实现代码编写运行,利用Matplotlib的基本功能实现图形显示,利用Matplotlib实现多图显示,利用Matplotlib实现不同画图品种,学习Numpy运算速度上的劣势,晓得Numpy的数组内存块格调,理解Numpy与Pandas的不同,学习Pandas的应用,利用crosstab和pivot_table实现穿插表与透视表,利用Pandas实现数据的读取和存储,并且理解残缺机器学习我的项目的流程。全套笔记和代码自取移步gitee仓库: gitee仓库获取残缺文档和代码感兴趣的小伙伴能够自取哦,欢送大家点赞转发~共 7 章,33 子模块 机器学习概述学习指标理解人工智能倒退历程理解机器学习定义以及利用场景晓得机器学习算法监督学习与无监督学习的区别晓得监督学习中的分类、回归特点晓得机器学习的开发流程1.7 Azure机器学习模型搭建试验学习指标指标 理解Azure机器学习平台,晓得机器学习流程Azure平台简介 Azure Machine Learning(简称“AML”)是微软在其私有云Azure上推出的基于Web应用的一项机器学习服务,机器学习属人工智能的一个分支,它技术借助算法让电脑对大量流动数据集进行辨认。这种形式可能通过历史数据来预测将来事件和行为,其实现形式显著优于传统的商业智能模式。 微软的指标是简化应用机器学习的过程,以便于开发人员、业务分析师和数据科学家进行宽泛、便捷地利用。 这款服务的目标在于“将机器学习能源与云计算的简略性相结合”。 AML目前在微软的Global Azure云服务平台提供服务,用户能够通过站点:https://studio.azureml.net/ 申请收费试用。 Azure机器学习试验试验目标:理解机器学习从数据到建模并最终评估预测的整个流程。1.8 深度学习简介学习指标指标 理解什么是深度学习1 深度学习 —— 神经网络简介深度学习(Deep Learning)(也称为深度构造学习【Deep Structured Learning】、档次学习【Hierarchical Learning】或者是深度机器学习【Deep Machine Learning】)是一类算法汇合,是机器学习的一个分支。 深度学习办法近年来,在会话辨认、图像识别和对象侦测等畛域体现出了惊人的准确性。 然而,“深度学习”这个词语很古老,它在1986年由Dechter在机器学习畛域提出,而后在2000年有Aizenberg等人引入到人工神经网络中。而当初,因为Alex Krizhevsky在2012年应用卷积网络结构博得了ImageNet较量之后受到大家的注目。 卷积网络之父:Yann LeCun 深度学习演示 链接:http://playground.tensorflow.org 2 深度学习各层负责内容神经网络各层负责内容: 1层:负责辨认色彩及简略纹理 2层:一些神经元能够辨认更加细化的纹理,布纹,刻纹,叶纹等 3层:一些神经元负责感触黑夜里的黄色烛光,高光,萤火,鸡蛋黄色等。 4层:一些神经元辨认萌狗的脸,宠物形貌,圆柱体事物,七星瓢虫等的存在。 5层:一些神经元负责辨认花,黑眼圈动物,鸟,键盘,原型屋顶等。 4 小结深度学习的倒退源头--神经网络【理解】多层神经网络,在最后几层是辨认简略内容,前面几层是辨认一些简单内容。【理解】机器学习根底环境装置与应用学习指标实现机器学习根底阶段的环境装置学会应用jupyter notebook平台实现代码编写运行2.1 库的装置学习指标指标 搭建好机器学习根底阶段的环境整个机器学习根底阶段会用到Matplotlib、Numpy、Pandas等库,为了对立版本号在环境中应用,将所有的库及其版本放到了文件requirements.txt当中,而后对立装置 新建一个用于人工智能环境的虚拟环境 mkvirtualenv aimatplotlib==2.2.2numpy==1.14.2pandas==0.20.3tables==3.4.2jupyter==1.0.0留神: 每个包装置的过程中,尽量指定稳固版本进行装置应用pip命令装置 pip3 install -r requirements.txt小结机器学习(科学计算库)阶段环境的搭建和根本库的装置 留神:最好装置指定的稳固版本2.2 Jupyter Notebook应用学习指标指标 ...

February 21, 2024 · 2 min · jiezi

关于机器学习:机器学习算法KNN鸢尾花种类预测案例和特征预处理全md文档笔记已分享附代码

本系列文章md笔记(已分享)次要探讨机器学习算法相干常识。机器学习算法文章笔记以算法、案例为驱动的学习,随同浅显易懂的数学知识,让大家把握机器学习常见算法原理,利用Scikit-learn实现机器学习算法的利用,联合场景解决理论问题。包含K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚类算法。K-近邻算法的间隔公式,利用LinearRegression或SGDRegressor实现回归预测,利用LogisticRegression实现逻辑回归预测,利用DecisionTreeClassifier实现决策树分类,利用RandomForestClassifie实现随机森林算法,利用Kmeans实现聚类工作。全套笔记和代码自取移步gitee仓库: gitee仓库获取残缺文档和代码感兴趣的小伙伴能够自取哦,欢送大家点赞转发~共 7 章,44 子模块 K-近邻算法学习指标把握K-近邻算法实现过程晓得K-近邻算法的间隔公式晓得K-近邻算法的超参数K值以及取值问题晓得kd树实现搜寻的过程利用KNeighborsClassifier实现分类晓得K-近邻算法的优缺点晓得穿插验证实现过程晓得超参数搜寻过程利用GridSearchCV实现算法参数的调优1.6 案例:鸢尾花品种预测--数据集介绍本试验介绍了应用Python进行机器学习的一些基本概念。 在本案例中,将应用K-Nearest Neighbor(KNN)算法对鸢尾花的品种进行分类,并测量花的特色。 本案例目标: 遵循并了解残缺的机器学习过程对机器学习原理和相干术语有根本的理解。理解评估机器学习模型的根本过程。1 案例:鸢尾花品种预测Iris数据集是罕用的分类试验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量剖析的数据集。对于数据集的具体介绍: 2 scikit-learn中数据集介绍2.1 scikit-learn数据集API介绍sklearn.datasets 加载获取风行数据集datasets.load_*() 获取小规模数据集,数据蕴含在datasets里datasets.fetch_*(data_home=None) 获取大规模数据集,须要从网络上下载,函数的第一个参数是data_home,示意数据集下载的目录,默认是 ~/scikit_learn_data/2.1.1 sklearn小数据集sklearn.datasets.load_iris()加载并返回鸢尾花数据集 2.1.2 sklearn大数据集sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’) subset:'train'或者'test','all',可选,抉择要加载的数据集。训练集的“训练”,测试集的“测试”,两者的“全副”2.2 sklearn数据集返回值介绍load和fetch返回的数据类型datasets.base.Bunch(字典格局) data:特色数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组target:标签数组,是 n_samples 的一维 numpy.ndarray 数组DESCR:数据形容feature_names:特色名,新闻数据,手写数字、回归数据集没有target_names:标签名from sklearn.datasets import load_iris # 获取鸢尾花数据集 iris = load_iris()print("鸢尾花数据集的返回值:\n", iris) # 返回值是一个继承自字典的Bench print("鸢尾花的特征值:\n", iris["data"])print("鸢尾花的目标值:\n", iris.target)print("鸢尾花特色的名字:\n", iris.feature_names)print("鸢尾花目标值的名字:\n", iris.target_names)print("鸢尾花的形容:\n", iris.DESCR)2.3 查看数据分布通过创立一些图,以查看不同类别是如何通过特色来辨别的。 在现实状况下,标签类将由一个或多个特色对完满分隔。 在事实世界中,这种现实状况很少会产生。 seaborn介绍 Seaborn 是基于 Matplotlib 外围库进行了更高级的 API 封装,能够让你轻松地画出更丑陋的图形。而 Seaborn 的丑陋次要体现在配色更加难受、以及图形元素的款式更加细腻。装置 pip3 install seabornseaborn.lmplot() 是一个十分有用的办法,它会在绘制二维散点图时,主动实现回归拟合 ...

February 19, 2024 · 3 min · jiezi

关于机器学习:机器学习机器学习常见算法详解第4篇KNN算法计算过程已分享附代码

本系列文章md笔记(已分享)次要探讨机器学习算法相干常识。机器学习算法文章笔记以算法、案例为驱动的学习,随同浅显易懂的数学知识,让大家把握机器学习常见算法原理,利用Scikit-learn实现机器学习算法的利用,联合场景解决理论问题。包含K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚类算法。K-近邻算法的间隔公式,利用LinearRegression或SGDRegressor实现回归预测,利用LogisticRegression实现逻辑回归预测,利用DecisionTreeClassifier实现决策树分类,利用RandomForestClassifie实现随机森林算法,利用Kmeans实现聚类工作。全套笔记和代码自取移步gitee仓库: gitee仓库获取残缺文档和代码感兴趣的小伙伴能够自取哦,欢送大家点赞转发~共 7 章,44 子模块 K-近邻算法学习指标把握K-近邻算法实现过程晓得K-近邻算法的间隔公式晓得K-近邻算法的超参数K值以及取值问题晓得kd树实现搜寻的过程利用KNeighborsClassifier实现分类晓得K-近邻算法的优缺点晓得穿插验证实现过程晓得超参数搜寻过程利用GridSearchCV实现算法参数的调优1.5 kd树问题导入: 实现k近邻法时,次要思考的问题是如何对训练数据进行疾速k近邻搜寻。 这在特色空间的维数大及训练数据容量大时尤其必要。 k近邻法最简略的实现是线性扫描(穷举搜寻),即要计算输出实例与每一个训练实例的间隔。计算并存储好当前,再查找K近邻。当训练集很大时,计算十分耗时。 为了进步kNN搜寻的效率,能够思考应用非凡的构造存储训练数据,以减小计算间隔的次数。 1 kd树简介1.1 什么是kd树依据KNN每次须要预测一个点时,咱们都须要计算训练数据集里每个点到这个点的间隔,而后选出间隔最近的k个点进行投票。当数据集很大时,这个计算成本十分高,针对N个样本,D个特色的数据集,其算法复杂度为O(DN^2)。 kd树:为了防止每次都从新计算一遍间隔,算法会把间隔信息保留在一棵树里,这样在计算之前从树里查问间隔信息,尽量避免从新计算。其基本原理是,如果A和B间隔很远,B和C间隔很近,那么A和C的间隔也很远。有了这个信息,就能够在适合的时候跳过距离远的点。 这样优化后的算法复杂度可升高到O(DNlog(N))。感兴趣的读者可参阅论文:Bentley,J.L.,Communications of the ACM(1975)。 1989年,另外一种称为Ball Tree的算法,在kd Tree的根底上对性能进一步进行了优化。感兴趣的读者能够搜寻Five balltree construction algorithms来理解具体的算法信息。 1.2 原理黄色的点作为根节点,下面的点归左子树,上面的点归右子树,接下来再一直地划分,宰割的那条线叫做宰割超平面(splitting hyperplane),在一维中是一个点,二维中是线,三维的是面。 黄色节点就是Root节点,下一层是红色,再下一层是绿色,再下一层是蓝色。 1.树的建设; 2.最近邻域搜寻(Nearest-Neighbor Lookup) kd树(K-dimension tree)是一种对k维空间中的实例点进行存储以便对其进行疾速检索的树形数据结构。kd树是一种二叉树,示意对k维空间的一个划分,结构kd树相当于一直地用垂直于坐标轴的超平面将K维空间切分,形成一系列的K维超矩形区域。kd树的每个结点对应于一个k维超矩形区域。利用kd树能够省去对大部分数据点的搜寻,从而缩小搜寻的计算量。 类比“二分查找”:给出一组数据:[9 1 4 7 2 5 0 3 8],要查找8。如果挨个查找(线性扫描),那么将会把数据集都遍历一遍。而如果排一下序那数据集就变成了:[0 1 2 3 4 5 6 7 8 9],按前一种形式咱们进行了很多没有必要的查找,当初如果咱们以5为分界点,那么数据集就被划分为了左右两个“簇” [0 1 2 3 4]和[6 7 8 9]。 因而,基本就没有必要进入第一个簇,能够间接进入第二个簇进行查找。把二分查找中的数据点换成k维数据点,这样的划分就变成了用超平面对k维空间的划分。空间划分就是对数据点进行分类,“挨得近”的数据点就在一个空间外面。 2 构造方法(1)结构根结点,使根结点对应于K维空间中蕴含所有实例点的超矩形区域; (2)通过递归的办法,一直地对k维空间进行切分,生成子结点。在超矩形区域上抉择一个坐标轴和在此坐标轴上的一个切分点,确定一个超平面,这个超平面通过选定的切分点并垂直于选定的坐标轴,将以后超矩形区域切分为左右两个子区域(子结点);这时,实例被分到两个子区域。 ...

February 17, 2024 · 1 min · jiezi

关于机器学习:机器学习中7种常用的线性降维技术总结

上篇文章中咱们次要总结了非线性的降维技术,本文咱们来总结一下常见的线性降维技术。 1、Principal Component Analysis (PCA)Principal Component Analysis (PCA) 是一种罕用的降维技术,用于将高维数据集转换为低维示意,同时保留数据集的次要特色。PCA 的指标是通过找到数据中最大方差的方向(主成分),将数据投影到这些方向上,从而实现降维。 PCA 的次要思维是通过线性变换将原始数据映射到一个新的坐标系下,使得在新的坐标系下数据的方差最大化。这些新的坐标轴称为主成分,它们是原始特色的线性组合。通过保留最大方差的主成分,能够保留数据中最重要的信息,而抛弃方差较小的主成分能够达到降维的成果。 PCA 的步骤如下: 标准化数据:对原始数据进行标准化解决,使得每个特色的均值为 0,方差为 1。计算协方差矩阵:计算标准化后的数据的协方差矩阵。计算特征值和特征向量:对协方差矩阵进行特征值合成,失去特征值和对应的特征向量。抉择主成分:依照特征值的大小抉择前 k 个特征向量作为主成分,其中 k 是降维后的维度。投影数据:将原始数据投影到选定的主成分上,失去降维后的数据集。PCA 能够用于数据可视化、去除乐音、缩小计算量等。然而,须要留神的是,PCA 假如数据是线性可分的,因而在利用 PCA 之前须要对数据进行肯定的预处理和了解。 2、Factor Analysis (FA)Factor Analysis (FA) 是一种统计办法,用于摸索察看到的变量之间的潜在构造或因素。它试图找到可能解释察看到的变量之间独特变异的潜在因素,并将这些变量演绎为较少数量的无关变量。 FA 和 PCA 有些类似,但也有一些重要的区别: 指标:PCA 旨在找到最大方差的方向,而 FA 旨在找到潜在的变量(因素),这些变量可能解释察看到的变量之间的独特变异。假如:PCA 假如察看到的变量是察看到的原始特色,而 FA 假如察看到的变量是潜在因素的线性组合和随机误差的总和。解释性:PCA 往往更间接,因为它的主成分是原始特色的线性组合。而 FA 的因素可能不太容易解释,因为它们是察看到的变量的线性组合,而非原始特色。旋转:在 FA 中,因素通常会进行旋转,以使它们更易于解释。FA 在许多畛域都有利用,包含心理学、社会科学、市场钻研等。它可用于简化数据集、辨认潜在构造、缩小测量误差等。然而须要审慎抉择适当的因素数目和因素旋转办法,以确保后果的可解释性和有效性。 3、Linear Discriminant Analysis,LDA线性判别分析(Linear Discriminant Analysis,LDA)是一种用于降维和特征提取的监督学习技术。它与主成分剖析(PCA)不同,因为它不仅思考了数据的方差构造,还思考了数据的类别信息。LDA 旨在找到一个投影方向,最大化不同类别之间的间隔(类间分布),同时最小化同一类别外部的间隔(类内分布)。 LDA 的次要步骤如下: 计算类别的均值向量:对于每个类别,计算该类别下所有样本的均值向量。计算类内分布矩阵(Within-class scatter matrix):对于每个类别,计算该类别下所有样本与其均值向量之间的分布矩阵,并将它们求和。计算类间分布矩阵(Between-class scatter matrix):计算所有类别的均值向量与总体均值向量之间的分布矩阵。计算特征值和特征向量:对于矩阵的逆矩阵乘以类间分布矩阵,失去的矩阵进行特征值合成,失去特征值和特征向量。抉择投影方向:抉择特征值最大的前 k 个特征向量作为投影方向,其中 k 是降维后的维度。投影数据:将原始数据投影到选定的投影方向上,失去降维后的数据。LDA 的长处在于它思考了数据的类别信息,因而生成的投影能更好地区分不同类别之间的差别。它在模式识别、人脸识别、语音辨认等畛域中有着宽泛的利用。LDA 在解决多类别和类别不均衡的状况下可能会遇到一些问题,须要特地留神。 ...

February 17, 2024 · 1 min · jiezi

关于机器学习:机器学习数据清洗之处理异常点

个人主页:[甘甜的江]欢送 点赞✍评论⭐珍藏收录专栏:[机器学习]心愿本文对您有所裨益,如有不足之处,欢送在评论区提出斧正,让咱们独特学习、交换提高!引言: 在数据分析和建模的过程中,咱们经常会面对一个重要的问题:异样值。这些异样值可能是因为数据采集过程中的误差、设施故障或其余未知起因引起的。解决异样值是确保咱们的模型可能持重、精确地进行预测的要害一环。本博客将深入探讨解决异样值的不同策略,以及它们各自的优缺点。首先,咱们会具体介绍在确定解决策略时须要思考的因素,而后深入研究罕用的三种解决策略:删除、代替和转换异样值。通过这些探讨,咱们旨在帮忙读者更好地了解如何在理论利用中抉择最适宜的解决办法,以确保数据的品质和模型的鲁棒性。 一 确定解决策略:1.1 思考因素1 异样值的起源: 首先要确定异样值是因为数据录入谬误、测量谬误、天然变异还是其余起因导致的。这有助于确定适当的解决办法。2 数据的背景常识: 对数据所代表的畛域有肯定的理解是很重要的,因为某些畛域的数据可能会有特定的异样模式或行为。3 异样值的影响水平: 确定异样值对数据分析或建模的影响水平。如果异样值影响不大,能够思考疏忽它们;如果影响较大,则须要采取适当的解决措施。4 数据的散布状况: 剖析数据的散布状况,包含均值、中位数、标准差、四分位数等,以确定异样值的地位和数量。5 解决办法的抉择: 依据异样值的性质和数据的特点,抉择适合的解决办法,如删除、代替、转换等。6 数据完整性: 思考解决异样值对数据完整性的影响。有时候,删除异常值可能会导致数据的缺失,须要衡量解决。1.2 罕用解决策略1 删除异常值: 当异样值是因为数据录入谬误或测量谬误导致时,能够思考间接删除这些异样值。删除异常值可能会影响数据的完整性,因而须要审慎解决,并依据理论状况确定删除的阈值和办法。2 代替异样值: 当异样值是实在存在的、但对数据分析或建模有不利影响时,能够思考应用代替值来代替异样值。罕用的代替值包含中位数、均值、众数等,也能够应用插值办法来估算异样值。3 转换异样值: 对于无奈删除或代替的异样值,能够思考对其进行转换,使其更靠近失常范畴。常见的转换方法包含取对数、开方等变换。4 应用专门算法解决异样值: 对于简单的数据集或特定的异样值状况,能够思考应用专门的异样值检测算法,如基于聚类的办法、孤立森林、One-Class SVM等。5 综合思考多种办法: 综合思考多种办法来确定解决异样值的策略,能够进步解决的准确性和鲁棒性。在实践中,确定解决异样值的策略通常是一个综合思考多个因素的过程,须要依据具体情况灵便抉择适合的办法。 二 删除异常值在数据荡涤过程中,删除异常值是一种常见的解决办法之一。异样值可能会重大影响数据分析和建模的后果,因而在某些状况下,删除异常值是正当的做法。上面是具体介绍数据荡涤中删除异常值的步骤和注意事项: 1 确定异样值的阈值: 在删除异常值之前,须要先确定异样值的阈值。通常能够应用统计办法,如四分位距(IQR)来辨认异样值。通过计算数据的高低四分位数(Q1和Q3),而后计算IQR(IQR = Q3 - Q1),再乘以一个常数(通常为1.5或3),失去异样值的上上限。2 辨认异样值: 应用确定的阈值,对数据集进行扫描,辨认出超出阈值范畴的数据点。这些数据点即被认定为异样值。3 删除异常值: 一旦辨认出异样值,能够抉择将其删除。删除的办法包含齐全删除异常值所在的行,或者将异样值替换为缺失值(如NaN)。4 审慎解决: 在删除异常值之前,须要认真思考异样值的起源和可能的影响。有时候,异样值可能是实在存在的极其状况,而不是数据谬误。因而,在删除之前要确保异样值不是有意义的数据。5 察看删除后的数据分布: 删除异常值之后,须要察看数据分布是否更加合乎预期,并且数据的统计性质是否失去改善。能够绘制直方图、盒图等图表来比拟删除前后的数据分布状况。6 留神数据完整性: 删除异常值可能会导致数据的缺失,因而须要留神解决后数据的完整性。在删除异常值时,要确保删除的数据量不会影响到整体数据的可用性和代表性。7 敏感性剖析: 能够进行敏感性剖析,尝试不同的异样值阈值,并察看后果的稳定性和可信度。有时候,异样值的辨认阈值可能会影响最终的剖析后果。8 记录处理过程: 在数据荡涤过程中,记录删除异常值的操作,包含删除的数据数量、删除的起因、应用的阈值等信息。这有助于保留数据处理的记录和可追溯性。总的来说,删除异常值是数据荡涤中罕用的一种解决办法,但在应用之前须要慎重考虑异样值的起源和可能的影响,以及删除后数据的完整性和可信度。 三 代替异样值:在数据荡涤过程中,除了删除异常值之外,另一种常见的解决办法是代替异样值。代替异样值意味着用其余数值代替异样值,从而保留数据点并升高异样值对剖析后果的影响。上面是具体介绍数据荡涤中代替异样值的步骤和办法: 1 确定代替策略: 在代替异样值之前,须要确定代替策略。 常见的代替策略包含用平均值、中位数、众数、特定散布的随机值或者利用插值办法估算的值来代替异样值。2 辨认异样值: 与删除异常值雷同,首先须要辨认数据中的异样值。 能够应用统计办法(如四分位距)或基于畛域常识进行辨认。3 抉择代替值: 一旦辨认出异样值,依据确定的代替策略抉择代替值。 抉择代替值时,要思考数据的散布、异样值的数量和地位,以及代替值对后续剖析的影响。4 代替办法: 代替异样值的办法有多种,包含: 1应用平均值或中位数:将异样值替换为整个数据集的平均值或中位数。这种办法简略间接,但可能会受到异样值的影响。 ...

February 14, 2024 · 1 min · jiezi

关于机器学习:c语言字符串常见函数-下

<article class=“article fmt article-content”><blockquote>个人主页:[甘甜的江]<br/>欢送 点赞✍评论⭐珍藏<br/>收录专栏:[c语言]<br/>心愿本文对您有所裨益,如有不足之处,欢送在评论区提出斧正,让咱们独特学习、交换提高!</blockquote><p><strong>引言:</strong></p><blockquote>在C语言中,解决字符串是一项常见且重要的工作。为了无效地操作字符串,C语言提供了许多内置的字符串处理函数。</blockquote><p>本文将介绍一些常见的C语言字符串函数,包含字符串搜寻函数、字符串长度函数和字符串宰割函数。</p><p>通过理解这些函数的用法和原理,你将可能更轻松地解决和操作字符串数据。</p><p></p><h2>一、字符串搜寻函数</h2><p>当在C语言中须要在字符串中搜寻特定字符或子字符串时,能够应用以下几个常见的字符串搜寻函数:strchr、strrchr 和 strstr。上面将具体介绍它们的用法、示例以及注意事项。</p><h3>1.1 strchr (String Character):</h3><p><strong>用法:</strong></p><blockquote>strchr 函数用于在字符串中查找指定字符的第一个匹配项,并返回该字符所在位置的指针。如果未找到指定字符,则返回 NULL。</blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char str[] = “hello world”; char *ptr; ptr = strchr(str, ‘o’); if (ptr != NULL) { printf(“Found at position: %ld\n”, ptr - str); } else { printf(“Not found\n”); } return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”>Found at position: 4</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段C代码首先定义了一个字符数组 str 蕴含字符串 “hello world”。而后,通过调用 strchr 函数,在字符串中查找字符 ‘o’ 的第一次呈现的地位,并将该地位的指针赋值给 ptr 变量。</p><p>接着,通过条件判断查看 ptr 是否为 NULL,如果不是,则示意找到了字符 ‘o’,并应用 printf 函数输入其在字符串中的地位(通过指针减法计算绝对地位),否则输入 “Not found”。</p><p>最初,程序返回0,示意失常执行完结。</p></blockquote><p>这段代码的作用是在字符串中查找字符 ‘o’ 的第一次呈现地位,并输入后果。</p><p>在给定的示例字符串 “hello world” 中,字符 ‘o’ 第一次呈现在地位 4(从零开始计数),因而输入后果为 “Found at position: 4”。</p><p><strong>注意事项:</strong></p><blockquote><p>strchr 函数只返回第一个匹配项的指针,如果须要找到所有匹配项,能够应用循环遍历字符串。</p><p>留神解决返回值为 NULL 的状况,示意未找到匹配项。</p></blockquote><h3>1.2 strrchr (String Reverse Character):</h3><p><strong>用法:</strong></p><blockquote>strrchr 函数用于在字符串中查找指定字符的最初一个匹配项,并返回该字符所在位置的指针。如果未找到指定字符,则返回 NULL。</blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char str[] = “hello world”; char *ptr; ptr = strrchr(str, ‘o’); if (ptr != NULL) { printf(“Found at position: %ld\n”, ptr - str); } else { printf(“Not found\n”); } return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”> Found at position: 7</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段C代码首先定义了一个字符数组 str 蕴含字符串 “hello world”。</p><p>而后,通过调用 strrchr 函数,在字符串中从右往左查找字符 ‘o’ 的最初一次呈现的地位,并将该地位的指针赋值给 ptr 变量。</p><p>接着,通过条件判断查看 ptr 是否为 NULL,如果不是,则示意找到了字符 ‘o’,并应用 printf 函数输入其在字符串中的地位(通过指针减法计算绝对地位),否则输入 “Not found”。</p><p>最初,程序返回0,示意失常执行完结。</p></blockquote><p>这段代码的作用是在字符串中查找字符 ‘o’ 的最初一次呈现地位,并输入后果。</p><p>在给定的示例字符串 “hello world” 中,字符 ‘o’ 最初一次呈现在地位 7(从零开始计数),因而输入后果为 “Found at position: 7”。</p><p><strong>注意事项:</strong></p><blockquote><p>strrchr 函数从字符串的开端开始搜寻,找到第一个匹配项后即进行搜寻,返回该匹配项的指针。</p><p>解决返回值为 NULL 的状况,示意未找到匹配项。</p></blockquote><h3>1.3 strstr (String Search):</h3><p><strong>用法:</strong></p><blockquote>strstr 函数用于在字符串中查找指定子字符串的第一个匹配项,并返回该子字符串的指针。如果未找到子字符串,则返回 NULL。</blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char str[] = “hello world”; char *ptr; ptr = strstr(str, “lo”); if (ptr != NULL) { printf(“Found at position: %ld\n”, ptr - str); } else { printf(“Not found\n”); } return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”> Found at position: 3</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段C代码首先定义了一个字符数组 str 蕴含字符串 “hello world”。</p><p>而后,通过调用 strstr 函数,在字符串中查找子字符串 “lo” 的第一次呈现的地位,并将该地位的指针赋值给 ptr 变量。</p><p>接着,通过条件判断查看 ptr 是否为 NULL,如果不是,则示意找到了子字符串 “lo”,并应用 printf 函数输入其在字符串中的地位(通过指针减法计算绝对地位),否则输入 “Not found”。</p><p>最初,程序返回0,示意失常执行完结。</p></blockquote><p>这段代码的作用是在字符串中查找子字符串 “lo” 的第一次呈现地位,并输入后果。</p><p>在给定的示例字符串 “hello world” 中,子字符串 “lo” 第一次呈现在地位 3(从零开始计数),因而输入后果为 “Found at position: 3”。<br/><strong>注意事项:</strong></p><blockquote><p>strstr 函数会从字符串中找到第一个匹配子字符串的地位,并返回该子字符串的指针。</p><p>解决返回值为 NULL 的状况,示意未找到匹配项。</p></blockquote><p>这些函数是在C语言中罕用的字符串搜寻工具,能够依据具体需要抉择适合的函数来实现字符串搜寻性能。</p><h2>二、字符串长度函数</h2><p>当在C语言中须要获取字符串的长度时,能够应用 strlen 函数。上面将具体介绍 strlen 函数的用处、用法、示例以及注意事项。</p><h3>2.1 strlen (String Length):</h3><p><strong>用处:</strong></p><blockquote>strlen 函数用于计算字符串的长度,即字符串中的字符个数,不包含字符串结束符(’\0’)。</blockquote><p><strong>用法:</strong> </p><p>函数原型如下:</p><pre><code class=“c”>size_t strlen(const char *str);</code></pre><blockquote><p>参数 str:要计算长度的字符串。</p><p>返回值:返回字符串的长度。</p></blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char str[] = “hello world”; size_t length; length = strlen(str); printf(“Length of the string: %zu\n”, length); return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”>Length of the string: 11</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段C代码首先定义了一个字符数组 str 蕴含字符串 “hello world”。</p><p>而后,通过调用 strlen 函数获取字符串的长度,并将后果赋值给 length 变量。</p><p>接着,通过应用 printf 函数输入字符串的长度,格式化字符串中 %zu 是用于打印 size_t 类型的长度。</p><p>最初,程序返回0,示意失常执行完结。</p></blockquote><p>这段代码的次要性能是计算并输入字符串 “hello world” 的长度。</p><p>在给定的示例中,字符串的长度为11,因而输入后果为 “Length of the string: 11”。</p><p><strong>注意事项:</strong></p><blockquote><p>strlen 返回的是 size_t 类型的无符号整数,因而应用 %zu 格局说明符打印后果。</p><p>留神字符串中的结束符 \0 不计入计算长度,即返回值为字符串中字符的理论个数。</p></blockquote><p>这是一个简略而罕用的字符串操作函数,用于获取字符串的长度。在应用时,须要留神字符串的结尾必须是空字符 \0。如果字符串没有正确以空字符结尾,strlen 可能会导致未定义的行为。</p><blockquote>因而,在应用 strlen 时,确保字符串是以空字符正确终止的。</blockquote><h2>三、字符串宰割函数</h2><p>strtok 函数用于在C语言中宰割字符串。它容许你将一个字符串拆分成多个子字符串,依据指定的分隔符进行宰割。<br/>上面将具体介绍 strtok 函数的用处、用法、示例以及注意事项。</p><h3>3.1 strtok (String Tokenizer):</h3><p><strong>用处:</strong> </p><p>strtok 用于将字符串拆分成一系列的标记(tokens),这些标记由用户指定的分隔符来定义。</p><blockquote>每次调用 strtok,它返回下一个标记,直到字符串完结或者再没有其余标记为止。</blockquote><p><strong>用法:</strong> </p><p>函数原型如下:</p><pre><code class=“c”>char *strtok(char *str, const char *delimiters);</code></pre><blockquote><p>参数 str:要宰割的字符串,第一次调用时传入待宰割的字符串,后续调用传入 NULL。</p><p>参数 delimiters:分隔符字符串,蕴含所有可能的分隔符。</p><p>返回值:返回下一个标记的指针,如果没有更多标记则返回 NULL。</p></blockquote><p><strong>示例:</strong></p><pre><code class=“css”>#include <stdio.h>#include <string.h>int main() { char str[] = “apple,orange,banana”; const char delimiters[] = “,”; // 第一次调用 char *token = strtok(str, delimiters); while (token != NULL) { printf(“Token: %s\n”, token); // 后续调用,传入NULL示意持续应用同一字符串 token = strtok(NULL, delimiters); } return 0;}</code></pre><p><strong>后果:</strong></p><blockquote>Token: apple <br/>Token: orange <br/>Token: banana</blockquote><p><strong>代码剖析:</strong></p><blockquote><p>这段C代码首先定义了一个字符数组 str 蕴含字符串 “apple,orange,banana”,以及一个蕴含分隔符 “,” 的字符数组 delimiters。</p><p>而后,通过第一次调用 strtok 函数,将字符串 str 依照分隔符 “,” 进行宰割,并返回第一个宰割后的子字符串的指针,并将该指针赋值给 token 变量。</p><p>接着,通过一个 while 循环,一直查看 token 是否为 NULL,如果不是,则示意仍有未解决的子字符串,顺次输入每个子字符串,并通过后续调用 strtok(NULL, delimiters)</p><p>持续获取下一个宰割后的子字符串,直到所有子字符串都被处理完毕。</p><p>最初,程序返回0,示意失常执行完结。</p></blockquote><p>这段代码的作用是将字符串 “apple,orange,banana” 依照逗号进行宰割,并输入每个宰割后的子字符串。</p><p>输入后果为每个子字符串(apple、orange、banana)别离占一行。</p><p><strong>注意事项:</strong></p><blockquote><p>strtok 在解决字符串时会批改原始字符串,将分隔符替换为 \0,因而须要审慎应用,特地是当原始字符串是常量字符串时。</p><p>在多线程环境下,strtok 是不可重入的,因为它应用了动态变量来记录以后的解析地位。</p><p>如果字符串中有间断的分隔符,strtok 会将它们视为一个分隔符解决,因而可能返回空标记</p></blockquote><p><strong>四 总结:</strong></p><p>本文介绍了C语言中的一些常见字符串函数,包含字符串搜寻函数、字符串长度函数和字符串宰割函数。</p><p>通过学习这些函数,咱们能够在C语言中更加灵便和高效地解决字符串数据。</p><p>字符串搜寻函数 strchr、strrchr 和 strstr 能够帮忙咱们在字符串中查找特定字符或子字符串的地位。</p><p>字符串长度函数 strlen 可能精确地计算字符串的长度,为字符串操作提供了根底。</p><p>字符串宰割函数 strtok 则可能将字符串依照指定的分隔符进行宰割,提取出其中的子字符串。</p><p>通过把握这些字符串函数的应用办法,咱们能够更加高效地编写C语言程序,并解决各种字符串操作需要。</p><blockquote><p><strong>这篇文章到这就完结啦</strong></p><p><strong>谢谢大家的浏览!</strong></p></blockquote><blockquote><p><strong>如果感觉这篇博客对你有用的话,别忘记三连哦。</strong></p><p><strong>我是甘甜的江,让咱们咱们下次再见</strong></p></blockquote><blockquote>本文由博客一文多发平台 OpenWrite 公布!</blockquote></article> ...

February 13, 2024 · 2 min · jiezi

关于机器学习:c语言字符串常见函数-上

<article class=“article fmt article-content”><blockquote>个人主页:[甘甜的江]<br/>欢送 点赞✍评论⭐珍藏<br/>收录专栏:[c语言]<br/>心愿本文对您有所裨益,如有不足之处,欢送在评论区提出斧正,让咱们独特学习、交换提高!</blockquote><p><strong>引言:</strong></p><blockquote>在C语言中,字符串是一种常见的数据类型,用于存储文本信息。字符串的解决是编程中常见工作之一,而C语言提供了丰盛的字符串处理函数来不便开发者对字符串进行操作。</blockquote><p>本篇博客将深入探讨C语言中字符串的基本概念以及常见的字符串处理函数,旨在帮忙读者更好地了解和利用这些功能强大的工具。</p><p></p><h2>一、字符串的基本概念</h2><p>在C语言中,字符串是一串字符的序列,用于示意文本数据。</p><blockquote>字符串在C语言中以字符数组的模式示意,字符数组中的每个元素存储一个字符,并且以空字符(’\0’)结尾,示意字符串的完结。</blockquote><p>在C语言中,能够应用字符数组来示意字符串,例如:</p><pre><code class=“c”>char str[6] = {‘H’, ’e’, ’l’, ’l’, ‘o’, ‘\0’};</code></pre><p>下面的示例定义了一个蕴含5个字符的字符数组,用于示意字符串"Hello"。</p><blockquote>数组的最初一个元素是空字符(’\0’),它示意字符串的完结。空字符是C语言中字符串的特殊字符,用于标识字符串的结尾。</blockquote><p>另一种示意字符串的形式是应用双引号("")括起来的字符序列。</p><p><strong>例如:</strong></p><pre><code class=“c”>char str[] = “Hello”;</code></pre><p>在这种状况下,编译器会主动在字符串的开端增加一个空字符(’\0’),因而不须要显式地指定数组的大小。</p><p>无论应用哪种形式示意字符串,在C语言中,字符串都是以字符数组的模式存储,以空字符(’\0’)结尾,以便于程序可能确定字符串的完结地位。</p><blockquote>这种以空字符结尾的示意形式被称为“以null结尾的字符数组”。</blockquote><p>想要对字符串有更深刻的理解能够看我写的这篇博客</p><p>字符串概念详解</p><h2>二、字符串处理函数概述</h2><p>在C语言中,有许多常见的字符串处理函数可用于对字符串进行各种操作。</p><p>以下是一些常见的字符串处理函数及其性能和用处的简要概述:</p><p><strong>1 strcpy():</strong></p><blockquote><p>性能:用于将一个字符串复制到另一个字符串中。</p><p>用处:罕用于字符串的赋值和拷贝操作。</p></blockquote><p><strong>2 strncpy():</strong></p><blockquote><p>性能:将指定长度的一个字符串复制到另一个字符串中。</p><p>用处:与strcpy()相似,但能够指定要复制的字符数,防止溢出。</p></blockquote><p><strong>3 strcat():</strong></p><blockquote><p>性能:将一个字符串连贯到另一个字符串的开端。</p><p>用处:用于字符串的拼接操作,将两个字符串合并成一个字符串。</p></blockquote><p><strong>4 strncat():</strong></p><blockquote><p>性能:将指定长度的一个字符串连贯到另一个字符串的开端。</p><p>用处:与strcat()相似,但能够指定要连贯的字符数,防止溢出。</p></blockquote><p><strong>5 strcmp():</strong></p><blockquote><p>性能:比拟两个字符串是否相等。</p><p>用处:用于字符串的比拟操作,判断两个字符串是否雷同。</p></blockquote><p><strong>6 strncmp():</strong></p><blockquote><p>性能:比拟两个字符串的前n个字符是否相等。</p><p>用处:与strcmp()相似,但能够指定要比拟的字符数。</p></blockquote><p><strong>7 strlen():</strong></p><blockquote><p>性能:计算字符串的长度,即字符串中的字符数(不包含结尾的空字符)。</p><p>用处:罕用于确定字符串的长度,例如在循环中遍历字符串或为动静分配内存做筹备。</p></blockquote><p><strong>8 strchr():</strong></p><blockquote><p>性能:在字符串中查找指定字符的第一次呈现地位。</p><p>用处:用于查找字符串中特定字符的地位。</p></blockquote><p><strong>9 strrchr():</strong></p><blockquote><p>性能:在字符串中查找指定字符的最初一次呈现地位。</p><p>用处:与strchr()相似,但从字符串的开端开始搜寻。</p></blockquote><p><strong>10 strstr():</strong></p><blockquote><p>性能:在字符串中查找指定子串的第一次呈现地位。</p><p>用处:用于在字符串中查找子串,返回子串在字符串中的地位。</p></blockquote><p>这些函数是C语言中常见的字符串处理函数,它们提供了各种性能,能够用于对字符串进行复制、连贯、比拟、查找等操作。通过正当应用这些函数,能够不便地解决字符串数据,实现各种字符串操作需要。</p><h2>三、字符串赋值和拷贝函数</h2><h3>3.1 strcpy (String Copy)</h3><p><strong>用法:</strong></p><pre><code class=“c”>char* strcpy(char* destination, const char* source);</code></pre><p><strong>性能:</strong></p><blockquote>将源字符串的内容复制到指标字符串中,直到遇到源字符串的空字符(’\0’)。</blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char source[] = “Hello, World!”; char destination[20]; strcpy(destination, source); printf(“Copied string: %s\n”, destination); return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”>Copied string: Hello, World!</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段C代码首先蕴含了规范输入输出库 <stdio.h> 和字符串解决库 <string.h>。</p><p>在 main 函数中,一个名为 source 的字符数组被初始化为 “Hello, World!",并且另一个字符数组 destination 被定义为包容至少20个字符的空间。</p><p>而后,strcpy 函数被调用,将 source 中的字符串复制到 destination 中。因为 destination的大小为20,足够包容源字符串,因而这个操作是平安的。</p><p>最初,应用 printf 打印出复制后的字符串,即 “Hello, World!",并且程序返回0,示意失常执行完结。</p><p>须要留神的是,destination 中的内容当初与 source完全相同,但这种操作的安全性取决于指标数组足够大,以包容源字符串的长度。</p></blockquote><p><strong>注意事项:</strong></p><blockquote><p>须要确保指标字符串足够大,以包容源字符串的内容。</p><p>不提供指标字符串长度的选项,容易导致缓冲区溢出。</p></blockquote><h3>3.2 strncpy (String Copy with Size Limit)</h3><p><strong>用法:</strong></p><pre><code class=“c”>char* strncpy(char* destination, const char* source, size_t n);</code></pre><p><strong>性能:</strong></p><blockquote>将源字符串的最多前n个字符复制到指标字符串中,遇到源字符串的空字符(’\0’)或者达到n时进行。</blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char source[] = “Hello, World!”; char destination[10]; strncpy(destination, source, 5); destination[5] = ‘\0’; // Ensure null-termination printf(“Copied string: %s\n”, destination); return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”>Copied string: Hello</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>代码首先定义了两个字符数组,source 用于存储源字符串 “Hello, World!",而 destination 则是用于存储复制后的局部字符串的指标数组。</p><p>而后,应用 strncpy 函数将源字符串的前5个字符复制到指标数组 destination 中,因而 destination 中存储的是 “Hello”。</p><p>为了确保指标数组被正确视为字符串,手动在指标数组的第6个地位增加了字符串结束符 \0。</p><p>最初,通过 printf 函数将复制后的字符串打印输出,程序失常完结。</p></blockquote><p><strong>注意事项:</strong></p><blockquote><p>须要手动确保指标字符串以空字符(’\0’)结尾。</p><p>如果源字符串长度小于n,指标字符串将用空字符(’\0’)填充。</p></blockquote><p>对于这两个函数的具体区别,能够看我上面的这篇博客。</p><p>【c语言】strcpy()和strncpy():字符串复制详解</p><h3>3.3 strcat (String Concatenate)</h3><p><strong>用法:</strong></p><pre><code class=“c”>char* strcat(char* destination, const char* source);</code></pre><p><strong>性能:</strong></p><blockquote>将源字符串连贯到指标字符串的开端,造成一个新的字符串。</blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char destination[20] = “Hello, “; char source[] = “World!”; strcat(destination, source); printf(“Concatenated string: %s\n”, destination); return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”>Concatenated string: Hello, World!</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>首先定义了一个字符数组 destination,并初始化为 “Hello, " 这个字符串,长度为20。</p><p>而后定义了另一个字符数组 source,并将其初始化为 “World!"。</p><p>接着,应用 strcat 函数将 source 中的字符串连贯到 destination 的开端,因而 destination 最终存储的是 “Hello, World!"。</p><p>最初,通过 printf 函数将连贯后的字符串打印输出,程序返回0示意失常执行完结。</p></blockquote><p><strong>注意事项:</strong></p><blockquote><p>指标字符串必须足够大,以包容两个字符串的组合。</p><p>源字符串的内容将附加到指标字符串的结尾。</p></blockquote><h3>3.4. strncat (String Concatenate with Size Limit)</h3><p><strong>用法:</strong></p><pre><code class=“c”>char* strncat(char* destination, const char* source, size_t n);</code></pre><p><strong>性能:</strong></p><blockquote>将源字符串的最多前n个字符连贯到指标字符串的开端。</blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char destination[20] = “Hello, “; char source[] = “World!”; strncat(destination, source, 3); printf(“Concatenated string: %s\n”, destination); return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”>Concatenated string: Hello, Wor</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段代码的性能是将两个字符串连接起来,然而只连贯源字符串的前3个字符到指标字符串开端,并将后果打印输出。具体分析如下:</p><p>在主函数 main 中,首先定义了一个字符数组 destination,并初始化为 “Hello, " 这个字符串,长度为20。</p><p>而后定义了另一个字符数组 source,并将其初始化为 “World!"。</p><p>接着,应用 strncat 函数将 source 中的前3个字符连贯到 destination 的开端,因而 destination 最终存储的是 “Hello, Wor”。</p><p>最初,通过 printf 函数将连贯后的字符串打印输出,程序返回0示意失常执行完结。</p></blockquote><p><strong>注意事项:</strong></p><blockquote><p>须要手动确保指标字符串以空字符(’\0’)结尾。</p><p>如果源字符串长度小于n,指标字符串将用空字符(’\0’)填充。</p></blockquote><p>总体来说,这些函数是C语言中字符串操作的根本工具,但在应用时须要小心解决边界条件,以防止缓冲区溢出和其余潜在的问题。</p><h2>四、字符串比拟函数</h2><p>字符串比拟函数次要用于比拟两个字符串的内容,其中最罕用的函数包含 strcmp 和 strncmp。</p><p>上面是它们的具体介绍:</p><h3>4.1 strcmp 函数:</h3><p>strcmp 函数用于比拟两个字符串的内容。</p><p>它在C规范库中申明如下:</p><pre><code class=“cpp”>int strcmp(const char *str1, const char *str2);</code></pre><blockquote><p>str1:要比拟的第一个字符串。</p><p>str2:要比拟的第二个字符串。</p></blockquote><p><strong>用法:</strong></p><p>strcmp 函数比拟两个字符串的字典程序,</p><blockquote><p>如果两个字符串相等,返回值为0;</p><p>如果第一个字符串在字典中排在第二个字符串之前,返回值为正数;</p><p>如果第一个字符串在字典中排在第二个字符串之后,返回值为负数。</p></blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char str1[] = “apple”; char str2[] = “banana”; int result = strcmp(str1, str2); if (result == 0) { printf(“The strings are equal.\n”); } else if (result < 0) { printf("%s comes before %s in dictionary order.\n”, str1, str2); } else { printf("%s comes after %s in dictionary order.\n”, str1, str2); } return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”> apple comes before banana in dictionary order.</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段代码首先定义了两个字符数组 str1 和 str2 别离存储字符串 “apple” 和 “banana”。</p><p>而后,应用 strcmp 函数比拟这两个字符串的字典程序,将比拟后果存储在 result 变量中。</p><p>接着,通过条件语句判断 result 的值:</p><p>如果为0,则阐明两个字符串相等,打印输出 “The strings are equal.";</p><p>如果小于0,则阐明第一个字符串在字典中排在第二个字符串之前,打印输出 “apple comes before banana in dictionary order.";</p><p>如果大于0,则阐明第一个字符串在字典中排在第二个字符串之后,打印输出 “apple comes after banana in dictionary order."。</p><p>最初,程序返回0示意失常执行完结。</p></blockquote><p><strong>注意事项:</strong></p><blockquote><p>strcmp 函数比拟的是字符串的内容,而不是字符串的地址。</p><p>对于大多数状况下,strcmp 函数足够用了。然而在一些非凡状况下(例如 解决二进制数据),可能须要应用 memcmp 函数进行比拟。</p></blockquote><h3>4.2 strncmp 函数:</h3><p>strncmp 函数与 strcmp 函数相似,然而能够指定要比拟的字符数目。</p><p>它在C规范库中申明如下:</p><pre><code class=“c”>int strncmp(const char *str1, const char *str2, size_t num);</code></pre><blockquote><p>str1:要比拟的第一个字符串。</p><p>str2:要比拟的第二个字符串。</p><p>num:要比拟的字符数目。</p></blockquote><p><strong>用法:</strong></p><blockquote><p>strncmp 函数比拟两个字符串的前 num 个字符,如果相等,返回值为0;</p><p>如果第一个字符串在前 num 个字符中排在第二个字符串之前,返回值为正数;</p><p>如果第一个字符串在前 num 个字符中排在第二个字符串之后,返回值为负数。</p></blockquote><p><strong>示例:</strong></p><pre><code class=“c”>#include <stdio.h>#include <string.h>int main() { char str1[] = “apple pie”; char str2[] = “apple sauce”; int result = strncmp(str1, str2, 5); if (result == 0) { printf(“The first 5 characters of the strings are equal.\n”); } else if (result < 0) { printf(“The first 5 characters of %s come before %s.\n”, str1, str2); } else { printf(“The first 5 characters of %s come after %s.\n”, str1, str2); } return 0;}</code></pre><p><strong>后果:</strong></p><pre><code class=“c”>The first 5 characters of the strings are equal.</code></pre><p><strong>代码剖析:</strong></p><blockquote><p>这段代码首先定义了两个字符数组 str1 和 str2 别离存储字符串 “apple pie” 和 “apple sauce”。</p><p>而后,应用 strncmp 函数比拟这两个字符串的前5个字符,将比拟后果存储在 result 变量中。</p><p>接着,通过条件语句判断 result 的值:</p><p>如果为0,则阐明这两个字符串的前5个字符相等,打印输出 “The first 5 characters of the strings are equal.";</p><p>如果小于0,则阐明在这5个字符范畴内,第一个字符串在字典中排在第二个字符串之前,打印输出 “The first 5 characters of apple pie come before apple sauce.";</p><p>如果大于0,则阐明在这5个字符范畴内,第一个字符串在字典中排在第二个字符串之后,打印输出 “The first 5 characters of apple pie come after apple sauce."。</p><p>最初,程序返回0示意失常执行完结。</p></blockquote><p><strong>注意事项:</strong></p><blockquote><p>strncmp 函数用于比拟指定数量的字符,因而在一些特定场景下,更灵便。</p><p>须要留神的是,如果指定的字符数超过了其中一个字符串的长度,函数将会进行在较短的字符串处,这可能会导致不合乎预期的后果。</p></blockquote><h2>五 总结</h2><p>通过本博客,读者将对C语言中字符串的基本概念、常见处理函数以及赋值、拷贝和比拟等方面有更深刻的了解。</p><p>纯熟使用这些字符串处理函数,将有助于进步代码的可读性和效率,使开发者更加熟能生巧地解决字符串操作。</p><p>心愿这篇博客可能成为读者学习和把握C语言字符串解决的无力工具。</p><blockquote><p><strong>这篇文章到这就完结啦</strong></p><p><strong>谢谢大家的浏览!</strong></p></blockquote><blockquote><p><strong>如果感觉这篇博客对你有用的话,别忘记三连哦。</strong></p><p><strong>我是甘甜的江,让咱们咱们下次再见</strong><br/>本文由博客一文多发平台 OpenWrite 公布!</p></blockquote></article> ...

February 12, 2024 · 3 min · jiezi

关于机器学习:机器学习数据清洗之处理缺失点

<article class=“article fmt article-content”><blockquote>个人主页:[甘甜的江]<br/>欢送 点赞✍评论⭐珍藏<br/>收录专栏:[机器学习]<br/>心愿本文对您有所裨益,如有不足之处,欢送在评论区提出斧正,让咱们独特学习、交换提高!</blockquote><p></p><p><strong>引言:</strong></p><blockquote><p>在机器学习畛域,数据被宽泛认为是驱动模型性能的要害。然而,在真实世界的数据中,缺失值是一个不可避免的问题,可能来自于测量谬误、系统故障或其余未知因素。正确而无效地解决这些缺失值对于确保数据品质和模型的准确性至关重要。</p><p>本文将深入探讨数据荡涤中一项要害工作:解决缺失点。咱们将介绍不同的办法,涵盖从删除缺失值到插值法和填充法的多个层面,以帮忙您更好地了解在不同场景下如何解决缺失值。</p></blockquote><h2>一 删除缺失值:</h2><p>在数据荡涤过程中,解决缺失值的办法之一是删除缺失值。这种办法实用于缺失值数量较少或者缺失值对于剖析工作的影响较小的状况。以下是具体介绍删除缺失值的办法:</p><h3>1.1 删除行:</h3><p>最简略的办法是间接删除蕴含缺失值的行。这种办法实用于数据集中缺失值较少,删除缺失值后依然保留足够的数据用于剖析的状况。</p><p><strong>示例代码:</strong></p><pre><code class=“python”>import pandas as pd# 创立一个示例DataFramedata = pd.DataFrame({‘A’: [1, 2, None, 4], ‘B’: [None, 5, 6, 7]})# 删除蕴含缺失值的行cleaned_data = data.dropna()print(cleaned_data)</code></pre><h3>1.2 删除列:</h3><p>如果某一列缺失值过多或者对剖析工作没有奉献,能够抉择删除该列。<br/><strong>示例代码:</strong></p><pre><code class=“python”># 删除蕴含缺失值的列cleaned_data = data.dropna(axis=1)print(cleaned_data)</code></pre><h3>1.3 阈值删除:</h3><p>设置阈值,如果某一行或者列中的缺失值数量超过阈值,则删除该行或者列。<br/><strong>示例代码:</strong></p><pre><code class=“python”># 设置阈值,删除超过阈值的行或者列threshold = 2 # 设置阈值为2cleaned_data = data.dropna(thresh=threshold)print(cleaned_data)</code></pre><h3>1.4条件删除:</h3><p>依据特定条件,删除蕴含缺失值的行或者列。<br/><strong>示例代码:</strong></p><pre><code class=“python”># 依据条件删除缺失值cleaned_data = data.dropna(subset=[‘A’]) # 删除’A’列中的缺失值所在的行print(cleaned_data)</code></pre><h3>1.5 特定列删除:</h3><p>如果只对特定列感兴趣,能够仅删除这些列中蕴含缺失值的行。</p><p><strong>示例代码:</strong></p><pre><code class=“python”># 对特定列删除缺失值cleaned_data = data.dropna(subset=[‘B’]) # 删除’B’列中的缺失值所在的行print(cleaned_data)</code></pre><blockquote><p>在理论利用中,抉择何种办法取决于数据集的特色、剖析工作以及缺失值的散布状况。</p><p>须要审慎思考删除缺失值可能带来的信息损失,并依据具体情况抉择适合的办法。</p></blockquote><h2>二 插值法</h2><p>在数据荡涤中,解决缺失值的一种常见办法是应用插值法。插值是通过已知数据点的信息来预计未知点的值。这种办法对于连续型数据的缺失值填充尤其有用。以下是一些常见的插值办法:</p><h3>2.1 线性插值:</h3><p><strong>概念:</strong> </p><p>线性插值假如变量之间的关系是线性的。</p><blockquote>对于缺失值,能够通过已知的相邻数据点之间的线性关系来进行预计。</blockquote><p><strong>实现:</strong> </p><p>常见的线性插值办法包含一次线性插值和二次线性插值。</p><blockquote>在一次线性插值中,缺失值被估算为其相邻两个已知值的平均值。在二次线性插值中,利用相邻三个已知值构建二次方程,从而进行估算。</blockquote><h3>2.2 多项式插值:</h3><p><strong>概念:</strong> </p><p>多项式插值通过应用更高阶的多项式来适应已知数据点。</p><blockquote>这能够更精确地拟合数据,但也容易引入过拟合。</blockquote><p><strong>实现:</strong> </p><p>常见的多项式插值办法包含拉格朗日插值和牛顿插值。</p><blockquote>这些办法应用已知数据点构建多项式,而后通过多项式来预计缺失值。</blockquote><h3>2.3 样条插值:</h3><p><strong>概念:</strong> </p><p>样条插值应用分段函数(通常是三次样条)来迫近已知数据。</p><blockquote>这种办法更平滑,防止了多项式插值的过拟合问题。</blockquote><p><strong>实现:</strong></p><p>三次样条插值是一种常见的办法,将整个数据集拟合成一组三次多项式,并保障在连接点处平滑过渡。</p><h3>2.4 Kriging插值:</h3><p><strong>概念:</strong></p><p>Kriging是一种基于天文空间的插值办法,宽泛用于地理信息系统(GIS)。</p><blockquote>它思考了空间相关性,并通过对数据之间的空间相关性建模来预计未知地位的值。</blockquote><p><strong>实现:</strong></p><p>Kriging通常须要对数据进行协方差剖析,以确定空间相关性的参数。</p><h3>2.5 基于机器学习的办法:</h3><p><strong>概念:</strong> </p><p>应用机器学习模型来预测缺失值,例如回归模型、决策树、随机森林等。</p><blockquote>这种办法能够通过思考多个特色之间的简单关系来进步预测准确性。</blockquote><p><strong>实现:</strong> </p><p>训练机器学习模型来预测含有缺失值的特色,而后用模型的预测值填充缺失值。</p><blockquote><p>总的来说,在抉择插值办法时,须要依据数据的性质和问题的背景来衡量办法的优劣。</p><p>每种插值办法都有其实用的场景和局限性,因而在理论利用中须要审慎抉择。</p><p>同时,为了缩小不确定性,能够联合多个插值办法进行比拟和验证。</p></blockquote><h2>三 填充法</h2><p>解决缺失值时,除了插值法外,还能够应用填充法来填补缺失值。填充法次要通过一些规定或统计量来估算缺失值。以下是一些常见的填充法办法:</p><h3>3.1 均值(Mean)填充:</h3><p><strong>概念:</strong></p><p>应用变量的均值来填充缺失值。实用于连续型数据,简略且不引入额定的复杂性。</p><p><strong>实现:</strong></p><p>计算变量的均值,而后将缺失值替换为均值。</p><h3>3.2 中位数(Median)填充:</h3><p><strong>概念:</strong> </p><p>应用变量的中位数来填充缺失值。对于存在异样值的状况,中位数可能比均值更持重。</p><p><strong>实现:</strong> </p><p>计算变量的中位数,将缺失值替换为中位数。</p><h3>3.3 众数(Mode)填充:</h3><p><strong>概念:</strong></p><p>应用变量的众数来填充缺失值。实用于分类变量。</p><p><strong>实现:</strong></p><p>计算变量的众数,将缺失值替换为众数。</p><h3>3.4 最近邻填充(Nearest Neighbor Imputation):</h3><p><strong>概念:</strong></p><p>依据其余样本的数值来填充缺失值,抉择与缺失值最类似的样本进行填充。</p><p><strong>实现:</strong> </p><p>计算样本之间的类似度,抉择最近邻的样本来填充缺失值。</p><h3>3.5 回归模型填充:</h3><p><strong>概念:</strong></p><p>应用回归模型来预测缺失值,将其余特色作为预测变量。</p><p><strong>实现:</strong></p><p>对于含有缺失值的特色,将其看作指标变量,应用其余特色建设回归模型,预测缺失值。</p><h3>3.6 随机抽样填充:</h3><p><strong>概念:</strong> </p><p>从变量的已知值中随机抽样来填充缺失值。</p><p><strong>实现:</strong></p><p>从非缺失值中随机抉择一个值,用于填充缺失值。</p><h3>3.7 插值法填充:</h3><p><strong>概念:</strong> </p><p>利用插值办法(如线性插值、多项式插值)来估算缺失值。</p><p><strong>实现:</strong></p><p>应用插值法对缺失值进行估算,如在相邻数据点之间进行线性插值。</p><h3>3.8 利用业务规定填充:</h3><p><strong>概念:</strong> </p><p>基于畛域常识或业务规定来填充缺失值。</p><p><strong>实现:</strong></p><p>依据特定业务场景的规定,为缺失值设定适合的数值。</p><blockquote><p>总的来说,在抉择填充办法时,须要思考数据的性质、缺失值的散布以及问题的要求。</p><p>不同的填充办法可能对数据产生不同的影响,因而在利用填充办法之前,最好先对数据进行探索性剖析,理解缺失值的散布状况和数据的个性。</p><p>同时,能够尝试不同的填充办法,并评估它们对最终剖析后果的影响。</p></blockquote><h2>四 三种办法的优缺点及实用场景</h2><h3>4.1 删除法:</h3><p><strong>长处:</strong></p><blockquote><p>简略间接,不引入额定的复杂性。</p><p>对于确保数据分析的准确性和可靠性很重要的状况,如建模剖析等,能够抉择删除缺失值,确保后果的准确性。</p></blockquote><p><strong>毛病:</strong></p><blockquote><p>可能导致信息失落,缩小样本量。</p><p>可能引入样本抉择偏差,使得剖析后果不够全面。</p></blockquote><p><strong>实用场景:</strong></p><p>当缺失值占比拟小,对整体数据集影响不大时,或者在确保删除不会引入偏差的状况下应用。</p><h3>4.2 插值法:</h3><p><strong>长处:</strong></p><blockquote><p>思考了数据的连续性,填充的值更加平滑。 </p><p>实用于工夫序列等具备肯定规律性的数据。</p></blockquote><p><strong>毛病:</strong></p><blockquote><p>对于非线性的关系,插值法可能不够精确。</p><p>对异样值比拟敏感,可能受到极其值的影响。</p></blockquote><p><strong>实用场景:</strong></p><blockquote>实用于连续型数据,特地是工夫序列数据,且缺失值的散布具备肯定的规律性。</blockquote><h3>4.3 填充法:</h3><p><strong>长处:</strong></p><blockquote><p>通过预计缺失值,保留了样本量,不会引入样本抉择偏差。</p><p>能够利用其余变量的信息进行填充,进步填充的准确性。</p></blockquote><p><strong>毛病</strong></p><blockquote><p>须要依据具体情况抉择适合的填充办法,不同办法的成果可能有差别。 </p><p>对于高维数据集,解决简单的关系可能会比拟艰难。</p></blockquote><p><strong>实用场景:</strong></p><blockquote>实用于各种数据类型,尤其是当数据集中的变量之间存在肯定关联性时。</blockquote><h2>五 总结:</h2><p>数据荡涤中解决缺失值是机器学习流程中不可或缺的一环。</p><p>通过本文的介绍,咱们深刻理解了删除缺失值、插值法和填充法这三种次要的解决缺失值的办法。</p><p>每种办法都有其独特的劣势和限度,抉择适合的办法须要思考数据的个性、缺失值的散布状况以及剖析的指标。</p><p>在实践中,综合使用这些办法,联合具体情况,将有助于进步数据品质,为机器学习模型的建设奠定松软的根底。</p><blockquote><p><strong>这篇文章到这里就完结了</strong></p><p><strong>谢谢大家的浏览!</strong></p></blockquote><blockquote><p><strong>如果感觉这篇博客对你有用的话,别忘记三连哦。</strong></p><p><strong>我是甘甜的江,让咱们咱们下次再见</strong></p></blockquote><blockquote>本文由博客一文多发平台 OpenWrite 公布!</blockquote></article> ...

February 12, 2024 · 1 min · jiezi

关于机器学习:三张搞定AI形象照开启GPU即刻体验

本文将为您演示如何应用GPU加计算巢来生成集体的数字写真。整个过程分为三步:第一步是开明FaceChain服务并创立实例;第二步是应用已开明的FaceChain服务进行训练;第三步是抉择格调并生成集体的数字写真。在每一步中,都给出了具体的操作指引和注意事项。 流动入口:https://developer.aliyun.com/topic/ai/gpuperson第一步:应用计算巢开明FaceChain服务1.首先从官网上进入计算巢的控制台,并登录治理控制台。 2.抉择用户控制台界面,找到FaceChain服务,点击正式创立。 3.抉择资源部署的地区和实例规格,填写实例明码。实例规格倡议抉择A10卡gn7i(ecs.gn7i-c16g1.4xlarge) 注:如果遇到实例规格列表为空的状况,可能是以后地区的库存有余,请切换其余地区重试! 4.填写软件登陆名和明码。 注:肯定要记住本人的明码,否则前面无奈登陆软件 5.配置可用区和专有网络。 6.点击“下一步:确认订单”跳转,勾选“我已浏览并批准《计算巢服务协定》”,点击立刻创立。 7.提交胜利后点击去列表查看即可看到部署进度。 8.期待状态变为“已部署”后,点击详情跳转到服务实例详情页。 点击Endpoint,输出刚刚设置的用户名和明码即可登陆FaceChain界面开始创作啦! 第二步:应用FaceChain服务开始训练1.抉择根底模型,首先抉择感兴趣的根底模型,不同的根底模型蕴含的格调类型不同 2.上传照片,输出以后人物名称,点击抉择图片上传,为了保证质量,抉择清晰的头肩照为宜。 3.开始训练,在下面图片全副加载进去后,点击“开始训练”,而后就急躁期待,直到输入信号呈现“训练曾经实现!”,这时候就能够欢快地进行下一步啦! 第三步:训练实现后抉择本人的想要的格调生成集体的数字写真。1.切换到“有限格调形象写真”tab,抉择刚刚训练好的根底模型,找到你的人物LoRA。 2.接着点击抉择你喜爱的格调类型,输出想要生成的图片数量,或者也能够在高级选项中进行各种高级操作~包含prompt优化,参数调整等等。 3.期待生成结束后,即可获取本人的数字形象啦! 点击立刻收费试用云产品 开启云上实际之旅!原文链接 本文为阿里云原创内容,未经容许不得转载。

September 28, 2023 · 1 min · jiezi

关于机器学习:学习真的很困难那是你没遇到这种保姆式-AI

介绍在一直倒退的教育格局中,一刀切的办法正在成为过来。传统的课堂模式,即不同能力和趣味的学生以雷同的速度学习雷同的资料,有其局限性。侥幸的是,技术提高,特地是人工智能(AI)技术提高,正在重塑教育,使其比以往任何时候都更加个性化。在本文中,咱们将深入研究个性化教育的概念,摸索人工智能在这种转变中的作用,并钻研它为学生和教育工作者提供的深远益处。  一、理解个性化教育个性化教育的外围是辨认并投合个别学习者的独特需要和偏好。它抵赖学生有不同的学习格调、劣势和须要改良的畛域。个性化教育的一个次要指标是解脱一刀切的模式,依据每个学生的要求量身定制学习体验。个性化教育具备以下几个长处:1. 加强参与度:当学生积极参与他们的学习过程,并可能看到他们正在学习的内容的相关性时,他们的参与度和能源天然会减少。2. 改善学习成绩:通过调整教学方法和内容以合乎学生的根底和趣味,个性化教育能够带来更好的学习成绩和常识保留。3. 灵活性:它容许学生依照本人的节奏学习,对于那些须要额定工夫来把握某些概念或想要放慢学习速度的人来说,这很有价值。 二、人工智能在个性化教育中的作用人工智能是教育领域的游戏规则扭转者,它处于实现个性化学习体验的最前沿。以下是人工智能如何施展关键作用:1. 数据驱动的见解:人工智能零碎收集和剖析无关学生体现的大量数据。这些数据包含无关他们的劣势、劣势、学习速度和偏好的信息。通过开掘这些数据,人工智能能够提供无关每个学生提高状况的贵重见解。2. 量身定制的内容和倡议:基于这些见解,人工智能驱动的零碎能够举荐特定的学习材料、练习,甚至提出额定的挑战来扩大学生的能力。这种个性化可确保学生始终练习与他们以后了解程度相干且适宜的内容。3. 适应性评估:人工智能还能够生成自适应评估,依据学生的体现实时调整问题的难度。这确保了评估具备挑战性,但又不会艰难得令人丧气,从而提供最佳的学习体验。  三、人工智能驱动的个性化教育的益处将人工智能(AI)纳入个性化教育的劣势的确是显著的,并有可能彻底改变咱们的学习形式。以下是一些次要劣势:1. 进步学生问题:将人工智能整合到个性化教育中最显著的一个劣势是学生问题的显著进步。积极参与人工智能驱动的个性化学习工具的学生通常会在学习成绩方面取得显著进步。这不仅限于更好的问题,它还延长到对学习内容的更深刻和更粗浅的了解。人工智能使学习材料适应每个学生独特的节奏和学习格调,增强他们的劣势并补救他们的弱势。因而,学生变得更加自信和纯熟,为他们在课堂内外取得成功奠定了根底。2. 加强能源:个性化教育培养了对学习旅程的主人翁感,这反过来又会带来更高水平的能源。当学生感觉资料是专门为他们的需要和趣味量身定制的时候,他们更有可能积极参与内容。人工智能算法能够辨认与每个学生产生最共鸣的主题和学习办法,确保他们发现学习体验是乏味且相干的。因而,学生成为渴望摸索和把握新概念的自我激励的学习者。3. 解决学习差别:在当今的教育环境中,学习者的多样性是微小的,学生来自不同的背景并领有宽泛的能力。人工智能善于辨认和解决这些学习差别。它能够调整课程以满足每个学生的独特需要,无论他们是在某些概念上苦苦挣扎还是须要高级挑战来放弃参加。通过这样做,人工智能发明了偏心的竞争环境,确保所有学生,无论他们的终点如何,都有机会取得成功。4. 工夫和资源效率:教育工作者常常面临均衡无限工夫和资源的挑战,同时致力提供最好的教育。在这方面,人工智能能够成为一个弱小的盟友。通过主动执行某些工作(如评分和评估),教育工作者能够腾出贵重的工夫专一于最重要的事件:为学生提供个性化的领导和反对。教育工作者能够确定个别学生最须要帮忙的畛域并提供有针对性的干涉措施,而不是向每个学生提供雷同的内容。这种工夫和资源的无效利用使教育工作者和学生都受害。5. 一生学习:人工智能驱动的个性化教育并不局限于传统的 K-12 或高等教育环境。它将其范畴扩大到一生学习畛域。寻求取得适宜其职业指标的新技能和常识的成年人能够从人工智能驱动的平台中受益匪浅。无论是把握一门新语言、取得技术技能还是摸索新畛域,人工智能都能够创立个性化的学习路径,以满足成人学习者的特定需要和欲望。这使集体可能适应一直变动的行业,并毕生中能在他们抉择的职业中怀才不遇。 四、克服挑战和顾虑尽管人工智能在教育方面具备微小的后劲,但它并非没有挑战和顾虑。解决这些问题对于确保负责且无效地施行至关重要:1. 隐衷和数据安全:收集和存储学生数据会引起对隐衷和数据安全的顾虑。必须采取强有力的措施来爱护敏感信息。2. 道德思考:人工智能在教育中的利用应遵循道德准则,包含透明度、公平性和问责制。确保人工智能算法没有偏见是最重要的问题。3. 均衡人工智能和人类教学:人工智能是增强教育的工具,而不是取代人类老师。在人工智能驱动的个性化和人工领导之间获得适当的均衡对于胜利施行至关重要。  五、真实世界的案例钻研当然,让咱们深入研究一些具体的例子和案例钻研,突出人工智能在个性化教育中的影响:1. 可汗学院:大规模个性化学习可汗学院是一个在线平台,提供宽泛的教育内容,从数学和迷信到人文学科。它以其自适应学习技术而闻名,该技术应用人工智能算法为每个学生提供个性化的学习体验。 可汗学院是由 Sal Khan 于 2006 年创立的美国非营利性教育机构。个案研究:SRI教育钻研小组进行的一项钻研发现,应用可汗学院进行个性化数学练习的学生在数学技能方面获得了显著进步。人工智能零碎适应每个学生的体现,在须要时提供提醒和额定的练习。该钻研表明,个性化的人工智能驱动学习能够十分无效,尤其是在数学等学科中。“影响评估显示KA对学生的数学问题有踊跃影响。KA 对原始测试分数的影响在减少 2.54-5.01 个百分点和均匀 3.77 个百分点之间,而对标准化分数的影响比平均值高 0.14-0.27 个标准差。”2. 幻想盒子:自适应数学学习DreamBox Learning 是专一于数学的人工智能驱动教育平台的另一个例子。它适应学生的劣势和劣势,提供适宜他们集体需要的课程和练习。 ”DreamBox Learning 是一家美国在线软件提供商,专一于小学和中学阶段的数学教育。个案研究:哈佛大学教育政策钻研核心进行的一项钻研发现,应用 DreamBox Learning 的学生在数学能力方面有了实质性的进步。此外,在平台上破费更多工夫的学生取得了更大的学习收益。该钻研展现了人工智能驱动的自适应学习如何对学生在特定科目中的体现产生踊跃影响。3. 多邻国:个性化语言学习Duolingo 是一款风行的语言学习应用程序,它利用 AI 来个性化语言教学。它依据学生的体现调整课程难度,并适应他们喜爱的学习格调。 Duolingo 是一家美国教育技术公司,生产学习应用程序并提供语言认证。个案研究:纽约市立大学和南卡罗来纳大学进行的一项独立钻研表明,仅应用该应用程序 34 小时的学习者就能够实现相当于一个学期的大学程度语言教育。这证实了人工智能在提供高度个性化的语言学习体验方面的力量,以满足集体需要和进度。4. 卡内基学习:人工智能加强的数学课程Carnegie Learning 为 K-12 学生提供人工智能驱动的数学课程。他们的平台将智能辅导与课程设计相结合,以实现数学教学的个性化。 Carnegie Learning公司是 K-12 教育服务的提供商,包含数学,识字和 ELA,世界语言和应用科学,以及大量辅导和业余学习。个案研究:在兰德公司进行的一项综合钻研中,由美国教育部赞助的 6 万美元赠款,Carnegie Learning 代数 I 混合课程的影响在 2007 年至 2009 年的两年内进行了严格评估。该钻研涵盖了七个州 147 所学校的 18,000 多名学生。学校被随机调配持续现有的代数课程或施行 Carnegie Learning 代数 I 打算。值得注意的是,该钻研采纳了“动向医治”剖析,这意味着学校没有失去额定的支援来促成课程施行。这项“黄金规范”钻研的后果十分显著,表明 Carnegie Learning 混合办法在施行的第二年与典型学生相比,标准化考试的学生问题简直翻了一番。均匀而言,联合教科书和软件的 Carnegie Learning 混合课程将学生从第 50 个百分位晋升到第 58 个百分位,简直是规范学习年获得的提高的两倍。这些发现强调了 Carnegie Learning 代数 I 我的项目对学生体现和学习成绩的重大踊跃影响。 ...

September 28, 2023 · 1 min · jiezi

关于机器学习:DeepMind-利用无监督学习开发-AlphaMissense预测-7100-万种基因突变

类基因组共有 31.6 亿个碱基对,无时无刻不在经验复制、转录和翻译,也随时有着出错渐变的危险。 错义渐变是基因突变中的一种常见模式,然而人类目前只察看到了其中的一小部分,可能解读的更是只有 0.1%。 精确预测错义渐变的作用,对于常见病、遗传病的钻研和防治有着重要作用。这次,DeepMind 又出手了。 作者 | 雪菜编辑 | 三羊、铁塔 人类基因组共有 31.6 亿个碱基对。这些碱基对每天会经验复制、转录、翻译,最终表白成为蛋白质,调控人类日常生理流动。 在如此宏大的工作量下,即便是精密的人体也很难做到毫无过错。稍有不慎,碱基对就可能配位谬误,导致基因突变,与日俱增甚至引发癌症。 错义渐变 (Missense Mutation) 是一种常见的基因突变模式。 因为 DNA 中碱基渐变,翻译失去的氨基酸产生了变动,最终导致整个蛋白质性能被毁坏。 图 1:错义渐变示意图。因为 DNA 中腺嘌呤核苷酸渐变为鸟嘌呤核苷酸,翻译失去的氨基酸由谷氨酰胺变为丝氨酸 目前人类察看到了 400 多万种错义渐变,但仅能将 2% 的错义渐变归类为致病渐变或是良性渐变。 精确预测错义渐变的作用可能加深人类对于常见病的了解,并针对潜在的遗传病进行预防和医治。 尽管变异效应多重剖析 (MAVEs) 能够对蛋白质的渐变进行零碎的剖析,并精确预测其临床成果,但这一办法须要大量的人力物力,难以对所有错义渐变可能进行全面的剖析。 为此,DeepMind 通过 AlphaFold 剖析了蛋白质的整体构造,并联合弱标签学习和无监督学习开发了 AlphaMissense,对错义渐变的结果进行了零碎的剖析。AlphaMissense 利用 ClinVar 数据集进行了验证,预测正确率达到 90%。 随后,AlphaMissense 对人类可能呈现的 7,100 万种错义渐变进行了预测,其中 32% 可能为致病性渐变,57% 可能为良性渐变。这些后果将极大促成分子生物学、基因组学、临床医学等学科的倒退。这一成绩已发表于「Science」。 图 2:AlphaMissense 对 7,100 万种错义渐变的预测后果(上)及人类目前察看到和确认的后果(下) 相干成绩已发表于「Science」 论文链接: https://www.science.org/doi/10.1126/science.adg7492 试验过程AlphaMissense:AlphaFold + 微调将一串氨基酸序列输出 AlphaMissense 后,它会对序列中任一氨基酸变动的致病性进行预测。 AlphaMissense 的实现和 AlphaFold 十分类似,只在架构上做了轻微的调整。 ...

September 26, 2023 · 2 min · jiezi

关于机器学习:代码生成优化微调Falcon40b

Falcon40b是以后最大的开源大语言模型之一,且采纳商业敌对的Apache 2.0许可证。这使得对于心愿将NLP产品推向市场的开发者来说,它具备相当大的吸引力。 Falcon-40b-Instruct模型基于Falcon40b模型进行微调,用于指令接管和对话工作,在Hugging Face的LLM基准测试中名落孙山,仅次于基于Meta的非开源Llama系列的模型。Falcon40b的性能远优于其余开源模型。 作为最新一波开源大语言模型,Falcon系列模型受到Llama系列启发,核心思想是应用更多数据(在本例中超过一万亿代币)更长时间(更多期间)训练较小的模型。LLM相干的教训文献表明,模型规模、训练计算和训练数据集规模应该同步减少,但该模型系列应用的计算和训练数据远远超出预期。 应用CodeAlpaca进行微调Falcon40b是一个预训练模型,但并未针对任何特定工作进行训练。它的零样本性能并不杰出,须要通过训练能力用作聊天机器人或依照指令执行工作。 当咱们心愿它依照指令执行工作时,咱们应用如Alpaca数据集的指令-响应对进行训练。 上面是来自Alpaca的一对指令-响应示例: 以下是一个形容工作的指令。请提供一个响应正确实现该申请。 ### 指令:创立一个蕴含1到10之间所有偶数的长度为5的数组。 ### 响应:arr = [2, 4, 6, 8, 10] Falcon-40b-Instruct模型曾经被训练成一个通用的指令跟踪模型,因而咱们决定不安分守己。最近,对训练大型语言模型来编写代码的趣味越来越浓,这个畛域有许多开源我的项目,特地是Starcoder、Replit3b、CodeGen和CodeGen2。因而,咱们决定尝试应用CodeAlpaca数据集对Falcon40b进行微调,使其可能依据自然语言提醒编写代码。 CodeAlpaca是一组蕴含20,000个指令-输出-代码三元组的数据集,与Alpaca数据集一样,它们是由闭源语言模型生成的。示例如下: 以下是一个形容工作的指令,与提供了更多上下文的输出配对。请提供一个响应,正确实现申请。 ### 指令:生成一段代码片段,提取给定字符串中的所有URL。 ### 输出:该字符串蕴含一些网址,如<https://www.google.com>和<https://www.facebook.com>。 ### 响应:import re string = "该字符串蕴含一些网址,如<https://www.google.com>和<https://www.facebook.com>。"urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\\\(\\\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', string)print(urls) 与通用指令跟踪工作相比,专用于代码构建训练Falcon40b在这些工作上体现更好。 微调超参数咱们应用LoRA进行微调,采纳8位量化,应用了四个NVIDIA A100 Tensor Core GPU,每个GPU有80GB的VRAM。微调破费了约4小时,在runpod.io上破费了约25欧元。 咱们应用了以下超参数: Epochs:2增加LoRA的层:全留神层(QKV)LoRA等级:8学习率:3.0e-4Batch size:128 咱们留神到将epochs减少到2有助于模型“学习”何时进行。否则,它将反复指令模板,永不进行。 后果咱们抉择了45条编码指令,用于评估模型遵循指令的能力。通过微调,模型可能依据自然语言指令生成代码,答复对于代码段的问题,以及答复个别的计算机编程问题。 例如: 通用编程问题 问题:解释Python中迭代器和生成器的区别并举例。 响应:迭代器是一种可用于遍历序列项(如列表或字符串)的对象。它提供了一种一一拜访序列中每个项的办法。生成器是一种可用于生成序列项(如列表或字符串)的函数。它提供了一种一一生成序列中每个项的办法。迭代器和生成器的次要区别在于,迭代器是一种可用于遍历序列的对象,而生成器是一种可用于生成序列的函数。依据自然语言提醒生成代码 问题:编写一个Python函数:承受一个单词列表,并返回一个字典,其中键是列表中的单词,值是列表中单词的频率。在解决方案中应用for循环、if条件和字典。响应:def word_frequency(words): frequencies = {}     for word in words:         if word in frequencies:             frequencies[word] += 1         else:             frequencies[word] = 1     return frequencies 答复对于特定代码段的问题 ...

September 25, 2023 · 1 min · jiezi

关于机器学习:活动回顾-暴雨也无法阻挡的奔赴2023-Meet-TVM-深圳站完美收官

2023 Meet TVM · 深圳站于 2023 年 9 月 16 日在腾讯大厦胜利举办,百余名参与者亲临现场,凝听讲师们的精彩分享。作者 | xixi编辑 | 三羊 本文首发于 HyperAI 超神经微信公众平台~ 由 MLC.AI 社区和 HyperAI超神经主办,Openbayes贝式计算和腾讯 AI Lab 协办的 2023 Meet TVM · 深圳站已圆满闭幕。间断一周的大雨也抵挡不住社区搭档们的激情,百余位来自高校、大厂、芯片厂商、研究院的参与者从各地赶来,退出这场属于 AI 编译器的线下团聚。 本次流动咱们邀请到了来自上海交通大学、腾讯、MachineTime、燧原科技的 5 位资深讲师,联合本身业务中的利用,分享对于 TVM & MLIR 的最佳实际。 流动内容回顾以下是流动内容简介以及现场的视频回顾。 关注微信公众号「HyperAI超神经」,后盾回复关键字「TVM 深圳」,获取嘉宾残缺 PPT。 分享主题: 基于 TVM 的 CPU 端动静形态优化 内容简介: 传统的深度学习编译器(包含 TVM)短少动静形态反对,在解决语言模型(动静序列长度)和检测模型(动静宽/高)等状况时比拟乏力。基于此现状,咱们设计实现了一套基于 TVM 的 CPU 端动静形状算子优化计划,性能超过现有的动态形态计划,且简直不须要搜寻工夫。 分享视频:【2023 Meet TVM · 深圳】朱文熙-基于 TVM 的动静形态编译优化 ...

September 25, 2023 · 2 min · jiezi

关于机器学习:超越传统学习揭秘增量学习的优势与挑战

增量学习代表了学术界的一种动静办法,促成逐渐和统一的常识异化。与向学习者提供海量信息的传统办法不同,增量学习将简单的主题合成为可治理的片段。在机器学习中,增量办法训练人工智能模型逐渐排汇新常识。这使模型可能保留并加强现有的了解,造成继续提高的基石。 什么是增量学习?增量学习是一种教育办法,通过以可治理的小增量引入新数据,多年来逐步积攒常识。增量学习不是试图立刻学习所有内容,而是将简单的主题合成为更小的块。这种办法强调距离反复、定期温习和强化以前学过的概念,这些独特加强了对主题的了解、保留和长期把握。 在增量学习中,人工智能模型逐渐加强常识,而不会遗记以前获取的信息。因而,它模拟人类的学习模式。在按程序取得数据输出或所有数据的存储不可行的状况下,这种学习至关重要。 增量学习的劣势无论您的指标是加强记忆力、无效利用资源、适应实时变动,还是只是让学习成为一个更易于治理的过程,增量学习都提供了一系列引人注目的益处: 加强记忆力:通过回顾和积攒以前学过的资料,增量学习能够进步记忆力,并有助于多年来坚固常识。高效的资源利用:增量学习模型一次须要存储的数据较少,因而有助于节俭内存。实时适应:增量学习模型具备实时适应变动的能力。例如,产品举荐零碎随着工夫的推移理解用户的偏好,并举荐会激发他们趣味的相干产品。高效学习:它加强了 ML 模型疾速学习新工作的能力,并通过将工作合成为更小的局部来进步其准确性。可继续的学习习惯:渐进式学习通过使过程不那么繁琐和更易于治理来激励可继续的学习习惯。以利用为导向:定期练习和利用概念是增量学习所固有的,能够加强实际了解和技能。增量学习的事实利用这些例子都展现了增量学习如何减少各个领域的深度和复杂性,从而进步从语言熟练程度到人工智能模型的准确性以及主动驾驶汽车的安全性的各个方面。这种动静办法展现了基于现有常识构建更智能、适应性更强的零碎的变革性影响。1、语言学习增量学习在语言习得畛域立足,这是学习者系统地建设词汇和把握简单语法的旅程。这种循序渐进的办法使学习者可能逐步提高他们的语言技能,随着工夫的推移进步他们的熟练程度。从把握根本短语到了解简单的句子构造,增量学习为全面的语言把握铺平了路线。  2、人工智能和机器学习在人工智能和机器学习的动静世界中,增量学习技术一直依据新信息的涌入来欠缺和替换模型。这些技术可确保模型随时更新最新数据,适应一直变动的模式和见解。这种灵便的办法在变动是惟一不变的畛域尤其重要,能够让人工智能零碎放弃高度精确和相关性。  3、欺诈检测零碎进入金融畛域,增量学习算法对于打击银行零碎内的欺诈流动至关重要。万事达卡利用这些算法来审查各种变量并评估欺诈交易的可能性。对于每个新的数据实例,算法都会欠缺其了解,进步检测欺诈行为和爱护金融交易的准确性。  4、主动驾驶汽车主动驾驶汽车畛域是增量学习的另一个亮点畛域。主动驾驶汽车利用积攒的常识的力量,从以前的教训中学习,更无效地驾驭四周的环境。当这些汽车行驶在路线上时,它们会收集各种状况的数据,从而加强对不同场景的了解。特斯拉的汽车从路线上收集数据来改良其机器学习模型,发明更平安、更智能的驾驶体验。  5、举荐零碎在数字畛域,增量学习塑造了咱们每天遇到的个性化举荐。从新闻文章到电影举荐,举荐零碎随着工夫的推移理解咱们的偏好,策动合乎咱们口味的内容。这种办法逐步欠缺其了解,微调举荐,以确保用户享受量身定制的、有吸引力的生产旅程。  如何在我的项目中应用增量学习?当将增量学习纳入您的我的项目时,曾经开发了多种算法来满足这种特定需要。让咱们具体探讨一些风行的选项:1.随机梯度降落 (SGD)SGD 是增量学习的广泛抉择。它应用单个样本或小批量数据更新模型参数。当模型按程序解决每个批次时,这种办法能够实现逐渐学习。从简略的线性回归到简单的深度学习模型,SGD 都有宽泛的利用。 例如,思考制作工厂的预测保护零碎。通过采纳 SGD,零碎能够自适应地训练传感器数据,并在新读数达到时微调模型参数。这种办法进步了模型预测一段时间内潜在设施故障的准确性。2.在线反对向量机 (SVM)在线SVM是针对增量学习而定制的传统 SVM 的改编版。它们应用每个新数据点更新 SVM 模型,使其实用于无奈频繁进行模型从新训练的数据流或大规模利用。 例如,构想新闻机构的实时文本分类工作。在线 SVM 能够在传入的文章达到时将其分类为各种主题,并在从新文章中学习时逐步提高其分类准确性。3.增量决策树决策树是一种机器学习算法,也能够反对增量学习。Hoeffding Tree 或 Very Fast Decision Tree (VFDT) 等算法逐渐构建决策树,应用统计办法确定最佳节点宰割。 思考一家实时预测客户散失的电信公司。该模型应用增量决策树,从每次客户交互中学习,逐步进步其辨认潜在散失者的预测能力。4.增量深度学习模型深度学习模型,特地是循环神经网络 (RNN) 和某些卷积神经网络 (CNN),能够针对增量学习进行定制。这些模型通过增量更新权重来学习新数据,使其适宜流数据或动静环境。 例如,电子商务平台能够部署增量深度学习模型来进行实时产品举荐。该模型从用户交互中学习,逐渐调整其权重,以更好地捕捉用户偏好并提供更精确的倡议。 联合增量学习算法须要认真思考我的项目的需要和算法特色。通过抉择适当的算法并理解其复杂性,您能够利用增量学习来无效加强机器学习模型。 施行增量学习算法的步骤施行增量学习算法包含设计和开发零碎,通过以可治理的小增量学习新数据来逐步提高性能。以下是如何实现此类算法的总体概述:1.数据收集和预处理首先收集相干数据并筹备进行剖析。这包含数据清理、将原始数据转换为可用格局以及提取基本特征等过程。2.模型初始化应用初始数据集启动学习模型。该数据集可能蕴含较小的代表性样本或整个可用数据的子集。3.增量更新不要从头开始从新训练模型,而是逐渐合并新数据。依据传入的信息调整模型的参数、权重或组件。4.距离反复通过定期应用旧数据从新拜访和从新训练模型来施行距离反复准则。这种做法能够强化先前的常识并升高忘记的危险。5.模型评估应用验证或测试数据集定期评估模型的性能。此评估有助于掂量模型的准确性是否失去维持或进步。6.概念漂移检测监控数据分布随工夫的概念漂移或变动。批改模型以适应这些变动,确保其继续相关性。7.正则化和忘记利用正则化技术来避免灾难性忘记,即新数据会删除以前取得的常识。8.批处理和小批处理依据算法的要求,应用批处理或小批处理来无效地解决模型并应用新数据更新模型。9.算法抉择依据特定问题类型(分类、回归、聚类)和应用程序的具体需要抉择适合的增量学习算法。10.超参数调优微调超参数以在学习新信息和保留先验常识之间获得均衡。11.可扩展性思考零碎的可扩展性,确保它可能无效地解决随着工夫的推移一直减少的数据量。12.记录和监控保护增量学习过程的具体文档,包含模型调整和更新后果。继续监控绩效指标以确保继续改良。 施行增量学习算法的挑战施行增量学习算法也面临着一系列挑战:1.灾难性忘记设想一下一个语音识别系统,它能够学习新的口音,同时遗记以前把握的方言。在适应新学习和不抹掉有价值的现有常识之间获得均衡就像走钢丝一样。2.概念漂移设想一下天气预报模型适应多年来一直变动的气象模式。适应一直变动的数据分布并在概念漂移时放弃准确性须要继续的警觉和策略。3.高效更新设想一下电子商务平台的产品举荐零碎,它能够疾速整合客户偏好,而无需耗费过多的计算资源。随着数据集的扩大确保实时、高效的更新就像治理一个动静谜题。4.内存限度思考一种人工智能驱动的医疗诊断工具,它会随着工夫的推移积攒患者数据。只管数据负载一直减少,但治理内存应用状况以避免资源耗尽对于确保统一的性能至关重要。5.数据品质设想一辆主动驾驶汽车整合了实时路线数据,无心中从不精确或误导性的信息中学习。通过适当的清理和预处理来确保传入数据的品质对于避免偏差学习至关重要。6.偏见和偏心设想一下基于新财务数据更新的信用评分模型,无心中放大了基于性别的偏见。在确保偏心的同时避免无心的偏见放大是一项继续的挑战。7.算法抉择设想一下,因为算法抉择不当,医疗诊断人工智能难以适应。抉择适合的学习算法须要理解其长处和局限性,以便做出理智的决策。8.超参数调优设想一个语言翻译模型试图学习新短语,同时放弃连贯的句子构造。微调超参数以均衡新学习和放弃连贯性相似于治理谐和的交响乐。9.评估和指标思考一个人工智能驱动的股市预测器,适应一直变动的市场动态。制订思考历史数据和新数据的评估指标须要认真思考以评估真正的停顿。10.稳定性与适应性可视化新闻文章的举荐零碎,寻求提供相熟的内容和引入新观点之间的均衡。在稳定性和适应之间找到均衡自身就是一门艺术。11.长期依赖设想一下音乐举荐算法试图捕获随工夫变动的用户偏好。解决增量更新中简单的依赖关系和相关性就像编织一个连贯的叙述。12.不足标记数据设想一下,医学成像人工智能依附标记的患者数据随着工夫的推移更新其诊断能力。确保继续提供带正文的数据可能具备挑战性,会影响模型的学习曲线。13.用户冀望思考一个健身应用程序适应用户偏好,同时冀望立刻进步性能。均衡用户冀望与增量学习过程须要治理预期。14.隐衷问题设想一个适应居民行为的智能家居零碎,可能会蕴含敏感数据。在一直变动的学习环境中解决隐衷问题并确保数据安全须要奥妙的解决。 论断增量学习通过将简单的主题合成为可治理的步骤来简化它们。它的益处,包含更好的记忆力和缩小认知负荷,使其对跨畛域的学习者有价值。尽管施行增量学习算法面临着忘记和概念转变等挑战,但能够通过布局和高效更新来解决这些挑战。 如果您有趣味深入研究学习算法和高级技术的世界,请摸索咱们的Blackbelt Plus 打算。该打算容许学习增量学习、人工智能和机器学习方面的前沿概念。拥抱继续学习的力量,让本人具备驾驭古代学习和技术一直倒退的格局的技能。立刻退出该打算,开释您终生胜利的能力。 常见问题Q1:增量学习的例子是什么?A. 语言习得。从基本词汇和语法开始,逐步增加简单构造和高级单词,随着工夫的推移扩大语言技能。Q2:增量学习有多少种类型?A:以下是增量学习的 3 种类型: – 基于实例:合并新数据实例,更新模型。 – 基于特色:增加新特色,加强模型的学习能力。 – 基于模型:更新参数,同时保留模型架构。Q3:施行增量学习的流程是怎么的?A. 流程波及数据收集、模型初始化、增量更新(应用新数据)、定期审查和概念漂移检测。Q4: 增量学习的指标是什么?A. 加强模型性能,避免遗记旧数据,适应动静环境,节省时间/资源,并通过建设常识来促成深刻了解。

September 25, 2023 · 1 min · jiezi

关于机器学习:Embeddig技术与应用-1-Embedding技术发展概述及Word2Vec

编者按:嵌入(Embedding)是机器学习中一种将高维稠密向量转换为低维浓密向量的技术。其通常用于解决自然语言、图像等高维离散数据。 嵌入可能无效地解决维度劫难问题,缩小存储和计算成本,同时进步模型的表达能力。咱们还能够通过失去的嵌入向量进行语义类似度计算、举荐零碎、分类工作等多种利用。嵌入还能够用于解决非结构化数据,如文本、图像、音频等,帮忙机器了解和解决人类的语言和其余感知信息。 IDP开启Embedding系列专栏,具体介绍Embedding的发展史、次要技术和利用。本文是《Embedding技术与利用系列》的第一篇,重点介绍Embedding技术的倒退历程,并着重解说Word2Vec的工作原理、具体实现等内容。 文章作者首先介绍了以往的编码表示办法的局限,指出它们在解决大规模语料时会产生维度劫难和计算复杂度高的问题。而后作者具体解释了Word2Vec模型的工作原理,并给出了具体的PyTorch实现代码。作者认为Word2Vec克服了传统办法的局限性,是一种优雅的大规模语料解决计划。 心愿本文能给读者带来Embeddings技术倒退脉络的系统性了解,对心愿理解和应用Word2Vec技术的读者有重要参考价值。 以下是译文,enjoy! 作者 | Vicki Boykis 编译 | 岳扬 欢送小伙伴们退出AI技术软件及技术交换群,追踪前沿热点,共探技术难题~ 01 Embedding技术发展史将内容示意为更低维的向量,使数据成为更紧凑的数字表达形式,并进行计算,这并非一种新的想法。自从人类进入信息爆炸时代以来,就始终在试图综合这些信息,以便咱们能够基于这些信息做出决策。晚期的办法有独热编码(one-hot encoding)、TF-IDF、词袋模型(bag-of-words)、LSA和LDA。 晚期的这些办法都是基于计数的办法。它们次要计算一个词绝对于其余词呈现的次数,并以此为根底生成编码。LDA和LSA实质上是一种统计办法,但仍通过启发式办法来推断数据集的属性,而非构建模型。(译者注:意思是应用一些教训法令或规定来猜想数据集的某些属性,而非应用数学模型来形容数据集的属性。这种办法可能不是最精确或最优的,但能够在不足残缺信息或数据集十分大的状况下提供一些有用的信息。与通过建设数学模型的办法相比,应用启发式办法可能更加疾速和简略,但也可能会导致一些误差或不精确。) 基于预测的办法呈现较晚,而是通过反对向量机(support vector machines)、Word2Vec、BERT和GPT系列模型来学习给定文本的属性,前文说的这些模型都应用了学习到的嵌入。 嵌入办法家族谱系图 02 晚期办法的局限性晚期基于计数的办法,在解决大规模语料库时面临以下两大问题: 2.1 呈现维度劫难随着特色数的减少,数据集会变得十分稠密。举例来说,如果一段文本语料由100万个独特的词汇组成,那么应用独热编码就会产生100万个特征向量,每个向量都会极为稠密,因为大多数句子并不会蕴含其余句子的词汇。这会带来两方面的问题: (1) 当特色数量线性减少时,进行计算会变得十分艰难。 (2) 当特色数量微小时,须要更多的数据能力精确牢靠地形容这些特色,否则模型就无奈良好表白数据,这就是所谓的“维度劫难”。 2.2 计算复杂度较高以TF-IDF为例,它须要解决语料库中的所有词汇,所以工夫复杂度随着词汇总数N和文档数量d的增长而线性增长,为O(Nd)。另外,TF-IDF会生成一个矩阵,如果有10万文档和5千个词汇,矩阵大小就为100,000 x 5,000,随着语料规模的增长,这个矩阵会变得非常难以解决。 (译者注:此处为内容总结,全文请看《What are embeddings》3.4节 Limitations of traditional approaches) 03 Word2Vec为了克服晚期文本处理办法的局限性,并跟上文本语料库规模一直增长的步调,2013年,Google的钻研人员提出了一种优雅的解决方案,名为 Word2Vec[1]。 到目前为止,咱们曾经从简略的启发式办法,如独热编码(one-hot encoding),倒退为机器学习办法(如 LSA 和 LDA),这些办法旨在学习数据集的模型特色。以前,就像最后的独热编码一样,所有的嵌入办法都将重点搁置于稠密向量。稠密向量(sparse vector)可能阐明两个单词之间存在关联,但并不能表明它们之间存在语义关系。例如,“狗追猫”和“猫追狗”在向量空间中的间隔是雷同的,只管它们是齐全不同的句子。 Word2Vec 是一个模型系列,有多种实现办法,每种办法都着眼于将整个输出数据集转换为向量示意,更重要的是,它们不仅关注单个单词的已有标签,还关注这些示意之间的关系。Word2Vec 有两种构建模型的办法——间断词袋模型(CBOW)和skipgrams模型,这两种办法都能生成密集的嵌入向量,但对问题的建模过程略有不同。无论是哪种办法,Word2Vec 模型的最终目标都是学习参数,最大限度地进步给定单词或单词组的精确预测概率[2]。 在训练skipgrams模型时,首先从初始训练语料(input corpus)中抽取一个单词,而后预测给定的一组单词围绕已抽取的单词的概率。对于"Hold fast to dreams for if dreams die, life is a broken-winged bird that cannot fly"这句话,模型解决这句话的两头步骤是学习、生成一组嵌入,这些嵌入是数据集中所有单词之间的间隔,并以“fast”一词作为输出,预测整个短语中其余单词四周的概率,并给出了这些单词在此处的概率值。 ...

September 25, 2023 · 2 min · jiezi

关于机器学习:粉红杀手通缉令AI-阅读乳腺-X-光片的能力已与医生相当

据世界卫生组织统计,2020 年寰球新发乳腺癌病例 230 万例,在所有癌症中居首位,超过肺癌成为第一大癌。然而,如果可能晚期发现并加以及时医治,在肿瘤转移之前杀死癌细胞,乳腺癌的致死率就能够大大降低。目前乳腺癌初筛的罕用伎俩是乳腺 X 光,随后医生通过剖析复核 X 光片对乳腺衰弱状况进行判断。但复核过程会耗费大量工夫,影响其余患者的就诊。为此,英国诺丁汉大学的研究者比照了商用 AI 与医生浏览乳腺 X 光片的能力,为 AI 在临床医疗的利用提供了新思路。作者 | 雪菜编辑 | 三羊、铁塔本文首发于 HyperAI 超神经微信公众平台~ 据美国癌症协会统计,2022 年美国女性新发癌症病例数约 93 万例,其中新增乳腺癌患者约 29 万人,占比 31%。同时,癌症死亡病例中乳腺癌患者占比 15%,仅次于肺癌。 图 1:美国 2022 年新发癌症病例数(上)及癌症死亡数(下) 在中国,乳腺癌是 21 世纪女性患者中占比最高的癌症,且每年新增患者数量在一直减少。 图 2:2000-2016 年我国女性新增癌症病例数,灰色为乳腺癌病例数 乳腺癌是异样乳腺细胞成长失控并造成肿瘤引起的疾病。如果不及时干预,肿瘤会转移扩散,最终危及性命。但如果能在癌症初期发现部分肿瘤,并开始医治,癌症的五年存活率可达 99%。 目前,医院个别通过乳腺 X 光进行乳腺癌初筛。然而,在初筛过程中可能会呈现假阳性,使得没有癌症的患者进行不必要的检测。还会呈现脱漏,延误患者最佳医治工夫。 因而,许多欧洲国家会对乳腺 X 光片进行复查,尽可能排除掉假阳性的病例。这一办法卓有成效,在升高假阳性的同时,还将癌症的检测率进步了 6%-15%。 然而,对 X 光片进行浏览评估须要消耗相当的工夫。 在医患比偏低的地区,X 光片的复查不仅占用了医生的工夫,而且会影响到其余患者的晚期筛查。 AI 的利用局部缓解了医生的工作压力,然而将生命衰弱交给 AI 去评估仿佛有些不太稳当。 对此,英国诺丁汉大学的 Yan Chen 传授示意,「将 AI 利用于临床医疗面临着很大的压力,但咱们须要将这件事做好,以爱护女性的衰弱」。 为此,Yan Chen 团队比照了商用 AI Lunit 与医生浏览乳腺 X 光片的准确率。结果显示,Lunit 剖析乳腺 X 光片的能力与人类医师相当。 这一成绩已发表于「Radiology」。 ...

September 22, 2023 · 2 min · jiezi

关于机器学习:学会用AI释放创意解放双手工作再多也不慌

随着人工智能(AI)技术日渐成熟,AI在软件开发畛域的利用也更加宽泛。以前咱们谈到AI时,经常会想到简单的算法和深奥的实践,但现在,AI正在悄悄扭转着程序员的日常工作形式。从AI代码生成模型到AI编程助手利用,它们不仅仅是一小部分,更是将来程序开发的新趋势。过来,编写代码始终是一项枯燥乏味、须要长时间投入的工作。尤其是在程序员35岁危机和裁员危险日益严厉的状况下,对于年过35的程序员而言,面临更大的挑战。然而,随着人工智能的染指,这种现状产生了扭转,为程序员们注入了新的生机和创意,同时为进步工作效率开启了新的大门。 AI编程助手利用实战:进步工作效率的利器 代码生成模型AI代码生成模型基于人工智能算法,可能依据简要的输出生成合乎需要的代码框架。这种智能化的代码生成形式极大地缩短了开发工夫,使程序员可能更专一于代码的逻辑和性能。让咱们以一个简略的Python代码生成模型为例: import tensorflow as tf# 构建一个简略的神经网络def build_neural_network(input_dim, output_dim): model = tf.keras.models.Sequential([ tf.keras.layers.Dense(128, activation='relu', input_shape=(input_dim,)), tf.keras.layers.Dense(output_dim, activation='softmax')]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) return model# 应用AI代码生成模型生成神经网络模型input_dim = 784 # 输出维度,以MNIST数据集为例output_dim = 10 # 输入维度,示意10个数字的分类generated_model = build_neural_network(input_dim, output_dim)generated_model.summary()在这个案例中,AI代码生成模型依据输出的维度和输入维度,主动生成了一个简略的神经网络模型。 2.AI函数生成器 FuncGPT(慧函数)反对所有类型函数创立。通过自然语言形容Java函数需要,实时生成高质量、高可读性的Java函数代码。生成代码可间接复制到IDEA,或一键导入Java全自动开发工具函数库。咱们以一个Java函数实现BigDecimal的表达式运算需要为例,创立“bigDecimal表达式计算”这样一个形容性能的自然语言语句,点击生成代码,仅用23秒,模型就主动生成了与之对应的残缺函数代码,程序员可间接应用。 else if (ch == '(') { operatorStack.push(ch); } else if (ch == ')') { while (!operatorStack.isEmpty() && operatorStack.peek() != '(') { BigDecimal result = performOperation(numberStack, operatorStack); numberStack.push(result); } if (!operatorStack.isEmpty() && operatorStack.peek() == '(') { operatorStack.pop(); }在这个案例中,FuncGPT(慧函数)更加灵便和可扩大,应用栈的数据结构来解决表达式中的操作符和数字,通过读取每一个字符,并依据状况进行相应的解决。收费应用链接:https://suo.im/76zkC ...

September 22, 2023 · 1 min · jiezi

关于机器学习:从思想实验中学习自监督-AI-模型向科学家看齐

年初 ChatGPT 爆火,美国《时代周刊》发文揭发其背地的「血汗工厂」,给「AIGC 领头羊」夺目的光环蒙上了一层微小暗影。 据报道,为训练 ChatGPT 辨认无害内容,一群来自肯尼亚、乌干达和印度的外包员工负责给数据库手动标注,他们每天破费 9 小时甄别各种攻击性词汇,每小时至少标注 2 万个单词,播种是 1.32-2 美元的时薪以及长久的心理创伤。 报道一出,舆论哗然,这堪称人工智能时代最不智能的操作。抛开劳工问题,此事件也折射出监督学习一大痛点: 为 AI 模型尤其是大模型筹备大规模、事后标注的训练数据,是件相当耗力的事。 作者 | 铁塔 编辑 | 三羊 本文首发于 HyperAI 超神经微信公众平台~ 在全息显微图重建 (Holography microscopic  reconstruction) 畛域,这一问题也给科研工作带来了旷日持久的折磨。 深度学习在计算成像和显微成像方面的现有利用,次要依赖于监督学习,须要大规模、多样化和事后标注的训练数据,但此类训练图像数据集的获取和筹备通常很费劲且老本昂扬,而且这些办法往往对新样本类型的泛化无限。 往年 8 月 7 日,加州大学洛杉矶分校的钻研团队在 「Nature Machine Intelligence」 杂志报告了一个名为 GedankenNet 的自监督模型,其突出特质是无需实在数据或试验对象投喂,可间接从思维试验 (Thought experiment) 和物理法则中学习,且具备优异的内部泛化性 (External generalization)。 论文链接: https://www.nature.com/articles/s42256-023-00704-7 GedankenNet 源于德语 Gedankenexperiment,意为「思维试验」,明明白白通知你: 我,GedankenNet,和里面那些从实在数据和试验对象中学习的 AI 模型不一样,我的学习对象,是爱因斯坦等科学家们都在用的思维试验! 该模型无望革除深度学习在全息显微图重建畛域的弊病,为解决全息术、显微镜和计算成像中的逆问题发明出新机会。 全息显微图重建先来简略理解一下 GedankenNet 的应用领域——全息显微图重建。 数字全息显微成像 (Digital holographic microscopy) 是一种宽泛用于生物医学和物理迷信及工程的无标签成像技术,与传统的二维显微成像相比,全息显微图提供了一种更全面、非破坏性、高分辨率的显微察看和分析方法,它应用光学干涉技术从采集的全息图数据中复原原始物体的三维状态,可帮忙科学家和钻研人员更好地了解和钻研微观世界。 如何进行显微全息图重建呢? 传统办法次要分为两类: ...

September 21, 2023 · 2 min · jiezi

关于机器学习:MCEN90008-Matlab分析

MCEN90008 Fluid Dynamics 2023PART I OF ASSIGNMENT FOR POTENTIAL FLOW 1. Instructions:Assignment to be handed in by 23:59 on Sunday 17th September 2023.This assignment should be done in groups of 2 students. Both studentsin the group will get the same mark for this assignment.Ifyou chooseto do the assignment alone, no concession will be given. Your assignmentwill be marked the same as an assignment done by two students.Please choose your group partner carefully.Only hand in one assignment per group.You can use any programming language to complete this assignment.Should you decide to write your computer program in MATLAB, youare not allowed to use the streamline, odexx or similar functions in MATLAB i.e. you need to write the program to solve the ordinarydifferentialequations yourself and not simply use the functions in MATLAB. Also donot merely use the contour function of to visualise streamlines. Theaim of this assignment is for you to produce a set of tools to enable youcompute the coordinates of pathlines. The same rules apply if you useother languages.• Please submit your assignment as aa zipped package containing– Copies of all computer programs (appended as .m files if using Matlab).– Written documentation with computer generated graphs and sketches.This documentation must contain all discussions and all the exercisesthat you were asked to do in the main part of thisassignment.• Marks will be deducted for incorrect or absent axis labels.• Unless stated otherwise, please use equal scaling along each axis(this isachieved by setting daspect([1 1 1]) In Matlab).For the first part of this assignment, you will write codes toaccurately plot pathlines from given startingpositions. For steady flows, pathlines are the same as streamlines. Make sure you get this question right.For the later parts of this assignment you will build on the computer program which you have writtenhere to study much more complex flows. ...

September 19, 2023 · 5 min · jiezi

关于机器学习:炼丹侠如何用GPU服务器实现ResNet50训练

ResNet-50是一种深度卷积神经网络,由Microsoft Research提出,用于解决深层神经网络中的梯度隐没和信息流动问题。它是ResNet系列中的一员,是绝对较小的一种架构。ResNet-50在2015年的ImageNet Large Scale Visual Recognition Challenge中取得了第一名。 ResNet-50的次要翻新点是引入了“残差块”。传统的深层神经网络越深,梯度隐没和信息传递艰难会变得更重大,导致训练艰难。残差块通过引入跨层的“残差连贯”来解决这个问题。在传统的卷积层前面,残差块通过将输出间接加到输入中,从而容许网络在必要时跳过某些层,使信息得以更轻松地传递。这种残差连贯容许训练更深、更简单的网络,而不会呈现梯度隐没问题。 ResNet-50的架构蕴含50个卷积层,次要分为多个残差块。每个残差块由一系列卷积层、批归一化层和激活函数(通常是ReLU)组成。架构中还包含了全局均匀池化层和一个全连贯层用于分类工作。 ResNet-50在计算机视觉畛域被宽泛用于图像分类、指标检测、图像宰割等工作,因为其弱小的性能和能力。它的胜利引发了许多后续网络架构的启发,成为了深度学习畛域的重要里程碑之一。 ResNet-50在泛滥计算机视觉工作中都表现出色,特地实用于须要解决简单特色和大规模数据集的场景。其深度架构和独特的残差连贯设计使得它在图像分类、指标检测、图像宰割等工作中体现优越。在图像分类工作中,ResNet-50可能高效地辨认物体和场景,在指标检测工作中可能精确地定位和辨认指标物体,而在图像宰割工作中,它可能将图像宰割为不同的区域并辨认每个区域的对象或特色。此外,ResNet-50还在特征提取工作中有着杰出体现,将图像转化为高级语义特色,可用于图像生成和迁徙学习。尤其对于大规模数据集,其深度和残差连贯使得其可能更好地泛化和适应数据的复杂性,从而在大规模数据训练集上展现出卓越性能。 本次采纳炼丹侠平台的A100服务器对ResNet-50模型进行训练,设置了应用A100训练和应用CPU训练两种形式,采纳的数据集为公开的cifar10数据集,残缺代码如下: GPU版本 import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionimport torchvision.transforms as transforms# 设置随机种子以便复现性torch.manual_seed(42)# 查看GPU是否可用,如果可用则应用device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")# 超参数batch_size = 64learning_rate = 0.001num_epochs = 10# 数据预处理transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])# 下载MNIST数据集并创立数据加载器train_dataset = torchvision.datasets.MNIST(root='./data', train=True, transform=transform, download=True)train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True)# 定义简略的ResNet-50模型(仅作示例,实际上ResNet-50不适用于MNIST)class ResNet50(nn.Module): def __init__(self): super(ResNet50, self).__init__() self.model = torchvision.models.resnet50(pretrained=False) self.model.fc = nn.Linear(2048, 10) # 批改全连贯层输入类别数为10(MNIST有10个类别) def forward(self, x): return self.model(x)# 实例化模型并挪动到GPUmodel = ResNet50().to(device)# 定义损失函数和优化器criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(model.parameters(), lr=learning_rate)# 训练模型for epoch in range(num_epochs): for i, (images, labels) in enumerate(train_loader): images, labels = images.to(device), labels.to(device) # 前向流传 outputs = model(images) loss = criterion(outputs, labels) # 反向流传和优化 optimizer.zero_grad() loss.backward() optimizer.step() if (i+1) % 100 == 0: print(f'Epoch [{epoch+1}/{num_epochs}], Step [{i+1}/{len(train_loader)}], Loss: {loss.item():.4f}')print('Training finished.')# 保留模型torch.save(model.state_dict(), 'resnet50_mnist.pth')CPU版本 ...

September 18, 2023 · 2 min · jiezi

关于机器学习:在机器学习中使用-SHAP-值实现模型可解释性

举荐:应用NSDT场景编辑器助你疾速搭建可二次编辑的3D利用场景机器学习可解释性机器学习可解释性是指用于解释和了解机器学习模型如何进行预测的技术。随着模型变得越来越简单,解释它们的外在逻辑并深刻理解它们的行为变得越来越重要。 这很重要,因为机器学习模型通常用于做出具备事实世界结果的决策,例如医疗保健、金融和刑事司法。如果没有可解释性,就很难晓得机器学习模型是否做出了正确的决策,或者它是否有偏见。 在机器学习可解释性方面,须要思考各种技术。一种风行的办法是确定特色重要性分数,该分数揭示了对模型预测影响最大的特色。SKlearn 模型默认提供特色重要性分数,但您也能够利用 SHAP、Lime 和 Yellowbrick 等工具来更好地可视化和了解机器学习后果。 本教程将介绍 SHAP 值以及如何应用 SHAP Python 包解释机器学习后果。 什么是 SHAP 值?SHAP 值基于博弈论中的 Shapley 值。在博弈论中,Shapley值有助于确定合作博弈中的每个玩家对总支出的奉献。 对于机器学习模型,每个特色都被视为一个“玩家”。因素的 Shapley 值示意该因素在所有可能的特色组合中的奉献的均匀量级。 具体而言,SHAP 值是通过比拟存在和不存在特定特色的模型预测来计算的。这是针对数据集中的每个因素和每个样本以迭代形式实现的。 通过为每个特色调配每个预测的重要性值,SHAP 值提供了模型行为的本地、统一的解释。它们揭示了哪些特色对特定预测的影响最大,无论是侧面的还是负面的。这对于了解简单机器学习模型(如深度神经网络)背地的推理很有价值。 SHAP 值入门在本节中,咱们将应用 Kaggle 的挪动价格分类数据集来构建和剖析多分类模型。咱们将依据性能(例如RAM,尺寸等)对手机价格进行分类。指标变量为 price_range,值为 0(低成本)、1(中等老本)、2(高老本)和 3(十分高的老本)。 留神:带有输入的代码源可在 Deepnote 工作区中找到。 装置 SHAP应用pip或conda命令在零碎上装置shap非常简单。 pip install shap 或 conda install -c conda-forge shap 加载数据数据集洁净且组织良好,应用标签编码器将类别转换为数字。 import pandas as pdmobile = pd.read_csv("train.csv")mobile.head() 筹备数据首先,咱们将确定因变量和自变量,而后将它们拆分为独自的训练集和测试集。 from sklearn.model_selection import train_test_splitX = mobile.drop('price_range', axis=1)y = mobile.pop('price_range')# Train and test splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)训练和评估模型之后,咱们将应用训练集训练咱们的随机森林分类器模型,并在测试集上评估其性能。咱们取得了 87% 的准确率,这是相当不错的,咱们的模型总体上是均衡的。 ...

September 7, 2023 · 1 min · jiezi

关于机器学习:酷克数据推出AI开发工具箱HashML-加速企业级AI应用落地投产

近日,业界当先的国产企业级云数仓厂商酷克数据公布了下一代In-Database高级剖析和数据迷信工具箱HashML,在业内率先实现为企业提供随数仓部署一步到位、开箱即用的AI能力。 在数字经济时代,描述性剖析曾经十分成熟并被企业宽泛驳回。然而,受限于人才缺口和技术门槛,更高价值的预测性剖析和决策性剖析,目前遍及度依然绝对较低。为了应答日益强烈的市场竞争,企业IT部门迫切需要简略易用的高级剖析工具产品来实现对业务可继续衰弱倒退的无效撑持。 图1:数据分析的不同层级数据仓库作为企业数据存储、加工和剖析的外围场合,蕴藏着规模宏大的数据资产。然而,通用模型的成果往往只能达到差强人意的“及格线”。只有通过AI算法与利用场景及企业自有数据严密协同,能力充沛开释数据后劲,达到驱动业务衰弱倒退的“优良线”。以HashData为代表的古代企业数据仓库,为AI模型的训练、部署和推理提供了最佳的数据撑持平台。 为了升高高级剖析和AI技术的利用门槛,酷克数据基于HashData打造了下一代In-Database高级剖析和数据迷信工具箱HashML。 HashML提供了从数据查询处理、高级剖析到机器学习、深度学习的一站式多层次数据分析和AI能力。针对近期市场高度关注的大语言模型,HashML也提供了从高质量数据挖掘、模型微调到模型部署和推理的全流程反对。同时,基于HashData内置的分布式并行向量数据存储、索引及检索性能,HashML提供了向量知识库的构建和检索能力,使得常识加强的大语言模型利用开发变得更加简略。 HashML继承了HashData的云原生劣势,从模型训练到模型部署都能够做到按需弹性伸缩。同时,HashML也提供了Python和SQL两种语言反对,无论是数据迷信社区的Python用户,还是数据库社区的SQL用户,都能够低门槛地上手应用。 图2:HashML次要性能概览HashML领有以下三大产品特色:简略易用:可随HashData数据仓库一起装置部署,做到开箱即用,同时所有模块API的设计,都力求标准化,与数据迷信社区风行的第三方库保持一致,最大水平保障易用性。 性能卓越:依据工作的复杂度确定并行处理的并发度,尤其对于较为简单的深度模型或大语言模型,能够利用多机多卡实现高效的训练和微调,保障作业时效性。 算法丰盛:从传统的统计机器学习算法到常见的深度神经网络,和最新的预训练大模型,都能提供良好的反对,同时也针对常识加强的大语言模型利用,提供了向量知识库,可能高效反对海量语义向量数据的存储和检索。 简略易用:标准化接口,低代码开发简略易用是咱们设计HashML时的首要指标,力求帮忙企业无门槛应用各种经典和最前沿的AI算法和模型能力,低成本解决理论业务问题。 为了实现这个指标,HashML对编程接口做了高度形象和标准化。客户只需编写大量代码就能够实现从数据加载到数据处理、模型训练、模型部署和推理预测的全流程工作。 例如,针对模型的训练和微调,HashML形象了对立的fit接口。不论是机器学习模型、深度学习模型还是大语言模型,都能够调用该接口实现模型训练或微调。以下为XGBoost模型训练代码示例: rom hashml.models import XGBoostxgb = XGBoost(dbname='testdb')xgb.fit(train_tblname='calhouse_train', valid_tblname='calhouse_val', train_config={...})LLaMA2模型微调代码示例:  from hashml.llm import Lora4Llama2lora = Lora4Llama2(base_model='Llama-2-7b-chat-hf')lora.fit(train_tblname='nl2sql_train', valid_tblname='nl2sql_val', train_config={...})为了不便SQL开发者应用AI能力,HashML还提供了SQL编程语言接口。下图显示了如何通过执行SQL语句实现XGBoost模型的训练。HashML SQL接口代码示例如下: SELECT hashml.xgboost_train( 'calhouse_train', 'calhouse_val', '{''objective'':''reg:squarederror'', ''y'':''target'', ''num_workers'':4}' ); 性能卓越:多机多卡,弹性伸缩基于HashData弱小的集群资源管理能力,HashML能够依据算法复杂度、数据量大小、拜访负载等因素按需分配所需计算资源,为模型训练、部署和推理提供灵便的计算环境。 分布式并行数据处理HashML定义了数据模块,能够帮忙开发者高效地实现数据读写、数据分析、数据处理等各种性能。这些性能对于开发机器学习、深度学习模型至关重要,能够高效快捷地实现数据荡涤、特征提取、特色变换、样本生成等一系列工作。基于封装良好的编程接口,用户只须要关注数据处理逻辑的实现,仅需大量的代码开发,计算过程就能够由HashData计算引擎以分布式并行处理的形式高效实现。分布式并行模型训练HashML提供了分布式并行模型训练能力,能够按需将模型训练任务分配给多个Worker执行,同时能够为每个Worker指定所需计算资源(包含CPU核数和GPU卡数)。对于大多数常见的训练任务,数据并行就足以高效实现模型训练。对于参数规模宏大的大语言模型,咱们在数据并行的根底上,利用DeepSpeed和Accelerate实现模型并行。另外,得益于HashData对计算资源的对立治理,用户无需费神训练作业具体是在哪些机器上执行,运维工作大幅简化。弹性可伸缩服务部署HashML提供了弹性可伸缩的模型部署和在线推理性能,旨在简化模型的部署并依据服务负载动静调整模型实例的数量。除了反对单个模型的弹性部署,HashML还反对多个模型的组合部署,这对于须要调用多个模型实现一个业务申请的场景十分有用。用户能够在服务端实现简单业务逻辑的开发,客户端只须要与服务端进行一次交互就能取得最终的后果,不仅大幅简化了业务开发,同时进步了端到端服务的时效性。算法丰盛机器:学习深度学习全笼罩,前沿算法疾速追踪HashML的另一特色就是算法品种丰盛,从经典的统计机器学习算法,到出名的深度学习算法,都提供了很好的反对。同时,通过亲密追踪技术倒退动静并依据市场需求,HashML也会及时引入前沿算法。例如,针对以后十分热门的大语言模型,HashML通过交融业界支流的开源大语言模型,提供了一套残缺的大语言模型利用开发框架,能够低成本、疾速地实现从高质量数据挖掘、模型微调到智能利用开发的全流程工作。 机器学习与深度学习为了满足各种利用场景,HashML内置了对经典机器学习算法的反对,如Logistic Regression、Random Forest、SVM、XGBoost、LightGBM等,还通过反对支流的深度学习框架(如PyTorch),可能反对各种深度学习算法。另外,HashML也容许用户依据须要定制开发新算法。通过对算法开发框架精心封装,使得用户在充沛了解算法原理的根底上,只需关注网络结构的定义和实现,用大量代码就能实现新算法的开发和引入。新算法开发实现后,能够主动具备HashML所提供的分布式并行训练和推理能力。以下为自定义神经网络代码示例:rom hashml.models.torch_base import TorchBaseModelclass _MLPNetwork(nn.Module): def __init__(self, input_size: int, hidden_config: List[int], output_size: int, use_bn: bool = False, use_dropout: bool = False ) -> None: super(_MLPNetwork, self).__init__() self._nn = nn.Sequential(*layers) def forward(self, x: torch.Tensor) -> torch.Tensor: return self._nn(x)class MLP(TorchBaseModel): def __init__(self, input_size: int, hidden_config: List[int], output_size: int, use_bn: bool = False, use_dropout: bool = False, **kwargs) -> None: self.input_size = input_size super(MLP, self).__init__(**kwargs) def _build_network(self) -> torch.nn.Module: return _MLPNetwork(self.input_size, ...) if "__main__" == __name__: mlp = MLP(input_size=784, hidden_config=[128], output_size=10, dbname='testdb') mlp.fit(train_tblname='fashionmnist_train', modelname='mlp_0406_1', valid_tblname='fashionmnist_test')大语言模型ChatGPT的问世使得大语言模型成为了以后最受关注的钻研热点。大语言模型技术的产生与倒退不仅重塑了人工智能倒退的技术路线,还在很大水平上扭转了AI技术在企业的利用范式。HashML适应技术趋势,提供了对大语言模型的反对,包含模型微调以及常识加强的大语言模型利用开发。HashML对以后业界支流的开源大语言模型都提供了反对,包含ChatGLM、Baichuan、LLaMA-2、Qwen等。基于HashML,能够十分不便地实现百亿级参数大语言模型的私有化部署,并在客户公有环境实现模型微调和智能利用开发。 ...

September 7, 2023 · 1 min · jiezi

关于机器学习:重磅-AIFSMLOps两大AI基核技术前沿洞察报告出炉

近日,中国国内服务贸易交易会(以下简称“服贸会”)在京隆重举办,在服贸会“2023中国AIGC翻新倒退论坛”和“2023中国金融科技论坛”两大论坛的成绩公布环节,九章云极DataCanvas公司与IDC重磅公布「AIFS人工智能根底软件」和「MLOps机器学习工程引擎」两大技术畛域钻研报告,洞察智能时代两大AI核心技术最新趋势,解析行业数智化实际前沿案例。 01人工智能根底软件倒退报告——筑基智能经济底座,赋能产业利用实际 大模型技术的爆发式倒退为以机器学习、深度学习技术为代表的人工智能带来新的技术浪潮和翻新反动,人工智能根底软件这一占据外围根底位置的AI根底“软”设施再度被市场聚焦。此次公布的《人工智能根底软件倒退报告——筑基智能经济底座,赋能产业利用实际》(以下简称《人工智能根底软件倒退报告》),以行业利用为最终目标,输入AI根底软件的产业倒退现状,硬件计算、算法生态、全周期开发、云原生AI等关键技术趋势,寰球AI根底软件优良厂商剖析,以及金融、制作、政务、交通行业经典案例解读等前瞻内容。 《人工智能根底软件倒退报告》干货速递: “根底应用服务仍放弃快速增长,开发平台领有较大市场空间。2022年IDC钻研显示,机器学习开发平台市场出现头部厂商规模化效应。将来随着企业数字化转型的深刻以及人工智能技术在交融利用广度和深度的降级,为企业服务提供全周期全流程服务的开发平台将会领有更大的增长后劲。” ——《人工智能根底软件倒退报告》 IDC提出人工智能根底软件五大关键技术趋势 ● 硬件异构和减速计算夯实底层算力撑持,推动产业疾速降级分析业务场景需要,交融先进算法构造 ● 凋谢软件算法生态AI根底软件作为智能经济底座,凋谢兼容的生态成为必然兼收并蓄,自主翻新是晋升软件品牌价值的要害 ● 全周期敌对的开发流程保障式全周期开发服务,增益式敌对型业务优化 ● 数据模型平安可解释可解释的内核是数据的可靠性与关联性联邦学习、差分隐衷、同态加密、硬件加密为次要形式● 云原生AI重塑业务价值连贯AI利用和IaaS的桥梁,减速AI工程化落地云原生AI平台能力架构 人工智能根底软件代表厂商当先实际案例 九章云极DataCanvas以自主研发的标准化AI基础架构软件为基石,推动AI技术从研发到生产化过程中各个环节自动化,建设以“凋谢、主动、云原生”为外围的智能数据迷信产品体系,为用户提供灵便、自主、牢靠的高性能高协同工具,减速企业数智化转型。 九章云极DataCanvas AI根底软件行业经典案例 围绕“凋谢、主动、云原生”的产品理念,九章云极DataCanvas以后产品体系已笼罩AI根底软件产品体系(AIFS)、数据领航员产品体系(DataPilot),并在下层打造通识大模型和行业/畛域模型,以更全面、更麻利的服务能力反对多行业AI解决方案落地。《人工智能根底软件倒退报告》通过金融、制作、政务、交通四大行业的6个经典业务场景实际案例,全面解析九章云极DataCanvas AI根底软件的利用能力。 AIFS将来趋势及倡议 IDC在报告中指出,AI根底软件为企业翻新和社会提高提供外围驱动力。人工智能产业在经验多轮热点算法技术利用落地后,面临产业规模化、技术交融化、开发麻利化、老本可控化等问题,AI根底软件依靠本身产品劣势和上下游及行业交融特色,可无效解决上述问题。 AI根底软件ACES四方能力 放眼将来,AI根底软件厂商应聚焦打造“ACES”四方能力,即能力翻新(Ability Innovation)、企业转型(Company Transformation)、生态构筑(Ecology Construction)、社会变革(Society Transformation),从技术、产品、生态、利用、策略、产业链等方向进行继续迭代翻新,助力实现“智能产业和美好生活”的社会愿景。 02机器学习工程引擎MLOps倒退报告——破壁全赛道,落地工程化 人工智能进入工程化和规模化利用落地的黄金阶段, MLOps机器学习工程引擎将施展外围加速器作用,是驱动企业走向将来智能的要害。《机器学习工程引擎MLOps倒退报告——破壁全赛道,落地工程化》(以下简称《机器学习工程引擎MLOps倒退报告》),通过联合前瞻的行业瞻望、前沿的AI技术创新和当先的MLOps多行业利用实际,全方位展现人工智能技术规模化落地的时机、挑战,MLOps工程引擎的四大核心技术劣势,以及九章云极DataCanvas在多个行业实现的MLOps “翻新链-价值链-产业链”三链协同翻新利用实际。《 机器学习工程引擎MLOps倒退报告》干货速递: “IDC预测,MLOps将迎来全面采纳,到2024年60%的中国企业将通过MLOps/ModelOps来运作其ML工作流程,并通过AIOps性能将AI注入IT基础设施经营过程。MLOps工程引擎施展承前启后的关键作用,与上下游产品造成耦合榫卯构造。” ——《机器学习工程引擎MLOps倒退报告》 MLOps工程引擎八大外围因素、CASA四大能力IDC定义下,MLOps平台整体性能架构包含八大外围因素,即顶层设计、数据筹备、模型开发、训练测试、部署运维、流程治理、平安保障、软硬协同。笼罩业务模型全生命周期开发治理的同时, MLOps平台还从低开发上手难度、简创立翻新步骤、少训练经营老本、易协同治理流程、高决策监管效率的指标进行继续优化。 MLOps平台核心技术能力 IDC还提炼出MLOps工程引擎四大核心技术能力,别离是:高水平全场景算法库、全栈式AutoML自动化机器学习、数据模型平安可解释、云原生技术撑持。九章云极DataCanvas的AIFS人工智能根底软件和DataPilot数据领航员产品体系全线产品均以云原生根底构建,自主研发的白盒Alaya元识大模型矩阵、BAP面向业务主动建模平台、YLearn因果学习软件等独立产品更匹配各项突出的核心技术能力。 九章云极DataCanvas行业利用赋能:“翻新链-价值链-产业链”三链协同 九章云极DataCanvas以机器学习工程引擎为外围打造的多行业解决方案,从翻新链、价值链、产业链三方面推动智能利用工程化落地。九章云极DataCanvas “翻新链-价值链-产业链”三链协同 《机器学习工程引擎MLOps倒退报告》从三链维度登程,甄选九章云极DataCanvas在金融、制作、航空等行业的六个企业级MLOps实际案例,验证MLOps在减速企业数值化降级方面的弱小能力。 MLOps将来趋势及倡议 IDC指出,机器学习工程引擎MLOps是驱动企业走向将来智能的要害,将从“平台化能力、高水平技术、全自动监管”三方面来推动生产的疾速迭代。面向未来,企业将从技术能力翻新、产品利用摸索以及生态单干布局三方面继续晋升服务水平,继续夯实工程引擎能力。 关注九章云极DataCanvas公司官网微信公众号,后盾回复“AIFS”和“MLOps”即可获取对应报告全文!

September 6, 2023 · 1 min · jiezi

关于机器学习:九章云极DataCanvas公司入选Gartner报告两大重点领域代表供应商

近日,国内权威IT钻研咨询机构Gartner公布了《Hype Cycle for Data, Analytics and AI in China,2023》报告(以下简称“报告”)。九章云极DataCanvas公司凭借雄厚的AI技术实力和创新能力,入选 “决策智能、因果AI”畛域代表供应商。 Hype Cycle(技术成熟度曲线)是Gartner为企业提供的评估各畛域技术成熟度及市场发展趋势的权威体系,在寰球范畴内具备宽泛影响。本次Hype Cycle聚焦中国科技行业,深度分析了包含决策智能、因果AI、生成式人工智能等24项“数据、剖析和人工智能”相干技术的发展趋势。 「决策智能、因果AI」两大新兴畛域标杆软件提供商 报告将“数据、剖析和人工智能”生态系统中的各项技术,划分为技术萌芽期、冀望收缩期、泡沫破裂低谷期、稳步俯冲复苏期和生产成熟期五个阶段,形象地展现了该项技术以后的成熟度和将来趋势。其中九章云极DataCanvas公司作为代表厂商入选的决策智能和因果AI两大新兴畛域正处于技术萌芽期,将来倒退不可限量。 决策智能(Decision Intelligence) 九章云极DataCanvas公司入选Hype Cycle决策智能畛域代表供应商图片起源:Gartner Gartner提到,“以后,随着人工智能技术在决策中的利用日益宽泛,主动决策和加强智能受到热议,这一趋势正在将决策智能推向冀望收缩期。” 九章云极DataCanvas公司通过行业当先的人工智能利用构建基础设施平台——AIFS(AI Foundation Software)人工智能根底软件、基于自研大模型的新一代数据架构工具产品的DataPilot数据领航员两大产品体系,为用户提供决策智能的根底软件底座。其中,AIFS包含DataCanvas Alaya九章元识大模型、DataCanvas APS机器学习平台、开源DAT主动机器学习软件等一系列软件工具,实现全流程自动化的开发、训练和部署任何规模的模型。公司自主研发的DataPilot帮忙用户实现数据集成、治理、建模、计算、查问、剖析、机器学习建模全链路的智能化与自动化,使政府和企业在业务各个层面以更少的老本实现更高效、更精确的决策。 由AIFS和DataPilot 组成的AI根底软件,满足用户对于自动化、智能化实时决策的需要,继续、疾速地晋升政府和企业业务价值,帮忙用户将“大+小”模型在智能金融、智能通信、智能制作、智能交通等多行业的业务场景中实现宽泛部署利用。 因果AI(Causal AI) 九章云极DataCanvas公司入选Hype Cycle因果AI畛域代表供应商图片起源:Gartner 因果AI作为人工智能方向最新倒退的新兴畛域,对机器学习泛化能力差、不足解释性、对决策工作的反对能力有余等问题进行补充,辨认并使用因果关系,让AI零碎朝着更无效更自主决策方向后退。 图灵奖得主Yoshua Bengio学生曾提到,“因果关系对于机器学习的下一步停顿十分重要”。近年来九章云极DataCanvas公司在因果AI畛域积攒了丰盛的实践实际,并开源公布了YLearn因果学习软件。作为寰球首款可能端到端地解决“因果发现、因果量辨认、因果效应预计、反事实推断和策略学习”五大因果学习工作的软件工具,YLearn因果学习软件冲破了机器学习基于相干关系建模的局限性,使人工智能更加自主、可解释、持重和高效。 「实际+策略」当先引领AI技术创新将来趋势 将来2到5年值得特地关注的翻新技术包含公民数据迷信、决策智能、生成式人工智能和实时数据管理。尽早应用这些翻新技术将带来显著的竞争劣势,缓解了因不足业务技术人员而产生的问题,以及与获取业务价值相干的挑战。 ——《Hype Cycle for Data, Analytics and AI in China,2023》 多年来,九章云极DataCanvas公司以“发明智能、摸索未知”为愿景,在数据迷信畛域一直耕耘,公司的技术路线与策略布局与Gartner提出的将来AI技术创新倒退脉络高度吻合,成为AI新时代的引领者。 作为人工智能根底软件的领军企业,九章云极DataCanvas公司通过自主研发的人工智能根底软件产品系列和解决方案为用户提供人工智能根底服务,助力用户在数智化转型中轻松实现模型和数据的双向赋能,低成本高效率地晋升政府和企业决策能力,实现企业级AI规模化利用。 Gartner预测,“当先的技术产品和服务将在将来12个月内融合生成式人工智能能力,引入发明技术与技术交换对话形式,从而实现生成式人工智能技术的民主化。”九章云极DataCanvas公司联合生成式AI技术,降级欠缺AI根底软件产品矩阵,公布了DataCanvas Alaya九章元识大模型,作为“通识+产业”白盒大模型,领有通用大模型、行业大模型、GPT等多模态大模型系列和优化的训练机制,以及敌对的开源协定治理等特点,同时反对Apache 2.0协定,减速实现大模型在多元业务场景中的利用。 随着大模型时代下AI与数据实现双向赋能,AI与数据的交融带动了数据畛域的技术创新冲破。九章云极DataCanvas公司基于“向量海”理念的DataPilot,让用户具备实时、多模态的数据能力,升高数据驱动业务倒退的老本,放慢大模型时代下的数字化过程。 九章云极DataCanvas公司继续将“数据、剖析和人工智能”的技术交融翻新,驱动AI根底软件的进一步降级,助力寰球用户实现业务增长和翻新,共创AI新时代。

September 6, 2023 · 1 min · jiezi

关于机器学习:专访-UIUC-李博-从可用到可信学界对-AI-的终极思考

本文首发自 HyperAI 超神经微信公众平台~ ChatGPT 的呈现让 AI 再次引起了一场科技圈的触动,这场触动影响深远,让科技界分为两派。一派认为,AI 迅速倒退可能会在不久后取代人类,这种「威胁论」尽管不无道理,但另一派也提出不同观点,AI 的智力程度仍然尚未赶超人类甚至「还不如狗」,间隔危及人类将来也还很边远。 诚然,这一争执值得提前预警,但正如 2023 WAIC 高峰论坛中张成奇传授等多位专家学者的观点,人类对 AI 的期许始终是一个无利的工具。 那么既然只是一个工具,比起「威胁论」,更须要关注的问题是其是否可信,以及如何进步可信度。 毕竟一旦 AI 变得不可信,又遑论将来倒退? 那么可信的规范是什么,现在该畛域又倒退到了何种现状? HyperAI超神经有幸与走在该方向的前沿学者,伊利诺伊大学副教授,曾取得 IJCAI-2022 计算机与思维奖、斯隆钻研奖、美国国家迷信基金会 CAREER Award、AI's 10 to Watch、麻省理工学院技术评论 TR-35 奖、Intel Rising Star 等多项大奖的李博进行了深入探讨,沿着她的钻研与介绍,本文梳理出了 AI 平安畛域倒退脉络。李博在 2023 IJCAI YES 机器学习是一把双刃剑把工夫线拉长,李博一路以来的钻研历程,也正是可信 AI 倒退的缩影。 2007 年,李博踏入本科就读信息安全业余。那段时间,尽管国内市场对于网络安全的器重水平未然沉睡,开始研发防火墙、入侵检测、平安评估等多种产品及服务,但总体上看,该畛域仍处于发展期。现在来看,这个抉择尽管冒险,但却是一个正确的开始,李博在这样一个还很「新」的畛域开启了本人的平安钻研之路,同时,也为后续钻研埋下了伏笔。 李博本科就读于同济大学信息安全业余 到了博士阶段,李博将眼帘进一步聚焦于 AI 平安方向。 之所以抉择这一还不算是特地支流的畛域,除了趣味使然,很大水平上也得益于导师的激励和领导。这个业余在过后还不算是特地支流,李博的这次抉择也颇有冒险成分,然而即便如此,她还是依附本人本科期间在信息安全的积攒敏锐地捕捉到 AI 与平安的联合势必非常光明。 那时,李博与导师次要从事博弈论角度钻研,将 AI 的攻打和进攻模型化为博弈,比方应用 Stackelberg 博弈进行剖析。 Stackelberg 博弈通常用于形容一个策略领先者 (leader) 和一个追随者 (follower) 之间的交互,在 AI 平安畛域,其被用来建模攻打和防御者之间的关系。例如,在对抗性机器学习中,攻击者试图坑骗机器学习模型以产生谬误的输入,而防御者则致力于发现和阻止这种攻打。通过剖析和钻研 Stackelberg 博弈,李博等钻研人员能够设计无效的防御机制和策略,加强机器学习模型的安全性和鲁棒性。 Stackelberg game model ...

September 6, 2023 · 2 min · jiezi

关于机器学习:炼丹侠如何用GPU服务器实现GoogLeNet训练

GoogLeNet是一个深度卷积神经网络架构,于2014年由Google团队在论文《Going Deeper with Convolutions》中提出。它是在ILSVRC比赛中获得优异成绩的一种神经网络构造,能够用于图像分类和其余计算机视觉工作。GoogLeNet之所以引人注目,是因为它在缩小参数数量的同时放弃了较高的准确率,以及引入了一种称为"Inception模块"的翻新构造。Inception模块通过在同一层内应用多个不同大小的卷积核和池化操作,来捕获不同尺度的图像特色。这种并行的特征提取形式有助于网络更好地捕获图像中的部分和全局特色,从而进步了分类性能。GoogLeNet的一个显著特点是其参数极少,相较于传统的深度卷积神经网络,它应用了全局均匀池化层来显著缩小参数数量。这有助于加重过拟合问题,进步了模型的泛化能力。GoogLeNet在深度学习畛域的奉献是引入了Inception模块,展现了一种无效地缩小参数数量同时放弃模型性能的办法,为后续的网络设计提供了有价值的启发。然而,自GoogLeNet之后,深度神经网络架构还失去了许多进一步的倒退和改良,如ResNet、Transformer等。GoogLeNet在以下几个方面表现出色: 参数效率: GoogLeNet引入了Inception模块,容许在同一层内应用多个不同大小的卷积核和池化操作,从而更无效地捕捉不同尺度的图像特色。这种设计缩小了网络中的参数数量,使得模型更加轻量,同时依然可能放弃较高的准确性。加重梯度隐没问题:在Inception模块内,1x1的卷积核被用来缩小特色图的通道数,从而有助于加重梯度隐没问题,使网络更易于训练。多尺度特征提取:通过Inception模块的并行构造,GoogLeNet能够同时从不同尺度上提取特色。这有助于网络更好地捕捉图像中的部分和全局特色,进步了图像分类性能。泛化能力: 因为参数较少且采纳了全局均匀池化层,GoogLeNet在肯定水平上加重了过拟合问题,进步了模型的泛化能力,能够更好地适应新数据。图像分类性能:GoogLeNet在ILSVRC 2014比赛中获得了优异的问题,证实了它在图像分类工作上的有效性。它的设计理念也为后续的深度卷积神经网络提供了启发。本次采纳GoogLeNet对MNIST数据集进行训练,在炼丹侠平台中别离通过A100和CPU进行训练,比照两者之间性能差距。GPU版本残缺代码如下:import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionimport torchvision.transforms as transforms# 定义GoogLeNet模型class Inception(nn.Module): def __init__(self, in_channels, out1x1, reduce3x3, out3x3, reduce5x5, out5x5, out1x1pool): super(Inception, self).__init__() # 定义Inception模块的各个分支 self.branch1 = nn.Conv2d(in_channels, out1x1, kernel_size=1) self.branch2 = nn.Sequential( nn.Conv2d(in_channels, reduce3x3, kernel_size=1), nn.ReLU(inplace=True), nn.Conv2d(reduce3x3, out3x3, kernel_size=3, padding=1) ) self.branch3 = nn.Sequential( nn.Conv2d(in_channels, reduce5x5, kernel_size=1), nn.ReLU(inplace=True), nn.Conv2d(reduce5x5, out5x5, kernel_size=5, padding=2) ) self.branch4 = nn.Sequential( nn.MaxPool2d(kernel_size=3, stride=1, padding=1), nn.Conv2d(in_channels, out1x1pool, kernel_size=1) ) def forward(self, x): return torch.cat([self.branch1(x), self.branch2(x), self.branch3(x), self.branch4(x)], 1)class GoogLeNet(nn.Module): def __init__(self, num_classes=10): super(GoogLeNet, self).__init__() self.conv1 = nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3) self.maxpool1 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.conv2 = nn.Conv2d(64, 64, kernel_size=1) self.conv3 = nn.Conv2d(64, 192, kernel_size=3, padding=1) self.maxpool2 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.inception3a = Inception(192, 64, 96, 128, 16, 32, 32) self.inception3b = Inception(256, 128, 128, 192, 32, 96, 64) self.maxpool3 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.inception4a = Inception(480, 192, 96, 208, 16, 48, 64) self.inception4b = Inception(512, 160, 112, 224, 24, 64, 64) self.inception4c = Inception(512, 128, 128, 256, 24, 64, 64) self.inception4d = Inception(512, 112, 144, 288, 32, 64, 64) self.inception4e = Inception(528, 256, 160, 320, 32, 128, 128) self.maxpool4 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.inception5a = Inception(832, 256, 160, 320, 32, 128, 128) self.inception5b = Inception(832, 384, 192, 384, 48, 128, 128) self.avgpool = nn.AdaptiveAvgPool2d((1, 1)) self.dropout = nn.Dropout(0.4) self.fc = nn.Linear(1024, num_classes) def forward(self, x): x = self.maxpool1(self.conv1(x)) x = self.maxpool2(self.conv3(self.conv2(x))) x = self.inception3b(self.inception3a(x)) x = self.maxpool3(x) x = self.inception4e(self.inception4d(self.inception4c(self.inception4b(self.inception4a(x))))) x = self.maxpool4(x) x = self.inception5b(self.inception5a(x)) x = self.avgpool(x) x = x.view(x.size(0), -1) x = self.dropout(x) x = self.fc(x) return x# 初始化模型并将其移至GPUmodel = GoogLeNet().cuda()# 定义数据预处理transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])# 加载训练数据集train_dataset = torchvision.datasets.MNIST(root='./data', train=True, transform=transform, download=True)train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)# 定义损失函数和优化器criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(model.parameters(), lr=0.001)# 训练模型num_epochs = 10for epoch in range(num_epochs): model.train() running_loss = 0.0 for images, labels in train_loader: images = images.cuda() labels = labels.cuda() optimizer.zero_grad() outputs = model(images) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {running_loss/len(train_loader):.4f}')CPU版本残缺代码如下: ...

September 4, 2023 · 3 min · jiezi

关于机器学习:量化自定义PyTorch模型入门教程

在以前Pytorch只有一种量化的办法,叫做“eager mode qunatization”,在量化咱们自定定义模型时常常会产生奇怪的谬误,并且很难解决。然而最近,PyTorch公布了一种称为“fx-graph-mode-qunatization”的方办法。在本文中咱们将钻研这个fx-graph-mode-qunatization”看看它能不能让咱们的量化操作更容易,更稳固。 本文将应用CIFAR 10和一个自定义AlexNet模型,我对这个模型进行了小的批改以提高效率,最初就是因为模型和数据集都很小,所以CPU也能够跑起来。 import os import cv2 import time import torch import numpy as np import torchvision from PIL import Image import torch.nn as nn import matplotlib.pyplot as plt from torchvision import transforms from torchvision import datasets, models, transforms device = "cpu" print(device) transform = transforms.Compose([ transforms.Resize(224), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ]) batch_size = 8 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size, shuffle=True, num_workers=2) testloader = torch.utils.data.DataLoader(testset, batch_size=batch_size, shuffle=False, num_workers=2) def print_model_size(mdl): torch.save(mdl.state_dict(), "tmp.pt") print("%.2f MB" %(os.path.getsize("tmp.pt")/1e6)) os.remove('tmp.pt')模型代码如下,应用AlexNet是因为他蕴含了咱们日常用到的根本层: ...

September 4, 2023 · 3 min · jiezi

关于机器学习:15个基本且常用Pandas代码片段

Pandas提供了弱小的数据操作和剖析性能,是数据迷信的日常根本工具。在本文中,咱们将介绍最罕用的15个Pandas代码片段。这些片段将帮忙简化数据分析工作,从数据集中提取有价值的见解。 1、过滤数据Pandas提供了多种办法来过滤数据。 import pandas as pd # Create a DataFrame data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [25, 30, 35, 40]} df = pd.DataFrame(data) # Filter rows where Age is greater than 30 filtered_df = df[df['Age'] > 30] print(filtered_df)2、分组和聚合数据 # Grouping by a column and calculating the mean grouped = df.groupby('Age').mean() print(grouped)3、数据缺失值 # Check for missing values missing_values = df.isnull().sum() # Fill missing values with a specific value df['Age'].fillna(0, inplace=True)4、将函数利用于列apply()函数容许在 DataFrame 的行或列上利用自定义函数,以实现更简单的数据处理和转换操作。 ...

September 3, 2023 · 2 min · jiezi

关于机器学习:机器学习F1score中的Micro和Macro

家喻户晓,F1-score是通过混同矩阵算进去的 <img src="https://math.jianshu.com/math?formula=%5Ctext%20%7Bprecision%7D%20%3D%5Cfrac%7B%5Ctext%20%7BTP%7D%7D%7B%5Ctext%20%7BTP%7D%2B%5Ctext%20%7BFP%7D%7D%5C%5C%20%5Ctext%20%7Brecall%7D%20%3D%5Cfrac%7B%5Ctext%20%7BTP%7D%7D%7B%5Ctext%20%7BTP%7D%2B%5Ctext%20%7BFN%7D%7D" alt="\text {precision} =\frac{\text {TP}}{\text {TP}+\text {FP}}\ \text {recall} =\frac{\text {TP}}{\text {TP}+\text {FN}}" /> TP代表预测正类,预测正确,FN代表预测负类,然而预测谬误了. 这样就能计算某个类别的F1-score了.然而其实F1-score还能够应用TP,FN等定义来计算,这两个公式是一样的. F1分数是一个按类计算的指标,这意味着如果你想计算一个蕴含多个类的数据集的总体F1分数,你须要以某种形式进行聚合。宏观和宏观F1分数是进行这种聚合的两种形式。当计算多类(这里包含两类)的F1-score时个别又分为微F1和宏F1,也就是Micro和Macro. Macro F1ClassTPFPFNF1 score010230.812010120.625110.8Sum351316 比方下面的三类,计算失去别离的F1,而后多类的F1-score的如果应用macro形式计算间接计算平均值即可。 对于class 0,首先准确率为10/12=0.83,查全率为10/13=0.769,则F1为1.27654/1.699=0.798,取0.8,同理算出所有类别的F1.则Macro F1为Macro F1 score = (0.8+0.6+0.8)/3 = 0.73 Micro F1Micro F1分数是应用真阳性(TP)、假阳性(FP)和假阴性(FN)的总数来计算,而不是针对每个类别独自计算。ClassTPFPFNF1 score010230.812010120.625110.8Sum351316 相似下面的表格,计算Micro F1的话,间接套公式,Micro F1 score = 35 / (35 + 0.5 \* (13 + 16)) = 0.71,相当于把三类的数据当作一样的的了 FAQ对于不均衡的数据集,Micro还是Macro F1得分更好micro F1-score 在不均衡数据集上的体现比macro F1差。这是因为micro F1对每个观测值(样本)都具备等同的重要性,而macro F1是对每个类别都具备等同重要性。 也就是当某个类别中数据特地多,其余类别数据比拟少时,Micro F1会更多思考数据特地多的类.最终的分数覆盖了多数的体现,放大了大多数的体现。 为什么scikit学习分类报告中没有Micro平均值当指标是单标签分类时,宏观均匀F1分数在分类报告中显示为accuracy。 这样做是因为在这种状况下,宏观均匀F1分数返回的值与accuracy雷同 3.micro 和macro F1 有什么区别micro 和macro F1分数之间的要害区别在于它们在不均衡数据集上的行为。当类不均衡时,micro F1分数通常不会返回模型性能的主观衡量标准,而macro F1分数能够这样做。 ...

September 2, 2023 · 1 min · jiezi

关于机器学习:为何每个开发者都在谈论Go

本文深入探讨了Go语言的多个要害方面,从其简洁的语法、弱小的并发反对到杰出的性能劣势,进一步解析了Go在云原生畛域的显著利用和宽泛的跨平台反对。文章构造谨严,逐个剖析了Go语言在古代软件开发中所占据的重要位置和其背地的技术原理。 关注TechLead,分享互联网架构、云服务技术的全维度常识。作者领有10+年互联网服务架构、AI产品研发教训、团队治理教训,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 一、引言Go的历史回顾Go语言(通常被称为Go或Golang)由Robert Griesemer、Rob Pike和Ken Thompson在2007年开始设计,并于2009年正式公开公布。这三位设计者都曾在贝尔实验室工作,领有丰盛的编程语言和操作系统钻研教训。Go的诞生最后是为了解决Google外部的软件工程问题,特地是服务端软件的开发。 设计Go的次要指标包含: 简化古代软件复杂性进步开发和编译速度人造反对并发和网络编程可移植性和跨平台反对要害工夫节点 2009年:Go语言首次公开公布。2011年:Go版本1(Go1)公布,确立了API和次要标准。2015年:Docker和Kubernetes等开源我的项目开始宽泛采纳Go,减速了其在工业界的遍及。应用场景Go语言次要在以下场景中失去广泛应用: 后端开发:高性能API和微服务云原生利用:如Docker和Kubernetes网络编程:TCP/HTTP服务器、网络代理等数据处理和剖析:日志剖析、数据抓取等命令行工具:如Git操作工具、系统监控工具等嵌入式零碎和物联网Go的语言位置从RedMonk编程语言排名和Stack Overflow开发者考察来看,Go始终稳居前十强。特地值得注意的是,Go在服务端开发和云原生畛域曾经成为一门不可或缺的语言。 技术社群与企业反对Go领有沉闷的社群和弱小的企业反对,不仅包含Google,还有IBM、Microsoft、Dropbox等多个大型企业都在外部宽泛应用Go。Go也有丰盛的第三方库和框架,为开发者提供了弱小的工具和资源。 资源投入和生态系统Go领有一个宏大和疾速倒退的生态系统,包含丰盛的库、开发工具以及成熟的框架。这使得Go不仅仅是一门编程语言,更是一种解决问题和实现目标的全面工具集。 二、简洁的语法结构Go语言是以简洁、明确和可保护为设计指标的。简洁的语法不仅让老手容易上手,也容许开发团队更加高效地进行大规模开发。 根本组成元素Go语言的根本组成元素包含变量、常量、函数和控制结构等,但与其余语言相比,Go具备本人独特的简洁格调。 变量申明与初始化Go语言在变量申明和初始化方面提供了多种简洁的形式。 // 常见的变量申明与初始化var i int = 10var j = 20k := 30代码示例// 申明并初始化多个变量var a, b, c = 1, 2.0, "three"x, y, z := 4, 5.0, "six"类型推断Go编译器能进行弱小的类型推断,这防止了冗余的类型申明。 var message = "Hello, World!" // 类型推断为stringcount := 42 // 类型推断为int函数与返回值Go的函数能够返回多个值,并且反对命名返回值。 // 函数返回多个值func swap(x, y string) (string, string) { return y, x}代码示例// 带命名返回值的函数func divide(dividend, divisor int) (quotient, remainder int) { quotient = dividend / divisor remainder = dividend % divisor return}输入应用这个divide函数,例如divide(5, 2)将会返回(2, 1)。 ...

September 2, 2023 · 3 min · jiezi

关于机器学习:使用-Amazon-SageMaker-的生成式-AI-定制个性化头像

生成式 AI 曾经成为各行业创意过程加强和减速的常用工具,包含娱乐、广告和平面设计。它能够为观众发明更个性化的体验,并进步最终产品的整体品质。 亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!生成式 AI 的一个重要劣势是为用户创立独特和个性化的体验。例如,生成式 AI 被流媒体服务用于为电影题目和视觉效果生成个性化的内容,以减少观众参与度,并依据用户的观看历史和偏好为题目构建视觉效果。 而后,零碎会生成题目艺术品的数千个变体,并进行测试以确定哪个版本最能吸引用户的注意力。 在某些状况下,个性化的电视剧艺术品大大提高了点击率和观看率,与没有个性化艺术品的节目相比。 在本文中,咱们演示了如何应用 Amazon SageMaker 中的 Stable Diffusion 2.1根底模型构建个性化头像解决方案,并通过多模型端点(MME)同时节俭推理老本。 该解决方案演示了,通过上传10-12张自拍照,您能够微调一个个性化模型,而后基于任何文本提醒生成头像,如下图所示。 只管此示例生成了个性化头像,但您能够将该技术利用于通过微调特定对象或格调的任何创意艺术生成。 解决方案概览下图概述了咱们头像生成器的端到端解决方案体系结构。 本文和咱们提供的 GitHub 代码示例的范畴仅集中在模型训练和推理编排上(上图中的绿色局部)。您能够参考残缺的解决方案架构,并基于咱们提供的示例进行构建。 模型训练和推理能够分为四个步骤: 将图片上传到 Amazon Simple Storage Service (Amazon S3)。在此步骤中,咱们要求您至多提供10张高分辨率的自拍照。图片越多后果越好,但训练工夫就越长。应用 SageMaker 异步推理微调 Stable Diffusion 2.1根底模型。咱们在后文中解释了应用推理端点进行训练的起因。微调过程首先筹备图片,包含人脸裁剪、背景变动和调整大小以适应模型。而后,咱们应用实用于大型语言模型(LLM) 的高效微调技术 Low-Rank Adaptation(LoRA) 来微调模型。最初,在后处理中,咱们将微调后的 LoRA 权重与推理脚本和配置文件 (tar.gz) 打包,并上传到 SageMaker MME 的 S3 存储桶地位。应用 GPU 的 SageMaker MME 托管微调后的模型。 SageMaker 将依据每个模型的推理流量动静加载和缓存来自Amazon S3 地位的模型。应用微调后的模型进行推理。 在 Amazon Simple Notification Service (Amazon SNS) 告诉表明微调实现后,您能够立刻通过在调用 MME 时提供target_model参数来应用该模型创立头像。咱们在上面的章节中更具体地解释每个步骤,并介绍一些示例代码片段。筹备图片为了从微调 Stable Diffusion 获得最佳后果以生成本身的图像,您通常须要提供大量不同角度、不同表情以及不同背景的自拍照。然而,通过咱们的实现,您当初只须要10张输出图像就能够取得高质量的后果。咱们还减少了从每张照片中提取面部的主动预处理性能。您只须要从多个视角分明地捕获面部特色。包含侧面照,每个侧面的侧面照,以及之间的不同角度的照片。您还应该包含不同面部表情的照片,如微笑、皱眉和中性表情。具备不同表情的组合将使模型可能更好地重现您独特的面部特色。输出图像决定了您能够生成头像的品质。为了确保正确实现此操作,咱们倡议应用直观的前端 UI 体验来领导用户实现图像捕捉和上传过程。 ...

September 1, 2023 · 4 min · jiezi

关于机器学习:Pandas-21发布了

2023年3月1日,Pandas 公布了2.0版本。6个月后(8月30日),更新了新的2.1版。让咱们看看他有什么重要的更新。 更好的PyArrow反对PyArrow是在Panda 2.0中新退出的后端,对于大数据来说提供了优于NumPy的性能。Pandas 2.1加强了对PyArrow的反对。官网在这次更新中应用最大的高亮字体发表 PyArrow 将是 Pandas 3.0的根底依赖,这阐明Panda 是认定了PyArrow了。 映射所有数组类型时能够疏忽NaN类值在以前版本,可空类型上调用map会在存在相似nan的值时触发谬误。而当初能够设定na_action= " ignore "参数,将疏忽所有类型数组中的nan值。 以下是发行阐明中的一个例子: In [5]: ser = pd.Series(["a", "b", np.nan], dtype="category") In [6]: ser.map(str.upper, na_action="ignore") Out[6]: 0 A 1 B 2 NaN dtype: category Categories (2, object): ['A', 'B'] ##no errors !字符串的默认类型默认状况下,所有字符串都存储在具备NumPy对象dtype的列中,如果你装置了PyArrow,则会将所有字符串推断为PyArrow反对的字符串,这个选项须要应用这个参数设置: pd.options.future.infer_string = TrueCopy-On-Write改良写时复制在很久以前就呈现了。在Pandas中有时你对数据做一些操作,批改的不是数据源的正本,而是数据源自身。例子: In [5]: pd.options.mode.copy_on_write = True In [6]: df = pd.DataFrame({"foo": [1, 2, 3], "bar": [4, 5, 6]}) In [7]: subset = df["foo"] In [8]: subset.iloc[0] = 100 In [9]: df Out[9]: foo bar 0 1 4 1 2 5 2 3 6写时复制是一种避免意外可变性的机制。当从其余数据推断数据时,能够保障只更改正本。这意味着代码将更加对立。Pandas将辨认何时复制对象,并且只在必要时复制对象。在Pandas 2.1中,花了很多精力使许多中央的Copy-On-Write保持一致。 ...

September 1, 2023 · 1 min · jiezi

关于机器学习:一文学会List函数排序操作20秒即可完成

假如有一个用户管理系统,其中蕴含两个用户列表:一个是从数据库中获取的原始用户列表,另一个是从内部API获取的新用户列表。在这种状况下,用Java函数来实现将新用户列表中的数据合并到原始用户列表中的性能。开发人员在接到需要后,往往第一工夫是上网搜寻相干代码,一个个查看,可能面临没正文、解决方案太简短、架构太简单等状况;就算在网上找到了适合的代码,还须要依据理论的需要,进行批改,这一套流程下来起码2个小时就没了。而应用FuncGPT(慧函数) ,只需在界面输出以下具体的需要及参数要求,点击生成代码,20秒就能够生成拿来即用的代码了。函数性能:将2个LIST合并,源LIST合并到指标LIST参数1:参数名称:fromDatas;参数类型:List<Map<String, Object>>;参数形容:源数据集参数2:参数名称:toDatas;参数类型:List<Map<String, Object>>;参数形容:指标数据集参数3:参数名称:fromFiledName;参数类型:String;参数形容:源字段名参数4:参数名称:toFiledName;参数类型:String;参数形容:指标字段名返回值:指标LIST FuncGPT(慧函数)将主动生成以下代码// 类名:ListMerger// 函数名:mergeList// 函数性能:将源LIST合并到指标LIST// POM依赖包:无 import java.util.List;import java.util.Map;import java.util.Objects; public class ListMerger { /** * 将源LIST合并到指标LIST * @param fromDatas 源数据集 * @param toDatas 指标数据集 * @param fromFieldName 源字段名 * @param toFieldName 指标字段名 * @return 合并后的指标数据集 */public static List<Map<String, Object>> mergeList(List<Map<String, Object>> fromDatas, List<Map<String, Object>> toDatas, String fromFieldName, String toFieldName) { if (fromDatas == null || toDatas == null) { // 检查数据集是否为空 throw new IllegalArgumentException("Data lists cannot be null"); // 抛出异样,数据集不能为空 } if (Objects.equals(fromFieldName, toFieldName)) { // 查看源字段名和指标字段名是否雷同 throw new IllegalArgumentException("Field names cannot be the same"); // 抛出异样,字段名不能雷同 } for (Map<String, Object> fromData : fromDatas) { // 遍历源数据集 Object fromFieldValue = fromData.get(fromFieldName); // 获取源字段的值 for (Map<String, Object> toData : toDatas) { // 遍历指标数据集 Object toFieldValue = toData.get(toFieldName); // 获取指标字段的值 if (Objects.equals(fromFieldValue, toFieldValue)) { // 如果源字段的值和指标字段的值雷同 toData.putAll(fromData); // 将源数据合并到指标数据 break; // 完结对指标数据集的遍历,进入下一个源数据 } } } return toDatas; // 返回合并后的指标数据集}} ...

August 31, 2023 · 1 min · jiezi

关于机器学习:前馈神经网络解密深入理解人工智能的基石

本文深入探讨了前馈神经网络(FNN)的外围原理、构造、训练方法和先进变体。通过Python和PyTorch的实战演示,揭示了FNN的多样化利用。 作者TechLead,领有10+年互联网服务架构、AI产品研发教训、团队治理教训,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 一、前馈神经网络概述前馈神经网络(Feedforward Neural Network, FNN)是神经网络中最根本和经典的一种构造,它在许多理论利用场景中有着宽泛的应用。在本节中,咱们将深入探讨FNN的基本概念、工作原理、利用场景以及优缺点。 什么是前馈神经网络前馈神经网络是一种人工神经网络,其构造由多个档次的节点组成,并按特定的方向传递信息。与之绝对的是递归神经网络,其中信息能够在不同层之间双向传递。 构造特点: 由输出层、一个或多个暗藏层和输入层组成。信息流动: 信息仅在一个方向上流动,从输出层通过暗藏层最终达到输入层,没有反馈循环。前馈神经网络的工作原理前馈神经网络的工作过程能够分为前向流传和反向流传两个阶段。 前向流传: 输出数据在每一层被权重和偏置加权后,通过激活函数进行非线性变换,传递至下一层。反向流传: 通过计算输入误差和每一层的梯度,对网络中的权重和偏置进行更新。利用场景及优缺点前馈神经网络在许多畛域都有着宽泛的利用,包含图像识别、语音解决、金融预测等。 长处: 构造简略,易于了解和实现。能够实用于多种数据类型和工作。毛病: 对于具备时序关系的数据处理能力较弱。容易陷入部分最优解,须要正当抉择激活函数和优化策略。二、前馈神经网络的根本构造前馈神经网络(FNN)的根本构造包含输出层、暗藏层和输入层,以及相应的激活函数、权重和偏置。这些组成部分独特形成了网络的全貌,并定义了网络如何从输出数据中提取特色并进行预测。本节将具体介绍这些外围组成部分。 输出层、暗藏层和输入层前馈神经网络由三个次要局部组成:输出层、暗藏层和输入层。 输出层: 负责接管原始数据,通常对应于特色的维度。暗藏层: 蕴含一个或多个层,每层由多个神经元组成,用于提取输出数据的形象特色。输入层: 产生网络的最终预测或分类后果。激活函数的抉择与作用激活函数是神经网络中十分重要的组成部分,它向网络引入非线性个性,使网络可能学习简单的函数。 常见激活函数: 如ReLU、Sigmoid、Tanh等。作用: 引入非线性,加强网络的表达能力。网络权重和偏置权重和偏置是神经网络的可学习参数,它们在训练过程中一直调整,以最小化预测谬误。 权重: 连贯各层神经元的线性因子,管制信息在神经元之间的流动。偏置: 容许神经元在没有输出的状况下激活,减少模型的灵活性。三、前馈神经网络的训练方法前馈神经网络(FNN)的训练是一个简单且奥妙的过程,波及多个要害组件和技术抉择。从损失函数的抉择到优化算法,再到反向流传和过拟合的解决,本节将深入探讨FNN的训练方法。 损失函数与优化算法损失函数和优化算法是神经网络训练的基石,决定了网络如何学习和调整其权重。 损失函数: 用于掂量网络预测与理论指标之间的差别,常见的损失函数包含均方误差(MSE)、穿插熵损失等。优化算法: 通过最小化损失函数来更新网络权重,常见的优化算法包含随机梯度降落(SGD)、Adam、RMSProp等。反向流传算法详解反向流传是一种高效计算损失函数梯度的算法,它是神经网络训练的外围。 工作原理: 通过链式法则,从输入层向输出层逐层计算梯度。权重更新: 依据计算的梯度,应用优化算法更新网络的权重和偏置。防止过拟合的策略过拟合是训练神经网络时常遇到的问题,有多种策略能够加重或防止过拟合。 早停法(Early Stopping): 当验证集上的性能进行进步时,提前结束训练。正则化: 通过在损失函数中增加额定的惩办项,束缚网络权重,例如L1和L2正则化。Dropout: 随机敞开局部神经元,减少模型的鲁棒性。四、应用Python和PyTorch实现FNN在了解了前馈神经网络的实践根底之后,咱们将转向理论的编程实现。在本节中,咱们将应用Python和深度学习框架PyTorch实现一个残缺的前馈神经网络,并逐渐实现数据筹备、模型构建、训练和评估等关键步骤。 4.1 筹备数据集筹备数据集是构建神经网络模型的第一步。咱们须要确保数据的品质和格局适宜神经网络训练。 抉择适合的数据集抉择与工作匹配的数据集是胜利训练模型的要害。例如,对于图像分类工作,MNIST和CIFAR-10等都是风行的抉择。 数据预处理预处理是筹备数据集中的重要步骤,包含以下几个方面: 数据标准化/归一化: 将数据转换为具备零均值和单位方差的模式,有助于模型的训练和收敛。数据加强: 通过旋转、剪裁、缩放等伎俩减少数据的多样性,有助于进步模型的泛化能力。划分训练集、验证集和测试集: 正当的数据划分有助于评估模型在未见数据上的性能。PyTorch数据加载器PyTorch提供了DataLoader类,可用于批量加载和混洗数据,使训练过程更加高效。 from torch.utils.data import DataLoadertrain_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)4.2 构建模型构造在筹备了适当的数据集之后,咱们将转向应用Python和PyTorch构建前馈神经网络(FNN)的模型构造。构建模型构造包含定义网络的架构、抉择激活函数和初始化权重等关键步骤。 定义网络架构咱们能够应用PyTorch的nn.Module类来定义自定义的网络结构。以下是一个具备单个暗藏层的FNN示例。 import torch.nn as nnclass SimpleFNN(nn.Module): def __init__(self, input_dim, hidden_dim, output_dim): super(SimpleFNN, self).__init__() self.hidden_layer = nn.Linear(input_dim, hidden_dim) self.output_layer = nn.Linear(hidden_dim, output_dim) self.activation = nn.ReLU() def forward(self, x): x = self.activation(self.hidden_layer(x)) x = self.output_layer(x) return x抉择激活函数激活函数的抉择取决于特定的工作和层类型。在暗藏层中,ReLU通常是一个良好的抉择。对于分类工作的输入层,Softmax可能更适合。 ...

August 30, 2023 · 1 min · jiezi

关于机器学习:浅谈机器学习算法决策树

数新网络-让每个人享受数据的价值官网现已全新降级 欢送拜访!决策树办法在分类、预测、规定提取等畛域有着广泛应用。20世纪70年代前期和80年代初期,机器学习研究者J.Ross Quinlan提出了ID3算法当前,决策树在机器学习、数据挖掘畛域失去极大的倒退。Quinlan起初又提出了C4.5,成为新的监督学习算法。1984年,几位统计学家提出了CART分类算法。ID3和CART算法简直同时被提出,但都是采纳相似的办法从训练样本中学习决策树。                    ——《Python数据分析与开掘实战》 01 介绍决策树(Decision Tree)是一种罕用的机器学习算法,用于解决分类和回归问题。它是一种基于树状构造进行决策的模型,通过一系列的断定来对数据进行分类或预测。决策树的构建过程就是依据数据特色逐渐进行划分,直到达到预约的终止条件。它是一种树形构造,其中每个外部节点代表一个属性上的判断,每个分支代表一个判断后果的输入,每个叶节点代表一种分类后果。决策树是一种非常罕用的分类办法,属于有监管学习。监管学习就是给出一堆样本,每个样本都有一组属性和一个分类后果,也就是分类后果已知,那么通过学习这些样本失去一个决策树,这个决策树可能对新的数据给出正确的分类。 02  案例剖析当谈到机器学习中的决策树时,咱们能够思考一个简略的二分类问题,例如预测一个人是否会购买某个产品,基于他们的年龄和收入水平。以下是一个示例:假如咱们有一个数据集,其中蕴含了一些人的信息,以及他们是否购买了某个产品。数据集可能如下所示: 咱们能够应用决策树来预测一个新的个体是否会购买产品。决策树的构建过程如下:抉择一个特色来宰割数据。咱们能够抉择年龄或支出作为第一个宰割特色。依据选定的特色将数据集分成不同的子集。对于每个子集,反复步骤1和2,抉择一个最佳的特色来进一步宰割数据。反复这个过程,直到达到某个进行条件,例如树的深度达到肯定的限度或节点中的样本数不足以再次宰割。最终构建的决策树可能如下所示: 在这个决策树中,每个节点都代表一个特色及其阈值,每个分支代表一个决策。例如,根节点的“年龄 ≤ 30?”是一个决策,如果满足这个条件,就沿着左分支走,否则沿着右分支走。最终,咱们能够依据这个决策树来预测一个新个体是否会购买产品。 03  分类比拟罕用的决策树有ID3,C4.5和CART。上面介绍具体原理思维。3-1 ID3算法是一种经典的决策树算法,用于解决分类问题。它由Ross Quinlan于1986年提出,是决策树算法的先驱之一。ID3的次要思维是通过递归地抉择最佳的特色进行划分,以构建一个树状构造,将数据集划分成不同的子集,最终达到分类的指标。以下是ID3算法的次要原理步骤:(1)特征选择: 在每个节点上,抉择一个最佳的特色来进行数据集的划分。ID3应用信息增益(Information Gain)作为特征选择的根据。信息增益是掂量某个特色划分对于数据集纯度晋升的水平,抉择可能带来最大信息增益的特色。(2)划分数据: 应用选定的特色和其取值将数据集划分成多个子集,每个子集对应一个分支。这些子集将作为树的下一层节点。(3)递归构建: 对于每个子集,如果子集内的样本不属于同一类别,则持续递归地进行特征选择和划分,直到满足某个终止条件(例如,子集内的样本都属于同一类别,或者特色曾经用完)。(4)生成决策树: 最终,ID3通过递归地进行特征选择、划分和构建,生成一棵残缺的决策树,其中每个叶节点示意一个类别标签。ID3的次要长处是简略易懂、容易实现,并且可能解决离散特色。然而,它也存在一些问题,如容易过拟合(适度学习训练数据)。3-2 C4.5算法 ID3算法在决策树构建过程中存在一个问题,即它偏向于将数据集划分得十分粗疏,以达到训练数据零错误率的指标。然而,这种粗疏的宰割可能在训练数据上体现得很好,但对新的未见过的数据却无奈泛化,导致分错率回升,这就是适度学习的景象。这种适度学习景象能够用一个例子来阐明:假如咱们以某个特定属性的阈值为规范,将数据集分成两组,但在其中一组中有1个样本分类谬误。而后,咱们进一步微调阈值,将其中的一个样本划分到另一组,这样训练数据的分类错误率变为0。然而,这样的微调可能只是对以后数据集无效,对于新数据却无奈产生雷同的成果,因为新数据可能与训练数据不同。这导致了决策树在训练数据上体现良好,但在新数据上体现蹩脚。为了解决这个问题,C4.5算法对ID3进行了改良。C4.5引入了信息增益率的概念,这是一个优化项,它将信息增益除以宰割的代价,以升高宰割过于粗疏的状况。信息增益率思考了宰割的成果与宰割代价之间的均衡,从而防止了适度学习的问题。因而,C4.5在进行特征选择时不仅思考了信息增益,还思考了宰割的代价,以确保决策树可能更好地泛化到新的数据。3-3 CART算法CART(Classification and Regression Trees,分类与回归树)是一种罕用的决策树算法,它能够用于解决分类和回归问题。CART 算法的次要思维是通过递归地将数据集划分为更小的子集,而后在每个子集上构建一个简略的决策树,从而达到分类或回归的指标。当应用CART(分类与回归树)进行回归工作时,每个节点都代表数据的一个子集,而每次决裂都旨在找到一个特色和阈值,将数据分成更具相似性的子集。现实状况下,如果每个叶节点内的数据都属于同一个类别,那么树的构建就能够进行,达到最佳的分类。然而,在理论利用中,数据可能不够清晰地宰割成不同的类别,或者要达到污浊的宰割须要屡次决裂,导致构建树的工夫变得很长。为了解决这个问题,CART算法引入了回归解析的概念。这意味着在树的构建过程中,不仅仅思考了数据的纯度,还思考了叶节点内数据的散布状况。具体而言,CART会计算每个叶节点内数据的均值和方差。如果一个叶节点内数据的方差小于某个阈值,意味着这个叶节点内的数据相对来说比拟类似,树的宰割可能曾经足够好了。因而,CART能够决定进行在这个节点持续宰割,从而达到升高计算成本的目标。CART和ID3一样,也存在适度拟合问题。能够对特地长的树进行剪枝解决来解决该问题。 04  穿插验证法(Cross- Validation)在决策树训练的时候,个别会采取穿插验证(Cross-Validation)法。它是一种罕用于评估和抉择机器学习模型性能的技术。它的次要目标是在无限的数据上尽可能精确地预计模型在未见数据上的性能,从而防止过拟合或抉择不适宜的模型。其执行步骤如下:a. 将数据分成k个相等的子集(折叠)。b. 在第 i 个折叠上,将第 i 个折叠作为测试集,其余 k-1 个折叠作为训练集。c. 训练模型:应用训练集的数据来训练机器学习模型。d. 测试模型:应用测试集的数据来评估模型的性能,计算性能指标(如准确率、准确率、召回率等)。e. 反复步骤 b-d,直到每个折叠都作为测试集一次。穿插验证能够帮忙精确地预计模型的性能,从而反对更好的模型抉择和超参数调整,以取得更好的泛化性能。

August 29, 2023 · 1 min · jiezi

关于机器学习:HLS-后端示例

更多 TVM 中文文档可拜访 →Apache TVM 是一个端到端的深度学习编译框架,实用于 CPU、GPU 和各种机器学习减速芯片。 | Apache TVM 中文站 TVM 反对带有 SDAccel 的 Xilinx FPGA 板,接下来介绍如何将 TVM 部署到 AWS F1 FPGA 实例。 备注:此性能仍处于测试阶段,目前无奈用 SDAccel 部署端到端神经网络。本教程应用了两个 Python 脚本:build.py - 用于合成 FPGA 比特流的脚本。import tvm from tvm import te tgt= tvm.target.Target("sdaccel", host="llvm") n = te.var("n") A = te.placeholder((n,), name='A') B = te.placeholder((n,), name='B') C = te.compute(A.shape, lambda i: A[i] + B[i], name="C") s = te.create_schedule(C.op) px, x = s[C].split(C.op.axis[0], nparts=1) s[C].bind(px, tvm.te.thread_axis("pipeline")) fadd = tvm.build(s, [A, B, C], tgt, name="myadd") fadd.save("myadd.o") fadd.imported_modules[0].save("myadd.xclbin") tvm.contrib.cc.create_shared("myadd.so", ["myadd.o"])run.py - 将 FPGA 作为加速器的脚本。import tvm import numpy as np import os tgt = "sdaccel" fadd = tvm.runtime.load_module("myadd.so") if os.environ.get("XCL_EMULATION_MODE"): fadd_dev = tvm.runtime.load_module("myadd.xclbin") else: fadd_dev = tvm.runtime.load_module("myadd.awsxclbin") fadd.import_module(fadd_dev) dev = tvm.device(tgt, 0) n = 1024 a = tvm.nd.array(np.random.uniform(size=n).astype("float32"), dev) b = tvm.nd.array(np.random.uniform(size=n).astype("float32"), dev) c = tvm.nd.array(np.zeros(n, dtype="float32"), dev) fadd(a, b, c) tvm.testing.assert_allclose(c.numpy(), a.numpy() + b.numpy())设置用 FPGA Developer AMI 启动实例。无需 F1 实例来进行仿真和合成,因而举荐用开销较低的实例。设置 AWS FPGA 开发套件:git clone https://github.com/aws/aws-fpga.git cd aws-fpga source sdaccel_setup.sh source ${XILINX_SDX}/settings64.sh启用 OpenCL 前设置 TVM。仿真为仿真创立 emconfig.json:emconfigutil --platform ${AWS_PLATFORM} --nd 1将 emconfig.json 复制到 Python binary 目录下:因为以后的 Xilinx 工具包假设宿主机的二进制文件和 emconfig.json 文件处于同一门路。cp emconfig.json $(dirname $(which python))运行软件仿真:export XCL_EMULATION_MODE=1 export XCL_TARGET=sw_emu python build.py python run.py运行硬件仿真:export XCL_EMULATION_MODE=1 export XCL_TARGET=hw_emu python build.py python run.py合成用以下脚本进行合成:unset XCL_EMULATION_MODE export XCL_TARGET=hw python build.py创立 AWS FPGA 镜像,并将其上传到 AWS S3:${SDACCEL_DIR}/tools/create_sdaccel_afi.sh \ -xclbin=myadd.xclbin -o=myadd \ -s3_bucket=<bucket-name> -s3_dcp_key=<dcp-folder-name> \ -s3_logs_key=<logs-folder-name>这会生成 awsxclbin 文件(在 F1 实例上应用 AWS FPGA 镜像必须)。 ...

August 28, 2023 · 2 min · jiezi

关于机器学习:材料空间填空解谜MIT-利用深度学习解决无损检测难题

内容一览: 资料检测在工程、迷信及制造业中扮演着至关重要的角色。传统的资料检测办法,例如切割和化学试剂检测具备破坏性,同时较为消耗工夫和资源。近期,MIT 科学家利用深度学习开发了一种技术,可能填补缺失信息,并进一步通过外表察看确定资料的内部结构。 关键词: 深度学习 资料检测 CNN作者|daserney 编辑|三羊 本文首发于 HyperAI 超神经微信公众平台~ 在数据处理时,常常遇到一种挑战,即从含糊的图像或局部信息中还原残缺的图像。这种挑战被称为「逆问题」(inverse problem),它不仅在医学诊断中普遍存在,也在材料科学中频繁呈现。 如果咱们可能无效地填补这些缺失的信息,就有可能更全面、更精确地了解生物组织或资料的性质,从而做出更准确的决策。 如何无损检测资料外部的组织构造困扰着许多相干从业人员。无损检测指利用现代化技术和设施,在不侵害或影响资料外部组织和使用性能的前提下,检测资料内部结构。尽管能够通过应用 X 射线等技术进行检测,但这些办法通常较为低廉,并且须要宏大的设施。 为此,MIT (麻省理工学院) 的中国博士生杨镇泽及 Markus Buehler 传授联合多种深度学习架构,在 2D 和 3D 的状况下,别离通过无限的信息复原资料中的缺失局部,并进一步表征宏观构造。 目前,该研究成果已发表在《Advanced Materials》期刊上,题目为「Fill in the Blank: Transferrable Deep Learning Approaches to Recover Missing Physical Field Information」。 该研究成果已发表在《Advanced Materials》 论文地址: https://onlinelibrary.wiley.com/doi/full/10.1002/adma.202301449 试验概述:模型组合进行「填空解谜」下图展现了该钻研的总体示意图。 在右边的图中,灰色立方体为缺失的局部。在 2D 和 3D 状况下,别离有两个 AI 模型组合执行工作。钻研人员训练第一个 AI 模型「填补空白」,从 masked field 中复原 complete field,训练第二个 AI 模型「解谜」,将复原的 complete field 作为输出,反向取得复合材料对应的宏观构造 (Microstructure)。 ...

August 28, 2023 · 2 min · jiezi

关于机器学习:循环神经网络RNN完全解析从基础理论到PyTorch实战

在本文中,咱们深入探讨了循环神经网络(RNN)及其高级变体,包含长短时记忆网络(LSTM)、门控循环单元(GRU)和双向循环神经网络(Bi-RNN)。文章具体介绍了RNN的基本概念、工作原理和利用场景,同时提供了应用PyTorch构建、训练和评估RNN模型的残缺代码指南。 作者 TechLead,领有10+年互联网服务架构、AI产品研发教训、团队治理教训,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 一、循环神经网络全解1.1 什么是循环神经网络循环神经网络(Recurrent Neural Network, RNN)是一类具备外部环状连贯的人工神经网络,用于解决序列数据。其最大特点是网络中存在着环,使得信息能在网络中进行循环,实现对序列信息的存储和解决。 网络结构RNN的根本构造如下: # 一个简略的RNN构造示例class SimpleRNN(nn.Module): def __init__(self, input_size, hidden_size): super(SimpleRNN, self).__init__() self.rnn = nn.RNN(input_size, hidden_size, batch_first=True) def forward(self, x): out, _ = self.rnn(x) return out工作原理 输出层:RNN可能承受一个输出序列(例如文字、股票价格、语音信号等)并将其传递到暗藏层。暗藏层:暗藏层之间存在循环连贯,使得网络可能保护一个“记忆”状态,这一状态蕴含了过来的信息。这使得RNN可能了解序列中的上下文信息。输入层:RNN能够有一个或多个输入,例如在序列生成工作中,每个工夫步都会有一个输入。数学模型RNN的工作原理能够通过以下数学方程示意: 输出到暗藏层的转换:[ h_t = \tanh(W_{ih} \cdot x_t + b_{ih} + W_{hh} \cdot h_{t-1} + b_{hh}) ]暗藏层到输入层的转换:[ y_t = W_{ho} \cdot h_t + b_o ]其中,( h_t ) 示意在工夫 ( t ) 的暗藏层状态,( x_t ) 示意在工夫 ( t ) 的输出,( y_t ) 示意在工夫 ( t ) 的输入。 ...

August 28, 2023 · 4 min · jiezi

关于机器学习:阿里云机器学习PAI全新推出特征平台助力AI建模场景特征数据高效利用

举荐算法与零碎在寰球范畴内已失去广泛应用,为用户提供了更个性化和智能化的产品举荐体验。在举荐零碎畛域,AI建模中特色数据的复用、一致性等问题重大影响了建模效率。阿里云机器学习平台 PAI 推出特色平台(PAI-FeatureStore)。在所有须要特色的AI建模场景,用户可通过 Feature Store 轻松地共享和重用特色数据,缩小资源和工夫老本、晋升工作效率。 什么是特色平台特色平台(Feature Store) 是一种中心化的数据管理和共享平台,用于组织、存储和治理机器学习和数据迷信中应用的特色数据。在多个细分场景解决AI模型的训练和推理输出特色数据问题。 阿里云机器学习平台 PAI-FeatureStore 与阿里云多个云产品的深度联合,封装从特色到模型的全链路。并且,基于举荐算法流程的开发,实现与已有的成熟举荐流程无缝连接,进一步晋升算法工程师和开发人员的效率。 通过 PAI-FeatureStore,无效地晋升工作效率、缩小资源老本和开发工夫。作为一个集中的、可扩大的、高效的特色数据存储和拜访解决方案,解决了在AI建模中特色数据的复用、一致性、可发现性和可管理性等问题。PAI-FeatureStore 主动实现在线和离线表的构建,保障在线和离线的一致性,同时在特色表只存一份的状况下,可能向多人共享特色;离线存储方面反对阿里云云原生大数据计算服务MaxCompute,在线存储方面反对阿里云实时数仓Hologres、GraphCompute 和 TableStore 等产品,算法工程师无需深刻理解各个存储产品的应用细节,通过网页手动操作或 Python SDK 即可实现特色解决。 PAI-FeatureStore 实用场景及劣势性能阿里云机器学习平台 PAI-FeatureStore 实用于举荐场景、用户增长、广告或者是金融风控场景等须要特色的AI建模场景,为数据分析师和建模人员提供对立的数据特色存储和治理平台,不便进行数据处理、特征提取和剖析。 目前 PAI-FeatureStore 次要性能如下: 离线数据和在线数据统一:PAI-FeatureStore 中,各个产品的数据同步操作都封装为一行数据同步的代码,帮忙用户屏蔽了不同存储产品繁琐的数据受权等操作细节,保证数据一致性,进步特色数据处理和应用的准确率和效率;主动关联特色表:PAI-FeatureStore 中,反对将模型训练所须要的各种特色组合在一起,导出成模型训练所须要的训练表。当训练所需的特色散落在多张不同的表里时,PAI-FeatureStore反对主动将多张表关联导出。并且,反对序列表导出、按event_time关联导出、主动按表大小排序及优化导出工夫等;主动模型特征分析:PAI-FeatureStore 反对PAI-EAS主动剖析出模型须要应用的特色,并且主动加载好相干特色。通过指定好PAI-FeatureStore 中的我的项目名、模型特色名等,预测引擎能主动剖析出所须要的特色并进行加载,简化应用流程;实时特色秒级读取:PAI-FeatureStore 反对客户对特色进行分类的注册。在实时特征值存在秒级别变动的举荐场景中,对特色链路要求高,当有线上申请来读取特色时,PAI-FeatureStore会判断须要读取的若为实时特色,间接对在线存储的进行读取。上千个实时特色的读取能够在15ms,满足低提早要求;多版本特色治理:PAI-FeatureStore 反对增量开掘特色,解决特色品种简单,线上数据起源多样的问题。不便线上模型迭代,同时节约存储资源;此外,PAI-FeatureStore 还有深度联合PAI全链路举荐零碎PAI-REC,实现离在线一致性查看;通过SDK可间接应用 PAI-FeatureStore 所有产品能力;反对 PAI-EAS 间接从 MaxCompute 拉取特色,缩小在线存储压力等性能。 如何应用 PAI-FeatureStore应用步骤请参考产品文档:https://help.aliyun.com/zh/pai/user-guide/feature-store/ PAI-FeatureStore预计将于2023年9月中下旬在全Region正式上线。 点击立刻收费试用云产品 开启云上实际之旅!原文链接 本文为阿里云原创内容,未经容许不得转载

August 24, 2023 · 1 min · jiezi

关于机器学习:阿里云机器学习PAI全新推出特征平台-Feature-Store助力AI建模场景特征数据高效利用

举荐算法与零碎在寰球范畴内已失去广泛应用,为用户提供了更个性化和智能化的产品举荐体验。在举荐零碎畛域,AI建模中特色数据的复用、一致性等问题重大影响了建模效率。阿里云机器学习平台 PAI 推出特色平台(PAI-FeatureStore) 。在所有须要特色的AI建模场景,用户可通过 Feature Store 轻松地共享和重用特色数据,缩小资源和工夫老本、晋升工作效率。 什么是特色平台 特色平台(Feature Store) 是一种中心化的数据管理和共享平台,用于组织、存储和治理机器学习和数据迷信中应用的特色数据。在多个细分场景解决AI模型的训练和推理输出特色数据问题。 阿里云机器学习平台 PAI-FeatureStore 与阿里云多个云产品的深度联合,封装从特色到模型的全链路。并且,基于举荐算法流程的开发,实现与已有的成熟举荐流程无缝连接,进一步晋升算法工程师和开发人员的效率。 通过 PAI-FeatureStore,无效地晋升工作效率、缩小资源老本和开发工夫。作为一个集中的、可扩大的、高效的特色数据存储和拜访解决方案,解决了在AI建模中特色数据的复用、一致性、可发现性和可管理性等问题。PAI-FeatureStore 主动实现在线和离线表的构建,保障在线和离线的一致性,同时在特色表只存一份的状况下,可能向多人共享特色;离线存储方面反对阿里云云原生大数据计算服务MaxCompute,在线存储方面反对阿里云实时数仓Hologres、GraphCompute 和 TableStore 等产品,算法工程师无需深刻理解各个存储产品的应用细节,通过网页手动操作或 Python SDK 即可实现特色解决。 PAI-FeatureStore 实用场景及劣势性能 阿里云机器学习平台 PAI-FeatureStore 实用于举荐场景、用户增长、广告或者是金融风控场景等须要特色的AI建模场景,为数据分析师和建模人员提供对立的数据特色存储和治理平台,不便进行数据处理、特征提取和剖析。 目前 PAI-FeatureStore 次要性能如下: 离线数据和在线数据统一:PAI-FeatureStore 中,各个产品的数据同步操作都封装为一行数据同步的代码,帮忙用户屏蔽了不同存储产品繁琐的数据受权等操作细节,保证数据一致性,进步特色数据处理和应用的准确率和效率;<!----> 主动关联特色表:PAI-FeatureStore 中,反对将模型训练所须要的各种特色组合在一起,导出成模型训练所须要的训练表。当训练所需的特色散落在多张不同的表里时,PAI-FeatureStore反对主动将多张表关联导出。并且,反对序列表导出、按event_time关联导出、主动按表大小排序及优化导出工夫等;主动模型特征分析:PAI-FeatureStore 反对PAI-EAS主动剖析出模型须要应用的特色,并且主动加载好相干特色。通过指定好PAI-FeatureStore 中的我的项目名、模型特色名等,预测引擎能主动剖析出所须要的特色并进行加载,简化应用流程;实时特色秒级读取:PAI-FeatureStore 反对客户对特色进行分类的注册。在实时特征值存在秒级别变动的举荐场景中,对特色链路要求高,当有线上申请来读取特色时,PAI-FeatureStore会判断须要读取的若为实时特色,间接对在线存储的进行读取。上千个实时特色的读取能够在15ms,满足低提早要求;多版本特色治理:PAI-FeatureStore 反对增量开掘特色,解决特色品种简单,线上数据起源多样的问题。不便线上模型迭代,同时节约存储资源;此外,PAI-FeatureStore 还有深度联合PAI全链路举荐零碎PAI-REC,实现离在线一致性查看;通过SDK可间接应用 PAI-FeatureStore 所有产品能力;反对 PAI-EAS 间接从 MaxCompute 拉取特色,缩小在线存储压力等性能。 如何应用 PAI-FeatureStore 应用步骤请参考产品文档:https://help.aliyun.com/zh/pai/user-guide/feature-store/ PAI-FeatureStore预计将于2023年9月中下旬在全Region正式上线。 目前PAI-FeatureStore仅供白名单申请应用,如果您心愿应用 PAI-FeatureStore 性能,您在钉钉搜寻群号“34415007523”或扫描下方二维码进入申请答疑群。

August 24, 2023 · 1 min · jiezi

关于机器学习:GAN生成对抗网络GAN全维度介绍与实战

本文为生成反抗网络GAN的研究者和实践者提供全面、深刻和实用的领导。通过本文的实践解释和实际操作指南,读者可能把握GAN的外围概念,了解其工作原理,学会设计和训练本人的GAN模型,并可能对后果进行无效的剖析和评估。 作者 TechLead,领有10+年互联网服务架构、AI产品研发教训、团队治理教训,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人 一、引言1.1 生成反抗网络简介 生成反抗网络(GAN)是深度学习的一种翻新架构,由Ian Goodfellow等人于2014年首次提出。其根本思维是通过两个神经网络,即生成器(Generator)和判断器(Discriminator),相互竞争来学习数据分布。 生成器:负责从随机噪声中学习生成与实在数据类似的数据。判断器:尝试辨别生成的数据和实在数据。两者之间的竞争推动了模型的一直进化,使得生成的数据逐步靠近实在数据分布。 1.2 应用领域概览GANs在许多畛域都有宽泛的利用,从艺术和娱乐到更简单的科学研究。以下是一些次要的应用领域: 图像生成:如格调迁徙、人脸生成等。数据加强:通过生成额定的样本来加强训练集。医学图像剖析:例如通过GAN生成医学图像以辅助诊断。声音合成:利用GAN生成或批改语音信号。 1.3 GAN的重要性GAN的提出不仅在学术界引起了宽泛关注,也在工业界获得了理论利用。其重要性次要体现在以下几个方面: 数据分布学习:GAN提供了一种无效的办法来学习简单的数据分布,无需任何明确的假如。多学科穿插:通过与其余畛域的联合,GAN开启了许多新的钻研方向和应用领域。创新能力:GAN的生成能力使其在设计、艺术和创造性工作中具备潜在的用处。二、实践根底2.1 生成反抗网络的工作原理生成反抗网络(GAN)由两个外围局部组成:生成器(Generator)和判断器(Discriminator),它们独特工作以达到特定的指标。 2.1.1 生成器生成器负责从肯定的随机散布(如正态分布)中抽取随机噪声,并通过一系列的神经网络层将其映射到数据空间。其指标是生成与实在数据分布十分类似的样本,从而蛊惑判断器。 生成过程def generator(z): # 输出:随机噪声z # 输入:生成的样本 # 应用多层神经网络构造生成样本 # 示例代码,输入生成的样本 return generated_sample2.1.2 判断器判断器则尝试辨别由生成器生成的样本和实在的样本。判断器是一个二元分类器,其输出能够是实在数据样本或生成器生成的样本,输入是一个标量,示意样本是实在的概率。 判断过程def discriminator(x): # 输出:样本x(能够是实在的或生成的) # 输入:样本为实在样本的概率 # 应用多层神经网络构造判断样本真伪 # 示例代码,输入样本为实在样本的概率 return probability_real2.1.3 训练过程生成反抗网络的训练过程是一场两个网络之间的博弈,具体分为以下几个步骤: 训练判断器:固定生成器,应用实在数据和生成器生成的数据训练判断器。训练生成器:固定判断器,通过反向流传调整生成器的参数,使得判断器更难辨别实在和生成的样本。训练代码示例# 训练判断器和生成器# 示例代码,同时正文后减少指令的输入2.1.4 均衡与收敛GAN的训练通常须要认真均衡生成器和判断器的能力,以确保它们同时提高。此外,GAN的训练收敛性也是一个简单的问题,波及许多技术和策略。 2.2 数学背景生成反抗网络的了解和实现须要波及多个数学概念,其中次要包含概率论、最优化实践、信息论等。 2.2.1 损失函数损失函数是GAN训练的外围,用于掂量生成器和判断器的体现。 生成器损失生成器的指标是最大化判断器对其生成样本的谬误分类概率。损失函数通常示意为: L_G = -\mathbb{E}[\log D(G(z))]其中,(G(z)) 示意生成器从随机噪声 (z) 生成的样本,(D(x)) 是判断器对样本 (x) 为实在的概率预计。 判断器损失判断器的指标是正确区分实在数据和生成数据。损失函数通常示意为: L_D = -\mathbb{E}[\log D(x)] - \mathbb{E}[\log (1 - D(G(z)))]其中,(x) 是实在样本。 ...

August 22, 2023 · 2 min · jiezi

关于机器学习:了解GPT的最快方法阅读这就是ChatGPT

在图灵编辑部公众号理解到沃尔弗拉姆写的这本《这就是ChatGPT》后,果决下单,一是因为在读论文的时候理解过沃尔弗拉姆所创建的“计算等价原理”,是很有意思的实践,晓得他是位大牛,二是ChatGPT也曾经火了一段时间了,它的英文写作真的很高效,让我受害颇多。但因为我不是算法方向,没怎么去钻研大模型方向的论文,技术细节是齐全没有理解。个人感觉,这本书能让咱们这些做Web方向的,在学术上做一些疏导。 因为之前有些机器学习的根底,我始终到本书第61页开始,才看到GPT的不同凡响,基于获取的文本,生成嵌入向量来示意,所以严格来说,ChatGPT并不像其余模型来解决词,而是间接解决“标记token“,这是一种更加间接的办法,绕过语言语义的繁琐规定。这种嵌入会一直的衍生,从而达到新的嵌入。加上权重的从新加权,这样对单词的解决能力达到智能,我想这也是ChatGPT超过之前的会话机器人的关键所在。 这是一种涉及到人类大脑在生成语言时所做事件的实质的钻研,这种训练模式,再加上它们的网络规模和训练数据的规模,才可能做到及时反馈,及时切换权重。从第90页开始,本书用图表的模式,十分形象的意义空间和语义静止法则,我感觉十分无效,在没有NLP根底的状况下,也能了解其中的关联。 ChatGPT的胜利,更加体现了人类大脑的精妙之处,“类人“兴许是一条更加清晰的路线,也会再未来带动更多的模型产出,嵌入再嵌入,最终咱们能够期待更加神奇的AI,能够说ChatGPT是一抹亮色,揭开了黑夜的一角。而本书是理解它最快捷的形式。

August 21, 2023 · 1 min · jiezi

关于机器学习:迈入大模型时代的深度学习使用-Flash-Attention-技术让-Transformer-起飞

Transformer 是 ChatGPT 等大语言模型的核心技术之一,而注意力机制是其的要害局部。然而,规范的注意力实现具备二次工夫和内存复杂度,使其在长序列工作上变慢并耗费大量显存。这限度了 Transformer 可能建模的上下文长度,同时使得大尺度模型的训练和推理工夫缩短。 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness [1] 提出了一种称为 Flash Attention 的新注意力算法,该算法缩小了注意力机制所需的内存拜访次数。这使得注意力运算更疾速且内存高效,同时仍放弃数值精确性。 图|FlashAttention 的运行机制 [1]Flash Attention 使用了两种次要技术:1. 分块 - 它将输出划分成块,并独自解决每个块的注意力。 重计算 - 它只存储足够的信息,以便在反向流传期间从新计算注意力矩阵,而不是存储整个矩阵。这缩小了内存应用。与规范注意力相比,Flash Attention 通过缩小内存拜访次数从而进步训练速度并升高显存占用量。相比于基准,Flash Attention在GPT-2和BERT等 Transformer 模型上的训练速度晋升可达 3 倍以上。 图|FlashAttention 模型训练速度比照 [1]FlashAttention NotebookFlash Attention 提供了一种新型高效的 Transformer 减速技术,通过优化 IO 拜访进步了计算速度并升高显存占有。同时通过 Flash Attention 训练取得的模型可能无感知迁徙到规范 Transformer 框架中而不就义运算精度。 本期 NoteBook 中具体介绍了 Flash Attention 技术的基本原理,同时提供了 GPT 模型的上手案例以便于读者更加容易了解与应用 Flash Attention 技术。 点击下方图片,拜访本期 Notebook: Reference:[1] https://doi.org/10.48550/arXiv.2205.14135 欢送来 Notebook 案例广场,获取更多有意思的notebook实际~感兴趣的同学也能够点击原文查看。

August 21, 2023 · 1 min · jiezi

关于机器学习:设计一个基于大数据的机器学习全自动记账系统基础篇

随着近些年消费结构的扭转,抵制消费主义的行为越来越风行,越来越多的年轻人开始意识到集体财务管理的重要性。与此同时,年轻人也越来越意识到,如果他们想要实现本人的财务指标,如购买屋宇、投资、游览等,就须要把握无效的财务管理技能。因而,记账曾经成为了日常生活中不可或缺的一部分。 但于此同时,真正尝试过记账的小伙伴很多,能年复一年保持下来的却很少。起因在于记账是一个太过机械性的行为,且很容易因为或主观或主观的因素遗记漏记。这样记账变得枯燥乏味的同时,数据还不够牢靠,无奈精确地记录生产趋势,从而导致记账的能源有余。 那么,此时如果有一个可能齐全自动化的记账零碎,可能齐全不须要你手动录入每一笔交易,全自动实现所有的数据荡涤和分类,并主动地剖析生产趋势,最终以图表等模式生成报表,直观地展现进去,你会不会感觉很不便,记账的能源也会大大加强呢?这就是我近些年来始终在思考和优化的财务管理指标。 记账模板展现先展现成绩,以加强大家的记账能源。我应用了腾讯文档作为所有账单汇总的数据源。因为它反对多人合作,且能够随时随地在任何设施下面批改,且 UI 设计杰出,非常适合作为小数据量的账单数据库应用。 以下在不同期间依据本身需要优化进去的财务报表,从下面能够很清晰直观地看到本人的月度生产趋势,以及各个生产类别在每个月的占比,均摊及统计变化趋势。 甚至依据本身定制的须要,还能够展现应用的领取形式占比、每年各类别均摊收入及变化趋势等,都能很直观的以图表的模式展现进去。 当然只展现整体的显示成果,具体的数据波及个人隐私都打了厚码,影响好看见谅。 那么接下来就开始从零开始一一解说如何设计一个这样的主动记账零碎了。 一个齐全自动化的记账零碎,大体由三个重要局部组成:数据获取、数据荡涤和数据分析。我将依据这三个局部顺次介绍。 数据获取数据获取是一个齐全自动化记账零碎的第一步,也是最重要的一步。交易数据的准确性以及信息丰盛度间接决定了咱们后续的数据荡涤和数据分析的成果。因而,咱们须要尽可能抉择信息量更大的数据源,以获取更多的每条交易更多的上下文信息,从而缩小进一步人工标注的干涉。 对中国大陆来说,微信和支付宝就是国民级的领取软件,它足够遍及和便当,简直不须要大多数人扭转交易习惯。此外,它们的交易数据也是最丰盛的。因而,咱们的数据获取就以微信和支付宝为主。 但很可怜的是,与国外一些信用卡每月会定期发送账单邮件不同,微信和支付宝并不会被动推送交易账单,并且没有凋谢获取交易数据的 API,且安全性校验很简单,也无奈应用无头的爬虫来获取数据。因而咱们须要通过自行操作来获取交易账单。(当然,如果由违心折腾的小伙伴也能够思考模仿用户的行为获取账单) 微信领取账单获取微信领取账单的获取须要在挪动端实现(毕竟小而美)。须要在本人的微信 APP 中,顺次点击我 => 服务 => 钱包 => 账单 => 常见问题 => 下载账单 => 用于集体对账,输出账单工夫 和 邮箱地址,即可将账单发送到你的邮箱中。下载到本地后,输出发送到微信的明码,即可获取微信领取账单。 然而,微信领取的账单只能获取最近三个月的数据。因而,咱们最多每三个月就须要更新下载账单。 支付宝账单获取支付宝账单的获取须要在 PC 端支付宝官网实现。登录后抉择 我是个人用户 => 我的支付宝 => 交易记录,就能够抉择对应的交易时间段,抉择下载账单为 Excel 格局 ,即可获取到支付宝账单。 其余数据源当然,如果微信和支付宝不是你次要应用的交易工具。其实所有的银行 APP 都提供打印流水服务,齐全能够应用你次要应用的交易工具来作为数据源。当然具体入口可能会有区别,且单条交易记录的信息丰盛度可能有余,须要手动补充,在此就不加赘述了。 数据荡涤数据荡涤是一个记账零碎很重要的一步。因为这种自动化导出的账单必然是十分芜杂的,不同的数据源,其交易记录的格局都不一样,且信息丰盛度也不一样。因而,咱们须要对不同的数据源进行不同的数据荡涤。 数据荡涤的目标,首先是对立好来自不同数据源的格局以不便接下来的综合剖析,其次是剔除掉一些咱们不关怀的噪声,例如我只想记录 100 元以上的大宗交易,或者我不心愿集体不同账户间接的转账被计入进来等等,这部分也齐全能够依据本身的需要进行定制。 观前重要揭示: 如果有读者齐全没有编程根底也齐全不必胆怯,能够在 Excel 中自行操作出截然不同的格局,再合并数据即可,应用代码只是为了晋升自动化效率。当然,我之后也将开源所有脱敏的预处理与训练代码,有趣味的小伙伴能够自行尝试。 以下的脚本都以 typescript 为例,也齐全能够应用任何你所相熟的语言。 上面依然以微信和支付宝为例,来介绍如何进行数据荡涤。 首先是对立各个数据源的账单格局。如果咱们关上了在上一步中获取的微信与支付宝的账单文件,会发现它们之间其实有很多信息都很类似,能够通过肯定的规定合并起来。例如,它们都有交易工夫、交易类型、交易对方、交易金额等信息。因而,咱们能够将它们对立为一个格局: interface IBookKeepingRow { 交易工夫:Date; 类型:RecordType | ""; "金额(元)": string; "收/支": "收入" | "支出" | "/"; 领取形式:string; 交易对方:string; 商品名称:string; 备注:string;}找到了指标格局,接下来咱们来看看如何将数据源进行转换。 ...

August 21, 2023 · 3 min · jiezi

关于机器学习:狗狗求职记AI-面试人类辅助美研究所利用-628-只拉布拉多数据提升嗅觉检测犬选拔效率

内容一览: 犬类嗅觉灵活,是执行艰难工作的得力助手。然而,工作犬提拔须要通过严格的筛选和训练,淘汰率极高。利用监督式机器学习和工作数据,能够用来预测人类工作体现,然而,目前尚未发现相似的犬类钻研。 关键词: 工作犬 监督式机器学习 随机森林作者|daserney 编辑|三羊 本文首发于 HyperAI 超神经微信公众平台~ 在公园的绿地上、大街小巷的角落里、经常能够看到狗狗的身影。除了作为人类的陪伴,带来欢畅与刺激外,还有许多非凡的狗狗正默默从事着重要的工作,服务于人类社会,他们被称为工作犬。 工作犬品种多样,包含军警犬、搜救犬和服务犬等,每一种类别下又分为许多不同的业余畛域。其中,嗅觉侦测犬的次要工作是利用自身超强的嗅觉来检测各种特定的物质,例如爆炸物、毒品等。其嗅觉能力对于爱护人类社会的平安,起着不可代替的作用。 大多数未经训练的工作犬售价在 4-8 万美元,如果将训练老本纳入思考,价格可能翻倍。然而,工作犬的整体训练成功率低于 50%,亟需开发更无效的提拔和训练方法。 近期,来自美国全国儿童医院阿比盖尔·韦克斯纳研究所 (The Abigail Wexner Research Institute) 的 Alexander W. Eyre,以及洛基维斯塔大学 (Rocky Vista University) 的 Isain Zapata 等钻研人员,利用美国运输平安管理局嗅觉检测队 628 只拉布拉多猎犬的数据,比照 3 种模型,预测猎犬是否通过预训练进入正式训练阶段,并发现了影响嗅觉检测犬体现的行为个性。 目前该钻研已公布在《Scientific Reports》期刊上,题目为「Machine learning prediction and classification of behavioral selection in a canine olfactory detection program」。 该研究成果已发表在《Scientific Reports》 论文地址: https://www.nature.com/articles/s41598-023-39112-7#Sec8 试验办法数据介绍:AT + Env 预测猎犬体现该钻研数据来自美国运输平安管理局 (TSA) ,在 2002 – 2013 年期间进行的一项嗅觉检测犬豢养和训练打算。该数据集蕴含 628 只拉布拉多猎犬的评分,这些猎犬在间断 15 个月的寄养期间内,每 3 个月承受两项测试。 ...

August 21, 2023 · 2 min · jiezi

关于机器学习:头疼卷积神经网络是什么CNN结构训练与优化一文全解

本文全面探讨了卷积神经网络CNN,深入分析了背景和重要性、定义与档次介绍、训练与优化,详细分析了其卷积层、激活函数、池化层、归一化层,最初列出其训练与优化的多项关键技术:训练集筹备与加强、损失函数、优化器、学习率调整、正则化技巧与模型评估调优。旨在为人工智能学者应用卷积神经网络CNN提供全面的领导。 作者 TechLead,领有10+年互联网服务架构、AI产品研发教训、团队治理教训,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人 一、引言卷积神经网络(Convolutional Neural Networks, CNN)的复杂性和灵活性使其成为深度学习畛域的外围钻研主题之一。在本引言局部中,咱们将深入探讨CNN的历史背景、基本原理、重要性以及其在迷信和工业畛域的影响。 1.1 背景和重要性卷积神经网络的灵感源自人类视觉零碎,特地是视觉皮层中的神经元构造。自Hubel和Wiesel在1962年的开创性工作以来,这一理念曾经引发了一系列钻研和倒退。 晚期倒退: 由Yann LeCun等人在上世纪80年代末到90年代初开发的LeNet-5被视为第一个胜利的卷积神经网络。LeNet-5在手写数字辨认方面获得了令人印象粗浅的后果。古代崛起: 随着硬件的疾速停顿和大数据的涌现,CNN在21世纪初开始从新崛起,并在各个领域实现了突破性停顿。CNN的重要性不仅体现在其精度和效率上,而且还体现在其实践洞见上。例如,卷积层通过共享权重缩小了参数数量,这有助于更无效地训练模型,还加强了模型对平移不变性的了解。 1.2 卷积神经网络概述卷积神经网络是一种前馈神经网络,它的人工神经元能够响应四周单元的部分区域,从而可能辨认视觉空间的局部结构特征。以下是卷积神经网络的要害组成部分: 卷积层: 通过卷积操作检测图像的部分特色。激活函数: 引入非线性,减少模型的表达能力。池化层: 缩小特色维度,减少模型的鲁棒性。全连贯层: 在解决空间特色后,全连贯层用于进行分类或回归。卷积神经网络的这些组件协同工作,使得CNN可能从原始像素中主动学习有意义的特色层次结构。随着深度减少,这些特色从根本形态和纹理逐步形象为简单的对象和场景体现。 卷积神经网络的独特劣势在于其可能自动化许多传统机器学习中须要人工干预的特色工程局部。这一点不仅使其在许多工作中获得了优越性能,还激发了宽泛的学术和工业界的趣味。 二、卷积神经网络层介绍卷积神经网络由多个层组成,每个层具备特定的目标和性能。这一部分将探讨卷积操作、激活函数、池化层、归一化层基本概念。 2.1 卷积操作卷积操作是卷积神经网络的外围,波及多个简单的概念和细节。咱们将逐个介绍它们。 卷积核与特色映射卷积核是一个小型的矩阵,通过在输出上滑动来生成特色映射。每个卷积核都能捕捉不同的特色,例如边缘、角点等。 卷积核大小卷积核的大小影响了它能捕捉的特色的尺度。较小的卷积核能够捕捉更粗疏的特色,而较大的卷积核能够捕捉更宽泛的特色。 # 应用3x3的卷积核conv_layer_small = nn.Conv2d(3, 64, 3)# 应用5x5的卷积核conv_layer_large = nn.Conv2d(3, 64, 5)多通道卷积在多通道输出下进行卷积,每个输出通道与一个卷积核进行卷积,而后所有的后果相加。这容许模型从不同的通道捕捉不同的特色。 步长与填充步长和填充管制卷积操作的几何属性。 步长步长定义了卷积核在输出上挪动的速度。较大的步长能够缩小输入的尺寸,而较小的步长则放弃尺寸不变。 # 应用步长2conv_layer_stride2 = nn.Conv2d(3, 64, 3, stride=2)填充填充通过在输出边缘增加零来管制输入的尺寸。这有助于管制信息在卷积操作中的失落。 # 应用填充1,使得输入尺寸与输出尺寸雷同(假如步长为1)conv_layer_padding1 = nn.Conv2d(3, 64, 3, padding=1)空洞卷积(Dilated Convolution)空洞卷积是一种扩大卷积核感触野的办法,它在卷积核的元素之间插入空白。这容许网络捕捉更宽泛的信息,而不减少卷积核的大小或计算量。 # 应用空洞率2的卷积核conv_layer_dilated = nn.Conv2d(3, 64, 3, dilation=2)分组卷积(Grouped Convolution)分组卷积通过将输出通道分组并对每组应用不同的卷积核来扩大卷积操作。这减少了模型的容量,并使其可能学习更简单的示意。 # 应用2个分组conv_layer_grouped = nn.Conv2d(3, 64, 3, groups=2)2.2 激活函数激活函数在神经网络中起到了至关重要的作用。它们减少了模型的非线性,从而使其可能学习和迫近简单的函数。 ...

August 21, 2023 · 2 min · jiezi

关于机器学习:马修斯相关系数MCC简介

在评估机器学习模型的性能时,F1score都被首选指标。在本文中,咱们将介绍一个值得更多关注和认可的代替度量:马修斯相关系数(MCC)。 F1score通过协调准确率和召回率来计算,旨在在两者之间获得均衡。然而假如咱们有一个具备以下混同矩阵的数据集: 在这种状况下,数据集代表了一种常见疾病的医学测试,只有大量正例。混同矩阵表明该模型具备高的真反例(TN)率,但具备低的真正例(TP)率。以下是精确度、召回率和F1分数的计算结果: Precision = TP / (TP + FP) = 25 / (25 + 10) ≈ 0.714Recall = TP / (TP + FN) = 25 / (25 + 5) = 0.833F1 Score = 2 (Precision Recall) / (Precision + Recall) ≈ 0.769F1的问题在0.769左右,这仿佛是一个正当的体现。然而大量脱漏的正例也可能对事实世界产生重大影响。 所以咱们引入一个新的指标:马修斯相关系数(Matthews Correlation Coefficient,MCC) 马修斯相关系数MCC马修斯相关系数 Matthews coefficient 是一种用于评估二元分类模型性能的指标,特地实用于解决不均衡数据集。它思考了真正例(TP)、真反例(TN)、假正例(FP)和假反例(FN),提供一个可能总结分类品质的繁多数值。 MCC的取值范畴在-1到+1之间,其中: +1 示意完满预测0 示意随机预测-1 示意预测与理论察看齐全不统一MCC的计算公式为: 在这个公式中: TP:真正例(正确预测的正例)TN:真反例(正确预测的负例)FP:假正例(谬误预测的正例)FN:假反例(谬误预测的负例)sqrt:平方根MCC思考了所有四个值(TP、TN、FP、FN),因而实用于存在类别不均衡的数据集,其中一个类别可能比另一个类别更常见。特地是心愿评估模型性能而不受类别散布影响时,MCC十分有用。 依据下面的例子,咱们的MCC计算结果为: MCC = (25 * 9000 - 10 * 5) / sqrt((25 + 10) * (25 + 5) * (9000 + 10) * (9000 + 5)) MCC ≈ 0.517MCC值约为0.517。 ...

August 18, 2023 · 1 min · jiezi

关于机器学习:华为昇腾-import-acl-报错-ModuleNotFoundError-No-module-named-acl

https://gitee.com/ascend/samples/issues/I7TWXS#note_20629228 首先,你要晓得 acl 在哪里 acl 是一个 so 文件,能够让 cpython 间接调用的 so 文件,是 acnn 的一部分 pypi 上下载不到 acl所以你要调用 acl,首先要装置 acnn acnn 默认的装置门路在 /usr/local/Ascend/ascend-toolkit/acl 默认的装置门路在 /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/lib64/libamctacl.so 留神我这里是 arm 的,你的要是 x86 的,那么 acl 的门路是不一样的而后你要晓得 python 是怎么导包的 有一个环境变量叫做 PYTHONPATH,这个环境变量是决定 python 去哪里导包的 所以要导入 acl 就很简略,把 acl.so 文件所在门路退出 PYTHONPATH 环境变量就行 你能够把 PYTHONPATH 环境变量的值了解为一个 list,用 ; 宰割如果你胆怯配置 PYTHONPATH,或者对 linux 、python 等等啥都不相熟,持续往下看 acnn 曾经默认给你配好了 你装置 acnn 之后,在 acnn 的装置门路上面,会有一个 set_env.sh 比方在我这里的门路就是 /usr/local/Ascend/ascend-toolkit/set_env.sh 查看改文件内容 export ASCEND_TOOLKIT_HOME=/usr/local/Ascend/ascend-toolkit/latestexport LD_LIBRARY_PATH=${ASCEND_TOOLKIT_HOME}/lib64:${ASCEND_TOOLKIT_HOME}/lib64/plugin/opskernel:${ASCEND_TOOLKIT_HOME}/lib64/plugin/nnengine:$LD_LIBRARY_PATHexport PYTHONPATH=${ASCEND_TOOLKIT_HOME}/python/site-packages:${ASCEND_TOOLKIT_HOME}/opp/built-in/op_impl/ai_core/tbe:$PYTHONPATHexport PATH=${ASCEND_TOOLKIT_HOME}/bin:${ASCEND_TOOLKIT_HOME}/compiler/ccec_compiler/bin:$PATHexport ASCEND_AICPU_PATH=${ASCEND_TOOLKIT_HOME}export ASCEND_OPP_PATH=${ASCEND_TOOLKIT_HOME}/oppexport TOOLCHAIN_HOME=${ASCEND_TOOLKIT_HOME}/toolkitexport ASCEND_HOME_PATH=${ASCEND_TOOLKIT_HOME}不要间接复制我的,环境、平台、版本等等不同,文件内容不同你就会发现这个外面曾经帮你配好 PYTHONPATH 了 ...

August 17, 2023 · 1 min · jiezi

关于机器学习:预见外滩大会创新密码分论坛大咖齐聚共探数据安全未来走向

受害于科技迅猛发展,社会的数据产出和数据需要都如井喷式暴发增长。最近衰亡的生成式人工智能、大语言模型等新型商业模式,其底层无不依赖大量的数据。党中央国务院印发的《对于构建数据根底制度更好施展数据因素作用的意见》,为深入数据因素市场化配置改革,开释数据因素价值,推动数字经济高质量倒退提供了政策疏导和方向指引。 然而数据与土地、劳动力、资本等传统生产因素毕竟存在基本的不同,数据的大规模流通也给业界带来了微小的平安挑战,传统的平安技术在日益增长的数据安全高要求背后已难以为继。平安多方计算、同态加密、秘密计算、硬件明码、端到端加密等前沿明码技术在反对数据因素流通方面的劣势逐渐展示,开始失去公众更多的器重。 这些前沿平安技术以后已倒退到何种水平?还有哪些难题亟待攻克?已成为学界与产业界独特关注的课题。 9月7日,由中国明码学会大数据与人工智能平安专委会主办,蚂蚁技术研究院承办的“翻新明码技术与利用”论坛将在INCLUSION·外滩大会召开,多位学术界、产业界的顶级专家将进行相干分享。 “翻新明码技术与利用”论坛将邀请中国明码学会大数据与人工智能平安专委会主任委员、上海交通大学网络空间平安学院院长谷大武,中国明码学会大数据与人工智能平安专委会副主任委员、蚂蚁团体副总裁兼首席技术平安官韦韬进行致辞分享。除此之外,还有来自企业界及学术界的各位大咖为咱们现身说法,输入洞见。议程亮点,先睹为快。 01报告题目:《硬件安全与数据因素市场》论坛讲者:樊俊锋 深圳市纽创信安科技开发有限公司 CEO讲者介绍:樊俊锋,博士毕业于比利时鲁汶大学。次要钻研畛域为高性能明码芯片设计、芯片侧信道剖析、故障注入剖析、物理不可克隆函数等。曾负责国内明码研讨会主办的芯片平安大会(CHES)的程序委员会成员,并被选为CHES 2021大会主席。他于2014年开办纽创信安,致力于推动金融级芯片平安技术在通用芯片中的利用。 报告摘要:硬件安全是一个“古老”的技术,在金融领取、身份认证等畛域取得了宽泛的利用。本报告将从构建数据因素市场的角度从新扫视硬件安全技术及其利用,重点剖析数据产生、数据传输、数据存储和数据计算四个环节的硬件安全需要,并探讨如何构建可监管、易部署的数据因素底层软硬件平台。 02报告题目:《平安两方GPT推理:技术与瞻望》论坛讲者:刘健 浙江大学 研究员讲者介绍:刘健,国家级青年人才,浙江大学“百人打算”研究员,博士生导师,2018年于芬兰阿尔托大学取得博士学位,同年退出加州大学伯克利分校负责博士后研究员。目前负责浙江大学金融科技平安国内钻研核心副主任。获CCF-A类期刊最佳论文奖、华为奥林帕斯先锋奖。主持国家自然科学基金、浙江省重点研发打算以及与行业领军企业的多个产学研合作项目。 报告摘要:ChatGPT被认为是人工智能畛域的一次重大反动,但它引发了重大的用户隐衷关切,因为用户提交的prompt可能蕴含重要敏感信息。GPT类模型参数量大且激活函数简单,现有的平安推理解决方案无奈反对此类模型。本报告次要介绍浙大网安在平安两方GPT推理方面的相干工作,包含第一个平安两方GPT推理框架:CipherGPT,该框架提出一系列翻新的密码学协定,相较于SOTA协定,效率均有显著进步。然而,目前平安两方GPT推理仍无奈达到实用,本报告还将探讨平安两方GPT推理将来的倒退路线。 03报告题目:《性能优化的后果模式暗藏可搜寻加密技术》论坛讲者:王剑锋 西安电子科技大学 传授讲者介绍:王剑锋,西安电子科技大学网络与信息安全学院传授,博士生导师,现负责中国明码学会青年工作委员会委员,中国明码学会大数据与人工智能平安专委会委员等。次要钻研畛域为密码学、云数据安全和区块链隐衷爱护技术等。在网络安全与密码学国内出名会议/期刊发表学术论文70余篇,其中CCF/CACR举荐高水平论文30余篇,包含ACM CCS、ESORICS、IEEE TC、IEEE TDSC、IEEE TIFS、IEEE TMC、IEEE TSC等;申请发明专利20余项,已受权10余项; 主持国家自然科学基金面上我的项目、国家重点研发打算青年科学家我的项目(单干单位负责人)、陕西省重点研发打算国内单干重点项目、陕西省自然科学基金、陕西省留学人员科研活动择优赞助我的项目等科研项目;取得2017年中国明码学会优良博士学位论文奖(首届)、2019年教育部高等学校自然科学奖二等奖、2018年陕西省高等学校科学技术奖一等奖。 报告摘要:密文多值映射 (Encrypted multi-map, EMM) 引起密文平安检索畛域的宽泛关注。大多数现有的EMM结构会泄露查询键的数量,进而会引发透露滥用攻打。为了抵制这种攻打,驰名明码学家Seny Kamara等人在欧密会 (EUROCRYPT 2019) 上首次提出检索后果数目暗藏的密文多值映射 (Volume-hiding EMM),同时指出“如何结构后果无损且检索复杂度最优的Volume-hiding EMM?”是一个公开问题。本报告介绍了第一个通信复杂度和存储开销最优的Volume-hiding EMM协定,创新性提出了基于异或过滤器(XOR Filter)的新型密文索引构造,冲破了Volume-hiding EMM效率瓶颈,解决了检索后果无损且检索复杂度最优的拜访模式暗藏密文检索计划的设计难题。在此基础上,进一步通过设计基于XOR 的同态伪随机函数,实现了对指定地位元素异或值的完整性验证,设计了第一个歹意服务器模型下可验证的Volume-hiding EMM计划。该计划同样达到了最优的检索和存储开销。 04报告题目:《End-to-Same-End Encryption: Modularly Augmenting an App with an Efficient, Portable, and Blind Cloud Storage》 论坛讲者:陈隆 中国科学院软件研究所 副研究员讲者介绍:陈隆,中国科学院软件研究所可信计算与信息保障实验室副研究员,特聘钻研骨干。于2018年在中科院软件所获博士学位,2018年至2021年在新泽西理工学院计算机学院负责博士后研究员,2021年7月入职中国科学院软件研究所,并入选中国科学院海内优秀人才我的项目。陈隆博士长期从事实践与利用明码相干畛域钻研,钻研方向包含后量子明码、全同态加密、平安协定和平安存储等。陈隆博士正在负责国家“十四五”重点研发打算“抗量子明码体制设计实践与剖析技术”我的项目负责人,并入选中科院根底钻研青年团队“面向 6G 通信安全的明码”。他在USENIX Security、CRYPTO、NDSS、ASIACRYPT、TCC、PKC、TIFS等顶级国内明码与信息安全会议与期刊上发表了多篇论文。 报告摘要:The cloud has become pervasive, and we ask: how can we protect cloud data against the cloud itself? For messaging Apps, facilitating user-to-user private communication via a cloud server, security has been formulated and solved efficiently via End-to-End encryption, building on existing channels between end-users via servers (i.e., exploiting TLS, certificates, and encryption, without the need to program new primitives). However, the analogous problem for Apps employing servers for storing and retrieving end-user data privately, solving the analogous "privacy from the server itself" (cloud-blind storage) where (1) based on existing messaging/infrastructure and (2) allowing user mobility, is, in fact, still open. Existing proposals, like password protected secret sharing (PPSS), target end-to-same-end encryption of storage, but need new protocols, whereas most popular commercial cloud storage services are not programmable. Namely, they lack the simplicity needed for being portable over any cloud storage service.Here, we propose a novel system for storing private data in the cloud storage with the help of a key server (necessary given the requirements). In our system, the user data will be secure from any of: the cloud server, the key server, or any illegitimate users, while the authenticated user can access the data on any devices just via a correct passphrase. The most attractive feature of our system is that it does not require the cloud storage server to support any newly programmable operations, except the existing client login and the data storing. Moreover, our system is simply built on top of the existing App password login system, so the user only needs one passphrase to login the App and access his secure storage. The security of our protocol, in turn, is proved under our rigorous models, and the efficiency is further demonstrated by real-world network experiments over Amazon S3. We remark that a very preliminary variant, based on our principles, was deployed by Snapchat in their My Eyes Only module, serving hundreds of millions of users! ...

August 17, 2023 · 3 min · jiezi

关于机器学习:计算机视觉五大核心研究任务全解分类识别检测分割人体分析三维视觉视频分析

本篇文章深入探讨了计算视觉的定义和次要工作。内容涵盖了图像分类与辨认、物体检测与宰割、人体剖析、三维计算机视觉、视频了解与剖析等技术,最初展现了无监督学习与自监督学习在计算机视觉中的利用。作者 TechLead,领有10+年互联网服务架构、AI产品研发教训、团队治理教训,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人一、引言计算机视觉(Computer Vision)是一门将人类的视觉能力赋予机器的学科。它涵盖了图像识别、图像处理、模式识别等多个方向,并已成为人工智能钻研的重要组成部分。本文将具体介绍计算机视觉的定义、历史背景及倒退、和以后的应用领域概览。 1.1 计算机视觉的定义计算机视觉不仅是一门钻研如何使机器了解和解释视觉世界的迷信,更是一种谋求让机器领有与人类相近视觉解决能力的技术。它通过剖析数字图像和视频,使得机器可能辨认、追踪和了解事实世界中的对象和场景。此外,计算机视觉还包含图像复原、三维重构等深刻的钻研方向。 1.1.1 核心技术核心技术包含但不限于特征提取、指标检测、图像宰割、3D重建等,通过多个技术的联合实现更为简单的视觉工作。 1.1.2 利用场景 计算机视觉被广泛应用于主动驾驶、医疗诊断、智能监控等泛滥畛域,推动了相干产业的疾速倒退。 1.2 历史背景及倒退 计算机视觉的倒退历程丰富多彩,从上世纪60年代初步摸索到现在的深度学习技术反动,能够分为以下几个次要阶段: 1.2.1 1960s-1980s: 初期阶段图像处理: 次要关注简略的图像处理和特色工程,例如边缘检测、纹理辨认等。模式识别: 诸如手写数字辨认等高级工作的实现。1.2.2 1990s-2000s: 机器学习时代特色学习: 通过机器学习办法使得特色学习和对象辨认变得更加简单和弱小。反对向量机和随机森林的利用: 提供了新的解决方案。1.2.3 2010s-当初: 深度学习的反动卷积神经网络: CNN的广泛应用为计算机视觉带来了突破性停顿。迁徙学习和强化学习的联合: 在计算机视觉工作上取得了重大进展。1.3 应用领域概览 计算机视觉曾经渗透到了许多行业,其利用不仅仅局限于科技领域,更宽泛地影响了咱们的日常生活。 1.3.1 工业自动化利用图像识别技术,自动化地进行产品质量检测、分类,进步了生产效率和精确度。 1.3.2 医疗图像剖析计算机视觉联合深度学习进行疾病诊断和预测,扭转了传统医疗形式。 1.3.3 主动驾驶计算机视觉在主动驾驶中起到关键作用,实时剖析周围环境,为车辆门路布局和决策提供精确信息。 1.3.4 虚拟现实与加强事实通过计算机视觉技术创立沉迷式的虚拟环境,为娱乐和教育等畛域提供了全新的体验形式。 二、计算机视觉五大外围工作当然,技术深度和内容的丰富性是十分重要的。以下是针对所提供内容的改良版本: 2.1 图像分类与辨认图像分类与辨认是计算机视觉的外围工作之一,波及将输出的图像或视频帧调配到一个或多个预约义的类别中。本章节将深入探讨这一工作的要害概念、技术演进、最新的研究成果,以及将来可能的倒退方向。 2.1.1 图像分类与辨认的基本概念图像分类是将图像调配到某个特定类别的工作,而图像识别则进一步将类别关联到具体的实体或对象。例如,分类工作可能会辨认图像中是否存在猫,而辨认工作会辨别不同品种的猫,从宠物猫到家养豹子的辨别。 2.1.2 晚期办法与技术演进晚期的图像分类与识别方法重依赖于手工设计的特色和统计机器学习算法。这些办法的倒退历程包含: 特征提取: 采纳如 SIFT、HOG等特色来捕获图像的部分信息。分类器的利用: 利用SVM、决策树等分类器进行图像的分级。然而,这些办法在许多理论利用中的性能受限,因为特色工程的复杂性和泛化能力的限度。 2.1.3 深度学习的引入与变革随着深度学习的呈现,图像分类与辨认获得了显著的停顿。尤其是卷积神经网络(CNN)的引入,为畛域内的钻研和理论利用带来了革命性的扭转。 卷积神经网络在图像分类中的利用卷积神经网络通过层叠的卷积层、池化层和全连贯层来主动学习图像特色,打消了手工设计特色的须要。上面是一个简略的CNN构造示例: from keras.models import Sequentialfrom keras.layers import Conv2D, MaxPooling2D, Flatten, Dense# 定义模型model = Sequential()model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Flatten())model.add(Dense(128, activation='relu'))model.add(Dense(1, activation='sigmoid'))# 输入模型构造model.summary()总结图像分类与辨认作为计算机视觉的基石,其技术演进完满地反映了整个畛域的疾速停顿。从手工设计的特色到简单的深度学习模型,该畛域不仅展现了计算机视觉的弱小能力,还为将来的翻新和倒退奠定了松软的根底。随着更先进的算法和硬件的倒退,咱们期待将来图像分类与辨认可能在更多场景中发挥作用,满足人们日益增长的需要。 ...

August 17, 2023 · 2 min · jiezi

关于机器学习:使用Azure-ML-Studio预测模型

原文地址:应用Azure ML Studio预测模型Introduction应用Azure ML Studio对提供的数据集创立预测模型。 For this assignment, you are to create a predictive model in Azure ML Studio for the attached dataset and turn in a report as specified in the following pages. You should use whichever data preparation, modeling, and model assessment techniques that were covered in this portion of the class that you believe result in the best model. You will be performing an Exploratory Data Analysis, Model Development and Training, and Model Deployment activities and preparing a report in PowerPoint form. ...

August 17, 2023 · 3 min · jiezi

关于机器学习:技术专题API资产识别大揭秘一

在API平安威逼一直加剧、多样化,数字化零碎面临着微小的平安挑战背景下,企业必须踊跃构建API平安能力。而企业API平安防护的首要任务是API资产进行清晰理解和无效治理。本期,咱们将揭示API资产辨认的关键技术,以帮忙企业高效清晰地实现API资产梳理工作。一、API资产辨认技术概述API资产辨认背景1、API资产梳理到底有什么意义?API资产梳理的重要性其实要先于API平安能力的建设,平安有效性依赖于是否精确辨认被爱护资产并进行纳管。对企业来说,各个业务外部、跨业务、对外开放、三方集成的场景下,到底有哪些API接口,这些接口的裸露状况、应用状况、危险状况,以及责任归属须要梳理分明,从而可能有针对性地接入平安能力,保障API资产的平安。2、API资产如何界定?要想精确全面辨认API资产,首先要明确定义API资产的范畴。一条API资产根底信息通常包含以下内容,如下图的第二层所示:其中API惟一资产标识将由API资产根底信息中的操作方法、端点门路、参数计算而来。依据上图可见,API资产的信息除了根底信息外,还必须蕴含API资产关联信息,如:部署IP、API拜访源、通信次数等统计信息;API通信拓扑,性能标签、业务域划分信息;API平安危险监测信息;API数据安全监测信息等。3、现有API辨认伎俩或者形式的误区是什么?目前,用于平安工具梳理资产的技术实现次要包含自动化主机和端口扫描以及爬虫技术。因为API接口并没有对立的用户界面,而是研发团队外部约定的格局标准,因而大多数主机扫描、端口扫描和爬虫技术无奈被动揣测API的拜访门路和参数格局,从而无奈发现API资产。这就导致以后大多数自动识别工具的后果将URL谬误地辨认为API。实际上URL是对立资源定位符,是对能够从互联网上失去资源的地位和拜访办法的一种简略示意。用于拜访特定的网页、图像或文件。它和API从定义和作用上就有实质的区别。举个栗子:在此URL中,https是协定,http://www.example.com是域,/news/article123是指向网站上特定文章的门路。此外URL还包含一些动态资源。来看API的示例:对天气查问的API而言:https://api.weatherdata.com是天气数据 API 的根本 URL,/current?location=city123指定须要“city123”参数以后天气数据的端点。并且API 可能会以结构化格局(例如 JSON)响应数据,其中蕴含温度、湿度和其余天气相干信息。所以,API的组成因素中蕴含了URL。4、各类辨认伎俩比照,企业该如何抉择?通过比拟API资产发现成果、实现老本和业务入侵性等方面,能够得出通过流量还原API资产成为了API资产辨认最佳解决方案。除此之外,流量还原API资产的劣势还在于:API辨认是继续进行的过程,一旦发现新API,应立即标准补充信息。通过流量还原,咱们能够从各个维度监测API资产,并继续对其进行监测。在进行平安测试期间,测试人员能够利用流量复原API资产来更全面地理解API的工作形式,以及对不同类型的数据和申请的解决。这个过程有助于发现API资产中暗藏的安全漏洞和危险。通过上述问题的解答,置信大家对API资产梳理也有所理解。接下来,咱们将介绍API资产辨认的关键技术,以便帮忙大家了解如何从流量中精确辨认API资产。首先咱们要理解:API有哪些分类,它们到底长什么样子?二、API协定与格调依照不同协定和格调模式,API能够分为:RESTful API、GraphQL API、SOAP API、gRPC API、类XML—RPC API及其他技术类型API。不同格调的APIRESTful APIREST API也称为 RESTful API,是遵循 REST 架构标准的利用编程接口(API 或 Web API),反对与 RESTful Web 服务进行交互。REST 是一组架构标准,并非协定或规范。API 开发人员能够采纳各种形式施行 REST。当客户端通过 RESTful API 提出申请时,它会将资源状态表述传递给请求者或终端。该信息或表述通过 HTTP 以下列某种格局传输:JSON(Javascript 对象表示法)、HTML、XLT、Python、PHP 或纯文本。RESTful API也是目前支流的API格调。繁难的例子:HTTP requestGET /api/user?id=1 HTTP response{ "id": 1, "name": "user1"}应用场景:资源集中型服务、访问量大,且对拜访时效要求比拟高的服务、面向公网的,且安全性要求较低的开放型 API 服务等。GraphQL APIGraphQL是一种面向数据的 API 查问格调。传统的 API 拿到的是前后端约定好的数据格式,GraphQL 对 API 中的数据提供了一套易于了解的残缺形容,客户端可能精确地取得它须要的数据,没有任何冗余,也让 API 更容易地随着时间推移而演进。GraphQL最常见的是通过 HTTP 来发送申请,那么如何通过 HTTP 来进行 GraphQL 通信呢?举个栗子,如何通过Get/Post形式来执行上面的GraphQL查问呢?query { me { name}}获取简略的申请内容放在 URL 中,在content-type: application/json状况下公布,将 JSON 格局的内容放在申请体里:Get 形式http:/www.example.com/myapi/graphql?query={me{name}} ...

August 16, 2023 · 2 min · jiezi

关于机器学习:使用-C-API-部署-TVM-模块

更多 TVM 中文文档可拜访 →Apache TVM 是一个端到端的深度学习编译框架,实用于 CPU、GPU 和各种机器学习减速芯片。 | Apache TVM 中文站 应用 C++ API 部署 TVM 模块apps/howto_deploy 中给出了部署 TVM 模块的示例,执行上面的命令运行该示例: cd apps/howto_deploy./run_example.sh获取 TVM Runtime 库惟一要做的是链接到 target 平台中的 TVM runtime。 TVM 给出了一个最小 runtime,它的开销大概在 300K 到 600K 之间,具体值取决于应用模块的数量。大多数状况下,可用 libtvm_runtime.so 文件去构建。 若构建 libtvm_runtime 有艰难,可查看 tvm_runtime_pack.cc(集成了 TVM runtime 的所有示例)。用构建零碎来编译这个文件,而后将它蕴含到我的项目中。 查看 apps 获取在 iOS、Android 和其余平台上,用 TVM 构建的利用示例。 动静库 vs. 零碎模块TVM 有两种应用编译库的办法,查看 prepare_test_libs.py 理解如何生成库,查看 cpp_deploy.cc 理解如何应用它们。 把库存储为共享库,并动静加载到我的项目中。将编译好的库以零碎模块模式绑定到我的项目中。动静加载更加灵便,能疾速加载新模块。零碎模块是一种更 static 的办法,可用在动静库加载不可用的中央。 部署到 Android为 Android Target 构建模型针对 Android target 的 Relay 模型编译遵循和 android_rpc 雷同的办法,以下代码会保留 Android target 所需的编译输入: ...

August 15, 2023 · 1 min · jiezi

关于机器学习:面向轻量化文图检索的-DualEncoder-模型蒸馏算法-ConaCLIP

近日,阿里云机器学习平台PAI与华南理工大学金连文传授团队单干在自然语言解决顶级会议ACL 2023上发表面向轻量化文图检索的dual-encoder模型蒸馏算法ConaCLIP( fully-Connected knowledge interaction graph for CLIP)。ConaCLIP针对轻量化的图文检索工作进行设计,是一种通过全连贯的常识交互图学习形式将常识从dual-encoder大模型中蒸馏到dual-encoder小模型的算法。 论文: Jiapeng Wang, Chengyu Wang, Xiaodan Wang, Jun Huang, Lianwen Jin. ConaCLIP: Exploring Distillation of Fully-Connected Knowledge Interaction Graph for Lightweight Text-Image Retrieval. ACL 2023 (Industry Track) 背景文本-图像检索(Text-Image Retrieval)的目标是在给出一个特定的文本查问时,从一个大型的图像汇合中检索出一个最相干的图像列表。随着信息交互和社交场景的疾速倒退,该工作始终被认为是跨模态利用的一个要害组成部分,并被各种事实世界的场景所需要,如电子商业平台,网站等。 现有的文图检索模型通常能够依据模型架构分为两类:跨流编码器(cross-encoder)和双流编码器(dual-encoder)。跨流编码器通常会增加额定的Transformer层来建模图像和文本特色之间的深度交互关系。这种架构通常能够进步检索性能,然而毛病是当该类模型利用于整个图像汇合时,会导致检索速度十分迟缓。因为每当给出一个新的文本查问时,每个图像样本都须要进行跨模态的计算成本。相比之下,双流编码器是以一种齐全解耦的形式别离编码视觉和文本输出。该类架构容许图像示意独立于文本查问,而进行事后的计算和重复使用。双流编码器还能够在运行时与疾速近似最近邻(Approximate Nearest Neighbors)搜寻相结合。 只管双流编码器通常是事实利用中的首选,但现有的相干模型如CLIP在计算资源无限的边缘设施或动静索引场景如私人照片/音讯汇合上依然不太实用。为了解决这个问题,咱们的指标是从大规模的预训练双流编码器模型登程,专一于小模型预训练阶段的蒸馏过程,以取得一系列更小、更快、更无效的相应的轻量化模型。常识蒸馏(Knowledge Distillation)最先被提出利用soft targets将常识从老师转移给学生。MoTIS办法简略地反复在文本和图像畛域别离进行模态内蒸馏的过程。然而,这些办法都只波及了模态内的师生常识交互学习。 算法概述与现有的工作不同,咱们的办法引入了全连贯常识交互图(fully-Connected knowledge interaction graph)用于预训练阶段的蒸馏。除了模态内老师-学生交互学习之外,咱们的办法还包含模态内学生-学生交互学习、模态间老师-学生交互学习和模态间学生-学生交互学习,如下图所示。 这种为学生网络建设的全连贯图能够看做是多视角和多任务的学习计划的集成,以此能够增强预训练模型所须要的稳健性和有效性。同时咱们倡议,每种类型的学习过程都应该具体地测试各种不同监督策略的成果。因而,咱们将在下一节中提出并验证各种监督策略对模型体现的影响。 监督策略计划这里咱们提出了以下这些无效的监督策略: InfoNCE loss是一种比照损失函数,如下式所示。MoTIS办法曾经胜利将其利用于预训练蒸馏之中。 Feature-wise distance (FD) loss旨在间接最小化特征向量之间的间隔。这里咱们应用平方的L2范数作为度量: Similarity-wise distance (SD) loss冀望缩小相似矩阵之间的间隔度量: KL-Div loss应用Kullback–Leibler散度来度量预测概率分布和指标概率分布之间的差别,并冀望最小化以下这个指标函数: 值得注意的是,SD loss和KL-Div loss中通常应用两个老师网络的输入作为两个学生网络学习的指标。而咱们这里额定尝试了应用如Figure 1中同色成对箭头作为互相学习的指标,咱们称之为symmetric(Sym)版本。例如,通常的KL-Div loss实现的模态间师生交互学习能够示意为: ...

July 13, 2023 · 1 min · jiezi

关于机器学习:注意力机制中的掩码详解

注意力机制的掩码容许咱们发送不同长度的批次数据一次性的发送到transformer中。在代码中是通过将所有序列填充到雷同的长度,而后应用“attention_mask”张量来辨认哪些令牌是填充的来做到这一点,本文将具体介绍这个掩码的原理和机制。 咱们先介绍下如果不应用掩码,是如何运行的。这里用GPT-2每次应用一个序列来执行推理,因为每次只有一个序列,所以速度很慢: from transformers import GPT2LMHeadModel, GPT2Tokenizer tokenizer = GPT2Tokenizer.from_pretrained('gpt2') gpt2 = GPT2LMHeadModel.from_pretrained('gpt2') context = tokenizer('It will rain in the', return_tensors='pt') prediction = gpt2.generate(**context, max_length=10) tokenizer.decode(prediction[0]) # prints 'It will rain in the morning, and the rain'在显存容许的状况下,应用批处理输出的速度更快,因为咱们在一次推理的过程能够同时解决多个序列。对许多样本执行推理要快得多,但也略微简单一些,上面是应用transformer库进行推理的代码: tokenizer.padding_side = "left" tokenizer.pad_token = tokenizer.eos_token sentences = ["It will rain in the", "I want to eat a big bowl of", "My dog is"] inputs = tokenizer(sentences, return_tensors="pt", padding=True) output_sequences = gpt2.generate(**inputs) for seq in output_sequences: print(tokenizer.decode(seq))transformer库帮咱们解决了很多细节,咱们当初具体的介绍它外面到底做了什么。 ...

July 13, 2023 · 1 min · jiezi

关于机器学习:PyTorch-nn网络层卷积层

文章和代码曾经归档至【Github仓库:https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 pytorch教程 也可获取。nn网络层-卷积层1D/2D/3D 卷积卷积有一维卷积、二维卷积、三维卷积。个别状况下,卷积核在几个维度上滑动,就是几维卷积。比方在图片上的卷积就是二维卷积。 一维卷积 二维卷积 三维卷积 二维卷积:nn.Conv2d()nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')这个函数的性能是对多个二维信号进行二维卷积,主要参数如下: in\_channels:输出通道数out\_channels:输入通道数,等价于卷积核个数kernel\_size:卷积核尺寸stride:步长padding:填充宽度,次要是为了调整输入的特色图大小,个别把 padding 设置适合的值后,放弃输出和输入的图像尺寸不变。dilation:空洞卷积大小,默认为 1,这时是规范卷积,罕用于图像宰割工作中,次要是为了晋升感触野groups:分组卷积设置,次要是为了模型的轻量化,如在 ShuffleNet、MobileNet、SqueezeNet 中用到bias:偏置卷积尺寸计算简化版卷积尺寸计算这里不思考空洞卷积,假如输出图片大小为 $ I \times I$,卷积核大小为 $k \times k$,stride 为 $s$,padding 的像素数为 $p$,图片通过卷积之后的尺寸 $O$ 如下: $O = \displaystyle\frac{I -k + 2 \times p}{s} +1$ 上面例子的输出图片大小为 $5 \times 5$,卷积大小为 $3 \times 3$,stride 为 1,padding 为 0,所以输入图片大小为 $\displaystyle\frac{5 -3 + 2 \times 0}{1} +1 = 3$。 完整版卷积尺寸计算完整版卷积尺寸计算思考了空洞卷积,假如输出图片大小为 $ I \times I$,卷积核大小为 $k \times k$,stride 为 $s$,padding 的像素数为 $p$,dilation 为 $d$,图片通过卷积之后的尺寸 $O$ 如下:。 ...

July 13, 2023 · 3 min · jiezi

关于机器学习:机器学习洞察-挖掘多模态数据机器学习的价值

在过来的数年里,咱们见证了机器学习和计算机科学畛域的很多变动。人工智能利用也愈趋宽泛,正在减速融入人们的日常生活之中。机器学习作为技术外围,也在继续地倒退进化,在更多畛域施展出越来越重要的作用。机器学习会有哪些新的演进趋势和倒退方向?咱们又该如何提前布局,紧跟这一热门技术的前沿变动? 亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!《机器学习洞察》系列文章将基于机器学习的倒退现状,逐个解读和剖析目前机器学习在实际落地中颇具后劲的四个演进趋势,包含多模态机器学习、分布式训练、无服务器推理,以及 JAX 这一新崛起的深度学习框架。 什么是多模态数据机器学习人们听到的声音、看到的食物、闻到的滋味,这些都属于模态信息,而咱们生存在多模态信息互相融合的环境之中。 为了使人工智能能够更好地了解世界,人们须要赋予人工智能学习了解和推理多模态信息的能力。多模态数据机器学习就是指通过建设模型,使机器从多模态中学习各种模态信息,并且实现各个模态的信息交换和转换的过程。 多模态利用范畴宽泛,既涵盖包含人工智能音箱、电商的商品举荐零碎、图像识别等生活化场景,还能够利用于一些工业畛域,包含导航和主动驾驶、生理病变钻研、环境监测和天气预报等等,也能够反对将来元宇宙场景下虚拟人和人类之间沟通等等。 多模态学习畛域的演进随着多模态数据机器学习的热度越来越高,有对于多模态数据机器学习的钻研也迎来许多创新性的冲破,特地是以下三个重要停顿: ZSL:Zero-Shot Learning(University of Tübingen, 2009) https://ieeexplore.ieee.org/document/5206594?trk=cndc-detail CLIP:基于比照文本-图像对的预训练(OpenAI, 2021) https://arxiv.org/abs/2103.00020?trk=cndc-detail ZESREC:基于 Zero-Shot 的举荐零碎(Amazon, 2021) https://www.amazon.science/publications/zero-shot-recommender...Zero-Shot Learning (ZSL)通过训练集图片学习出一些属性,将这些属性相结合失去交融特色之后,匹配与训练集图片不重合的测试集图片,来判断其类别,这一过程就是 Zero-Shot Learning (ZSL),即用见过的图片特色去判断没见过的图片类别。 让咱们先以人类的个别推理过程来做个类比: 假如小明和爸爸一起到动物园玩耍。首先看到了马,于是爸爸通知小明,马就是这个形态的;之后,又看到了老虎,爸爸又通知小明:“看,这种身上有条纹的动物就是老虎。”;最初,又带他去看了熊猫,对他说:“你看这熊猫是黑红色的。” 而后爸爸给小明安顿了一个工作,让他在动物园里找一种他从没见过的动物,叫斑马,并通知了小明有对于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑红色的。”最初小明依据爸爸的提醒,在动物园里找到了斑马。 上述例子中蕴含了一个人类的推理过程,就是利用过来的常识(马,老虎,熊猫的形容),在脑海中推理出新对象(斑马)的具体状态,从而能对新对象进行识别。 例如下图中,从训练集图片 (Seen Classes Data) 中学习出一些属性 (比方 horselike、stripe 和 black&white),而后将这些属性相结合失去交融特色,交融特色刚好和测试集的斑马特色相匹配,最终失去预测后果为斑马: 图片起源:论文《Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer( University of Tübingen, 2009)》 Zero-Shot Learning 蕴含了一个推理的过程,就是如何利用过来的常识,在脑海中推理出新的对象的具体状态,从而对新对象进行识别。 现在通过深度学习和监督学习尽管在很多工作上都能够给出令人惊叹的后果,然而这种学习形式也存在以下弊病: 须要足够多的样本数据,给样本打标签的工作量微小分类后果依赖训练样本,无奈推理辨认新类别这显然难以满足人类对于人工智能的终极设想。而 Zero-Shot Learning 就是心愿可能模仿人类通过推理辨认新类别的能力,使得计算机具备辨认新事物的能力,进而实现真正的智能。 CLIP:基于比照文本-图像对的预训练2021 年之前,在自然语言解决 (Natural Language Processing, NLP) 畛域有很多预训练方法都取得了胜利。例如,GPT-3 175B 从网上收集了近 5 亿 tokens 进行预训练,在很多上游工作上实现 SOTA (State-of-the-Art) 性能和 Zero-Shot Learning。这阐明从海量互联网数据 (web-scale) 中学习,是能够超过高质量的人工标注 NLP 数据集的。 ...

July 12, 2023 · 2 min · jiezi

关于机器学习:基于电商多模态概念知识图谱增强的电商场景图文模型-FashionKLIP

近日,阿里云机器学习平台PAI与复旦大学肖仰华传授团队、阿里巴巴国际贸易事业部ICBU单干在自然语言解决顶级会议ACL2023上发表基于电商多模态概念常识图谱加强的电商场景图文模型FashionKLIP。FashionKLIP是一种电商常识加强的视觉-语言模型。该论文首先设计了从大规模电商图文数据中自动化构建多模态概念级常识图谱的计划,随后将概念级多模态先验常识注入到VLP模型中,以实现跨模态图文样本在概念层面进一步对齐。 论文:Xiaodan Wang, Chengyu Wang, Lei Li, Zhixu Li, Ben Chen, Linbo Jin, jun huang, Yanghua Xiao and Ming Gao, FashionKLIP: Enhancing E-Commerce Image-Text Retrieval with Fashion Multi-Modal Conceptual Knowledge Graph. ACL 2023 (Industry Track) 背景图文检索作为一项风行的跨模态工作,在宽泛的工业利用中具备很强的实用价值。视觉-语言预训练(VLP)模型的蓬勃发展大大提高了跨不同模态数据的示意学习,从而带来了显著的性能晋升。然而,电商畛域的数据具备其本身的个性,如下图(a)所示:1)通用场景的文本大多蕴含残缺的句子构造形容,而电商场景中的形容或查问通常由多个形容性短语组成,形容了产品的材质或格调等细节信息。2)通用畛域的图像通常具备简单的背景;相比之下,商品图像次要蕴含一个大的商品图,没有很多背景物体。 $$(a) 电商场景的图像-文本对示例$$ 基于电商图文的VLP模型Fashion-BERT、KaleidoBERT、CommerceMM、EI-CLIP和FashionViL等大大提高了电商图文检索工作的性能,但应用不同角度的商品图或基于图像块的分类办法仍未能解决细粒度的跨模态对齐问题,因此导致了图像和文本之间的细节匹配不精确,模型不足跨模态语义级对齐能力。其次,通用畛域模型能够通过指标检测、场景图解析或语义剖析来实现细粒度交互,然而这些办法难以间接利用于电商场景,也使得电商中的图文检索工作是更具挑战。 基于此,咱们提出了一种电商常识加强的VLP模型FashionKLIP。一共蕴含两局部内容:数据驱动的构建策略,从大规模电商图文语料库中构建多模态电商概念常识图谱(FashionMMKG);和训练融入常识的训练策略,学习两种模态的图像-文本对的示意对齐,并通过将文本示意与FashionMMKG中时尚概念的视觉原型示意进行匹配,进一步失去概念对齐。 模型设计模型蕴含两局部,如图(b)所示:第一局部,构建时尚多模态常识图谱FashionMMKG:通过剖析大量的时尚文原本抽取并确定概念集,而后通过构建档次树来展现不同粒度下概念之间的关系,并在视觉档次上将每个概念与正确的图像匹配。第二阶段,融入跨模态常识的细粒度训练:不仅匹配输出文本中的概念到FashionMMKG,而且将提取到的新概念挂载到相应的概念层级树中以裁减。每个概念抉择与输出图像最类似且思考多样性的前 个图像作为视觉原型,在概念层面进行对齐优化设计。 $$(b) 以电商图像及文本为输出的 FashionKLIP 模型架构$$ FashionMMKG构建采纳自动化的构建办法,建设以电商概念为核心的多模态常识图谱,蕴含文本和视觉两个模态。 文本模态:通过开掘海量时尚文本确定概念集,而后将每个概念与对应的图像进行匹配。咱们提取图文电商数据库中所有的文本,并利用NLP工具spacy进行句子成分剖析、词性标注,失去多粒度的概念短语。对于不同粒度的概念短语,通过判断两个概念是否互相蕴含,建设概念间关系三元组的模式的上下位关系。如图(b)中的<"short sleeve t-shirt in white", is-a, "short sleeve t-shirt">。所有抽取出的关系三元组被组织成一个层次结构,如图(c)所示。层次结构的构建过程是动静的,当新概念呈现时,能够将其增加到现有的层级树中。 $$(c) 以“shorts”为根节点概念的层级子树结构$$ 视觉模态:咱们采纳基于提醒的图像检索办法为每个概念匹配图像,基于图像和文本特色的余弦间隔,抉择类似度最高的top- 图像作为概念的视觉原型,并采纳MMR算法来保障所选图像的多样性。这一过程在后续训练中将被迭代更新。FashionKLIP训练在预处理阶段,对于输出的文本进行概念提取,并且对于局部未能与FashionMMKG 中的概念汇合匹配上的新呈现的概念,主动扩大FashionMMKG。FashionKLIP模型为双流架构,蕴含图像和文本两个编码器,以保障在上游检索工作上图文匹配的效率。 如图(b)所示,FashionKLIP由两个工作组成:用于全局匹配图像和文本的图像-文本比照学习(ITC),以及用于概念级对齐的概念-视觉对齐学习(CVA)。 ITC:咱们训练了一个CLIP格调的模型来学习图像-文本对的全局示意。对于每个训练批次中的图文对,优化图像-文本和文本-图像的比照匹配损失。CVA:咱们利用对立的比照学习框架来对齐时尚概念和FashionMMKG中的视觉示意。将输出文本中的多粒度概念短语汇合集成到咱们的模型中,并进一步的从档次树中引入每个概念的父节点。对于每个概念与其最类似的top 图像,计算每个图像和输出图像之间的类似度,抉择得分最高的一组图像。咱们采纳加权穿插熵损失,以概念图像与输出图像之间的类似度作为权重,进行概念与最佳匹配概念图像的穿插熵损失进行计算。模型评测为了评测FashionKLIP模型的成果,咱们在以后风行的时尚基准数据集FashionGen上进行了试验,并依据现有sota模型的评测形式采纳了“full”和“sample”两种评测设置,试验后果如下: $$FashionGen数据集上的图文检索评测后果"sample"$$ ...

July 11, 2023 · 1 min · jiezi

关于机器学习:机器学习洞察-分布式训练让机器学习更加快速准确

机器学习可能基于数据发现一般化法则的劣势日益突显,咱们看到有越来越多的开发者关注如何训练出更疾速、更精确的机器学习模型,而分布式训练 (Distributed Training) 则可能大幅减速这一过程。 亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!对于在亚马逊云科技上进行分布式训练的话题,在各种场合和论坛咱们探讨了很多。随着 PyTorch 这一开源机器学习框架被越来越多的开发者在生产环境中应用,咱们也将围绕它开展话题。本文咱们将别离探讨在 PyTorch 上的两种分布式训练:数据分布式训练,以及模型分布式训练。 首先咱们来看看当今机器学习模型训练的演进趋势中,开发者对模型训练后果的两种迫切需要: 更疾速更精确更疾速的数据分布式训练对于机器学习模型训练来说,将宏大的训练数据无效拆分,有助于放慢训练速度。 常见的数据分布式训练形式有两种: 基于参数服务器的数据分布式训练(异步)参数服务器 (Parameter Server) : 如 TensorFlow Parameter Server Strategy 对于参数服务器 (Parameter Server) 来说,计算节点被分成两种: Workers:保留一部分的训练数据,并且执行计算;Servers:独特维持全局共享的模型参数。而 Workers 只和 Servers 有通信,Workers 相互之间没有通信。 参数服务器形式的长处开发者都很相熟就不赘述了,而参数服务器的一个次要问题是它们对可用网络带宽的利用不够现实,Servers 经常成为通信瓶颈。 因为梯度在反向传递期间按程序可用,因而在任何给定的时刻,从不同服务器发送和接管的数据量都存在不均衡。有些服务器正在接管和发送更多的数据,有些很少甚至没有。随着参数服务器数量的减少,这个问题变得更加重大。 基于 Ring ALL-Reduce 的数据分布式训练 (同步)Ring All-Reduce: 如 Horovod 和 PyTorch DDP Ring All-Reduce 的网络连接是一个环形,这样就不须要独自的 GPU 做 Server。6 个 GPU 独立做计算,用各自的数据计算出各自的随机梯度,而后拿 6 个随机梯度的相加之和来更新模型参数。为了求 6 个随机梯度之和,咱们须要做 All-Reduce。在全副的 GPU 都实现计算之后,通过 Ring All-Reduce 转 2 圈(第 1 圈加和,第 2 圈播送这个加和),每个 GPU 就有了 6 个梯度的相加之和。留神算法必须是同步算法,因为 All-Reduce 须要同步(即期待所有的 GPU 计算出它们的梯度)。 ...

July 11, 2023 · 2 min · jiezi

关于机器学习:从钢铁行业数字化管控与超自动化融合看华为WeAutomate能力进化

文/王吉伟 钢铁行业的数字化转型,从来都是值得探讨的热点话题。2022年,我国粗钢产量10.13亿吨,占据了寰球钢铁供应市场的半壁江山。 这组数据堪称十分抢眼,但仍旧难掩诸多企业的各种经营问题。 钢铁生产过程工序泛滥,大型设施集中,工艺流程极其简单,更是典型的资源密集的高耗能产业。在政策疏导、布局指引以及增效降本迫切需要之下,近些年来很多钢铁企业都开启了轰轰烈烈的数字化转型之路。 转型之路是开启了,至于转型功效就要看企业如何了解数字化转型,更须要企业联合具体情况去做技术、研发、模式及经营方面的大量摸索与尝试。 始终以来,“六大难题”长期困扰钢铁行业的数字化转型。产能过剩、流程简单、不足数据规范、核心技术有余、老本问题以及绿色环保,每一个难题无时无刻不在考验企业的信心和耐性。 对于遇到越来越多业务挑战的钢铁企业而言,数字化转型曾经成为以后AIoT时代的一道必选题,不得不去做,也必须迎难而上。 好在,目前钢铁行业信息化、数字化、网络化、智能化等交融倒退的根本框架也曾经确立,全行业的“数字化转型、智能化倒退”正在有序推动。有了正确的方向,摆在宽广企业背后的问题,曾经由原来的做什么和怎么做,变成了当初的找谁做。企业们只须要找到一个技术成熟、产品全面、计划齐备、教训十足的技术服务商,就能够简略地实现初步的数字化转型。 那么问题又来了,该找一家什么样的服务商或者平台呢? 7月4日,王吉伟频道加入了由华为WeAutomate、京诚数科独特主办的智能制作技术论坛。从这场论坛公布的产品和一众专家、学者的分享来看,基于超自动化能力的行业数字化管控平台,对于钢铁行业的数字化转型是一个十分不错的答案。 为什么这么说?本篇文章,王吉伟频道就跟大家聊聊这些。 钢铁行业的数字化转型现状 钢铁行业是国民经济的重要基础产业,也是一个高能耗、高污染、高风险的行业。随着各国对环境保护和平安生产的要求一直进步,钢铁企业面临着转型降级的压力和时机。 数字化转型是钢铁企业实现智能化、绿色化、高效化的重要途径,但在这一过程中,钢铁企业也遇到了不少痛点和挑战。 国内钢铁行业的数字化转型,长期存在“六大难题”,即产能过剩、流程简单、不足数据规范、核心技术有余、老本问题以及绿色环保。 生产流程简单,产业链条层级多:钢铁生产流程简单,波及到多个工序和环节,同时产业链条层级较多,这使得信息互通艰难,资源节约和产能受限。 不足数据规范:钢铁企业中存在多种类型的设施和工业协定,数据格式差别较大,难以实现兼容和整合。核心技术能力有余:钢铁行业的数字化转型须要具备肯定的技术能力,包含软件开发、数据分析、自动化管制等方面。 老本问题:数字化转型须要投入大量的资金和人力资源,同时还须要思考到经营老本和效益。对于一些小型或中型钢铁企业来说,数字化转型可能存在较大的老本压力和危险。绿色生产压力大:钢铁行业是能源消耗和环境污染的次要行业之一。 数字化转型能够帮忙企业实现能源消耗的监测和治理、废弃物解决的优化等,从而升高能源消耗和环境污染。这些转型难点和痛点,也能够总结为技术痛点、治理痛点和翻新痛点。 钢铁企业在数字化转型方面遇到的痛点说起来简略,实则要具体解决波及到多个经营层面和治理维度,须要从技术、治理、翻新等方面进行全面的剖析和解决,以实现钢铁行业的可继续倒退。近些年来,曾经有很多钢铁企业对新技术、新模式、新计划进行了摸索,在工业互联网、制作型服务、智能制作、数字孪生等都有很多尝试。 比方宝钢推出EVI 模式(供应商晚期染指)模式,通过与国内所有支流汽车制造商建设深刻单干关系,造成涵盖从先进工艺设计、晚期(概念)和车身设计、模(工)具设计开发、车型投产和批量生产等汽车开发制作全过程面向不同用户需要档次的 EVI 单干类型和一揽子解决方案。 再如南钢打造了“JIT+C2M”模式,以船板定制配送为抓手,在船板定制配送获得肯定市场影响力根底上,逐渐扩充定制配送的利用范畴,提出“在线定制+离线深加工”的 C2M 生态系统建设。出于对降本增效的继续谋求,简直所有钢铁企业都打造了独有策略模式,并继续引入最新技术。 而在近些年的技术趋势之中,能够更直观地感触到制造业正在越来越多地引入NLP、OCR、计算机视觉等AI技术,实用于更大范畴与更简单流程的自动化技术也逐步变成了制作畛域技术利用支流。 同时,可能让一线业务人员进行开发的低/无代码技术也开始被引入,对话式AI、RPA、流程/工作开掘等技术也正在被大量利用。此外在更高的组织经营与战略规划层面,智能制作的四大特色(自律能力、人机一体化、虚拟现实技术、自组织与超柔性)和五大集成个性(客户集成、智力集成、横向集成、纵向集成、价值链集成),也要求钢铁行业的数字化平台须要更多的自动化、智能化、集成化与集约化。 这些因素,都将钢铁行业的技术利用趋势指向了超自动化。 超自动化在钢铁行业的利用 超主动(hyperautomation)是一个以交付工作为目标的集合体,是RPA、流程开掘、低代码/无代码工具、人工智能业务流程治理、集成平台即服务等多种技术能力与软件工具的组合,是智能流程自动化、集成自动化等概念的进一步延长。 在更高的企业经营维度上,超自动化是一种利用技术最大限度地进步业务流程自动化的办法,也是一种业务驱动的办法,其指标是通过进步弹性、可扩展性和节俭的老本实现数字减速,是多种先进技术、工具或平台的协调应用。倒退到当初,超自动化的概念曾经超过技术自身,成为宽广组织在自动化策略层面的重要组成部分。 在中国RPA元年(2019年)之前,为了施行更大面积的业务流程自动化,很多钢铁企业曾经开始引入AI+RPA技术。 基于RPA等技术的超自动化利用于制造业,能够实现如下指标: 优化以工夫为核心的日常流程;加强对端到端流程的管制和可视性;通过使生产力最大化来进步经营能力;轻量级/外挂式部署,买通信息孤岛;无效防止人为失误,实现降本增效;合理配置人力资源,晋升经营灵便度。 超自动化能够广泛应用于生产部门的物料查问、财务部门的发票解决/财务对账、人力资源的社保公积金结算、IT部门的故障检测、服务治理中的培修开单、工程设计中的物料清单生成、洽购部门的洽购订单治理、资材仓库的在库治理以及物流部门的物流信息跟踪等多个业务场景。 咱们能看到,超自动化厂商和生态合作伙伴,正在开发更欠缺的解决方案和更丰盛的利用场景。从利用状况而言,利用超自动化的增效降本成果比拟显著。 比方首钢股份自2019年开始引入RPA技术,并鼎力推动 RPA机器人利用,至2022年已有23个业务流程提效80%以上。 再如兴澄特钢的财务自动化我的项目,应用超自动化技术后,原来须要每月占用1人1周的工作工夫,每次只须要5分钟即可实现,主动生成的剖析报告数据准确性达到100%。 超自动化在钢铁行业中的利用,大体能够分为间接利用和集成利用两种模式。 间接利用就是将RPAaaS或者本地部署的超自动化技术间接利用于财务、HR等业务场景,这种形式的特点是拿来即用,不必破费太多工夫和精力去做开发和部署,比方利用阿里云的无影云电脑RPA等。 集成利用是将超自动化技术集成到企业原有的信息化零碎中,打造基于超自动化技术的智能自动化新产品,这种形式的特点是能够将打包的交融超自动化技术整体利用于更多业务场景,比方上面要讲的京诚数科管控平台就是这类产品。 案例:交融超自动化的钢铁行业数字化管控平台 7月4日,由华为WeAutomate、京诚数科独特主办主题为“数字赋能 智造将来”的智能制作技术论坛暨京诚数科数字化管控平台新品发布会,在东莞-松山湖高新技术产业开发区华为总部胜利召开。 会上,京诚数科数字化管控平台新品公布。该产品基于华为底层技术研发,面向寰球冶金、有色等工业畛域。 京诚数科以笼罩钢铁全场景的行业能力,交融华为WeAutomate产品,构建了基于工业互联网架构的数字化管控产品。而在智能自动化、业务流程优化等维度,华为WeAutomate超自动化技术为其提供了强有力的反对,使得利用该平台的企业可能更全面地把握各生产状态、各类危险提前预警和提醒,进步生产效率,晋升品质稳定性,降低生产老本、缩小能耗及碳排放。 据悉,该产品已胜利利用于中信兴澄特钢、凌源钢铁集团、福建鼎盛钢铁、山西晋钢团体、临沂钢投特钢等十余家企业,助力其高效实现降本增效,进而全面晋升数字化管控能力,实现疾速向智能化工厂转型。 王吉伟频道认为,京诚数科数字化管控平台,作为一款典型的超自动化集成利用产品,反映出了超自动化技术被数智化平台集成、交融后所开释的微小商业价值和利用后劲。 作为钢铁行业的数字化服务龙头企业,京诚数科从2019年就开始摸索与华为WeAutomate的单干。 这表明,RPA技术以及超自动化曾经成为数智化标配技术,在多畛域多行业以集成、联通、交融等形式助力宽广企业数字化平台的提高与跃升。 此外这个合作项目,也体现了生态合作伙伴的重要性。这次产品发布会上,来自产业链的科研机构、征询厂商、技术供应商、上游客户等生态合作伙伴都有代表参加分享。 正是因为多方厂商的积极参与和单干,才进一步促就了数智化的技术落地、计划施行、市场开辟以及单干供给。 比方中软国内就与华为有着深度单干,基于其WeAutomate数字平台,联结制订“1+N+1”行业解决方案。该解决方案利用华为WeAutomate数字化平台的AI和低代码能力,帮忙客户晋升流程效率、品质稳定性、升高危险,并具备疾速部署和投资回报快的劣势。 中软国内联合钢铁行业客户的业务场景,依靠WeAutomate的数据、AI和编排能力,针对钢铁生产工艺流程中的痛点,提炼出16个典型的业务管理需要,并疾速实现了10个以上的利用场景上线,促成钢铁企业的数字化利用落地。 RPA及超自动化技术从落地到施行再到商用,真的须要下一番大功夫。 好在目前超自动化技术曾经失去很多组织的技术引入共鸣,并且宽广厂商也正在将超自动化服务打造成更加易用和便捷的解决方案及数字化能力,便于客户更加简略引入和利用。须要阐明的是,京诚数科数字化管控平台,只是华为WeAutomate在钢铁行业的一个胜利案例。 通过几年的倒退,华为WeAutomate的各项能力也在一直进化,目前,它曾经成为华为面向千行百业的数智化解决方案中不可或缺的能力之一。 华为WeAutomate能力的进化这次发布会,也是华为WeAutomate的行业标杆现场会。超自动化次要用于为组织提供更稳固的业务流程自动化,或者被内置在组织的IT架构中构建更稳固的端到端自动化能力。 ...

July 9, 2023 · 1 min · jiezi

关于机器学习:LLaMA模型指令微调-字节跳动多模态视频大模型-Valley-论文详解

Valley: Video Assistant with Large Language model Enhanced abilitY 大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 负责某大厂的算法工程师,带来最新的前沿AI常识和工具,包含AI相干技术、ChatGPT、AI绘图等, 欢送大家交换~。 近期基于LLaMA微调的模型有很多,Alpaca,Vicuna都是基于ChatGPT等数据进行文本场景指令微调,LLaVA也应用图文对数据进行了图文场景多模态能力的扩大(这几个模型往期文章都有波及,不分明/感兴趣的能够看)。 而本文提到的Valley则是字节公布的视频场景多模态指令微调LLaMA模型。 其中这几个指令微调版本的模型都大差不差,次要还是数据与训练的差别。本文形容Valley当然对标的是其相似模型LLaVA,原文introduction局部翻译批改后如下: 在Valley中,咱们遵循 LLaVA 的先预训练而后指令调整的流程,采纳一个简略的投影模块作为视频、图像和语言模式之间的桥梁。 咱们采纳 CLIP (Radford et al., 2021) 的 ViT-L/14 (Dosovitskiy et al., 2021) 作为视觉编码器(与LLaVA统一),而后提出一种时空池化操作来对立视频和图像输出的视觉编码(模型差别点)。 通过更新投影模块进行预训练,以使对立的视觉嵌入与 LLM 保持一致,其中 Stable-Vicuna (Chiang et al., 2023) 因为其多语言能力而成为抉择的 LLM。 此外,咱们引入了从各种视频工作中收集的多模态指令跟踪数据集,包含视频问答、长形容、随便关系推理和动作辨认。 通过指令微调,最终提出了咱们的视频了解谷多模态根底模型。 作为人工智能助手,咱们预计Valley将在各种视频相干工作中失去宽泛的利用,并帮忙用户以相似于在事实世界中与人聊天的形式更好地了解和解释简单的视频。联合论文内容,我对Valley的奉献作了概括: 模型:基于LLaVA的办法,增加了时空池化模块应答视频(多帧)场景,将LLaVA从单图扩大为多图(动静长度),同时将LLaVA的Vicuna语言模型换为Stable-Vicuna模型。;数据:搞了多模态的instruction-following数据集,聚焦于视频了解、比拟多样的工作(包含multi-short captions,带工夫戳的时间性形容、长视频的简单陈说。同时应用了ChatGPT生成对话人和视频内容的对话,进一步加强数据集的品质和多样性。开源:LLM时代,开源也是奉献~Related Work感兴趣的能够通过 相干工作来理解一下LLM的现状,以下为局部机翻: 现有的办法能够分为两种技术路线,一种是利用LLM作为调度器来调度现有的多模态模型,另一种是基于LLM来训练多模态模型。 前者在接管到用户指令和各个根底模型的性能后,将LLM作为控制器逐渐调用相应的模型,并整合各个模型的输入内容生成后果(Wu等,2023;Shen等,2023)。 ,2023;Yang 等人,2023)。 例如,HuggingGPT(Shen et al., 2023)利用ChatGPT依据其性能形容在Hugging Face1中抉择适合的模型并总结其执行后果。 后者为法学硕士装备辅助模块,帮忙他们通过端到端训练了解多模态内容(Li et al., 2023c; Zhu et al., 2023; Zhu et al., 2023; Zhu et al., 2023; Liu et al., 2023; Su 等人,2023;戴等人,2023)。 例如,LLaVA (Liu et al., 2023) 和 MiniGPT-4 (Zhu et al., 2023) 通过投影层将 LLaMA (Touvron et al., 2023) 与视觉编码器连接起来,赋予其了解图像的能力 。 Video-LLaMA (Zhang et al., 2023) 通过 Q-Former 为 LLaMA (Touvron et al., 2023) 提供视觉和音频信息,赋予其基于视频的对话能力。办法局部网络结构 ...

July 9, 2023 · 1 min · jiezi

关于机器学习:并行计算框架PolarsDask的数据处理性能对比

在Pandas 2.0公布当前,咱们公布过一些评测的文章,这次咱们看看,除了Pandas以外,罕用的两个都是为了大数据处理的并行数据框架的比照测试。 本文咱们应用两个相似的脚本来执行提取、转换和加载(ETL)过程。 测试内容这两个脚本次要性能包含: 从两个parquet 文件中提取数据,对于小型数据集,变量path1将为“yellow_tripdata/ yellow_tripdata_2014-01”,对于中等大小的数据集,变量path1将是“yellow_tripdata/yellow_tripdata”。对于大数据集,变量path1将是“yellow_tripdata/yellow_tripdata*.parquet”; 进行数据转换:a)连贯两个DF,b)依据PULocationID计算行程间隔的平均值,c)只抉择某些条件的行,d)将步骤b的值四舍五入为2位小数,e)将列“trip_distance”重命名为“mean_trip_distance”,f)对列“mean_trip_distance”进行排序 将最终的后果保留到新的文件 脚本1、Polars 数据加载读取 def extraction(): """ Extract two datasets from parquet files """ path1="yellow_tripdata/yellow_tripdata_2014-01.parquet" df_trips= pl_read_parquet(path1,) path2 = "taxi+_zone_lookup.parquet" df_zone = pl_read_parquet(path2,) return df_trips, df_zone def pl_read_parquet(path, ): """ Converting parquet file into Polars dataframe """ df= pl.scan_parquet(path,) return df转换函数 def transformation(df_trips, df_zone): """ Proceed to several transformations """ df_trips= mean_test_speed_pl(df_trips, ) df = df_trips.join(df_zone,how="inner", left_on="PULocationID", right_on="LocationID",) df = df.select(["Borough","Zone","trip_distance",]) df = get_Queens_test_speed_pd(df) df = round_column(df, "trip_distance",2) df = rename_column(df, "trip_distance","mean_trip_distance") df = sort_by_columns_desc(df, "mean_trip_distance") return df def mean_test_speed_pl(df_pl,): """ Getting Mean per PULocationID """ df_pl = df_pl.groupby('PULocationID').agg(pl.col(["trip_distance",]).mean()) return df_pl def get_Queens_test_speed_pd(df_pl): """ Only getting Borough in Queens """ df_pl = df_pl.filter(pl.col("Borough")=='Queens') return df_pl def round_column(df, column,to_round): """ Round numbers on columns """ df = df.with_columns(pl.col(column).round(to_round)) return df def rename_column(df, column_old, column_new): """ Renaming columns """ df = df.rename({column_old: column_new}) return df def sort_by_columns_desc(df, column): """ Sort by column """ df = df.sort(column, descending=True) return df保留 ...

July 8, 2023 · 3 min · jiezi

关于机器学习:机器学习洞察-降本增效无服务器推理是怎么做到的

2022 年,无服务器推理受到了越来越多的关注。常见的推理形式包含实时推理、批量转换和异步推理: 实时推理:具备低提早、高吞吐、多模型部署的特点,可能满足 A/B 测试的需要批量转换:可能基于工作 (Job-based) 的零碎进行大数据集的解决异步推理:具备近实时、大负载 (1 GB) 的劣势,但推理工夫较长(个别在 15 分钟内)本文将为您重点介绍在机器学习中无服务器推理的倒退和演变,并通过理论的场景剖析和部署形式来分享无服务器推理的利用,上面就一起来看看吧: 亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注/珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!为什么抉择无服务器推理无服务器推理自身是个绝对宽泛的术语。对于开发者来说,无服务器推理代表了一种构建可主动扩大的新型应用程序的具体形式,其最突出的劣势在于无需保护、运行或修复包含服务器、集群乃至负载均衡器在内的各类基础设施元素。 通常开发者在无奈预测用户的拜访模式时会思考应用无服务器推理: 有些状况下,上线利用时会存在负载的间歇性。如果开发者不思考用户用量而应用定量部署模式的话,当利用长时间没有用户拜访时就会导致适度的容量部署,造成利用率低而老本高。 而当用量减少,面临容量部署的挑战时,开发者须要投入大量的工夫和资源,部署并治理保护服务器的弹性扩大,导致 TCO (Total Cost of Ownership) ,即总领有老本的减少。 咱们通过上面这个具体的场景帮忙开发者更好地了解无服务器推理: Sarah 是一家线上订餐利用的 DevOps 的开发人员,她心愿通过机器学习来为客户个性化的举荐餐厅。因为利用的拜访流量不可预测,Sarah 面临治理配置主动扩大策略的挑战,放心因为适量部署资源而导致老本过高。 Sarah 决定采纳无服务器推理的形式。 她不再须要本人治理配置扩大策略,也无需适量部署资源,而是依据利用的用量按需主动伸缩。全托管服务不仅节俭了 Sarah 的工夫也升高了推理老本,让她能够把更多的工夫和资源投入到优化算法和我的项目上。 无服务器推理的劣势从 Sarah 的例子咱们能够看出无服务器推理的劣势是可能实现模型的开箱即用,帮忙开发者升高机器学习的老本。 具体来说,比照晚期的 Amazon Lambda 无服务器推理,开发者依然须要配置模型参数(例如应用 EFS 搁置模型时,须要自行配置 EFS 拜访的终端节点来实现推理)。而 Amazon SageMaker 无服务器的推理形式领有更好的封装,可能造成一个独立的特色和服务个性。开发者不须要本人搭建部署无服务器推理的其余工作,而是将更多的精力和资源聚焦于具体业务逻辑的实现。 Amazon SageMaker 的服务器推理可能在形象基础设施的同时,显著升高间歇性流量工作负载的老本。 全托管的无服务器化推理全托管的无服务器化推理有三大劣势:领有全托管的根底资源、无服务器化、可能主动伸缩资源。 领有全托管的根底资源等于领有平安、监控、日志记录、高可用、高容错的资源。无服务器化代表着用户无需抉择服务器类型和容量,可能间接基于推理需要来进行内存大小的抉择。主动伸缩资源代表着无需配置扩大策略。一键部署无服务器化推理节点实现无服务器化推理节点部署须要三个步骤: 用 ECR 镜像来寄存推理代码;用 S3 寄存模型文件;抉择适合的内存大小。在第二步中,Amazon SageMaker 将通过无服务器化推理终端节点实现主动治理计算资源;按需主动伸缩;治理日志、监控及平安。客户端利用或其它云服务将触发推理申请给无服务器化推理终端节点,而无服务器化推理终端节点通过解决后,再将推理后果发给最终客户。 代码示例:Amazon SageMaker 无服务器推理创立节点配置:开发者须要对用户端配置内存应用大小,以及最大并发推理的调用数。 endpoint_config_response = client.create_endpoint_config( EndpointConfigName=xgboost_epc_name, ProductionVariants=[ { "VariantName": "byoVariant", "ModelName": model_name, "ServerlessConfig": { "MemorySizeInMB": 4096, "MaxConcurrency": 1, }, }, ],)创立节点及推理: ...

July 7, 2023 · 1 min · jiezi

关于机器学习:机器视觉三维重建

举荐:将 NSDT场景编辑器 退出你的3D开发工具链。 1、Meshroom ⭐4,474Meshroom是一款基于AliceVision摄影测量计算机视觉框架的收费开源三维重建软件。https://github.com/alicevision/meshroom 2、Openmvg ⭐2,829Openmvg库依据三维计算机视觉和构造的静止。OpenMVG提供了一个端到端的3D重建,它由图像框架组成,蕴含库、二进制文件和管道。 这些库提供了简略的性能,如:图像处理,性能形容和匹配,性能跟踪,相机模型,多视图几何,旋转预计…该二进制文件解决了管道可能须要的单元工作:场景初始化、特色检测与匹配和静止重建的构造,并将重建的场景导出到其余多视点平面视觉框架中,以计算密集的点云或纹理网格。这些管道通过链接各种二进制文件来计算图像匹配关系OpenMVG是用c++开发的,能够在Android、iOS、Linux、macOS和Windows上运行。https://github.com/openMVG/openMVG。 3、Awesome_3dreconstruction_list ⭐2,261与图像3D重建相干的论文和资源精选清单https://github.com/openMVG/awesome_3DReconstruction_list 4、Awesome Point Cloud Analysis ⭐1,801对于点云剖析(解决)的论文和数据集列表https://github.com/Yochengliu/awesome-point-cloud-analysis 5、Opensfm ⭐1,635OpenSfM是一个用Python编写的静止库的构造。该库作为一个解决管道,用于从多个图像重建相机姿势和3D场景。它由静止构造的根本模块(特色检测/匹配,最小解算)组成,重点是构建一个强壮的、可伸缩的重建管道。它还集成了内部传感器(如GPS、减速计)测量,以实现天文定位和鲁棒性。提供了一个JavaScript查看器来预览模型和调试管道。 https://github.com/mapillary/OpenSfM 6、Alicevision ⭐1,318AliceVision是摄影测量计算机视觉框架,可提供3D重建和相机跟踪算法。AliceVision旨在通过可测试,剖析和重用的最新计算机视觉算法提供弱小的软件根底。该我的项目是学术界和工业界单干的后果,旨在为尖端算法提供鲁棒性和生产应用所需的品质。https://github.com/alicevision/AliceVision 7、Openmvs ⭐1,193OpenMVS是面向计算机视觉的库,尤其是针对多视图平面重建社区的。只管有针对静止构造管道(例如OpenMVG)的成熟而残缺的开源我的项目,这些管道能够从输出的图像集中复原相机的姿态和稠密的3D点云,但没有一个解决摄影测量链的最初一部分-流。OpenMVS旨在通过提供一套残缺的算法来复原要重建场景的整个外表来填补这一空白。输出是一组摄影机姿态加上稠密的点云,输入是带纹理的网格。该我的项目波及的次要主题是:密集的点云重构,以取得尽可能残缺,精确的点云网格重建,用于预计最能解释输出点云的网格外表网格细化可复原所有精密细节网格纹理,用于计算清晰精确的纹理以对网格着色https://github.com/cdcseacave/openMVS 8、Bundler_sfm ⭐1,158https://github.com/snavely/bundler_sfm 9、Bundlefusion ⭐752应用在线外表从新整合进行实时全局统一的三维重建https://github.com/niessner/BundleFusion 10、Face_swap ⭐636面部替换:https://github.com/YuvalNirkin/face_swap 11、Scannet ⭐678ScanNet是一个RGB-D视频数据集,蕴含超过1500次扫描中的250万次视图,应用3D摄像机姿势、外表重建和实例级语义分段进行正文。https://github.com/ScanNet/ScanNet 12、Softras⭐540SoftRas是一个真正的可微分渲染框架,把渲染作为一个可微分的聚合过程,交融所有网格三角形的概率奉献绝对于渲染像素。https://github.com/ShichenLiu/SoftRas 13、Pifu ⭐474https://github.com/shunsukesaito/PIFu 14、Matterport ⭐460用于RGB-D机器学习工作的十分棒的数据集。https://github.com/niessner/Matterport 15、Kimera⭐456Kimera是一个用于实时度量-语义同步定位和映射的c++库,它应用摄像机图像和惯性数据来构建环境的语义正文3D网格。Kimera是模块化的,反对ros,在CPU上运行。https://github.com/MIT-SPARK/Kimera 16、Mvs Texturing ⭐421我的项目能够依据图像对3D重建进行纹理解决。该我的项目专一于应用静止和多视图立体技术的构造生成的3D重建。https://github.com/nmoehrle/mvs-texturing 17、Livescan3d ⭐402LiveScan3D是一个实时三维重建零碎,应用多个Kinect v2深度传感器同时进行三维重建。产生的3D重建模式是有色点云的模式,所有Kinect的点都搁置在同一坐标系中。该零碎的可能应用场景包含:同时从多个视点捕捉对象的3D构造,捕捉场景的“全景” 3D构造(通过应用多个传感器来扩大一个传感器的视场),将重建的点云流式传输到近程地位,通过让多个传感器捕捉同一场景来进步单个传感器捕捉的点云的密度。https://github.com/MarekKowalski/LiveScan3D 18、Voxelhashing ⭐364大规模、实时三维重建:https://github.com/niessner/VoxelHashing 19、Layoutnet ⭐298从单个RGB图像重建三维房间布局https://github.com/zouchuhang/LayoutNet 20、Tsdf Fusion Python ⭐295这是一个轻量级的python脚本,可将多个色彩和深度图像交融到TSDF体积中,而后能够将其用于创立高质量的3D外表网格和点云。在Ubuntu 16.04上测试成果如下图:https://github.com/andyzeng/tsdf-fusion-python 21、Intrinsic3d ⭐231通过外观和几何优化以及空间变动的照明实现高质量3D重构https://github.com/NVlabs/intrinsic3d 22、Kimera Semantics ⭐228从2D数据进行实时3D语义重构https://github.com/MIT-SPARK/Kimera-Semantics 23、Awesome Holistic 3d ⭐2093D重建的论文和资源清单:https://github.com/holistic-3d/awesome-holistic-3d 24、3dreconstruction ⭐151应用Python3进行SFM的3D重建https://github.com/alyssaq/3Dreconstruction 25、Structured3d ⭐121用于结构化3D建模的大型照片级数据集https://github.com/bertjiazheng/Structured3D 26、Synthesize3dviadepthorsil ⭐117通过对多视图深度图或轮廓建模来生成和重建3D形态https://github.com/Amir-Arsalan/Synthesize3DviaDepthOrSil 27、Msn Point Cloud Completion ⭐111https://github.com/Colin97/MSN-Point-Cloud-Completion ...

July 7, 2023 · 1 min · jiezi

关于机器学习:使用Streamlit和OpenAI-API构建视频摘要

本文提供了应用Streamlit和OpenAI创立的视频摘要应用程序的概述。该程序为视频的每个片段创立简洁的摘要,并总结视频的残缺内容。 要运行应用程序,须要装置以下依赖项: Python(3.7或更高版本)StreamlitOpenAI API密钥llama_indexyoutube_transcript_apihtml2imagelangchain搭建环境首先,须要设置咱们的开发环境,能够应用以下代码片段将API密钥设置为环境变量: import os os.environ["OPENAI_API_KEY"] = '{your_Api_Key}'而后导入所有的包 from llama_index import StorageContext, load_index_from_storage from llama_index import VectorStoreIndex import streamlit as st from llama_index import download_loader from llama_index import GPTVectorStoreIndex from llama_index import LLMPredictor, GPTVectorStoreIndex, PromptHelper, ServiceContext from langchain import OpenAI from langchain.chat_models import ChatOpenAI from youtube_transcript_api import YouTubeTranscriptApi from youtube_transcript_api.formatters import JSONFormatter import json import datetime from html2image import Html2Image解决用户输出和YouTube视频检索以下代码是Streamlit的按钮和事件:咱们提醒用户输出一个YouTube视频链接。应用st.text_input捕捉输出,并将其存储在youtube_link变量中。按钮的名字为“Summarize!”,当单击该按钮时将触发咱们的处理过程。上面是相干的代码片段: youtube_link = st.text_input("Youtube link:") st.button("Summarize!", on_click=send_click)获取视频文本和预处理应用YouTubeTranscriptApi能够取得视频文本。而后将转录本格式化为JSON并保留到文件中。而后再应用Html2Image库捕捉YouTube视频的屏幕截图: ...

July 7, 2023 · 2 min · jiezi

关于机器学习:AI-对抗超级细菌麦克马斯特大学利用深度学习发现新型抗生素-abaucin

内容一览: 鲍曼不动杆菌是一种常见的医院获得性革兰氏阴性病原体,通常体现出多重耐药性。利用传统办法,发现克制此菌的新型抗生素很艰难。但利用机器学习能够疾速摸索化学空间,从而减少发现新型抗菌分子的可能性。近期,国内期刊《Nature Chemical Biology》上公布了一篇研究成果,钻研人员发现 abaucin 可能无效地克制鲍曼不动杆菌。 关键词: 鲍曼不动杆菌 abaucin 深度学习 本文首发自 HyperAI 超神经微信公众平台~ 鲍曼不动杆菌(学名:Acinetobacter baumannii,俗称:AB 菌)为不动杆菌属中最常见的一种革兰阴性杆菌,宽泛存在于自然界的水及土壤中,也存在于失常人体皮肤、呼吸道、消化道和泌尿生殖道中。该菌常见于医院感化,也是水产养殖业动物的病原菌,通常会引起菌血症、肺炎、脑膜炎、腹膜炎、心内膜炎以及泌尿道和皮肤感染。 鲍曼不动杆菌对湿热、紫外线、化学消毒剂有较强的抵抗力,耐低温。在干燥的物体外表能够存活 25 天以上,惯例消毒剂只能克制其成长,不能杀灭,而且耐受肥皂,是医务人员手上、医疗器械、物体外表最常拆散到的革兰阴性杆菌。因为抗生素的滥用,鲍曼不动杆菌产生多重抗药性,被世界卫生组织认定为世界上最危险的耐抗生素细菌之一。 近期,来自麦克马斯特大学 (McMaster University) 的 Gary Liu 以及来自麻省理工学院 (Massachusetts Institute of Technology) 的 Denise B. Catacutan 等钻研人员利用深度学习筛选了大概 7,500 个分子,找出了克制鲍曼不动杆菌的新型抗生素。目前,该钻研已公布在《Nature Chemical Biology》期刊上,题目为「Deep learning-guided discovery of an antibiotic targeting Acinetobacter baumannii」。 该研究成果已发表在《Nature Chemical Biology》期刊上 论文地址: https://www.nature.com/articles/s41589-023-01349-8#access-opt... 试验过程数据集钻研人员基于鲍曼不动杆菌 ATCC 17978 在 LB 培养基中的成长,对 7,684 个小分子进行了筛选。 这些小分子包含 2,341 个非专利药物和 5,343 个合成化学物,都是由 Broad 研究所的高通量筛选子库提供的。依据传统的命中率分界线(即与整个数据集的均匀成长抑制率相比低于一个标准差的分子),他们确定了 480 个分子为「活性」,而 7,204 个分子为「非活性」。 ...

July 5, 2023 · 2 min · jiezi

关于机器学习:446k-Stars-一键运行全网最强深度学习教程

《入手学深度学习》长年占据中文版深度学习入门书籍榜首,豆瓣评分高达 9.4 分,至今已被寰球 60 多个国家 400 多所大学用于教学,其 GitHub 开源我的项目累计已达 44.6k Stars。 书籍最大的特色是提供了残缺的教程设施,包含诸如在线书籍、可运行的代码、视频教程以及交换社区等。在这一期中,咱们为你带来了这一最强深度学习教程的 Notebook 在线模式,边学边练,置信这将极大地助力你的 Deep Learning 学习与实际。 《入手学深度学习》《入手学深度学习》相对是一本适宜小白浏览的深度学习入门书,亦是零碎梳理深度学习常识的好资料。 作者旨在提供一个收费、技术深刻且实用的对立资源,论述分析问题所需的批判性思维、解决问题所需的数学知识,以及实现解决方案所需的工程技能,帮忙读者成为深度学习利用科学家。不要求读者有任何深度学习或者机器学习的背景常识,只需具备根本的数学和编程常识。这本联合了原理与实战的书一经面世,就收到了来自学术界和工业界的宽泛赞美: "书中代码堪称‘所学即所用’。"— 周志华,ACM 院士、IEEE 院士、AAAS 院士,南京大学计算机科学与技术系主任 "一本优良的深度学习教材,值得任何想理解深度学习何以引爆人工智能反动的人关注。"— 黄仁勋,NVIDIA 创始人 & CEO "强烈推荐这本书!我特地赞叹这种手脑一体的学习形式。"— 漆远,复旦大学“浩清”传授、人工智能翻新与产业研究院院长 Book Notebooks在本期中,咱们为你带来了这一最强的深度学习教程的 Notebooks 模式,可在线收费运行。 本期 Notebook 来自于《入手学深度学习》官网:https://zh.d2l.ai 点击以下链接关上《入手学深度学习》 Notebook,即刻开始你的深度学习之旅:D2L.AI|《入手学深度学习》 Notebooks 目录 Notebook 案例广场同时,你能够在 Notebook 案例广场通过搜寻「D2L.AI」来疾速找到《入手学深度学习》系列 Notebooks。

July 4, 2023 · 1 min · jiezi

关于机器学习:实践随机森林中缺失值的处理方法

动动发财的小手,点个赞吧! 除了在网上找到的一些适度清理的数据集之外,缺失值无处不在。事实上,数据集越简单、越大,呈现缺失值的可能性就越大。缺失值是统计钻研的一个令人着迷的畛域,但在实践中它们往往很麻烦。 如果您解决一个预测问题,想要从 p 维协变量 X=(X_1,…,X_p) 预测变量 Y,并且面临 X 中的缺失值,那么基于树的办法有一个乏味的解决方案。这种办法实际上相当古老,但在各种数据集中仿佛都体现得十分好。我说的是“缺失的属性规范”(MIA;[1])。尽管有很多对于缺失值的好文章(例如这篇文章),但这种弱小的办法仿佛有些未失去充分利用。特地是,不须要以任何形式插补、删除或预测缺失值,而是能够像齐全察看到的数据一样运行预测。 我将疾速解释该办法自身是如何工作的,而后提供一个示例以及此处解释的分布式随机森林 (DRF)。我抉择 DRF 是因为它是随机森林的一个十分通用的版本(特地是,它也能够用来预测随机向量 Y),而且因为我在这里有些偏见。 MIA实际上是针对狭义随机森林(GRF)实现的,它涵盖了宽泛的森林实现。特地地,因为DRF在CRAN上的实现是基于GRF的,因而稍作批改后,也能够应用MIA办法。 当然,请留神,这是一个疾速修复(据我所知)没有实践上的保障。依据缺失机制,剖析可能会重大偏差。另一方面,解决缺失值的最罕用办法没有任何实践保障,或者家喻户晓会使剖析产生偏差,并且至多从教训上来看,MIA 仿佛运作良好,并且 工作原理回忆一下,在 RF 中,宰割的构建模式为 X_j < S 或 X_j ≥ S,维度 j=1,…,p。为了找到这个宰割值 S,它优化了 Y 上的某种规范,例如 CART 规范。因而,察看后果通过依赖于 X 的决策规定间断划分。 原论文的解释有点令人困惑,但据我理解,MIA 的工作原理如下:让咱们思考一个样本 (Y_1, X_1),…, (Y_n, X_n), 不缺失值的宰割就是像下面那样寻找值S,而后将节点1中所有X_ij < S的Y_i和节点2中所有X_ij ≥ S的Y_i扔进去。计算每个值S的指标规范,例如CART,咱们能够抉择最好的一个。对于缺失值,每个候选宰割值 S 有 3 个选项须要思考: 对所有观测值 i 应用通常的规定,使得 X_ij 被观测到,如果 X_ij 失落,则将 i 发送到节点 1。对所有观测值 i 应用通常的规定,以便观测到 X_ij,如果短少 X_ij,则将 i 发送到节点 2。疏忽通常的规定,如果 X_ij 缺失,则将 i 发送到节点 1;如果察看到 X_ij,则将 i 发送到节点 2。遵循这些规定中的哪一个再次依据咱们应用的 Y_i 的规范来决定。 ...

July 3, 2023 · 4 min · jiezi

关于机器学习:数据挖掘18大算法实现以及其他相关经典DM算法决策分类聚类链接挖掘

数据挖掘18大算法实现以及其余相干经典DM算法:决策分类,聚类,链接开掘,关联开掘,模式开掘。图算法,搜索算法等算法码源见文末1.算法目录18大DM算法包名目录名算法名 AssociationAnalysisDataMining_AprioriApriori-关联规定开掘算法AssociationAnalysisDataMining_FPTreeFPTree-频繁模式树算法BaggingAndBoostingDataMining_AdaBoostAdaBoost-装袋晋升算法ClassificationDataMining_CARTCART-分类回归树算法ClassificationDataMining_ID3ID3-决策树分类算法ClassificationDataMining_KNNKNN-k最近邻算法工具类ClassificationDataMining_NaiveBayesNaiveBayes-奢侈贝叶斯算法ClusteringDataMining_BIRCHBIRCH-档次聚类算法ClusteringDataMining_KMeansKMeans-K均值算法GraphMiningDataMining_GSpanGSpan-频繁子图开掘算法IntegratedMiningDataMining_CBACBA-基于关联规定的分类算法LinkMiningDataMining_HITSHITS-链接剖析算法LinkMiningDataMining_PageRankPageRank-网页重要性/排名算法RoughSetsDataMining_RoughSetsRoughSets-粗糙集属性约简算法SequentialPatternsDataMining_GSPGSP-序列模式分析算法SequentialPatternsDataMining_PrefixSpanPrefixSpan-序列模式分析算法StatisticalLearningDataMining_EMEM-冀望最大化算法StatisticalLearningDataMining_SVMSVM-反对向量机算法2.其余经典DM算法包名目录名算法名 OthersDataMining_ACOACO-蚁群算法OthersDataMining_BayesNetworkBayesNetwork-贝叶斯网络算法OthersDataMining_CABDDCCCABDDCC-基于连通图的决裂聚类算法OthersDataMining_ChameleonChameleon-两阶段合并聚类算法OthersDataMining_DBSCANDBSCAN-基于密度的聚类算法OthersDataMining_GAGA-遗传算法OthersDataMining_GA_MazeGA_Maze-遗传算法在走迷宫游戏中的利用算法OthersDataMining_KDTreeKDTree-k维空间要害数据检索算法工具类OthersDataMining_MSAprioriMSApriori-基于多反对度的Apriori算法OthersDataMining_RandomForestRandomForest-随机森林算法OthersDataMining_TANTAN-树型奢侈贝叶斯算法OthersDataMining_ViterbiViterbi-维特比算法3.十八大经典DM算法18大数据挖掘的经典算法以及代码实现,波及到了决策分类,聚类,链接开掘,关联开掘,模式开掘等等方面,前面都是相应算法的博文链接,心愿可能帮忙大家学。目前追加了其余的一些经典的DM算法,在others的包中波及聚类,分类,图算法,搜寻算等等,没有具体分类。 C4.5C4.5算法与ID3算法一样,都是数学分类算法,C4.5算法是ID3算法的一个改良。ID3算法采纳信息增益进行决策判断,而C4.5采纳的是增益率。具体介绍链接 CARTCART算法的全称是分类回归树算法,他是一个二元分类,采纳的是相似于熵的基尼指数作为分类决策,造成决策树后之后还要进行剪枝,我本人在实现整个算法的时候采纳的是代价复杂度算法,具体介绍链接 KNNK最近邻算法。给定一些曾经训练好的数据,输出一个新的测试数据点,计算蕴含于此测试数据点的最近的点的分类状况,哪个分类的类型占多数,则此测试点的分类与此雷同,所以在这里,有的时候能够复制不同的分类点不同的权重。近的点的权重大点,远的点天然就小点。具体介绍链接 Naive Bayes奢侈贝叶斯算法。奢侈贝叶斯算法是贝叶斯算法外面一种比较简单的分类算法,用到了一个比拟重要的贝叶斯定理,用一句简略的话概括就是条件概率的互相转换推导。具体介绍链接 SVM反对向量机算法。反对向量机算法是一种对线性和非线性数据进行分类的办法,非线性数据进行分类的时候能够通过核函数转为线性的状况再解决。其中的一个要害的步骤是搜寻最大边缘超平面。具体介绍链接 EM冀望最大化算法。冀望最大化算法,能够拆分为2个算法,1个E-Step冀望化步骤,和1个M-Step最大化步骤。他是一种算法框架,在每次计算结果之后,迫近统计模型参数的最大似然或最大后验预计。具体介绍链接 AprioriApriori算法是关联规定开掘算法,通过连贯和剪枝运算挖掘出频繁项集,而后依据频繁项集失去关联规定,关联规定的导出须要满足最小置信度的要求。具体介绍链接 FP-Tree频繁模式树算法。这个算法也有被称为FP-growth算法,这个算法克服了Apriori算法的产生过多侯全集的毛病,通过递归的产生频度模式树,而后对树进行开掘,前面的过程与Apriori算法统一。具体介绍链接 PageRank网页重要性/排名算法。PageRank算法最早产生于Google,核心思想是通过网页的入链数作为一个网页好快的断定规范,如果1个网页外部蕴含了多个指向内部的链接,则PR值将会被均分,PageRank算法也会受到LinkSpan攻打。具体介绍链接 HITSHITS算法是另外一个链接算法,局部原理与PageRank算法是比拟类似的,HITS算法引入了权威值和核心值的概念,HITS算法是受用户查问条件影响的,他个别用于小规模的数据链接剖析,也更容易蒙受到攻打。具体介绍链接 K-MeansK-Means算法是聚类算法,k在在这里指的是分类的类型数,所以在开始设定的时候十分要害,算法的原理是首先假设k个分类点,而后依据欧式间隔计算分类,而后去同分类的均值作为新的聚簇核心,循环操作直到收敛。具体介绍链接 BIRCHBIRCH算法利用构建CF聚类特色树作为算法的外围,通过树的模式,BIRCH算法扫描数据库,在内存中建设一棵初始的CF-树,能够看做数据的多层压缩。具体介绍链接 AdaBoostAdaBoost算法是一种晋升算法,通过对数据的屡次训练失去多个互补的分类器,而后组合多个分类器,形成一个更加精确的分类器。具体介绍链接 GSPGSP算法是序列模式开掘算法。GSP算法也是Apriori类算法,在算法的过程中也会进行连贯和剪枝操作,不过在剪枝判断的时候还加上了一些工夫上的束缚等条件。具体介绍链接 PreFixSpanPreFixSpan算法是另一个序列模式开掘算法,在算法的过程中不会产生候选集,给定初始前缀模式,一直的通过后缀模式中的元素转到前缀模式中,而一直的递归开掘上来。具体介绍链接 CBA基于关联规定分类算法。CBA算法是一种集成开掘算法,因为他是建设在关联规定开掘算法之上的,在已有的关联规定实践前提下,做分类判断,只是在算法的开始时对数据做解决,变成相似于事务的模式。具体介绍链接 RoughSets粗糙集算法。粗糙集实践是一个比拟新鲜的数据挖掘思维。这里应用的是用粗糙集进行属性约简的算法,通过高低近似集的判断删除有效的属性,进行规制的输入。具体介绍链接 GSpangSpan算法属于图开掘算法畛域。,次要用于频繁子图的开掘,相较于其余的图算法,子图开掘算法是他们的一个前提或根底算法。gSpan算法用到了DFS编码,和Edge五元组,最右门路子图扩大等概念,算法比拟的形象和简单。具体介绍链接 4.Others目录下的算法:GA遗传算法。遗传算法使用了生物进化实践的常识来寻找问题最优解的算法,算法的遗传进化过程分抉择,穿插和变异操作,其中抉择操是十分要害的步骤,把更适应的基于组遗传给下一代。具体介绍链接 DbScan基于空间密度聚类算法。dbScan作为一种非凡聚类算法,补救了其余算法的一些有余,基于空间密,实现聚类成果,能够发现任意形态的聚簇。具体介绍链接 GA_Maze遗传算法在走迷宫游戏中的利用。将走迷宫中的搜寻进口门路的问题转化为遗传算法中的问题通过结构针对此特定问题的适值函数,基因挪动方向的定位,巧的进行问题的求解。具体介绍链接 CABDDCC基于连通图的决裂聚类算法。也是属于档次聚类算法次要分为2个阶段,第一阶段结构连通图。第二个阶段是决裂连通图,最终造成聚类后果。具体介绍链接 Chameleon两阶段聚类算法。与CABDDCC算法相同,最初是通过对小簇汇合的合并,造成最终的后果,在第一阶段次要是通过K近邻的思维造成小规模的连通图,第二阶段通过RI(绝对互连性)和RC(绝对近似性)来选一个最佳的簇进行合并。具体介绍链接 RandomForest随机森林算法。算法思维是决策树+boosting.决策树采纳的是CART分类回归数,通过组合各个决策树的弱分类器,形成一个最终的强分类器,在结构决策树的时候采取随机数量的样本数和随机的局部属性进行子决策树的构建,防止了过分拟合的景象产生。具体介绍链接 KDTreeK-Dimension Tree。多维空间划分树,数据在多维空间进行划分与查找。次要用于要害信息的搜寻,相似于在空间中的二分搜寻,大大提高了搜寻效率,在寻找指标元素时,应用了DFS深度优先的形式和回溯进行最近点的寻找。具体介绍链接 MS-Apriori基于多反对度的Apriori算法。是Apriori算法的降级算法,补救了原先Apriori算法的有余,还减少了反对度差异限度以及反对度计数统计方面的优化,毋庸再次从新扫描整个数据集,产生关联规定的时候能够依据子集的关系防止一些置信度的计算。具体介绍链接 ACO蚁群算法。蚁群算法又称为蚂蚁算法。同GA遗传算法相似,也是使用了大自然规律的算法,用于在图中寻找最优门路的概率型算法。灵感来源于蚂蚁在寻找食物时会散播信息素的发现门路行为。具体介绍链接 BayesNetwork贝叶斯网络算法。补救了奢侈贝叶斯算法中必须要事件独立性的毛病,利用了贝叶斯网络的DAG有向无环图,容许各个事件保留肯定的依赖关系,网络结构中的每个节点代表一种属性,边代表相应的条件概率值,通过计算从而能失去精准的分类成果。具体介绍链接 TAN树型奢侈贝叶斯算法。此算法又被称为加强版奢侈贝叶斯算法。在满足原有奢侈贝叶斯条件的根底上,他容许部条件属性间接的关联性。造成树型的构造。具体介绍链接 Viterbi维特比算法。给定一个隐马尔科夫模型以及一个察看序列,求出潜在的状态序列信息,每个潜在状态信息又会受到前一个状态信息的影响。 5.算法应用办法在每个算法中给出了3大类型,主算法程序,调用程序,输出数据,调用办法如下: 将须要数据的测试数据转化成与给定的输出格局雷同而后以Client类的测试程序调用形式进行应用。也能够自行批改算法程序,来实用于本人的应用场景算法码源见文末点击链接即可查看 更多优质内容请关注公号:汀丶人工智能;会提供一些相干的资源和优质文章,收费获取浏览。

July 3, 2023 · 1 min · jiezi

关于机器学习:玩转Matplotlib的10个高级技巧

Matplotlib是Python中风行的数据可视化库,仅应用简略的几行代码就能够生成图表。然而默认的办法是生成的图表很简略,如果想加强数据演示的影响和清晰度,能够试试本文总结的10个高级技巧,这些技巧能够将可视化晋升到一个新的程度: 1、rcParamsrcParams字典。它蕴含了用于创立图形的默认款式的所有Matplotlib设置。你能够间接从matplotlib命名空间导入它: from matplotlib import rcParams >>> rcParams ... 'axes.grid': False, 'axes.grid.axis': 'both', 'axes.grid.which': 'major', 'axes.labelcolor': 'black', 'axes.labelpad': 4.0, 'axes.labelsize': 'medium', 'axes.labelweight': 'normal', 'axes.linewidth': 0.8, ... rcParams['figure.figsize'] = 8, 6 rcParams['legend.fontsize'] = "large" rcParams['xtick.major.size'] = 4 rcParams['xtick.minor.size'] = 1这时所有的Matplotlib设置,如果你想批改任何的Matplotlib参数,间接批改这个字典就能够了,你甚至能够将他序列化到本地,而后在其余我的项目中间接加载,这样你的每一个Matplotlib实例应用的都是雷同的配置了。 还能够调用PyPlot的rcdefaults函数,它会将所有参数重置成默认值。 plt.rcdefaults()2、get_* functions在底层,Matplotlib是齐全面向对象的。 上图中看到的每个独自的组件都是作为一个独自的类实现的。它们都继承自基类Matplotlib Artist。 然而类太多,并且每个类的参数都不一样这会给应用带来很大的不不便,所以Matplotlib定制了有许多以get_前缀结尾的函数,能够间接创立图形中的组件。上面是一个例子: fig, ax = plt.subplots() >>> [func for func in dir(ax) if func.startswith("get")] ['get_adjustable', 'get_label', 'get_legend', 'get_legend_handles_labels', 'get_lines', 'get_navigate', 'get_title', 'get_transform', 'get_xmajorticklabels', 'get_xminorticklabels', 'get_xscale', 'get_xticklabels', 'get_zorder']假如咱们想自定义一个图形的坐标: ...

July 2, 2023 · 3 min · jiezi

关于机器学习:OpenVI论文解读系列达摩院细粒度分类SoftTriple-Loss-ICCV高引论文深入解读

一、背景度量学习是一种机器学习办法,它次要用于在相似性度量的根底上进行数据挖掘。具体来说,度量学习通过学习一种函数来度量两个数据样本点的相似性。这种函数称为度量函数,它的目标是在尽可能减少度量谬误的同时最小化类似数据样本点之间的间隔。典型的度量学习办法包含Triplet Loss、ProxyNCA、Npairs等。度量学习能够利用于许多畛域,例如:1.)图像分类:度量学习能够用来帮忙计算机辨认图像中的物体。例如,通过学习数据集中的图像时,能够计算出两张图像之间的类似度,从而帮忙计算机对新图像进行分类。例如,可能将图像分类到“狗”、“猫”或“其余”的类别中。度量学习在图像识别和分类中的利用十分宽泛,且获得了很好的成果。 残缺内容请点击下方链接查看: https://developer.aliyun.com/article/1207732?utm_content=g_10... 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

June 30, 2023 · 1 min · jiezi

关于机器学习:卷积神经网络入门基础

文章和代码曾经归档至【Github仓库:https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 神经网络根底 也可获取。CNN卷积神经网络发展史卷积神经网络(convolutional neural networks, CNN )CNN 是针对图像畛域工作提出的神经网络,经验数代人的倒退,在2012年之后大部分图像工作被CNN统治,例如图像分类,图像宰割,指标检测,图像检索等。 CNN构造受视觉零碎启发:1962 年,生物学家Torsten WieseI 和 David H. Hubel(1981年的诺贝尔医学奖)对猫的视觉零碎进行钻研,首次发现猫的视觉零碎中存在层级机构,并且发现了两种重要的细胞 simple cells 和 compIex cells,不同类型细胞承当不同抽象层次的视觉感知性能。 猫的视觉零碎试验 在猫脑上关上 3mm, 插入电极让猫看各种形态、地位、亮度和静止的光条察看大脑视觉神经元激活状况 神经元存在部分感触区域 ( receptive field),也称感触野 细胞感触区域存在差别:如C细胞和D细胞相同(图中X示意有响应,三角示意无响应) 细胞对角度有选择性。如图所示的该细胞对垂直光条响应最强。 细胞对静止方向有选择性(如图,a种形式感应更加强烈) 对CNN启发: 视觉零碎是分层、分级的进行解决,从低级到高级的形象过$\to$类比重叠应用卷积和池化神经元实际上是存在部分的感触区域的,具体来说,它们是部分敏感$\to$类比神经元部分连贯第一个卷积神经网络雏形——新认知机(Neocognitron)1980 年,日本学者福岛邦彦(Kunihiko Fukushima) 借鉴猫视觉零碎试验论断,提出具备层级构造的神经网络一一新认知机,重叠应用相似于S细胞和C细胞的两个构造。S细胞和 C 细胞可类比古代CNN的卷积和池化。 毛病: 没有反向流传算法更新权值,模型性能无限。 福岛邦彦主页 :http://personalpage.flsi.or.jp/fukushima/index-e.html 第一个大规模商用卷积神经网络——Lenet-51989 年,Lecun 等人已开始钻研Lenet;1998 年,Lecun等人提出Lenet-5,并胜利在美国邮政零碎中大规模利用于手写邮政编码辨认 毛病:无大量数据和高性能计算资源 第一个技惊四座的卷积神经网络——AlexNet2012年,AlexNet以超出第二名10.9个百分点的问题夺得ILSVRC分类工作冠军,从此拉开卷积神经网络告诉图像畛域尾声。 算料:ImageNet算力:GPU(GTX580 * 2)算法:AlexNet 卷积操作卷积层(Convolutional Layer)图像识别特点: 特色具备局部性:例如老虎重要特色“王字”仅呈现在头部区域 —— 卷积核每次仅连贯K*K区域,K*K是卷积核尺寸; 特色可能呈现在任何地位——卷积核参数重复使用(参数共享),在图像上滑动(示例图像起源:https://github.com/vdumoulin/conv_arithmetic) 0×0+1x1+3×2+4×3 =19 下采样图像,不会扭转图像指标卷积核卷积核:具可学习参数的算子,用于对输出图像进行特征提取,输入通常称为特色图(feature maps)。 ...

June 29, 2023 · 1 min · jiezi

关于机器学习:葡萄风味有奥秘农科院用机器学习揭示基因渐渗过程

内容一览: 基因渐渗与葡萄的驯化、遗传改进密切相关。先前钻研揭示了欧洲栽培葡萄中,家养葡萄基因渐渗的基因组信号,但尚未深入研究这些渐渗事件产生的工夫、形式、基因组模式和生物学效应。本文中,中国农业科学院深圳农业基因组研究所的钻研人员,应用机器学习的种群遗传分析方法,对栽培葡萄以及家养葡萄进行了重测序数据分析,这对于葡萄育种具备重要意义。关键词: 基因渐渗 葡萄驯化 机器学习本文首发自 HyperAI 超神经微信公众平台~ 基因渐渗是指基因从一种物种或种群,渗入到另一种物种或种群的过程。 它通常产生在不同物种之间的杂交和回交过程中。在基因渐渗中,外源基因通过杂交进入指标物种的基因池,与指标物种的本地基因产生混合。这种渐渗能够导致指标物种的基因组产生扭转,取得新的遗传变异和多样性。 葡萄的基因渐渗是指家养葡萄 (Vitis vinifera ssp. sylvestris) 与栽培葡萄 (V. vinifera ssp. vinifera) 之间基因交换和基因流动的过程。 在自然界和人工抉择的影响下,家养葡萄与栽培葡萄之间产生基因替换,导致栽培葡萄中呈现家养葡萄的遗传特色。 近期,中国农业科学院深圳农业基因组的钻研人员,钻研了驯化葡萄与其欧洲家养近缘种之间的渐渗历史,他们应用基于机器学习的群体遗传办法,揭示了葡萄风味的造成机制,对其基因特色及其对葡萄育种的影响提供了深刻的见解。目前,该研究成果已发表在《Proceedings of the National Academy of Sciences》期刊上,题目为《Adaptive and maladaptive introgression in grapevine domestication》。 该研究成果已发表在《Proceedings of the National Academy of Sciences》期刊上 论文地址:https://www.pnas.org/doi/abs/10.1073/pnas.2222041120 数据集钻研人员对一组 345 个测序样本进行了剖析,这些样本包含酿酒葡萄和食用葡萄,涵盖了家养葡萄的宽泛地理分布范畴, 其中包含来自欧洲的 72 种家养葡萄 (V. vinifera ssp. sylvestris)、来自中东和高加索地区的 36 种家养葡萄和 231 种驯化葡萄 (V. vinifera ssp. vinifera),以及代表北美外群物种的 Vitis californica (n = 3) 和 Muscadinia rotundifolia (n = 3)。此外,钻研人员还对欧洲家养葡萄进行了采样以笼罩欧洲和近东的预测散布区域。 ...

June 27, 2023 · 2 min · jiezi

关于机器学习:生物信息学Notebook案例|单细胞转录组分析

在 Notebook 广场发现「生物信息学 Notebooks Collection」 边学边练,无需配置环境,仅须要专一于学习自身。依附收费的 2 核 4G 计算资源,你能够在平台上间接运行和批改代码。间接轻松上手生物信息学! 生物信息学随着生物科技的飞速发展,生物信息学这一跨学科畛域逐步锋芒毕露。生物信息学是一门致力于钻研生物数据的迷信,涵盖了基因组学、蛋白质组学、代谢组学等多个畛域。 通过生物信息学的办法,咱们能够深刻开掘生物数据背地的法则,为疾病诊断、新药研发、生态爱护等畛域提供无力反对。 Notebooks Collection然而,生物信息学的学习与实际过程中,人们往往会遇到一些艰难: 初学者很难找到一个系统地能边学边练的平台;罕用者在解决版本抵触、疾速跑通特定办法时,不足一个高效的平台;论文发表者无奈不便地将论文和代码环境打包在一起进行流传。为了解决这些问题,咱们推出了生物信息学 Notebooks 系列—— 对于生物信息学人来说,你能够不便的应用在线 Notebook 涵盖从学习、应用到流传的全过程。咱们将在Notebook 案例广场整顿一系列的生物信息学教程,让你轻松把握生物信息学的精华,成为实实在在的达人! 「单细胞转录组剖析」案例明天,作为这个系列的第一步,咱们要向大家举荐一个单细胞转录组的 Notebook:《一篇Notebook带你走进单细胞转录组剖析》,这个案例的内容包含以下三个局部: 寻找状态转变过程中的基因聚类:通过对单细胞转录组数据进行聚类分析,一窥不同状态转变过程中的基因表白神秘。寻找聚类中的标记基因:找到这些聚类中的标记基因,让咱们更加深刻地理解细胞之间的关系及其性能变动。拟时序计算:通过拟时序计算,咱们能够对单细胞转录组数据进行工夫序列剖析,进而揭示细胞状态变动的动静过程。这三个局部独特形成了一个残缺的单细胞剖析流程,点击下方 Notebook 链接,立刻理解单细胞转录组剖析:https://nb.bohrium.dp.tech/detail/1291 目前的单细胞系列Notebooks: 一篇Notebook带你走进单细胞转录组剖析:https://nb.bohrium.dp.tech/detail/1291单细胞转录组分析方法之数学原理初览:https://nb.bohrium.dp.tech/detail/1295单细胞转录组分析方法实战之Shalek2013:https://nb.bohrium.dp.tech/detail/1296单细胞转录组剖析实战之Macaulay2016:https://nb.bohrium.dp.tech/detail/1297细胞动力学模型摸索之Cellbox:https://nb.bohrium.dp.tech/detail/1298将来,咱们将推出更多的单细胞系列 Notebooks,以及“根底生信系列教程”、“空间组学系列教程”、“作图系列教程”等。咱们置信这个系列将成为你在生物信息学路线上的得力助手! 欢送关注咱们的微信公众号 NBHub,获取更多乏味的 Notebook 实际~ 感兴趣的童鞋能够查看原文退出生物信息学探讨群:https://mp.weixin.qq.com/s?__biz=Mzg5NTk3Nzk3MQ==&mid=2247484...

June 26, 2023 · 1 min · jiezi

关于机器学习:编译-CoreML-模型

本篇文章译自英文文档 Compile CoreML Models 作者是 Joshua Z. Zhang,Kazutaka Morita,Zhao Wu更多 TVM 中文文档可拜访 →Apache TVM 是一个端到端的深度学习编译框架,实用于 CPU、GPU 和各种机器学习减速芯片。 | Apache TVM 中文站 本文介绍如何用 Relay 部署 CoreML 模型。 首先装置 coremltools 模块,可通过 pip 疾速装置: pip install -U coremltools --user或参考官网:https://github.com/apple/coremltools import tvmfrom tvm import teimport tvm.relay as relayfrom tvm.contrib.download import download_testdataimport coremltools as cmimport numpy as npfrom PIL import Image加载预训练的 CoreML 模型这个例子应用 Apple 提供的预训练的 mobilenet 分类网络。 model_url = "https://docs-assets.developer.apple.com/coreml/models/MobileNet.mlmodel"model_file = "mobilenet.mlmodel"model_path = download_testdata(model_url, model_file, module="coreml")# 当初磁盘上有 mobilenet.mlmodel 模型mlmodel = cm.models.MLModel(model_path)加载测试图像还是用猫的图像: ...

June 26, 2023 · 2 min · jiezi

关于机器学习:多模态大语言模型-LlaVA-论文解读Visual-Instruction-Tuning

代码:https://github.com/haotian-liu/LLaVA 总览在这篇论文中,作者首次尝试应用纯语言 GPT-4 生成多模态语言图像指令遵循数据(insruction-following data)。 通过对此类生成数据进行指令调整,推出了大型语言和视觉助手(Large Language and Vision Assistant,LLaVA)。一种端到端训练的大型多模态模型,连贯视觉编码器和 LLM 以实现通用视觉和语言了解。 背景等相干办法:大型语言模型(LLM)表明语言能够施展更宽泛的作用:通用助手的通用接口,各种工作指令能够用语言明确示意并领导端到端 训练有素的神经助手切换到感兴趣的工作来解决它。例如,最近 ChatGPT 和 GPT-4 的胜利证实了对齐 LLM 在遵循人类指令方面的力量,并激发了人们对开发开源 LLM 的极大趣味。 其中,LLaMA [44] 是一个与 GPT-3 性能相匹配的开源 LLM。 Alpaca [43]、Vicuna [45]、GPT-4-LLM [34]利用各种机器生成的高质量指令追随样本来进步 LLM 的对齐能力,与专有 LLM 相比,报告了令人印象粗浅的性能。 重要的是,这行工作是纯文本的。不同于下面文本的指令微调,作者提出了视觉指令微调,第一个尝试将指令微调拓展到多模态畛域调整。奉献如下: 数据方面:应用ChatGPT/GPT-4来将数据转化为多模态指令遵循数据(multimodel instrustion-following data);模型方面:应用CLIP+LLaMA进行指令微调,构建了多模态大模型LLaVA,失去了较好的后果;开源,开源,还是开源!这年头大模型开源都算次要contribution了。GPT-帮助的数据生成这部分我写的比拟细,因为当初大模型论文在模型上区别并不大,次要还是数据的区别。基于已有的大量图片对数据,利用ChatGPT/GPT-4进行多模态指令遵循数据的收集。次要问题集中在如何用 Language-only/Text-only的ChatGPT/GPT-4模型来为图片内容生成对应的指令。 最根本的形式:图片Xv和其对应的阐明文字Xc,构建一个问题汇合Xq来提醒大模型助手对图片内容进行形容。通过提醒GPT-4能够构建这样一个问题序列,如下图: 而后能够将图文对扩大成指令遵循版本的数据格式:Human: Xq Xv <STOP> \n Assistant: Xc <STOP> \n。 但这样结构的数据都不足多样性和深刻推理性,为了补救这一问题,作者将视觉内容编码送进ChatGPT来进步指令的品质,用了两类的合乎示意:文字说明(通常从不同的角度形容视觉场景)和编辑框BBox(通常对场景中的物体进行定位,每个边界框对物体的概念及其空间地位进行编码),如下图: 通过这两类合乎示意,将视觉内容传播给了大模型,而后手工设计了3种对话形式,利用GPT-4进行生成和裁减,别离是对话、细节形容和简单推理。 这里的每种类型应用的问题(Question)也是通过GPT进行in-context-learning来模拟生成的。其中,图片/形容/边界框等信息应用COCO数据集的数据。 以对话为例,作者采纳了下图的形式生成更多的对话标签。 最终累积158K的语言-图片指令遵循样本,58K对话、23K细节形容和77K简单推理。同时在应用ChatGPT和GPT-4时,作者发现GPT-4生成的指令遵循数据品质更高,比方空间推理能力。 网络结构与GPT-4-LLM[34], Alpaca[43], Vicuna[45]相似,作者应用LLaMA来做 指令微调工作,网络结构如下。整体比较简单,再语言模型前(LLaMA)增加了一个视觉编码器(CLIP)将图片转化为Patch features,而后这些图片特色通过一个映射层W转化为视觉Token,Vison Token与Language Token指令在同一个特色空间,一起拼接(concantate)一起送进大模型。 ...

June 26, 2023 · 1 min · jiezi

关于机器学习:INFT-3019-无线网络架构

INFT 3019 Network Architecture 2022Assignment 2: Wireless Implementation (25%)Due: Tuesday 14th June 2022 @ 11:59 PM(Week 14)Individual AssignmentSubmission: via the course website OverviewStelmaria Incorporated has finally finished moving their headquarters to Mawson Lakes Tech Parkand now want to upgrade their wireless infrastructure from a standard WPA2 PSK setup to a moreenterprise solution with Wireless LAN Controllers (WLCs) and WPA2 Enterprise. They are also lookingto learn more about WAN connections that are available to the company to enhance theirinterconnectivity between branch offices. They will also be looking at implementing more WAN links,currently Stelmaria has a reliance on Mawson Lakes Tech Park to route all traffic from all branchoffices to the ISP and back to the branch offices. Stelmaria is looking for other options that giveredundancy and scalability for branch offices and its headquarters.In this assignment you will be making use of the skills you have learnt over the entire course tocreate an IP addressing scheme, a network implementation with wireless and recommend a WANsolution for Stelmaria that meets their needs as a growing enterprise.DeliverablesYou will be required to complete four deliverables and include them in your submission: IP addressing scheme (Excel Spreadsheet or Word Document/PDF). Test documentation (Excel Spreadsheet or Word Document/PDF). Completed network configuration (Packet Tracer file). Recommended WAN solution, justifications, and assumptions (Word Document/PDF).Do not add these deliverables to a ZIP archive on submission. Submit them as separate files.WeightingThe assignment is worth 25% of your overall grade for this course. The following table breaks downeach component of the assignment, giving it a percentage out of the 25% for this assignment. TheImplementation is worth 17% and the WAN solution is worth 8%IP addressing scheme 2.5%Basic configuration 1%VLANs & VTP 1%IP addressing implementation 1%OSPF & Routing 3%DHCP 2%NAT 2%Wireless 3.5%Testing 1%4/04/2022 v1.0WAN Solution 8% ...

June 26, 2023 · 9 min · jiezi

关于机器学习:AI近十年盘点纵览AI发展历程探寻AI未来走向

编者按:当咱们回顾过去十年的人工智能倒退历程时,能够看到一场当初还正在进行的改革,对咱们的工作形式、商业经营模式和人际交往行为都产生了深远的影响。从2013年的AlexNet到变分自编码器,再到最近的生成式大模型,人工智能技术一直呈现的突破性停顿推动着整个畛域的蓬勃发展。 本文将为您深度解读这些关键性技术冲破,并且对人工智能将来的发展趋势进行瞻望。不管您是从事AI行业的开发者或钻研人员,还是对最新AI技术倒退充斥好奇心的公众读者,咱们热切期盼本篇文章可能为您提供肯定的帮忙。 让咱们独特摸索、拥抱人工智能吧! 以下是译文,Enjoy! 作者 | Thomas A Dorfer 编译 | 岳扬 目录01 2013年:AlexNet与变分自编码02 2014年:生成式反抗网络03 2015年:ResNets和NLP畛域的突破性停顿04 2016年:AlphaGo05 2017年:Transformer架构和语言模型06 2018年:GPT-1、BERT和图神经网络07 2019年:GPT-2和改良的生成模型08 2020年:GPT-3和自监督学习09 2021年:AlphaFold 2、DALL-E和GitHub Copilot10 2022年:ChatGPT 和 Stable Diffusion11 2023年:LLMs和Bots12 回顾过去&展望未来 Image by the Author. 过来的十年对于人工智能畛域来说是一个令人激动的阶段。从对深度学习后劲的初步摸索到整个畛域的爆炸性倒退,现在该畛域的利用曾经包含电子商务的举荐零碎、主动驾驶汽车的物体检测以及生成式模型(创立真切的图像和连贯的文本等)等内容。 在这篇文章中,咱们将散步在记忆的长河中,重温让咱们走到明天的一些关键性技术冲破。 无论您是资深的人工智能从业者还是仅仅对该畛域的最新倒退感兴趣,本文都将为您全面介绍那些促使人工智能(AI)成为妇孺皆知的词语的技术停顿。 01 2013年:AlexNet与变分自编码器2013年被大家认为是深度学习走向成熟的一年,这源于计算机视觉畛域呈现的重大提高。依据杰弗里·辛顿(Geoffrey Hinton)最近的一次采访[1],到了2013年, “简直所有的计算机视觉钻研都曾经转向神经网络” 。这股热潮次要是由一年前(2012年)图像识别畛域一个相当令人诧异的冲破所推动的。 在2012年9月,一种深度卷积神经网络(CNN)AlexNet[2]在ImageNet大规模视觉辨认比赛(ILSVRC)中获得了破纪录的问题,证实了深度学习在图像识别工作中的后劲。它的Top-5 错误率[3]为15.3%,比其最靠近的竞争对手低10.9%。 Image by the Author. 这一胜利背地的技术改良极大地促成了人工智能的倒退,并且极大地扭转了人们对深度学习的认识。 首先,AlexNET的作者采纳了一个由五个卷积层(convolutional layers)和三个全连贯线性层(fully-connected linear layers)组成的deep CNN——该网络架构过后被许多人认为是不实用的。此外,因为网络的深度产生了大量参数,训练是在两个图形处理单元(GPUs)上并行进行的,证实了在大型数据集上进行疾速训练的能力。通过应用更高效的修改线性单元(Rectified Linear Unit,ReLU)[4],传统的激活函数(如sigmoid和tanh)被替换,更进一步缩短了训练工夫。 Image by the Author. 这些技术停顿独特推动了AlexNet的胜利,使其成为人工智能历史上的一个转折点,并引发学术界和科技界对深度学习的趣味激增。因而,许多人认为2013年是深度学习真正开始腾飞的一座分水岭。 同样也产生在2013年的(只管有点被AlexNet的盛大声势所覆盖)是变分自编码器(或被称为VAEs[5])的倒退——生成式模型能够学习表白(represent)和生成数据(如图像和声音)。它们通过学习输出数据在低维空间(称为隐空间(latent space))的压缩示意来工作。这使它们可能通过从已学习的隐空间中进行采样生成新的数据。起初,VAEs被认为开拓了新的生成模型(generative modeling)和数据生成路径,并在艺术、设计和游戏等畛域失去利用。 02 2014年:生成式反抗网络这之后第二年,即2014年6月,Ian Goodfellow及其共事提出了生成式反抗网络(GANs)[6],这是深度学习畛域又一个重大的停顿。 GANs是一种神经网络,可能生成与训练集类似的新数据样本。实质上是同时训练两个网络:(1)有一个生成器网络生成虚伪的或合成的样本,(2)另一个鉴别器网络评估它们的真实性。这种训练是在一种相似于游戏的设定中进行的,生成器试图发明可能坑骗鉴别器的样本,而鉴别器则试图正确地辨认出虚伪的样本。 在过后,GANs代表一种弱小而新鲜的数据生成工具,不仅可用于生成图像和视频,还可用于音乐和艺术畛域。GANs展现了在不依赖于显式标签(explicit labels)的状况下生成高质量数据样本的可能性,这一可能性为无监督学习的停顿做出了较大的奉献,而之前这个畛域被宽泛认为是绝对欠倒退且具备挑战性的。 ...

June 25, 2023 · 2 min · jiezi

关于机器学习:TT语音使用个推文案圈人模型智选人群实现消息推送点击率提升120

往年3月份,个推将数智经营服务在音讯推送场景率先落地,公布了音讯推送专项经营晋升计划,旨在帮忙APP强化与用户的连贯,使音讯推送更出功效。目前,该计划曾经在游戏社交、影音资讯等行业利用,在晋升音讯达到率和点击率等方面体现出显著效果。 尤其是TT语音,从2019年起TT语音就与个推开展了深度单干,作为国内当先的趣味社交平台,TT语音为玩家提供组队开黑、队友匹配、电子竞技等多种娱乐互动服务,累计注册用户已超1亿。此次通过个推音讯推送专项经营晋升计划,TT语音不仅保障了音讯的稳固下发,还通过文案圈人模型,高效开掘指标用户群,使整体音讯推送点击率晋升了近120%。 音讯达到率晋升,助力游戏互动场景体验降级作为一款社交平台,TT语音非常重视用户体验。而互动环节的音讯达到率将会极大影响玩家对好友的感知能力。 为了晋升玩家的社交体验,加强用户的活跃度及粘性,TT语音采纳“个推+厂商”的推送策略,开启了APNs、华为、光荣、小米、OPPO、vivo、 魅族、坚果、索尼、海信、FCM等十大厂商通道,同时基于个推智能配额、离线补发、推送后效剖析等能力,无效保障了音讯的胜利下发,全面晋升用户触达成果。 音讯点击率晋升,助力APP用户经营成果降级除了音讯的达到率,TT语音还通过个推音讯推送专项经营晋升计划,实现了“智选机会”和“智选人群”,智能匹配推送机会、推送文案和推送人群,促成音讯推送点击率的大幅晋升。 首先,通过专项晋升计划,TT语音智能预测出最佳的推送机会,更无效地吸引用户点击;其次,TT语音应用个推文案圈人模型,让AI学习文案特色,智能预测对该推送文案有更高点击概率的人群,实现文案与TA用户的精准匹配,把适合的内容推送给适合的人群,晋升推送成果。 个推音讯推送专项经营晋升计划将公司音讯推送、数据分析、算法模型等能力以及本身积攒的丰盛经营教训整合,以用户触达场景为终点,为APP进行数智化经营继续增能。 近日个推还进一步对数智经营服务进行了整体降级,以用户为核心,个推助力APP实现数据驱动的用户洞察、分层、触达及后效剖析,晋升经营效率与成果。

June 25, 2023 · 1 min · jiezi

关于机器学习:Javascript版Langchain入门

我是AI小火箭的HB,我摸索和写作人工智能和语言交叉点的所有事物,范畴从LLM,聊天机器人,语音机器人,开发框架,以数据为核心的潜在空间等。介绍LangChain是一个开源Python库,用于构建由大型语言模型(LLM)反对的应用程序。它提供了一个框架,将LLM与其余数据源(如互联网或集体文件)连接起来,容许开发人员将多个命令链接在一起,以创立更简单的应用程序。LangChain创立于2022年10月,是围绕LLMs(大语言模型)建设的一个框架,LLMs应用机器学习算法和海量数据来剖析和了解自然语言。LangChain本身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相干的组件“链接”在一起,简化LLMs利用的开发难度,不便开发者疾速地开发简单的LLMs利用。 反对的语言LangChain目前有两个语言的实现:Python和Node.js。 组件LangChain的组件包含: Models:模型,各种类型的模型和模型集成,比方GPT-4。Prompts:提醒,包含提醒治理、提醒优化和提醒序列化。Memory:记忆,用来保留和模型交互时的上下文状态。Indexes:索引,用来结构化文档,以便和模型交互。Chains:链,一系列对各种组件的调用。Agents:代理,决定模型采取哪些口头,执行并且察看流程,直到实现为止。应用场景LangChain的应用场景包含:构建聊天机器人、文本生成、文本分类、问答零碎、语言翻译、语言模型微调等。 装置依赖库npm install -S langchainHello World首先,应用Langchain来调用OpenAI模型。 import { OpenAI } from "langchain/llms/openai";const model = new OpenAI({ openAIApiKey: 'sk-xxxx',//你的OpenAI API Key temperature: 0.9});const res = await model.call( "写一首诗,限度20个字");console.log(res);输入 春风迎新年,喜气绕家园。祝愿短信语,友情永绵长。替换提醒语中的参数import { OpenAI } from "langchain/llms/openai";import { PromptTemplate } from "langchain/prompts";import { LLMChain } from "langchain/chains";const model = new OpenAI({ openAIApiKey: 'sk-xxxx',//你的OpenAI API Key temperature: 0.9});const template = "What is a good name for a company that makes {product}?";const prompt = new PromptTemplate({ template: template, inputVariables: ["product"],});const chain = new LLMChain({ llm: model, prompt: prompt });const res = await chain.call({ product: "colorful socks" });console.log(res);开始见识Langchain的弱小截止上个实例,你还没见识到Langchain的弱小。 ...

June 24, 2023 · 1 min · jiezi

关于机器学习:使用-Midjourney-进行-UI-UX-设计的一些典型场景

@TOC本公众号之前的文章,介绍了一些 ChatGPT 的应用技巧: 与其终日放心 AI 会取代程序员,不如先让 AI 帮忙本人变得更弱小每日一个 ChatGPT 应用小技巧系列之1 - 给出提纲或者素材,让 ChatGPT 帮你写作每日一个 ChatGPT 应用小技巧系列之2 - 用 ChatGPT 研读 SAP ABAP BAPI 的实现源代码每日一个 ChatGPT 应用小技巧系列之3 - 利用角色扮演进步 ChatGPT 回复的品质明天换换口味,聊聊 Midjourney. Midjourney 是一个基于人工智能的创意工具,能够生成艺术作品、设计图像、标记、杂志封面等,它利用人工智能技术为用户提供疾速、便捷的设计选项。 用户能够通过上传图片、提供 Prompt 等形式与 Midjourney 进行互动,而后它会利用 AI 算法生成合乎用户要求的图像或设计。Midjourney 提供了各种参数和选项,用户能够依据本人的需要调整图像的比例、品质和款式等。 本文形容的场景用例,来自国外技术社区 artificialcorner,点击文末浏览原文能够跳转到原文。 应用场景1 - 基于用户上传的原始图片生成新的图片筹备一张原始图片,比方本人入手来一张人物简笔画: 上传给 Midjourney,应用如下 prompt,生成新的图片: /imagine prompt: https://s.mj.run/OBfZb0KOehw beautiful girl with long blond hair, in black dress, with flowers in hands, with black hat, 8K, white background其中 https://s.mj.run/OBfZb0KOehw 是本地图片上传到 Midjourney 后生成的短链接,prompt 的英文意思是一个金发漂亮女孩,衣着彩色连衣裙,头戴彩色帽子,手中拿着花朵。8K 指生成图片的分辨率,即程度像素数达到 8000 像素。 ...

June 22, 2023 · 2 min · jiezi

关于机器学习:药物-3D-打印新突破圣地亚哥大学用机器学习筛选喷墨打印生物墨水准确率高达-9722

内容一览: 药物喷墨打印是一种高度灵便和智能化的制药形式。据相干报告统计,该畛域市场规模将在不久的将来出现指数级增长。过往,筛选适合生物墨水的办法费时且费劲,因而也成为药物喷墨打印畛域面临的次要挑战之一。为解决这一问题,国内药剂学期刊《International Journal of Pharmaceutics: X》上公布了一篇研究成果,利用机器学习模型来预测墨水可打印性,预测准确率高达 97.22%。关键词: 喷墨打印 3D 打印 随机森林本文首发自 HyperAI 超神经微信公众平台~ 依据新华社在 2022 年公布的一篇报道,药物研发周期通常长达 10-15 年,资金投入约为 10-20 亿美元,其技术提高和迭代十分迟缓,尤其以制药畛域最成熟的剂型之一固体制剂为例,100 多年来并未呈现颠覆性技术,其投产上市仍面临着活性药物成分稳定性、开释动力学和生物利用度等关键性阻碍。 传统制药办法尽管实用于繁多制剂的大规模生产,然而在晚期临床试验中,通常会对药物进行剂量递增的钻研,以确定最佳及最平安的患者剂量,因而对于较小批量的试验药物,传统制药办法并不实用。 3D 打印因其具备高度灵活性,且生产过程数字化、间断化, 在药物设计、制作和应用上,可能肯定水平上减缓甚至克服以上阻碍。 其中,药物喷墨打印不仅提供了数字化管制打印的能力,还具备管制剂量和自在设计的劣势,为个性化给药提供了可能。药物喷墨打印中,墨水个性的优化以及印刷成果始终以来都是钻研的焦点, 以往钻研人员会根据奥内佐格数来预测墨水的可打印性,然而,这种传统预测办法往往会不精确。 近期,来自圣地亚哥德孔波斯特拉大学 (Universidade de Santiago de Compostela) 的 Paola Carou-Senra 以及来自伦敦大学学院 (University College London) 的 Jun Jie Ong 等钻研人员开创性地将机器学习模型利用于预测生物墨水可打印性,并胜利地进步了预测率。目前该钻研已公布在《International Journal of Pharmaceutics: X》期刊上,题目为「Predicting pharmaceutical inkjet printing outcomes using machine learning」。 图 1:该研究成果已发表在《International Journal of Pharmaceutics: X》 论文地址:https://www.sciencedirect.com/science/article/pii/S2590156723... 试验概述奥内佐格数 (Ohnesorge) 是流体力学中用来度量黏性力与惯性力和表面张力的互相关系的无穷纲数, 次要用于预测墨水的可打印性。可打印配方中,0.1 < Ohnesorge < 1,即 1 < Z < 10 (Z 值是 Ohnesorge 倒数) 时,通常认为墨水可打印。然而很多例外情况下,Z > 10 时墨水也是可打印的。 ...

June 21, 2023 · 2 min · jiezi

关于机器学习:阿里云-PAIx-达摩院-GraphScope-开源基于-PyTorch-的-GPU-加速分布式-GNN-框架

导读近期阿里云机器学习平台 PAI 团队和达摩院 GraphScope 团队联合推出了面向 PyTorch 的 GPU 减速分布式 GNN 框架 GraphLearn-for-PyTorch(GLT) 。GLT 利用 GPU 的弱小并行计算性能来减速图采样,并利用 UVA 来缩小顶点和边特色的转换和拷贝。对于大规模图,GLT 应用了生产者-消费者的架构,通过异步并发的分布式采样和特色查找以及热点缓存性能反对在多个 GPU 或多个机器上进行高效的分布式训练。接口上,GLT 放弃了 PyTorch的格调,并且和 PyG 兼容,只需大量代码批改就能够减速 PyG 的单机训练程序,或者将 PyG 单机模型改成分布式训练。此外,GLT 还提供了灵便的分布式训练部署以满足不同的需要。 开源地址:https://github.com/alibaba/graphlearn-for-pytorch 文档地址:https://graphlearn-torch.readthedocs.io/en/latest/index.html 背景介绍图神经网络作为一种图数据上示意学习的办法曾经被广泛应用在图相干的各个领域,在电商举荐、平安风控、生物分子等畛域获得了理论落地。图神经网络因为其独特的数据处理逻辑和神经网络计算逻辑,须要有专门的学习框架来反对训练。PAI团队之前开源了大规模工业级分布式图学习框架 GraphLearn(https://github.com/alibaba/graph-learn)。GraphLearn 以 TensorFlow 1.x 系列为主,采纳 ps 架构的异步训练模式,反对十亿节点,百亿边规模的大规模异构图分布式训练,利用于阿里内外部若干业务场景。随着PyTorch 的风行,其更加灵便的贴近 Python 的接口,简略易调试等个性使得算法开发者更偏向于应用 PyTorch 开发模型。DGL 和 PyG等基于PyTorch的开源GNN框架以单机为主,无奈反对大规模图的分布式训练。 此外,因为 GPU 并行计算的劣势,图神经网络应用 GPU 训练比 CPU 训练有数倍的晋升。然而常见的图神经网络框架将图拓扑数据和特色存在内存里,应用CPU进行采样和特色查找并将数据拷贝到GPU进行神经网络训练,这个过程中图采样和特色查找局部很容易成为整体训练的瓶颈。上面咱们以大规模图上典型的训练流程为例对训练过程的性能瓶颈进行剖析阐明。 一个典型的GNN训练流程[1] 包含: 子图拓扑采样,采样多跳街坊并组成子图;查问子图里节点或者边的特色;将子图格局转换成神经网络训练须要的格局并且拷贝到GPU显存中;对原始特色进行解决,比方离散特色进行embedding lookup;街坊聚合;节点更新。其中,3和4为可选步骤。常见的 GNN 模型神经网络参数相对来说比拟小,因而计算量也比拟小,瓶颈通常在1-4步,具体来说次要是I/O操作,包含通信,数据拷贝和格局转换。这导致即便应用GPU进行训练,GPU的资源利用率也很低,整体吞吐以及扩展性很难进步。 综上所述,咱们须要一个高效的基于PyTorch 的分布式 GNN 训练框架,可能充分利用 GPU 等硬件资源,可能基于图的数据分布性质,联合不同算法模型和并行策略做相应优化,缩小通信和数据转换耗时,晋升整体吞吐。 要害设计设计初期,咱们和 Quiver[2] 团队单干针对 GPU 采样的可行性进行了初步摸索,发现 GPU 采样相比 CPU 可能带来数量级的晋升。此外,为了缩小特色在 CPU 内存和 GPU 显存之间的拷贝开销,特色能够间接存储在 GPU 显存里。然而对于规模比拟大的数据来说,显存无奈存储所有特色数据,因而咱们用 UVA 技术来进行特色的存储,相比间接内存存储也有数量级的性能晋升。工业界的图规模很容易冲破单机的极限,因而咱们进一步设计了分布式训练框架。具体来说,咱们应用生产者-消费者范式来解决分布式图采样和特色查找以及模型训练的关系,将图采样、特色查找与训练进行解耦,应用多过程并行和协程异步并发来减速采样和特色查找,并应用预取和热点缓存的形式进一步缩小训练端的期待,晋升端到端吞吐。思考到用户迁徙老本和易用性,在接口上咱们放弃了和 PyG 的兼容,只需大量改变 PyG 代码就能够减速 PyG 的训练,或者将其迁徙到 GLT 的分布式训练上。以下为咱们具体论述几个要害的设计点。 ...

June 21, 2023 · 2 min · jiezi

关于机器学习:与其整天担心-AI-会取代程序员不如先让-AI-帮助自己变得更强大

@TOC 我从 2007 年大学毕业加入工作至今,曾经在软件开发这个岗位上工作 16 年了。这十六年来我也算经验过一些新的技术浪潮的洗礼吧。我工作的 SAP 是欧洲最大也是最胜利的软件公司之一,次要的深耕畛域是企业管理软件。我经验了从本地部署软件(On-Premises)到云原生利用这种开发思维和理念的转变,也亲自领会到了 Docker 和 Kubernetes 等虚拟化技术给开发人员带来的切切实实的便捷和工作效率的晋升。但这些,都远远没有今年年初以 ChatGPT 为代表的一系列 AI 技术让我感到震撼。 SAP 其实也早已公布了面向企业级用户的与某一细分畛域和业务紧耦合的 AI 服务,这些 AI 服务部署在 SAP 本人的 BTP 云平台上,因为指标用户不是 2C 的集体群体,所以不像 ChatGPT 这样为一般公众所知。 只管有业界不少大佬也收回了诸如 三年之后 AI 将终结编程 这种舆论,但我这个人生性比拟乐观,就算有一天 AI 真的会终结绝大多数程序员,只剩下极少数的算法工程师,那我也要尽可能在 AI 终结我之前,充分利用 AI 让本人变得更弱小。 我之所以会有这种绝对乐观的想法,是因为应用 ChatGPT 等一系列 AI 产品这几个月,我发现自己的工作和学习效率都比以前有进一步的晋升。 对于程序员来说,大家想必都习惯了通过 ChatGPT 来生成代码,而后本人手动稍加调整,这样能在极短的工夫内失去能够运行的代码。除了这种最惯例的操作之外,本文想分享一些笔者在日常工作中是如何应用 ChatGPT 等 AI 工具进步本人工作效率的例子。 为代码生成对应的单元测试代码应用的 ChatGPT prompt:为上面这个<语言>实现的代码,编写对应的单元测试代码,而后将要生成单元测试的代码喂给 ChatGPT: ChatGPT 会主动生成单元测试代码,咱们能够在这些根底上,进行人工审查而后批改。 !](https://upload-images.jianshu.io/upload_images/2085791-469009...) 利用 ChatGPT 帮忙本人研读经典框架的源代码比方我是一个 Angular 开发人员,简直每天都要和其规范库里的 HttpClient 工具库打交道。 ...

June 20, 2023 · 1 min · jiezi

关于机器学习:用-ChatGPT-解答-2023年四川高考语文作文题-时间掌控的边界自由与仆役的交织

度日如年,间隔我当年加入高考,曾经 23 年过来了。 尽管我接触 ChatGPT 还不到半年,但它曾经粗浅扭转了我的工作和思考形式。我不晓得 ChatGPT 的呈现,是不是让我变得越来越懒,越来越离不开它了。 明天看到群里探讨起往年四川高考语文作文题,忍不住让 ChatGPT 来实现了这篇作文。 作文题目: "随着技术的倒退,人们对工夫的掌控越来越好,但有的人又变成了工夫的佣人"。对此,引发了你怎么的思考和联想? ChatGPT 生成全文总共也就一二十秒的工夫,尽管读起来依然 "GPT 味" 十足,并且也谈不上立意粗浅,但再次体现了 AIGC 齐全碾压人类的生产率——这篇自命题文章如果让我当初来写,至多也要花费半小时以上,而且我并没有把握写进去的文章胜过 ChatGPT. 各大网站比方知乎上,有很多高考语文作文高分模板。如果冀望应用 ChatGPT 生成高分作文,能够一直优化给 ChatGPT 公布的 Prompt,同时在对话中把这些高分模板和万能句式喂给它,看看生成的后果会不会有所差别。大家感兴趣的能够试试。 上面是 ChatGPT 起的作文题目和注释的生成截图和文字版。 大家来表演下高考阅卷者?如果作文满分是100分,你会给这篇 ChatGPT 给出的答卷多少分?能及格吗?理由是什么?欢送大家在评论区探讨,一起交换如何能借助 ChatGPT 使咱们的工作和生存更有效率。 题目:工夫掌控的边界:自在与仆役的交错时光荏苒,岁月如梭,人类历经漫长的进化与文化的倒退,终于在现代科技的加持下,看似把握了工夫的机密。然而,随着科技的提高,人们是否真的成为了工夫的主宰,还是不经意间成为了工夫的佣人?当代社会的急切与焦虑,让人不禁思考,技术带来的掌控工夫的能力,到底是一种福还是一种祸? 在这个充斥科技与信息的时代,人们通过各种科技伎俩,如智能手机、电子设备等,极大地提高了效率,实现了以往须要破费大量工夫和精力能力实现的工作。咱们可能在几秒钟之内与世界各地的人交换,通过互联网获取海量的信息。外表上看,咱们仿佛真的把握了工夫的节奏,事倍功半地实现了许多工作。 然而,这所有真的证实咱们曾经成为了工夫的客人吗?科技的疾速倒退,给人们带来了微小的抉择与压力。咱们被社交媒体的刷屏、告诉的一直揭示、信息的碎片化所突围,咱们的工夫仿佛变得更加琐碎而零散。芸芸众生陷入了信息过载和繁忙的怪圈中,一直被各种寒暄、工作工作和社交活动填满,工夫慢慢失去了弹性和自在。 这种景象背地暗藏着一个更深层次的问题,即咱们是否真的成为了工夫的主宰,还是被工夫的奴隶所解放?科技的倒退本应让咱们领有更多的自在工夫,让咱们可能更好地享受生存和谋求幻想。然而,咱们却被工夫的紧迫感所驱使,一直追赶着各种指标和成就,而疏忽了人与人之间真正的交换和情感的造就。咱们渴望掌控工夫,却发现工夫不再是咱们的奴仆,反而成为了咱们的主宰。 咱们须要反思和扫视本人对工夫的态度和行为习惯。咱们应该摈弃被工夫主宰的思维定势,拥抱自主抉择的能力,从容而自在地安顿本人的工夫。咱们应该懂得合理安排工作与劳动,放弃心田的平静与均衡,让工夫成为咱们生存的搭档,而不是咱们的压迫者。 在面对现代科技带来的工夫窘境时,咱们须要寻找新的前途。咱们应该造就对工夫的敬畏之心,坚守心田的价值观和人生目标,不被琐事所困扰,致力寻找工夫的自主性。咱们须要从新扫视工夫的实质,将其转化为咱们谋求幻想、发明价值的工具,而非被动地被工夫所摆布。 通过盲目地解脱工夫的解放,咱们能够从新取得心田的自在与平静,从新找回对生存的激情和激情。让咱们不再成为工夫的奴隶,而是凭借自主和智慧,成为工夫的客人。

June 20, 2023 · 1 min · jiezi

关于机器学习:利用-AWS-CodeWhisperer-激发孩子的编程兴趣

我是一个程序员,也是一个父亲。工作之余我会常常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。 我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么咱们上课用的开发界面,和爸爸你每天工作用的样子不一样?” 所以我也在想一个问题,什么时候能够让我儿子,从 Scratch,Kitten 这种少儿图形化编程工具,过渡到 Visual Studio Code 这种更业余的编程工具去? 最近火出圈的 ChatGPT,被很多程序员用来作为本人工作中的代码生成辅助工具。我也在思考如何将 ChatGPT 用到少儿编程畛域。因为家喻户晓的起因,ChatGPT 在国内应用有肯定的门槛。但我最近理解到另一款基于人工智能的代码生成器,叫做 AWS Code Whisperer, 我曾经将它用来辅导我儿子学习编程了。 我和儿子用的开发工具是 Visual Studio Code,我教他在外面写一些最根底的 Python 和 Node.js 代码。 AWS CodeWhisperer 属于 AWS Toolkit 的一部分,在 Visual Studio Code 关上 Extension Marketplace 面板,通过搜寻关键字 AWS tool 即可装置。 装置结束后,在 Visual Studio Code 左侧多出一个 Developer Tools 的面板,开展 CodeWhisperer 下拉列表,点击 Start,而后抉择 Use a personal email to sign up and sign in with AWS Builder ID 即可在 AWS 网站上注册一个帐号并登录: ...

June 20, 2023 · 1 min · jiezi

关于机器学习:BeautifulPromptPAI-推出自研-Prompt-美化器赋能-AIGC一键出美图

背景Stable Diffusion(SD)是一种风行的AI生成内容(AI Generated Content,AIGC)模型,能在文字输出的根底上生成各种格调多样的图像。在目前的AIGC方向,SD是开源社区最热门的模型。然而,SD可能生成高颜值的图像,十分依赖于用户提供的Prompt。如果没有好的Prompt,SD往往无奈生成用户预期的图像,极大的影响用户的应用体验。在先前的工作中,阿里云机器学习PAI团队在AIGC方向做了很多摸索,包含PAI-Diffusion中文模型的开源、基于Blade的推理优化等,并且推出一系列行业解决方案。为了晋升SD系列模型的易用性、升高应用门槛、开释AI模型的发明后劲,咱们提出并训练实现面向SD主动Prompt丑化器,使得用户只有输出一个极其简略的Prompt,就能够失去一系列通过语言模型优化过的、细节满满的Prompt,帮忙您更简略地生成高颜值图像。在下文中,咱们具体介绍PAI主动Prompt生成模型的性能和背地的技术干货。 一键体验Prompt主动生成在具体介绍PAI主动Prompt生成模型前,咱们首先给出体验Prompt生成成果。在以下的示例中,咱们别离比照了原始Prompt和咱们生成Prompt在Stable Diffusion v1.5底座模型上生成图像的成果。对于每个Prompt,咱们随机生成两张图片进行比照。 咱们也在ModelScope上构建了一个Demo以供用户体验(链接)。只有输出一个简略的Prompt,咱们的模型就能够扩写成一个细节形容具体的Prompt,而后应用Stable Diffusion进行文图生成。 Prompt丑化器背地的技术在本节中,咱们具体介绍如何训练一个优良的Prompt丑化器。整体架构如下图所示: 底座模型PAI-Prompt生成模型底座基于BLOOM(BigScience Language Open-science Open-access Multilingual),由BigScience训练并且开源。BLOOM具备Decoder-only模型架构,和GPT-3十分类似,最大具备1760亿参数。在咱们的模型训练时,咱们抉择了具备11亿参数的BLOOM模型进行持续训练,其起因在于它的参数量不大,当它用于线上部署时,推理速度较快,而且训练和推理老本都相当可控,具备很高的实用价值。 无需数据标注的SFT因为模型的训练须要高质量和低质量的Prompt对,这些数据个别很难间接去做标注。因而咱们应用如下办法主动话地收集训练数据。 1.摘要生成:首先,咱们收集开源的高质量Prompt数据集,作为语言模型生成的Target。在这种场景下,因为不足低质量的Prompt,咱们能够应用ChatGPT等大模型生成Summary作为低质量的Prompt。以下是一个Summary的例子: Instruction: Summarize this image description in 10 words or less and ignore words like archdaily, wallpaper, highly detailed, 8k, [r/earthporn]. Check English. Ignore modifiers 'by xxx', 'with xxx' or 'in xxx'. Ignore adjective.Input: a beautiful very detailed illustration of abandoned urbex unfinished building city nature industrial architecture architecture building spaceport by caspar david friedrich, scumm bar meadow nature synthwave, archdaily, wallpaper, highly detailed, trending on artstation.Output: of abandoned urban building in nature.Input: portrait painting of a lost boy by cedric peyravernay and greg ruthkowski, in the style of dishonored concept art, concept design, trending on artstation \nOutput:2.Prompt扩大:利用低质量的Prompt,应用ChatGPT生成更高质量的Prompt。以下是一个Prompt生成的例子: ...

June 20, 2023 · 2 min · jiezi

关于机器学习:强化学习从基础到进阶常见问题和面试必知必答2马尔科夫决策贝尔曼方程动态规划策略价值迭代

强化学习从根底到进阶-常见问题和面试必知必答[2]:马尔科夫决策、贝尔曼方程、动静布局、策略价值迭代1.马尔科夫决策外围词汇马尔可夫性质(Markov property,MP):如果某一个过程将来的状态与过来的状态无关,只由当初的状态决定,那么其具备马尔可夫性质。换句话说,一个状态的下一个状态只取决于它的以后状态,而与它以后状态之前的状态都没有关系。马尔可夫链(Markov chain): 概率论和数理统计中具备马尔可夫性质且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。状态转移矩阵(state transition matrix):状态转移矩阵相似于条件概率(conditional probability),其示意当智能体到达某状态后,达到其余所有状态的概率。矩阵的每一行形容的是从某节点达到所有其余节点的概率。马尔可夫处分过程(Markov reward process,MRP): 实质是马尔可夫链加上一个处分函数。在马尔可夫处分过程中,状态转移矩阵和它的状态都与马尔可夫链的一样,只多了一个处分函数。处分函数是一个冀望,即在某一个状态能够取得多大的处分。范畴(horizon):定义了同一个回合(episode)或者一个残缺轨迹的长度,它是由无限个步数决定的。回报(return):把处分进行折扣(discounted),而后取得的对应的处分。贝尔曼方程(Bellman equation):其定义了以后状态与将来状态的迭代关系,示意以后状态的价值函数能够通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动静布局创始人理查德 $\cdot$ 贝尔曼(Richard Bellman)而得名,同时也被叫作“动静布局方程”。贝尔曼方程即 $V(s)=R(s)+ \gamma \sum_{s' \in S}P(s'|s)V(s')$ ,特地地,其矩阵模式为 $\mathrm{V}=\mathrm{R}+\gamma \mathrm{PV}$。蒙特卡洛算法(Monte Carlo algorithm,MC algorithm): 可用来计算价值函数的值。应用本节中小船的例子,当失去一个马尔可夫处分过程后,咱们能够从某一个状态开始,把小船放到水中,让它随波流动,这样就会产生一个轨迹,从而失去一个折扣后的处分 $g$ 。当积攒该处分到肯定数量后,用它间接除以轨迹数量,就会失去其价值函数的值。动静布局算法(dynamic programming,DP): 其可用来计算价值函数的值。通过始终迭代对应的贝尔曼方程,最初使其收敛。当最初更新的状态与上一个状态差距不大的时候,动静布局算法的更新就能够进行。Q函数(Q-function): 其定义的是某一个状态和某一个动作所对应的有可能失去的回报的冀望。马尔可夫决策过程中的预测问题:即策略评估问题,给定一个马尔可夫决策过程以及一个策略 $\pi$ ,计算它的策略函数,即每个状态的价值函数值是多少。其能够通过动静布局算法解决。马尔可夫决策过程中的管制问题:即寻找一个最佳策略,其输出是马尔可夫决策过程,输入是最佳价值函数(optimal value function)以及最佳策略(optimal policy)。其能够通过动静布局算法解决。最佳价值函数:搜寻一种策略 $\pi$ ,使每个状态的价值最大,$V^*$ 就是达到每一个状态的极大值。在极大值中,咱们失去的策略是最佳策略。最佳策略使得每个状态的价值函数都获得最大值。所以当咱们说某一个马尔可夫决策过程的环境可解时,其实就是咱们能够失去一个最佳价值函数。2.常见问题汇总2.1为什么在马尔可夫处分过程中须要有折扣因子?(1)首先,是有些马尔可夫过程是环状的,它并没有起点,所以咱们想防止无穷的处分。 (2)另外,咱们想把不确定性也示意进去,心愿尽可能快地失去处分,而不是在将来的某个时刻失去处分。 (3)接上一点,如果这个处分是有理论价值的,咱们可能更心愿立即就失去处分,而不是前面才能够失去处分。 (4)还有,在有些时候,折扣因子也能够设为0。当它被设为0后,咱们就只关注它以后的处分。咱们也能够把它设为1,设为1示意将来取得的处分与以后取得的处分是一样的。 所以,折扣因子能够作为强化学习智能体的一个超参数进行调整,而后就会失去不同行为的智能体。 2.2 为什么矩阵模式的贝尔曼方程的解析解比拟难求得?通过矩阵求逆的过程,咱们就能够把 $V$ 的解析解求进去。然而这个矩阵求逆的过程的复杂度是 $O(N^3)$ ,所以当状态十分多的时候,比方从10个状态到1000个状态,到100万个状态,那么当咱们有100万个状态的时候,转移矩阵就会是一个100万乘100万的矩阵。对于这样一个大矩阵进行求逆是十分艰难的,所以这种通过解析解去解的办法,只能利用在很小量的马尔可夫处分过程中。 2.3 计算贝尔曼方程的常见办法有哪些,它们有什么区别?(1)蒙特卡洛办法:可用来计算价值函数的值。以本书中的小船示例为例,当失去一个马尔可夫处分过程后,咱们能够从某一个状态开始,把小船放到水中,让它“同流合污”,这样就会产生一条轨迹,从而失去一个折扣后的处分 $g$ 。当积攒该处分到肯定数量后,间接除以轨迹数量,就会失去其价值函数的值。 (2)动静布局办法:可用来计算价值函数的值。通过始终迭代对应的贝尔曼方程,最初使其收敛。当最初更新的状态与上一个状态区别不大的时候,通常是小于一个阈值 $\gamma$ 时,更新就能够进行。 (3)以上两者的联合办法:咱们也能够应用时序差分学习办法,其为动静布局办法和蒙特卡洛办法的联合。 2.4 马尔可夫处分过程与马尔可夫决策过程的区别是什么?绝对于马尔可夫处分过程,马尔可夫决策过程多了一个决策过程,其余的定义与马尔可夫处分过程是相似的。因为多了一个决策,多了一个动作,因而状态转移也多了一个条件,即执行一个动作,导致将来状态的变动,其不仅依赖于以后的状态,也依赖于在以后状态下智能体采取的动作决定的状态变动。对于价值函数,它也多了一个条件,多了一个以后的动作,即以后状态以及采取的动作会决定以后可能失去的处分的多少。 另外,两者之间是有转换关系的。具体来说,已知一个马尔可夫决策过程以及一个策略 $\pi$ 时,咱们能够把马尔可夫决策过程转换成马尔可夫处分过程。在马尔可夫决策过程中,状态的转移函数 $P(s'|s,a)$ 是基于它的以后状态和以后动作的,因为咱们当初已知策略函数,即在每一个状态,咱们晓得其采取每一个动作的概率,所以咱们就能够间接把这个动作进行加和,就能够失去对于马尔可夫处分过程的一个转移概率。同样地,对于处分,咱们能够把动作去掉,这样就会失去一个相似于马尔可夫处分过程的处分。 2.5 马尔可夫决策过程中的状态转移与马尔可夫处分过程中的状态转移的构造或者计算方面的差别有哪些?对于马尔可夫链,它的转移概率是间接决定的,即从以后时刻的状态通过转移概率失去下一时刻的状态值。然而对于马尔可夫决策过程,其中间多了一层动作的输入,即在以后这个状态,首先要决定采取某一种动作,再通过状态转移函数变动到另外一个状态。所以在以后状态与将来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程的不同之处。在马尔可夫决策过程中,动作是由智能体决定的,所以多了一个组成部分,智能领会采取动作来决定将来的状态转移。 ...

June 20, 2023 · 1 min · jiezi