《百面》-7.优化算法

1.有监督学习的损失函数

问题1:有监督学习涉及的损失函数有哪些?请列举并简述他们的特点。

答:1.二分类问题,Y={1,-1}

(1)0-1损失,非凸,非光滑,算法很难优化

L_{0-1}(f,y)=I_{P},I_{p}=fy\leq 0,当P为真时取值为1,否则为0.

(2)Hinge,凸上界,在fy=1出不可导

L_{hinge}(f,y)=max\begin{Bmatrix} 0, & 1-fy \end{Bmatrix},

(3)Logistic,凸上界,处处光滑,可以使用梯度下降,因为对所有样本点都有所惩罚,所以对异常点更敏感

L_{logistic}(f,y)=log_{2}(1+exp(-fy))

(4)Cross Entropy,光滑凸上界

L_{cross entropy}(f,y)=-log_{2}(\frac{1+fy}{2})

2.回归问题

(1)平方损失函数,光滑,可以使用梯度下降。当预测值与真实值差距大,惩罚力度越大。对异常点较为敏感

L_{square}(f,y)=(f-y)^{2}

(2)绝对损失函数,在f=y处无法求导。

L_{absolute}(f,y)=\left \| f-y \right \|

(3)Huber,在|f-y|较小的时候为平方损失,在|f-y|较大时为线性损失,处处可导,且对异常点鲁棒

L_{Huber}(f,y)=\left\{\begin{matrix} (f-y)^{2} &\left \| f-y \right \| \leq \delta \\ 2\delta \left \| f-y \right \|-\delta ^{2} & \left \| f-y \right \|>\delta \end{matrix}\right.

2.机器学习中的优化问题

问题1:机器学习中的优化问题,那些是凸优化问题,哪些是非凸优化问题?

答:凸函数:函数L是凸函数当且仅当对定义域中的任意两点x,y和任意实数\lambda\epsilon [0,1]总有

L(\lambda x+(1-\lambda )y)\leqslant \lambda L(x)+(1-\lambda )L(y)

凸优化:逻辑回顾、支持向量机、线性回归等线性模型。

非凸优化:低秩模型、深度神经网络、主成分分析

3.经典优化算法

问题1:无约束优化问题的优化方法有哪些?

min L(\theta )

答:直接法和迭代法

直接法,就是直接给出优化问题最优解的方法。需要目标函数满足两个条件,1,L是凸函数。梯度为0有解。

迭代法,就是迭代的修正对最优解的估计。分为一阶法和二阶法。

假设当前对最优解的估计值为\theta _{t},那么最优化问题就是min L(\theta_{t}+\delta )

那么对L做一阶泰勒展开,得到\delta =-\alpha L^{`}    \theta _{t+!}=\theta _{t}+\delta ,就是梯度下降法

对L二阶泰勒展开,得到\delta =-L^{``}L^{`}    \theta _{t+!}=\theta _{t}+\delta,就是牛顿法

牛顿法快于一阶法,但是高维情况下,矩阵计算复杂度很大。而且当目标是非凸时,二阶法很有可能收敛到鞍点。

4.梯度验证

问题1:如何验证求目标函数梯度功能的正确性?

\frac{\partial L(\theta )}{\partial \theta _{i}}=\lim_{h \mapsto 0 }\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}

\frac{\partial L(\theta )}{\partial \theta _{i}}\approx \frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h},利用泰勒展开来计算近似误差。

L(\theta +he_{i})泰勒展开,

\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}=\frac{\partial L(\theta )}{\partial \theta _{i}}+\frac{1}{12}(L^{3}(p_{i})+L^{3}(q_{i}))h^{2}

当h充分小的时候,q、p都接近0,可以认为h前的系数是常数M,因此近似式的误差为

|\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}-\frac{\partial L(\theta )}{\partial \theta _{i}}|\approx Mh^{2}

|\frac{L(\theta +he_{i})-L(\theta -he_{i})}{2h}-\frac{\partial L(\theta )}{\partial \theta _{i}}|\leq h

如果对于某个下表i,该不等式不成立,则有两种可能

(1)该下标对应M过大

(2)该梯度分量计算不正确

5.随机梯度下降法

问题1:当训练数据量特别大时,经典的梯度下降发存在什么问题,需要做如何改进?

答:随机梯度下降法:用单个训练样本的损失来近似平均损失

小批量梯度下降法:为了降低随机梯度的方差,从而使得迭代算法更稳定,同时处理若干个训练数据,假设需要同时处理m个训练数据

{(x_{i1},y_{i1})............(x_{im},y_{im})}

L(\theta )=\frac{1}{m}\sum_{j=1}^{m}L(f(x_{ij},y_{ij}),y_{ij})

\triangledown L(\theta )=\frac{1}{m}\sum_{j=1}^{m}\triangledown L(f(x_{ij},y_{ij}),y_{ij})

(1)如何选取参数m?

答:在不同的应用中,最优m通常不一样,需要调参选取。一般选择2的倍数,例如32、64、128、256

(2)如何挑选m个训练数据?

答:先对数据随机排序,然后按顺序挑选m个

(3)如何选取学习率?

答:通常采用衰减学习速率的方法,一开始较大,然后减小

6.随机梯度下降法的加速

问题1:随机梯度下降法失效的原因——摸着石头下山

答:随机梯度下降每次仅仅随机采样一个样本来估计当前梯度,计算速度快,内存小。但是每步接受的信息有限,造成目标函数曲线收敛的很不稳定,伴有剧烈波动。

问题2:解决之道——惯性保持和环境感知

答:

(1)动量方法

v_{t}=\gamma v_{t-1}+\eta g_{t}

\theta _{t+1}=\theta _{t}-v_{t}

前进步伐-v_{t} 有两部分组成 ,一个是学习速率乘以梯度\eta g_{t},而是带衰减速率的钱一次步伐v_{t-1}

(2)AdaGrad 方法

(3)Adam方法

7.L1正则化与稀疏性

问题1:L1正则化使得模型参数具有稀疏性的原理是什么?

答:在二维的情况下,黄色的部分是L2和L1正则项约束后的解空间,绿色的等高线是凸优化问题中目标函数的等高线,L2正则项约束后的解空间是圆形,而L1正则项约束的解空间是多边形。显然,多边形的解空间更容易在尖角处与等高线碰撞出稀疏解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值