人工智能与软件工程
1. 软件工程的定义
要介绍人工智能项目流程,首先我们要了解现有的软件工程项目的基本流程都有哪些。
目前用的比较多得开发方式一般有两种。
一种是瀑布开发方式即,日程计划,需求定义,概要设计,详细设计,系统开发,单体测试,结合测试,综合测试,系统运维。
他要求每个人,每一步到按照计划和任务去完成,如果不能完成之前回退,无法进入下一阶段。通常对于一些,需求明确,工作量可溶,业务建模比较简单的系统。
瀑布式项目的开发流程:
V 字模型
另一种是敏捷开发方式,例如:Scrum 方式。
通常 Scrum 方式会将任务切成 2 周一次的 sprint(冲刺)。每个周期都是一次迭代的过程。
每一次迭代都可以生产和开发出一个可以角度的软件产品。
其中比较形象的一张图就是
2. 软件程序与人工智能程序
通过一张图来解释下人工智能工程和软件工程的区别
1. 软件程序
软件程序一般情况下是软件开发工程师,根据业务的需求,编写代码.以实现业务逻辑.
在业务逻辑中,通过引入数据最终达到业务上要求的结果和输出.
简单一点说就是,程序执行时,调用代码(规则)和数据,产生应答.
在软件程序中,规则是既定的或者是业务指定的.而应答也是提前可预知的.一切都在前期的设计之中.开发工程师只需要根据前置的设计,一步步去实现逻辑和调用数据,就能可以实现预期效果,交付产品.
举个例子:
一个简单的加法计算器程序.
数据: a = 1,b = 2
规则:计算输入的两个数据 a,b 之和.即 结果 = a + b
应答: 输出结果为 3
2. 人工智能程序
人工智能项目是人工智能开发工程师,根据现有的数据(一般为历史数据)和数据产生的结果,不断的通过人工智能算法来训练模型,最终挖掘出数据潜在的价值或者规律,形成人工智能模型,即规则.
在人工智能项目中,当我们训练出我们的模型之后,我们就可以运用我们的规则进行预测和实现工程了.
举个例子:
面包房需要原材料的量来估算产量.
历史数据:
预测
通过人工智能算法训练后会得到一个算法模型.如软件程序的规则.
再通过规则和新投入的数据进行运算,可以得到一个结果,可能是:18.732 个
3. 二者的区别
其实二者区别除了上面讲的流程上的之外.最大的区别就是
软件程序:根据人类已知的经验去编写逻辑,运算,以得到一个正确的结果.主要是提高效率,减少人的工作.
人工智能程序:根据数据和算法,去模拟和发现人类所未知的规则.
4. 人工智能工程组成
人工智能工程一般分为两个部分:
人工智能部分: 利用数据,通过人工智能算法,去产生规则->发现规则
软件工程部分: 通过规则和数据的运算,输出一个结果 ->实现自动化
版权声明: 本文为 InfoQ 作者【紫晖】的原创文章。
原文链接:【http://xie.infoq.cn/article/734fcfc747dcb57a21b21c576】。文章转载请联系作者。
评论