Tiny-Classifier.cpp – Our First Tiny Classifier
8 months ago
- #neural-networks
- #C++
- #machine-learning
- 作者回顾了1985年首次获得神经网络编程报酬的经历,以及最近通过Welch Labs的YouTube视频重新接触该领域的契机。
- 受Welch Labs第二期视频启发,本文讨论了一个基于地理坐标(经度和纬度)的C++神经网络分类器实现。
- 模型采用两组示例:一组使用三个城市的经度数据,另一组使用四个城市的经纬度数据。
- 训练数据包含马德里、巴黎、柏林和巴塞罗那的地理位置,训练样本采用随机选取方式。
- 神经网络架构由带权重和偏置的神经元组成(随机初始化),并使用softmax函数生成城市概率分布。
- 采用梯度下降法进行学习,通过导数调整权重和偏置以最小化损失。
- 实现过程中通过交叉熵损失和准确率指标跟踪模型性能,并采用指数衰减函数进行可视化。
- 不同学习率(alpha)的实验显示了学习速度和模型收敛性的差异。
- 二维模型(同时使用经度和纬度)需要更长的训练时间,但能达到较高准确率。
- 作者邀请读者尝试调整学习率等参数,并感谢审阅草稿的贡献者。