AI 浅探,揭秘【AI开发流程】的奥秘
AI,即人工智能,是一个很广泛的概念,即使不在科技圈,在日常的新闻、宣传中,也能看到许多 AI 的身影。AI 概念遍布许多行业,金融圈,通过 AI 来判断股票的涨跌,智能家居圈,语音识别,人脸识别产品也属于 AI 产品,等等。不了解 AI 你就 Out 了。
但是对大部分人来说,这是一个比较深的概念,我们了解一个产品,也是需要由浅入深,一起从从浅显的一些概念,以及开发流程,来了解 AI。
Ai:Artificial Intelligence - 人工智能
ML:Machine Leaning – 机器学习
DL:Deep Leaning- 深度学习
这是我们最常见的三个概念,那这三个概念有什么区别呢?
人工智能是一个极其广大和深远的领域,它涵盖了多个学科,包括计算机科学、数学、心理学、哲学等,并且正在不断地发展和演进。我们还有需要未开发的人工智能方向,目前已经在做的 Ai 产品,只是我们人类能想到的一些产品,包括在智能驾驶、智能家居、医疗诊断、金融分析等;AI 的潜力远不止于此,未来会有更多跳脱的 AI 产品面世,总之 AI 是一个充满无限可能性的领域。
ML 是 AI 的一种,可以说是一种相对于比较简单的 AI,比如 ML 通过学习数据,对未来数据的预测和分类,它专注于让计算机系统从数据中学习并改进其性能。而 DL 就是更高级一些的 AI,比如 DL 可以使用深度神经网络来模拟人类大脑的结构和功能,理解数据内在规律,更智能更像人类,DL 的一个关键优势是它能够自动从原始数据中提取有用的特征,而无需手动定义这些特征。
(图片来源于网络)
AI 模型:是模拟人类智能行为和思考行为的算法或者系统;它的基础是算法、程序,还包括通过算法和程序中学习得到的参数。目前有很多公开原理和实现方法的模型,针对于应用在不同的 AI 产品应用,比如 RNN、CNN、Transform、YOLO- V8 等。
(图片来源于网络)
ML 框架:是一种为机器学习和深度学习应用提供基础架构和工具的软件库或平台,通常包括用于数据预处理、模型构建、模型训练、模型评估和模型部署的各种组件和功能。在开发过程中,选择 ML 框架也是很重要的,它跟 AI 模型相辅相成,它会协助你更好的开发 AI 产品,不需要太深入去了解一些模型细节,即可实现 AI 产品的前期开发。
推理:机器学习模型在训练后应用其所学到的知识或模式来产生输出结果的过程。
推理是一个过程,需要时间,这个时间需求,在 AI 产品功能定义的时候就要决定,根据推理时间选择对应的 AI 模型,以及相应的实现方案和成本;可以这样说,模型越复杂,推理时间越长,但是准确度也会更高,而增加硬件成本就可以缩短推理时间,所以在产品定义后进行的选型,就需要在成本与实现的效果中间选择一个平衡点。
部署:将训练好的模型移植到实际的工作环境中,可以是云端,也可以是边缘端。
部署会需要的一些工具,ML 框架里面支持的工具就会更简便的实现这个过程,这个在选择 ML 的框架的时候也会考虑。
以上是一些我们常见的 AI 相关的一些概念解释。
而开发流程,主要是以下过程:
1)明确任务需求 – 自然语言处理,图像视觉,语音识别
对产品的功能需求前期是有一个明确的定义,这个需求在后续的成本“打架”中也是需要不断的更新;
2)数据准备 – 数据的收集、处理、格式转换
数据准备则是为后续模型的训练做准备,当然,这些数据网上也会有一些开源或者收费的数据供使用;
3)选择模型 – 了解各类模型的特点、优劣势
模型多,要根据训练时间、硬件需求、功能性、可拓展性等去选择;
4)训练模型 – 应用数据进行模型的训练
考虑训练的场景,云端训练则需要考虑成本、时间等,也需要考虑在边缘端还是云端进行训练;
5)验证模型与优化 – 根据训练的结果来进行模型的优化
实现优化需要对模型的实现原理深入了解,才会可能做到好的优化;
6)模型部署与推理- 将模型部署到实际的生产环境中
生产环境可能是云端,也可能是边缘端,边缘端可能是 MCU 也可能是 MPU,不同的环境,需要的部署工具不一样;
7)持续学习与更新 – 根据应用的结果来进行持续更新
根据实际使用的情况,得到的数据结果来对产品进行下一步的更新;
开发过程随时简述,但是其过程也是不简单的。
提到边缘端,机器学习推理主要是做数以百万计的乘法和累积数学计算,不需要特殊的硬件或模块,任何 MCU 或 MPU 都能做到,但是专用的硬件加速器,如 NPU,TPU 可以大大减少推理时间 。而什么是 NPU、TPU 呢?这些都是 AI 相关的处理单元:
GPU:图像处理单元,强大的并行处理能力,加速神经网络的训练和推理
CPU:中央处理单元,负责通用计算任务,或一些实时性要求较高的任务
VPU:专注计算机视觉和深度神经网络,加速图像处理
TPU:用于加速人工智能的训练和推理任务。它基于 TensorFlow 框架,处理大规模的深度神经
网络模型,提供比传统 CPU 和 GPU 更强的计算性能。
NPU:能够高效地执行矩阵运算和神经网络计算,提供高吞吐量和低延迟。它在图像识别、
语音识别、自然语言处理等应用中得到了广泛应用,可以显著提高这些任务的性能和效率。
另外介绍一款应用在 AI 领域的 MCU,NXP N947
这款为何适用在 AI 领域呢?因为它带有 NPU,在使用到神经网络运算时,可以大大提高计算速度,在一些简单的 AI 产品上,就没有必要再上高规格的 MPU 等产品。
该产品的一些规格如下:
- M33 内核 150M 主频
- 1M Flash
- 512K RAM
- USB、CAN- FD、I3C、Ethernet、SAI、I2C、UART 等外设接口
- 还支持 FlexIO(可应用于模拟 CSI 接口)
- 支持 NPU、DSP
- 封装 VFBGA184: 9 x 9 x 0.86 mm, 0.5 mm pitch,HLQFP100: 14 x 14 x 1.4 mm, 0.5 mm pitch
MCX N94X 这个系列的产品,有一些关于 AI 的 Demo 和成功案例,有兴趣可以关注我的博文~
以上是前期的一些常见的概念解释,以及一个简单的开发流程介绍,后续我们会再详细了解学习一些常见的 AI 模型,常见的 ML 框架,一起入门 AI 宇宙!