博舍

【实战技能】软件工程师与AI工程师的区别是什么 人工智能与程序设计的区别是什么

【实战技能】软件工程师与AI工程师的区别是什么

目录

1方法的差别

1.1相同之处

1.2不同之处

1.3人工智能与传统软件开发的关系

2工作中的注意事项

3如何成为优秀的AI工程师?

笔者一直从事软件工程师和AI工程师相关工作,和大家说说软件工程师与AI工程师的区别,希望能帮助大家。

1方法的差别1.1相同之处都是为了解决问题都需要建模,都需要理解数据都需要基于开发语言编写程序都可以依赖现有框架开发1.2不同之处

软件开发和人工智能模型的不同之处在于执行的方式

图片来源:Differencesbetweenmachinelearningandsoftwareengineering—Futurice

如上图所示,以人工智能中的机器学习为例,机器学习是以数据和预期结果为输入,通过计算得出一个程序,也就是一个算法模型,也就是找到一个适合数据的程序。而软件开发是针对问题提出一个解决方案,并将其写成计算机可以执行的精确程序,也就是通过写程序实现任务自动化。开发机器学习应用的过程,比做软件开发更具反复性和探索性,存在一定不确定性,也就是需要多次实现,整个过程通俗地被称为“炼丹"。如果你数学基础较好又喜欢探索胜过研究业务逻辑,能乐观对待不确定性,也许做AI工程师更合适。如果你喜欢研究业务逻辑胜过数学理论,喜欢确定性多于不确定性,也许做软件工程师更好。

1.3人工智能与传统软件开发的关系

从这个角度,可以看到,人工智能软件是无法取代传统的软件开发的,但是人工智能软件可以挖掘规则作为组件补充传统的软件开发,特别是在那些无法用手写规则实现的复杂情况下,人工智能有着非常大的作用。

2工作中的注意事项

从程序开发的角度来看,AI的代码相对来说比较简单,只要熟悉了所用的框架,如Pytorch,Keras等等,写代码不是一件难事,主要的工作在于通过多次调整模型的超参数得出理想的算法模型,而应用软件的代码通常基于现有框架开发需要考虑各种逻辑,相对来说复杂些。当然要取得优秀的算法模型需要扎实的理论基础和优秀的动手能力。

3如何成为优秀的AI工程师?

以下是三个层次的要求

初级

了解Python语言,以及Python的环境概念,会建立Python运行环境;会使用Pythonnotebook和python命令运行Python程序;熟悉机器学习相关的数学基础,如线性代数、高等数学、概率论与统计学;了解Pytorch等框架,以及使用框架优化机器学习模型(调参)的方法;熟悉AI项目的流程。

中级

能读懂使用Pytorch实现机器学习的相关代码;可使用Python语言完善和调整已有的机器学习相关代码;掌握选择模型的方法;熟悉使用Pytorch等框架优化机器学习模型(调参)的方法;掌握评估模型的方法。

高级

熟悉各种机器学习和深度学习模型的原理,需要看懂各种模型的论文,充分理解论文中的模型原理;能熟练运用各种模型以及综合利用各种模型解决实际问题。

关于机器学习和人工智能,欢迎阅读我的小文。【学习资料汇总】探索人工智能的奥秘

欢迎留言,一起交流软件开发和人工智能学习。

笔者写于上海浦东新区封控区。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇