基本符号
输入变量(特征或输入特征) = x
输出变量(目标变量) = y
训练示例 = (x,y)
训练示例总数 = m
单个训练示例 = (x(i),y(i))或(xi,yi)
监督学习
x−>f(模型)−>y^(y的估计值)
线性回归模型
fw,b(x)=wx+b你可以认为它等同于f(x)=kx+bw、b=模型参数(系数、权重)
平方误差代价函数
在这之前这是篇很好的文章极值-最值 - yesandnoandperhaps
y^(i)=fw,b(x(i))fw,b(x(i))=wx(i)+b
j(w,b)=2m∑i=1m(y^(i)−y(i))2J(w,b)=2m∑i=1m(fw,b(x(i))−y(i))2min(j(w,b))
b=0时
fw(x)=wxJ(w)=2m∑i=1m(fw(x(i))−y(i))2目标:求min(j(w))
成本函数可视化
很显然:J(w,b)在三维空间中若将它省略J可得到一个二维平面图,显然b是y轴,w是x轴
梯度下降
将w,b的基础值设为0α=学习率
梯度下降算法{w=w−α∂w∂J(w,b)b=b−α∂b∂J(w,b)
实时更新的梯度下降算法⎩⎨⎧tmpw=w−α∂w∂J(w,b)w=tmpwtmpb=b−α∂b∂J(w,b)b=tmpb
将以上合并
第一步
求出∂w∂J(w,b),∂b∂J(w,b)
得:m∑i=1m(fw,b(x(i))−y(i))x(i),m∑i=1m(fw,b(x(i))−y(i))
第二步
w=w−mα∑i=1m(fw,b(x(i))−y(i))x(i)
b=b−mα∑i=1m(fw,b(x(i))−y(i))
总结步骤:梯度下降->平方误差代价函数->线性回归
一些符号
xj=jthfeature(特征)n=number of feature(特征总数)x(i)=features of ith training example(训练集)xj(i)=value of feature j in iih training example(训练集的第几个值)
多元线性回归
如果有n个特征,即可以得到如下:fw,b(x)=w1x1+w2x2+…+wnxn+b进一步即可得到:fw,b(x)=wTx+b或表示为:fw,b(x)=w⋅x+b Without vectorization(未向量化):fw,b(x)=j=1∑nwjxj+bvectorization(向量化):fw,b(x)=w⋅x+b
Without vectorization代码示例
f = 0 for j in range(0,n): f = f+w[j]*x[j] f=f+b
|
vectorization 代码示例
多元线性回归-成本函数
J(w,b)
多元线性回归-梯度下降
{wj=wj−α∂wj∂J(w,b)b=b−α∂b∂J(w,b)
⎩⎨⎧j=nwn=wn−mα∑i=1m(fw,b(x(i))−y(i))x1(i)b=b−mα∑i=1m(fw,b(x(i))−y(i))simultaneously update(同时更新)wj(for j=1,…,n)and b
其它方法
Normal equation正规方程
它只适用与线性回归中
特征缩放
y≤x1≤zμ=训练集x1的平均值σ=标准差(1):使用最大值进行:x1,scaled=zx1zy≤x1,scaled≤1(2):使用mean normalization(归一化)进行:x1=z−yx1−μ1z−yy−μ1≤x1≤z−yz−μ1(3):使用Z−score normalization(标准化)进行:x1=σ1x1−μ1σy−μ1≤x1≤σz−μ1
检测梯度下降是否收敛
设置一个ϵ等于一个较小的值,例如0.001,当ϵ≤J(w,b)时通常认为它经收敛了
学习率的选择
α=学习率你可以从较大的值开始,逐步调试,必须要说明的是:设置过大,会导致易损失值爆炸、易振荡设置过小,会导致易过拟合、收敛速度很慢通常建议在0.01∼0.001逐步测试
更好的办法,请参看Leslie N. Smith在2015年发表的论文[Cyclical Learning Rates for Training Neural Networks]
特征工程
它可以让模型更加准确
例:
预测一个长方体的的价格假设它的价格与长x1,宽x2,高x3有关显然可以得到:fw,b(x)=w1x1+w2x2+w3x3+b观察到它们的关系得到:长方体体积x4=x1x2x3长方体底面积x5=x1x2故得到:fw,b(x)=w1x1+w2x2+w3x3+w4x4+w5x5+b
多项式回归
拟合非线性函数
例:
若数据近似二次函数,即得此模型:
fw,b(x)=w1x+w2x2+b
Motivations
这是一种分类方法
线性回归 -> 定义分类位置 -> 完成
**缺陷:**数据复杂时,分类位置定义不完善时,会导致例如将好的数据分类至坏的
逻辑回归
它将输出0到1之间的数
g(z)=1+e−z10<g(z)<1线性回归:z=w⋅x+b将它们合并:fw,b(x)=g(w⋅x+b)=1+e−(w⋅x+b)1
决策边界
它可以用于预测逻辑回归
z=w⋅x+b=0