假设要判断一条留言是否在询问退款。最直接的程序是查找“退款”两个字;遇到“钱什么时候退回来”就漏掉,遇到“我不是要退款”又可能误判。规则能处理已知表达,却很难列完语言的变化。
机器学习把问题改写成:给出一批带答案的留言,让程序从数据中估计一个函数 。输入 是文本,输出可以是“退款意图”的概率, 是从数据中学到的参数。**AI 是更宽的目标和方法集合;机器学习是其中依靠数据学习规律的方法;深度学习则主要用多层神经网络表示这个函数。**三者并不是三个互斥赛道。
一次完整的学习过程
文本不能直接进入多数数值模型。先把留言变成特征:传统方法可以统计词频;神经网络通常把 token 编号转换成向量。拿到特征之后,一次监督学习包含四件事:
- 模型根据当前参数给出预测。
- 损失函数衡量预测与标注的差距。
- 优化器根据损失对参数的梯度更新参数。
- 用没有参与拟合的数据评估泛化能力。
例如二分类常用交叉熵。若真实标签为 ,预测概率为 ,单个样本的损失为:
这个式子会对“自信但错误”的预测给出较大惩罚。它并不保证模型理解了退款政策;模型可能只记住训练集的措辞。因此训练、验证、测试集应按应用场景切分:同一用户的近似重复留言若同时出现在训练集和测试集,指标会虚高。
为什么还需要深度学习
词频模型把“退”和“款”的统计交给人设计,多层神经网络则可以在训练中逐层形成特征。它减少了部分手工特征设计,但代价是更多数据、算力与调试工作。数据量不大且特征明确时,线性模型仍可能是更合适的基线;模型越复杂不意味着任务效果必然越好。
读 AI 文章时,可以先问四个问题:输入是什么、目标函数是什么、参数怎样更新、评估是否符合真实使用情境。后面的文章会从 NumPy 中的形状与矩阵运算 开始,把这些抽象步骤落到代码里。