3.1.1.1线性模型:广播机制使用这个机制有什么好处? 我感觉没啥太大的好处,我觉得纯粹就是为了能让不同维度的矩阵能够相加相乘等运算
3.1.1.2 损失函数:它能够量化目标的实际值和预测值之间的差距,把非负数作为损失,值越小,损失越小
疑问:我可不可以把这个损失函数整成实数呢,就是可以有负数?
损失函数在不同问题中采用的函数形式是不一样的。
常数1/2不会带来本质的差别,但这样在形式上稍微简单一些 (因为当我们对损失函数求导后常数系数为1)
3.1.1.4随机梯度下降 最简单的方法就是计算损失函数,但实际中的执行可能会非常慢:因为在每一次更新参数之前,我们必须遍历整个数据集。 因此,我们通常会在每次需要计算更新的时候随机抽取一小批样本, 这种变体叫做小批量随机梯度下降(minibatch stochastic gradient descent)。
这里的w和x都是向量, 这个其实就是减法的实际意义就是权重向量的每一个向量,它们每一个权重向量w会对应一个损失,如果这个损失较大,说明对应的权重向量的值太大了需要调小一点,这个就是梯度下降法。
3.1.2矢量加速
为什么要进行矢量加速呢?
在训练我们的模型时,我们经常希望能够同时处理整个小批量的样本。 为了实现这一点,需要我们对计算进行矢量化, 从而利用线性代数库,而不是在Python中编写开销高昂的for循环。
矢量化代码通常会带来数量级的加速。 另外,我们将更多的数学运算放到库中,而无须自己编写那么多的计算,从而减少了出错的可能性。
3.1.3正态分布与平方损失
正态分布和线性回归之间的关系很密切,均方误差损失函数(简称均方损失)可以用于线性回归的一个原因是:我们假设了观测中包含噪声,其中噪声服从正态分布。
3.2 线性回归的实现
生成数据集-读取数据集-初始化参数模型-定义模型-定义损失函数-定义优化算法-训练
3.3线性回归的简洁实现
其实就是调用了一些已经封装好了的库,没什么新奇的,就是省事,但不利于学习。
3.4softmax回归,这个回归问题不同于线性回归,其实它是一种分类问题,线性回归是一个单输出的问题,而softmax回归是一个多输出的问题。
交叉熵:
测试数据集不参与训练,但是能指示我们这个数据集的好坏