关于ai开发:AI开发者十问10分钟了解AI开发的基本过程

31次阅读

共计 3423 个字符,预计需要花费 9 分钟才能阅读完成。

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

本文分享自华为云社区《10 分钟理解 AI 开发的根本过程》,作者:简略保持。

1、AI 开发到底在开发什么?

  • 一个硬件开发者的工作成绩是一个布满集成电路的服务器,开机就能够运行某种软件。
  • 一个挪动端开发者的工作成绩能够是一个手机 APP,包含了大量二进制数据,可被麒麟芯片间接运行。
  • 一个 AI 开发者的工作成绩则是一个模型,模型实质上是一个函数:
f(图片) = "How are you"
f(猫图片) = "Cat"

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

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

AI 模型实质是一个函数,想要找到这个函数精确的的表达式,仅凭逻辑是无奈推导进去的,而是训练进去的,咱们喂给机器目前已有的数据,机器就会从这些数据里去找出一个最能满足(专业术语称为拟合)这些数据的函数,当有新的数据须要预测的时候,机器就能够通过这个函数去预测出这个新数据对应的后果是什么。

对于一个具备某种智能能力而言,个别具备以下因素:数据 + 算法 + 模型,开发的过程,就是一直地用数据和算法使得模型越来越迫近真实情况,留神是迫近而非推导,这个过程称为训练。

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

咱们来用一个可能辨别猫和狗图片的模型来帮忙了解训练的过程:“数据”就是咱们须要筹备大量标注过是“猫”还是“狗”的图片;“算法”指的是构建模型时咱们打算用浅层的网络还是深层的,如果是深层的话咱们要用多少层,每层有多少神经元、性能是什么等等,也就是网络架构的设计,相当于咱们确定了咱们的预测函数应该大抵构造是什么样的。

咱们用 Y =f(W,X,b) 来示意这一函数,X 是已有的用来训练的数据(猫和狗的图片),Y 是已有的图片数据的标签(该图片是猫还是狗), 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 的线下开发套件。

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0