OLS和Gradient Descent

cnn卷积神经网络,传统图分析计算量大。
cnn局部感受野,权值共享。
池化pooling分为max-pooling,mean-pooling,stochastic-pooling

Ridge Regression 岭回归,为了改善OLS的缺点,在公式末尾加入了L2的惩罚项公式中的α∑w**2,其中α为可调节超参数,使用方法和linearRegression()一样,只是要传入超参数reg= linear_modle.Ridge(alpha=i)相比OLS模型的12维特征模型结果,模型参数w显著降低。并且α参数的大小与训练结果的回归参数呈反向关系:α越大,回归参数越小,模型越平缓
lasso回归,使用L1的惩罚机制,将RidgeRegression 的公式末尾的改成了α∑|w|旨在将不重要的特征参数计算为零。(稀疏(spare)回归参数,即多数回归参数为零)实现:linear_model.Lasso()

上次提及的OLS和Gradient Descent的比较,OLS,和Gradient Descent的本质和目的是相同的,但是一个是非迭代,一个是迭代思想。
Gradient Descent 梯度下降,梯度下降是求解问题的思想,通过假定参数的迭代方法逼近目标。
Gradient Descent 的名词概念:
learning rate(步长):每一步梯度下降时向目标方向前行的长度。
hypothesis function(损失函数):根据模型和特征假定的函数,线性或者非线性的包含梯度下降要寻找的参数的函数。
loss function(损失函数):用来评判由梯度下降产生的预测值和真实值的函数。
随机梯度下降(SGD stochastic Gradient Descent)每次只选取一部份数据带入计算。提升了每次迭代的速度。
优点:本来在普通梯度下降中无法找到全局最优解的P点有更大的可能性通过“非正确移动”越过高点(局部最优解),从而找到全局最优解。(随机梯度下降在大多数情况下无论在运行速度还是结果正确性上都优于普通梯度下降)
实现:scikit-learn实现了随机梯度下降线性模型分类器SGDclassifier和回归器SGDRegressor
SGDRegressor:from sklearn.linear_modle import SGDRegressor
SGDRegressor(penalty='',loss="",tol=,,,)
penalty:损失函数惩罚项,取值“none”“l1”“l2”或“elasticnet
loss:损失函数类型,可取值“squared_loss”“huber”“epsilon_insensitive”或“squared_epsilon_insensitive”,
max_iter:最大迭代次数。有时模型在迭代中陷入反复抖动,无法找到满足 tol停止条件的点,则只能利用max_iter作为停止迭代条件。
shuffle:完成一轮所有样本迭代后是否需要洗牌(重新随机调整样本顺序)
n_jobs:训练中可利用的CPU数量。
learning_rate:步长类型。可取值“constant”“optimal”“invscaling”,前者是固定步长,后两者为动态步长。动态步长是一种在初始时设置较大步长、随着训练进程逐渐减小步长的策略
eta0:在步长类型为“constant”或“invscaling”时的初始步长。
fit_intercept:模型是否有截距,取值为True或False。(截距就是偏置y=kx+b中的b)
SGDClassifier 其用法和SGDRegressor一样,就是回归和分类的区别。
增量学习,SGD每次学习只使用一部份样本,所以具有了增量学习的特性,(incremental Learning)
在训练时使用partial_fit 代替fit进行训练。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。