机器学习-线性模型、随机梯度下降
·
线性回归

可以写成向量相乘的形式
目标函数

线性回归做分类
- 回归:实数域内连续的输出
- 分类:
输出向量,第i个输出值表示属于第i类的置信值
为每个类学习一个线性模型oi=<x,wi>+bio_i=<x,w_i>+b_ioi=<x,wi>+bi
标号y=[y1,y2,...,ym]y = [y_1,y_2,...,y_m]y=[y1,y2,...,ym]是一个长为m的向量,若i=y,则yi=1y_i=1yi=1,否则为0
最小化均方误差1m∣∣o−y∣∣22{1 \over m}||o-y||_2^2m1∣∣o−y∣∣22
预测的标签是使oio_ioi最大的那个i
即arg maxi{oi}i=1m\argmax_i\{o_i\}_{i=1}^margmaxi{oi}i=1m
softmax 回归
- 将分数转为可能性(非负,和为1)
yˆ=softmax(o)\^{y}=softmax(o)yˆ=softmax(o)其中yiˆ=exp(oi)∑k=1mexp(ok)\^{y_i}={exp(o_i) \over \sum_{k=1}^mexp(o_k)}yiˆ=∑k=1mexp(ok)exp(oi)
仍然是一个线性模型,以argmaxi{yiˆ}=argmaxi{oi}argmax_i \{\^{y_i}\}=argmax_i\{o_i\}argmaxi{yiˆ}=argmaxi{oi}做决策 - 两个向量(yˆ\^{y}yˆ和yyy)之间的交叉熵损失(cross-entropy loss)
H(y,yˆ)=∑i−yilog(yiˆ)=−logyyˆH(y,\^{y})=\displaystyle\sum_{\substack{i}}-y_ilog(\^{y_i})=-log\^{y_y}H(y,yˆ)=i∑−yilog(yiˆ)=−logyyˆ
小批量(Mini-batch)随机梯度下降(SGD)
-
用小批量SGD训练
www是模型参数,bbb是批量大小,ηt\eta_tηt是在时间t时的学习率
在时刻1随机初始化w1w_1w1
之后重复迭代直到收敛:
1、随机采样It⊂{1,...,n}I_t\subset\{1,...,n\}It⊂{1,...,n},其中∣It∣=b|I_t|=b∣It∣=b
2、更新wt+1=wt−ηt▽wtl(XIt,yIt,wt)w_{t+1}=w_t-\eta_t\triangledown_{w_t}l(X_{I_t},y_{I_t},w_t)wt+1=wt−ηt▽wtl(XIt,yIt,wt) -
对超参数b和ηt\eta_tηt比较敏感,选取要慎重
示例代码链接
更多推荐


所有评论(0)