科普作家 Isaac Asimov 阿西莫夫的机器人三定律。
- A robot may not injure a human being or, through inaction, allow a human being to come to harm.
- A robot must obey orders given it by human beings except where such orders would conflict with the First Law.
- A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
Python 包
目前 AI 使用较多的是 Python,主要是因为这是一个简单 (包括语法、环境)的胶水语言,如果性能不满足,完全可以通过 C 重新实现,例如 NumPy 。
如下是常用库的使用简介。
- 环境准备 包括了常用的 Python 工具、TensorFlow 等。
- Numpy 一个扩充程序库,支持高级大量的维度数组与矩阵运算。
- Scipy 可以处理插值、积分、优化、图像处理、常微分方程数值解的求解。
- Pandas 基于 NumPy 的工具库,主要是为了解决数据分析任务。
- PyMC 开源概率编程框架,并使用 C 实现加速运算。
- Matplotlib 绘图库包大量工具,几乎可以完成所有的图形绘制,可以参考 常用示例 。
- Seaborn 在 matplotlib 的基础上又封装了一层,更方便使用。
- StatsModels 提供了经典频率学派统计方法,包括了多种统计模型。
- PyTorch 深度学习框架,也包括了 Keras 更方便的封装,参考 手绘数字 。
其它
参考
数学基础
概率论与数理统计
- 基本概念 根概率论相关的基本概念。
- 离散概率分布 一些常见的离散概率分布,例如伯努利分布、二项分布、泊松分布等。
- 连续概率分布 介绍一些常见的连续概率分布,例如柯西分布、Beta 分布等,还可以参考 高斯分布 。
统计推断的三个重要内容:抽样分布、参数估计、假设检验。
R 语言
R 语言作为统计学一门语言,一直属于一个小众的工具集,直到大数据爆发后,越来越多的人开始使用 R 语言进行数据分析。
优化算法
其它
机器学习
机器学习所解决的问题,主要包括了数值的预测和分类,前者一般是回归模型,例如线性回归;后者的方法则是五花八门,例如决策树、KNN、支持向量机、朴素贝叶斯等等。
其实,两类问题本质上讲是一样的,都是通过学习已有数据,构建模型,然后对未知数据进行预测,如果是连续的数值预测就是回归问题,若是离散的类标号预测,那么就变成了分类问题。
- 基本概念 包括常见的基本概念,例如召回率。
- 线性回归 用于确定变量相互关心的统计,以及 贝叶斯方法 。
- 逻辑回归 虽然被称为 “回归” 算法,实际上却是标准的解决分类问题的模型。
- 决策树从数据特征出发,并以此作为基础划分不同的类。
概率编程
- 贝叶斯简介 由英国数学家托马斯·贝叶斯在 1763 年发表的一篇论文中首次提出。
- 马尔科夫简介 包括基本的马尔科夫链以及马尔科夫过程。
- 基本采样算法 一些常见的基本概念,例如蒙特卡罗、简单采样等,还可以参考 MCMC采样 。
- Stan 简介 包括了 Stan 的基本概念、使用方法,以及 RStan 的安装使用。
深度学习
- 神经网络 简单介绍基本概念。
其它
参考
- Rules of Machine Learning 介绍关于 ML 的一些原则。
- Numpy ML 通过纯手工编写的机器学习实现。
- NCNN 腾讯出品,手机端高性能神经网络前向计算模型。
- Deep Learning 相当不错的深度学习,作者包括了李沐大神,强烈五星推荐,还有 Course 中的实践介绍。
- Github 100 Days Of ML Code 中的学习,可以参考 Github 机器学习 100 天 。
大模型
涉及的东西比较多,这里单独拆出来。
参考
- Huggingface 作为 LLM 界的 Github 存在,包含了基础的 Chat、Leader Board 等大模型排名。
- 一些入门可视化相关的资料 bbycroft.net LLM 可视化便于理解其原理,实现代码可以参考 github,以及 Illustrated GPT2、The Illustrated Transformer。