人工智能开发¶
基本概念¶
本部分包含 人工智能 和 科学计算 的相关技术。科学计算是指用计算机求解复杂的科学问题,人工智能则是指构建一个具有人类智能的系统。
人工智能和科学计算的区别
尽管人工智能和科学计算的区别非常明显,但由于二者联系紧密且存在交叉,因此经常会被混用。本文不想纠结这些细节,因此同样可能出现混用。
由于人工智能风头正盛,因此只用 人工智能 作为本部分的标题,尽管科学计算也包含在其中。
由于 Python 几乎已经成为了人工智能/科学计算领域的标准语言,所以后面的框架大多和 Python 有关。Python 还有一些通用的框架/库/工具,由于不是专属于 人工智能/科学计算 的,所以没有列举在这里,可以在 Python 章节查看。
另外 Julia/R 也是科学计算中比较流行的语言,不过仅限学术圈。如果你只想做研究发论文,那么在一些特定的领域里 Julia/R 可能是比 Python 更好的选择。不太推荐使用 MATLAB,因为它不开源,尽管在部分领域(比如控制)里很权威。
框架¶
- PyTorch 由 Meta 开发的
用于深度学习的、优化过的张量库,不过社区更习惯称其为机器学习框架 - TensorFlow 由 Google 开发的机器学习框架,不过 PyTorch 在学术界更受欢迎
- YOLO 基于 PyTorch 的深度学习框架,适合图像识别应用,能让你迅速完成从数据准备、模型训练、模型验证到模型导出的整个过程,并且提供了 CLI
- Kedro 数据科学和机器学习的管道框架,用于将项目从 Jupyter 加孤立脚本的混乱状态过渡到可实际投产的状态
库¶
- scikit-learn 机器学习库,实现了非常多的基本算法,使用了 numpy、scipy 和 matplotlib 来实现
- sympy 符号计算库
- numpy 数值计算库
- scipy 科学计算库
- matplotlib 绘图库
- pandas 数据分析库,用于分析表格型数据
- networkx 数据分析库,用于分析图状数据
- control 一个 Python 的控制系统库。虽然现在机器人等领域更倾向于使用 强化学习,但传统的控制技术由于可解释性更强也还是有用的。
工具¶
- DVC 数据版本控制,基于 Git 但巧妙地处理了大文件,用于开发可复现的机器学习项目
- Ollama LLM 运行器,支持运行本地和云端的模型