目录
1 方法的差别
【学习方法|【实战技能】软件工程师与AI工程师的区别是什么()】1.1 相同之处
1.2 不同之处
1.3 人工智能与传统软件开发的关系
2 工作中的注意事项
3 如何成为优秀的AI工程师?
笔者一直从事软件工程师和AI工程师相关工作,和大家说说软件工程师与AI工程师的区别,希望能帮助大家。
1 方法的差别
1.1 相同之处
- 都是为了解决问题
- 都需要建模,都需要理解数据
- 都需要基于开发语言编写程序
- 都可以依赖现有框架开发
文章图片
图片来源:Differences between machine learning and software engineering — Futurice
如上图所示,以人工智能中的机器学习为例,机器学习是以数据和预期结果为输入,通过计算得出一个程序,也就是一个算法模型,也就是找到一个适合数据的程序。而软件开发是针对问题提出一个解决方案,并将其写成计算机可以执行的精确程序,也就是通过写程序实现任务自动化。开发机器学习应用的过程,比做软件开发更具反复性和探索性,存在一定不确定性,也就是需要多次实现,整个过程通俗地被称为“炼丹"。如果你数学基础较好又喜欢探索胜过研究业务逻辑,能乐观对待不确定性,也许做AI工程师更合适。如果你喜欢研究业务逻辑胜过数学理论,喜欢确定性多于不确定性,也许做软件工程师更好。
1.3 人工智能与传统软件开发的关系 从这个角度,可以看到,人工智能软件是无法取代传统的软件开发的,但是人工智能软件可以挖掘规则作为组件补充传统的软件开发,特别是在那些无法用手写规则实现的复杂情况下,人工智能有着非常大的作用。
2 工作中的注意事项 从程序开发的角度来看,AI的代码相对来说比较简单,只要熟悉了所用的框架,如Pytorch,Keras等等,写代码不是一件难事,主要的工作在于通过多次调整模型的超参数得出理想的算法模型,而应用软件的代码通常基于现有框架开发需要考虑各种逻辑,相对来说复杂些。当然要取得优秀的算法模型需要扎实的理论基础和优秀的动手能力。
3 如何成为优秀的AI工程师? 以下是三个层次的要求
初级
- 了解Python语言,以及Python的环境概念,会建立Python运行环境;
- 会使用Python notebook和python命令运行Python程序;
- 熟悉机器学习相关的数学基础,如线性代数、高等数学、概率论与统计学;
- 了解Pytorch等框架,以及使用框架优化机器学习模型(调参)的方法;
- 熟悉AI项目的流程。
- 能读懂使用Pytorch实现机器学习的相关代码;
- 可使用Python语言完善和调整已有的机器学习相关代码;
- 掌握选择模型的方法;
- 熟悉使用Pytorch等框架优化机器学习模型(调参)的方法;
- 掌握评估模型的方法。
- 熟悉各种机器学习和深度学习模型的原理,需要看懂各种模型的论文,充分理解论文中的模型原理;
- 能熟练运用各种模型以及综合利用各种模型解决实际问题。
欢迎留言,一起交流软件开发和人工智能学习。
笔者写于上海浦东新区封控区。
推荐阅读
- 学习方法|【献计一刻】如何提高系统分析能力
- 学习方法|【献计一刻】在每件小事中锻炼抽象思维能力
- 计算思维|【实战技能】计算机科学实践过程的检查清单
- 学习方法|【献计一刻】软件开发小工的学习和工作清单
- 学习方法|【学英语玩程序】科技英语翻译总结
- 人工智能|GPT-3(现实版的“贾维斯”(还是真“人工”智能?))
- 人工智能|复旦博士生写了130行代码,用OCR和正则表达式快速搞定核酸报告统计!
- java|复旦博士写了130行代码,2分钟解决繁琐核酸报告核查
- 目标检测经典论文学习|CVPR2022——A VERSATILE MULTI-VIEW FRAMEWORK