符号定义
m:#training examples 训练样本的个数
x:input values/features 输入值/特征值
y:output values/target 输出值/目标值
(x,y):training example 训练样本
training example
第i个训练样本
:参数
h:hypothesis 假设函数
:h关于
的函数在
处的值
线性回归算法
一元线性假设函数: 特别的 令
则有
同理
二元线性假设函数:
n元线性假设函数: 其中n:#features 特征值的个数
代价函数(cost function):
目标就是寻找 使得代价函数
最小
梯度下降法(gradient descent)
简述:让
从零向量开始,不断改变
使得
减小到最小
具体实现:
其中
称为学习速率 其值过小时导致收敛速度过慢 过大时可能导致无法收敛
又
所以
对所有训练样本则有
也称为betch gradient descent 批量梯度下降法
由于对每次更新都要遍历所有的训练样本,所有当数据量很大时,算法较慢,这时可以用
随机梯度下降法(Stochastic gradient descent):
for j = 1 to m
{
}
这种方法虽然比较快,但是每次更新不是以全局最小为标准,可能导致一直在最低点附近徘徊无法收敛的问题
正规方程组(normal equation)
所以
设
则原(batch)梯度下降法可写成
假设A是nxn方阵,A的所有主对角线元素之和称为矩阵A的迹(trace),记为tr(A),即
性质:tr(AB)=tr(BA);tr(ABC)=tr(CAB)=tr(BCA);tr(A)=tr(A');当A为一阶方阵时即A是个实数时,tr(A)=A;
假设f(A)=tr(AB),则
;
故
(第二步
是个实数,而实数的迹等于本身,第三步转秩不影响迹,第四步令
)
由于
在最小处时导数(梯度)为0,即
有
称为正规方程组
所以