文章主题:AI开发, 函数表达式, 机器学习, 数据模型

666AI工具大全,助力做AI时代先行者!

摘要:从AI开发模型、框架、工具,到提升开发效率的学习办法,为AI开发者逐一解答。

本文分享自华为云社区《10分钟了解AI开发的基本过程》,作者:简单坚持。

1、AI开发究竟在开发什么?

一个硬件开发者的工作成果是一个布满集成电路的服务器,开机就可以运行某种软件。一个移动端开发者的工作成果可以是一个手机APP,包括了大量二进制数据,可被麒麟芯片直接运行。一个AI开发者的工作成果则是一个模型,模型本质上是一个函数:
f(图片) = “How are you” f(猫图片) = “Cat”

无论这个函数有多么复杂,有多少个变量或者参数,AI开发都是试图找出这个函数的表达式。

2、AI模型(函数)是怎么开发出来的?

AI模型的本质是一种函数形式,要确定这种函数的确切表达方式,仅依靠逻辑推理是无法实现的,唯有通过大量的训练数据来进行优化。我们向机器提供现有的数据集,机器便会从中寻找一个最符合这些数据特征的函数。一旦有了新的数据需要预测,机器便可以借助该函数预测出新数据所对应的结果。因此,AI模型的训练过程实际上是一个寻找最佳函数的过程,而这个过程依赖于大量的数据和训练算法。

在谈论拥有特定智能能力的系统时,我们通常会提到三个关键元素:数据、算法和模型。数据的收集和处理是算法的基石,而模型的建立则是实现智能的关键。在开发过程中,系统会不断利用数据和算法来优化和完善模型,使其更接近现实世界的真实情况,这个过程被称为训练。训练的目标并非完全推导出真实情况,而是尽可能地逼近它。通过这样的不断迭代过程,系统的智能水平得以提升。

3、AI模型的训练过程是怎么样的?

在本文中,我们将采用一种能够有效区分猫和狗图片的模型,以帮助读者更直观地理解训练过程。首先,我们需要收集大量的标注过的图片,这些图片分别标记为猫或狗,这是我们进行模型训练的重要数据来源。其次,我们需要考虑使用的算法,是采用较浅的网络结构还是较深的网络结构呢?如果是深层网络,那么我们需要详细设计网络的架构,包括每一层的神经元数量以及每层的功能,这就像是我们在确定预测函数的大致结构。总的来说,数据、算法和网络架构是构建深度学习模型的三大关键要素,缺一不可。

在表达中,我们可以将函数 Y=f(W, X, b) 代表一个复杂的数学模型,其中 X 和 Y 是已知变量,而 W 和 b 是待求解的参数。X 代表了训练数据,即猫和狗的图片,Y 则代表了这些图片的标签,即该图片是猫还是狗。至于 W 和 b,它们在这个模型中扮演着重要的角色。然而,在我们开始训练这个模型之前,我们还并不能明确地知道 W 和 b 的具体含义。这两个参数的确定,需要通过机器学习的过程来实现,这个过程就是我们在训练模型、逐步揭示 W 和 b 真实含义的过程。

在本文中,“模型”是一个术语,指的是将数据输入算法中进行训练的过程。在这个过程中,机器会持续地学习,不断优化其参数。当机器成功找到最优秀的W和b值时,我们称之为模型训练成功。此时,我们的函数Y=f(W,X,b)已经达到了确定的状态。

在此之后,我们可以为模型提供一组全新的猫或狗图片,使其能够运用函数Y=f(W,X,b)来判断这些新图片的标签是猫还是狗,这一过程即为推理。

在总结中,我们可以发现,无论是简单程度最高的线性回归模型,还是包含一亿个参数的深度神经网络模型,它们的共同目标都是寻找一个函数Y=f(W,X,b),这个函数能够出色地拟合现有的数据,同时也能在新未知数据上展现出良好的性能。

4、AI为什么要强调大量数据?

为了确保模型在区分猫和狗的任务上具有足够的准确性和高度的学习效果,必须拥有大量的数据。这是因为,只有在拥有大量数据的基础上,模型才有可能充分捕捉并正确识别猫和狗的特性。然而,如果数据量有限,模型在新数据集上的预测表现可能会受到影响,导致其准确性降低。因此,尽管我们可以通过训练模型来应对数据量不足的情况,但在实际应用中,充足的训练数据仍然是至关重要的。

假设识别猫的模型要非常准确,就需要各种光照条件、各种背景、各种花色的猫的照片,不仅要有波斯猫,还要有加菲猫,直到模型包含了我们能想到的各种猫的特征,一个人脸识别模型,大约需要几百万张照片,才能达到可用,著名的Imagenet数据集,大约包含了1400万张图片,极大地方便了开发者。

5、在AI开发过程中一个好的开发工具可以帮助开发者做什么?

假设没有一个现成的开发平台,首先你需要学会常用的AI开发语言python,python是整个过程并不耗精力的环节,其次你需要学习传统机器学习和深度学习相关算法,这块算是花费最多精力和时间的环节,然后尽可能去理解和推导算法,然后用python代码去实现算法再训练模型,代码能力很重要,不然你的模型都建不起来。

然后你发现了一个开发框架,华为MindSpore或者谷歌Tensorflow,你会发现并不需要那么高的数学门槛,不是说要深刻理解算法才能更好训练出好模型,模型损失函数优化方法MindSpore/Tensorflow都内置好了,而且只需要简单的调用就好了,如果说MindSpore/Tensorflow是可以把一个模型代码量大大减少的框架,那么Keras就是让模型代码量可以少到惊人的框架,例如上面的猫狗分类器,15行代码就可以搞定,几十行代码就把一个拥有着卷积层、池化层和全连接层的较高级优化方法的深度学习网络架构写出来。

一个开发框架就像安卓框架为手机APP开发者提供的很多基础功能,如果没有这个框架,一个简单的给好友发送图片的功能,你需要直接和操作系统的各个底层功能模块打交道了。

6、AI开发,有了开发框架就够了吗?

当然不是,一个开发框架,只是帮开发者做了一些开发者没必要实现的部分,或者实现起来代价太大的部分,一个完整的AI开发过程,从准备数据、数据预处理、数据标注、选择算法、训练、调参、部署,这和一个普通的APP开发的过程差不多。如同生产一辆汽车,一个自动化、高科技的总装车间是必不可少的,但冲压、涂装车间也制约着汽车的生产效率,那么制约AI开发效率最头痛的是什么,请看下一个问题。AI开发过程中最大的困难是什么?

7、AI开发过程中最大的困难是什么?

要准备大量的数据,前面已经提过,更可怕的是数据标注,据统计,数据处理和标注环节大约占整个开发周期的70%。所谓标注,就是给数据打标签,告诉机器一张图片究竟是猫还是狗,标注是一件在AI开发者看来技术含量非常低的工作,已经属于劳动密集型产业,业界有大量的第三方公司,专门从事数据标注工作。以自动驾驶为例,车头上的摄像机在实时拍摄车前的所有画面,自动驾驶标注的过程要标注前车、障碍物、行人、信号灯、指示牌、指示线等等,这个过程如果完全依赖人工标注,自动驾驶将永远难以商用。要反复迭代训练,训练并不是一蹴而就,要反复修改各种参数,使得模型的准确度逐步提升,这个过程,目前需要丰富的经验,如果没有充足的算力,训练一次,等待三天,然后调参,再等待三天,如果要迭代20次,这个过程是很消耗人的意志。所以,即使不考虑成本因素,算力也是制约AI普及最大的问题。

8、怎么解决AI开发者的问题?

正如开发一个office软件,不可能费事到用记事本敲代码,你需要一个像visual studio一样的集成开发环境,需要一个像Git一样的代码管理工具,同理,开发一个AI模型,你也需要一个集成开发环境,而且需要一个版本管理工具。

提供给开发者代码编辑环境、语法检查、编译器等功能,一个AI的开发平台,同样也要能帮开发者标注数据、创建模型训练作业、部署模型等功能,有了开发平台,开发平台要帮助开发者把所有苦活累活都干完,让开发者聚焦在最核心的代码和算法上。

当然,要提供给开发者易获取、性能强、价格低的算力,提高模型训练的迭代速度。

9、有没有更快地提升AI开发速度的办法?

当然有。从根本上提升开发效率,挖掘到最本质,只有两个办法:重用和自动化,否则只能一行一行代码干起。

开发一个APP,可以从最基本的代码写起,可以复用开发者共享的开发包、函数等,华为云开源镜像站有大量的java开发包,就是这个意思,也可以复用一个完整的APP,修改下界面配色,就变成了自己的APP,这是复用。要保障APP的质量,可以手工测试,也可以用自动化测试工具。如果这些都不想做,可以也可以用一个现成的工具,用可视化的方法生成一个APP,当然APP的风格只能从工具已有的模板中选取。开发者一直在试图用各种办法,降低开发的工作量。

AI开发也是一样的。可以找现成的数据集、找现成的标注好的数据集,现成的算法和模型,用自动部署工具将模型部署到端边云。当然,也可用自动学习功能,只要提供原始数据,由系统帮助开发者完成模型构建、算法选择和自动训练,开发者可以直接看到结果。最简单的办法,就是寻找一个已经训练好的模型,在软件中直接调用。

基于此,一个好的AI开发平台,要从各个维度去提升开发效率,这些功能往往都是很多小细节,算力强、训练快,只是完成了必须的最基本的功能。

10、华为将提供什么开发工具给开发者?

ModelArts,一个AI开发平台 ,用于AI模型开发HiLens,一个视觉AI应用开发平台,用于AI应用开发,应用里面的模型由ModelArts提供。

以上两款产品以云服务的方式在华为云EI提供服务。

Atlas 200 developer kit(开发板)是ModelArts 的线下开发套件。

点击关注,第一时间了解华为云新鲜技术~

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!

Leave a Reply

Your email address will not be published. Required fields are marked *