引入
买房出价需要对房价进行预测。
假设1:影响房价的关键因素是卧室个数、卫生间个数和居住面积,记为x1、x2、x3。
假设2:成交价是关键因素的加权和 。权重和偏差的实际值在后面决定。
拓展至一般线性模型:
给定n维输入,线性模型有一个n维权重和一个标量偏差b。输出是输入的加权和
。
线性模型可以看作是单层的神经网络:
衡量预测质量
比较真实值和预估值,例如房屋售价和估价。假设y是真实值,是估计值,可以通过比较真实值与估计值误差的平方以估计质量。
。1/2是为了方便在求导时消去2。
训练数据:
收集一定数据点来决定参数值,如过去6个月被卖的房子。
x1、x2等均为向量,即一个样本。y1、y2等为实数数值,即实际售出房价
参数学习
对于模型在每一个数据上的损失求均值便可以得到损失函数:
1/2来自损失函数,1/n表示求平均,对于每一个样本使用真实值减去预测值后求平方。
为了学习最优模型,需要找到最小的w和b:
可以将偏差加入权重
X矩阵中加入一列全1特征,将偏差放入w向量中。偏差加入权重后公式如下;
显示解
为求得权重的最优解,需要对函数求导:
损失是凸函数,所以最优价满足导数为0时的值:
线性回归总结
线性回归是对n维输入的加权外加偏差
使用平方损失来衡量预测值和真实值的差异
线性回归有显示解
线性回归可以看作单层神经网络
基础优化方法:梯度下降
挑选一个初始值
重复迭代参数t=1,2,3...
Wt减去上一轮的W值即Wt-1,减去标量乘以损失函数关于Wt-1处的导数(梯度)
直观解释:
图为二次函数等高图。外侧为最大值,内侧为最小值。梯度为使得函数值增加最快的方向,负梯度为值下降最快的方向。
为学习率,即在每次在梯度方向上移动的步长。作为超参数,需要人为提前指定。 学习率不能太长也不能太小。
小批量随机梯度下降
在整个训练集上计算梯度太贵(占用内存多)以至模型训练时间过长。可以随机采取b个样本来近似损失。b是批量大小,是另一个重要的超参数:batch_size。批量大小也是不能太大、不能太小。
梯度下降总结
梯度下降通过不断延着反梯度方向更新参数求解
小批量随机梯度下降是深度学习默认的求解算法
两个重要的超参数是批量大小batch_size和学习率