以下是《深度学习详解》第一章的读书笔记:
概念解释
- 机器学习(Machine Learning,ML):让机器具备找一个函数的能力。比如输入声音,输出文字;输入图片,输出图片的描述。人为找这个函数太难,因此借助机器的力量。
- 回归(regression):当要找的函数的输出是一个数值,一个标量(scalar)时,这种机器学习的任务称为回归。
- 分类(classification):让机器从人类事先准备好的一些选项(class)中做选择题。AlphaGo 也是一个分类的问题——机器找一个函数,该函数的输入是棋盘上黑子跟白子的位置,输出就是从 19×19 个选项里面,选出一个正确的选项,从 19 × 19 个可以落子的位置里面,选出下一步应该要落子的位置。
- 结构化学习(structured learning):让机器产生有结构的东西的问题,比如画图,写文章
案例学习
案例:视频的点击次数预测 机器学习找函数的过程分为3个步骤:
- 写出一个带有未知参数的函数 f,其能预测未来观看次数。比如将函数写成y = b + wx1。y 是准备要预测的东西,即今天这个频道总共观看的人。x1 是这个频道前一天总共的观看次数。y 跟 x1 都是数值,b 跟 w 是未知的参数,可以通过领域知识(domain knowledge)隐约猜测出来
-
模型(model)y:带有未知的参数(parameter)的函数
-
特征(feature) x1 :这个函数里面已知的,它是来自于后台的信息
-
w 跟 b 是未知的参数。w 称为权重(weight),b 称为偏置(bias)
- 定义损失(loss),损失也是一个函数 L(b, w),其输入是模型参数 b 跟w。损失函数输出的值代表,现在如果把这一组未知的参数,设定某一个数值的时候,这笔数值好还是不好。L 是每一笔训练数据的误差 e 相加以后平均的结果。L 越大,代表现在这一组参数越不好,L 越小,代表现在这一组参数越好。估测的值跟实际的值之间的差距,其实有不同的计算方法
-
平均绝对误差(Mean Absolute Error,MAE)计算 y 与 yˆ 之间绝对值的差距
-
均方误差(Mean SquaredError,MSE)计算 y 与 yˆ 之间平方的差距
-
交叉熵(cross entropy)用于当y 和 yˆ 都是概率分布时
尝试不同的参数,计算它的损失,画出来的等高线图称为误差表面(error surface),用于寻找最小化损失的参数
- 解一个最优化的问题。找最好的一组 w 跟 b,让损失的值最小。梯度下降(gradient descent)是经常会使用优化的方法,通过计算损失函数对参数的梯度,逐步调整参数的值,以减少损失
-
初始点选择:随机选取初始点 w0,然后计算梯度以确定参数更新方向
-
学习率(Learning Rate, η):决定参数更新的步伐大小,设定过大会加快学习,但可能错过最优解,设定过小则学习速度较慢
-
局部最小值与全局最小值:梯度下降可能停在局部最小值而非全局最小值,但我们要解决的难题在于全局最小值
-
多参数优化:当有多个参数(如w和b)时,通过计算每个参数的梯度,分别更新每个参数,以找到最佳参数组合
在深度学习中,梯度计算和参数更新通常由框架(如 PyTorch)自动完成,最终得到最优参数