点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达

来自于加州伯克利大学的David Bourgin 使用Numpy实现了几乎全部的机器学习算法,真正实现了手撸ML的愿景。多少“调包侠”的愿望都被这位小哥实现了!
该项目超过3万行代码,除了算法本身,还有很多的数据预处理代码!
地址:https://github.com/ddbourgin/numpy-ml

手撸算法的目的在于能够更好的学习和深入理解算法,而不是要替代已有的框架,毕竟成熟的框架在效率和精准度上都已经得到验证。
我们来看下已经实现的算法:
1. 高斯混合模型
2. 隐马尔可夫模型
3. 隐狄利克雷分配模型(主题模型)
- 用变分 EM 进行 MLE 参数估计的标准模型 
- 用 MCMC 进行 MAP 参数估计的平滑模型 
4. 神经网络
4.1 层/层级运算
- Add 
- Flatten 
- Multiply 
- Softmax 
- 全连接/Dense 
- 稀疏进化连接 
- LSTM 
- Elman 风格的 RNN 
- 最大+平均池化 
- 点积注意力 
- 受限玻尔兹曼机 (w. CD-n training) 
- 2D 转置卷积 (w. padding 和 stride) 
- 2D 卷积 (w. padding、dilation 和 stride) 
- 1D 卷积 (w. padding、dilation、stride 和 causality) 
4.2 模块
- 双向 LSTM 
- ResNet 风格的残差块(恒等变换和卷积) 
- WaveNet 风格的残差块(带有扩张因果卷积) 
- Transformer 风格的多头缩放点积注意力 
4.3 正则化项
- Dropout 
- 归一化 
- 批归一化(时间上和空间上) 
- 层归一化(时间上和空间上) 
4.4 优化器
- SGD w/ 动量 
- AdaGrad 
- RMSProp 
- Adam 
4.5 学习率调度器
- 常数 
- 指数 
- Noam/Transformer 
- Dlib 调度器 
4.6 权重初始化器
4.7 损失
- 交叉熵 
- 平方差 
- Bernoulli VAE 损失 
- 带有梯度惩罚的 Wasserstein 损失 
4.8 激活函数
- ReLU 
- Tanh 
- Affine 
- Sigmoid 
- Leaky ReLU 
4.9 模型
- Bernoulli 变分自编码器 
- 带有梯度惩罚的 Wasserstein GAN 
4.10 神经网络工具
- col2im (MATLAB 端口) 
- im2col (MATLAB 端口) 
- conv1D 
- conv2D 
- deconv2D 
- minibatch 
5. 基于树的模型
- 决策树 (CART) 
- [Bagging] 随机森林 
- [Boosting] 梯度提升决策树 
6. 线性模型
- 岭回归 
- Logistic 回归 
- 最小二乘法 
- 贝叶斯线性回归 w/共轭先验 
7.n 元序列模型
- 最大似然得分 
- Additive/Lidstone 平滑 
- 简单 Good-Turing 平滑 
8. 强化学习模型
- 使用交叉熵方法的智能体 
- 首次访问 on-policy 蒙特卡罗智能体 
- 加权增量重要采样蒙特卡罗智能体 
- Expected SARSA 智能体 
- 
    
TD-0 Q-learning 智能体 
- Dyna-Q / Dyna-Q+ 优先扫描 
9. 非参数模型
- Nadaraya-Watson 核回归 
- k 最近邻分类与回归 
10. 预处理
- 离散傅立叶变换 (1D 信号) 
- 双线性插值 (2D 信号) 
- 最近邻插值 (1D 和 2D 信号) 
- 自相关 (1D 信号) 
- 信号窗口 
- 文本分词 
- 特征哈希 
- 特征标准化 
- One-hot 编码/解码 
- Huffman 编码/解码 
- 词频逆文档频率编码 
11. 工具
- 相似度核 
- 距离度量 
- 优先级队列 
- Ball tree 数据结构 
传送门:https://github.com/ddbourgin/numpy-ml
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

