正则化

sklearn 中的RidgeCV函数

匿名 (未验证) 提交于 2019-12-03 00:18:01
更多内容请参阅用户指南。* 参数名:alphas 类型: numpy array of shape [n_alphas] 说明: α α 值的数组。正则化的力度,必须是正浮点数。正则化提升了问题的条件,减少了估计器的方差。较大的值指定了更强的正则化。在其他模型,比如LogisticRegression 或者LinearSVC, α α 对应 C 1 C 1 。 参数名:fit_intercept 类型:boolean 说明:是否计算该模型的截距。如果设置为False,将不会在计算中使用截距(比如,预处理数据已经中心化) 参数名:normalize 类型:boolean, optional, default False 说明:当fit_intercept设置为False时,该参数将会被忽略。如果为True,则回归前,回归变量X将会进行归一化,减去均值,然后除以L2范数。如果想要标准化,请在评估器(normalize参数为False)调用fit方法前调用sklean.preprocessing.StandardScaler, 参数名:scoring 类型:string, callable or None, optional, default: None 说明:一个字符串(见模型评估文档)或一个评估分数的可调用的对象/函数,对象/函数带有注册的评估器(estimator, X, y)

过拟合和欠拟合

匿名 (未验证) 提交于 2019-12-03 00:11:01
过拟合和欠拟合 过拟合(overfitting) 产生原因 解决办法 欠拟合(underfitting) 产生原因 解决办法 判定 过拟合(overfitting) 过拟合指的是模型在训练集上表现的很好,但是在训练集外的数据集上(e.g.,交叉验证集和测试集)表现一般,也就是说模型对对新数据的预测表现一般,泛化(generalization)能力较差。 产生原因 a.训练数据过少或存在噪音,无法对整个数据的分布进行估计 b.特征维度过多,求解模型中没有那么多的特征值得重用 c.在对模型进行过度训练(overtraining)时,常常会导致模型的过拟合 解决办法 数据清洗、增加训练集、early stopping、数据集扩增(Data augmentation)、正则化(Regularization)、Dropout(神经网络) 欠拟合(underfitting) 过拟合指的是模型没有很好地捕捉到数据特征,导致拟合的函数在训练集上表现效果差,预测的准确率低。 产生原因 解决办法 1.添加其他特征项(e.g.,“组合”、“泛化”、“相关性”),模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。 2.添加多项式特征,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强 3.减少正则化参数,正则化的目的是用来防止过拟合的,当模型出现了欠拟合

数据处理中的归一化、标准化(Standardization)、中心化和正则化(Normalization)区别详解

匿名 (未验证) 提交于 2019-12-03 00:11:01
利用数据集对机器学习或深度学习模型进行训练前要对数据进行预处理,除了数据清洗(如处理数据缺失、数据异常等问题),还有一类数据预处理的方法经常用到,即数据的归一化、标准化和正则化等。作者在浏览了大量网上资料发现,很多人对这些概念不是很清楚,甚至有些机器学习和人工智能领域的培训老师也对这几个概念有些模糊。本文将详细介绍标题中所举的几个概念的意思,希望对大家的学习有所帮助! (1)归一化 归一化是数据scaling(缩放)中的一种,是把数据缩放到[0,1]或[-1,1]之间。常用的数据归一化方法是线性函数归一化,公式为: x’ = (x - X_min) / (X_max - X_min) 利用sklearn库实现方法为:(以鸢尾花数据集为例,下同) from sklearn . preprocessing import MinMaxScaler MinMaxScaler (). fit_transform ( iris . data ) 这种方法可将数据scaling到[0,1]之间,此外还有平均归一化和非线性归一化等,其中平均归一化公式如下: x’ = (x - μ) / (MaxValue - MinValue) 非线性归一化如下: 对数函数scaling:y = log10(x) 反余切函数scaling:y = atan(x) * 2 / π (2)标准化

逻辑回归

匿名 (未验证) 提交于 2019-12-03 00:03:02
##逻辑回归 import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression #1.导入数据 #data = pd.read_csv(’’) #2.数据预处理 #略,最终生成x_train,y_train,x_test,y_test #此处导入鸢尾花数据 x_train, y_train = load_iris(return_X_y=True) #3.模型训练 clf = LogisticRegression(random_state=0, solver=‘lbfgs’, multi_class=‘multinomial’) clf.fit(x_train, y_train) #4.模型预测 y_predict = clf.predict(x_train[:2, :]) print(y_predict) #参数列表与调参方法 LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random

正则化方法:标签平滑

匿名 (未验证) 提交于 2019-12-03 00:02:01
机器学习的样本中通常会存在少量错误标签,这些错误标签会影响到预测的效果。标签平滑采用如下思路解决这个问题:在训练时即假设标签可能存在错误,避免“过分”相信训练样本的标签。当目标函数为交叉熵时,这一思想有非常简单的实现,称为标签平滑(Label Smoothing)。 我们以2类分类问题为例,此时训练样本为(xi,yi),其中yi是样本标签,为0或1。在训练样本中,我们并不能保证所有的样本标签都标注正确,如果某个样本的标注是错误的,那么在训练时,该样本就有可能对训练结果产生负面影响。一个很自然的想法是,如果我们有办法“告诉”模型,样本的标签不一定正确,那么训练出来的模型对于少量的样本错误就会有“免疫力”。 为了达到这个目标,我们的方法是: 在每次迭代时,并不直接将(xi,yi)放入训练集,而是设置一个错误率ε,以1-ε的概率将(xi,yi)代入训练,以ε的概率将(xi,1-yi)代入训练。 这样,模型在训练时,既有正确标签输入,又有错误标签输入,可以想象,如此训练出来的模型不会“全力匹配”每一个标签,而只是在一定程度上匹配。这样,如果真的出现错误标签,模型受到的影响就会更小。 那么,这是否意味着我们在每次训练时,都需要对标签进行随机化处理呢?答案是否定的,我们有更好的方法来解决,也就是 标签平滑 。下面我们介绍标签平滑的具体思路。 当我们采用交叉熵来描述损失函数时,对于每一个样本i

2.3 超参数调试,batch正则化和程序框架

匿名 (未验证) 提交于 2019-12-02 23:55:01
1.调试   1.1 超参数调试重要性顺序:               1. $\alpha$               2.$\beta$,  hidden units,  mini-batch size               3.layers,  learning rate decay             其他:若采用adam,则直接设定$\beta_{1}=0.9, \beta_{2}=0.999, \epsilon=10^{-8}$   1.2 为超参数选择合适范围   当超参数变化范围是[1,4]时,很显然可以采用在区间内取均值的方法。   但是,考虑学习率的变化范围,例如[0.0001, 1],此时如果在区间内随机均匀取值显然是不合理的。解决方法是我们可以在$[log_{10}^{0.0001},log_{10}^{1}]$内,即[-4, 0]内随机均匀取值。   类似的,当考虑$\beta$的区间为[0.9, 0.999]时,我们可以将$1-\beta$在[0.1, 0.001]内随机均匀取值。   1.3 两种超参数训练方法:pandas,caviar   panda:耐心在训练过程中一天天观察效果并调试参数   caviar:一次训练多个具有不同超参数的模型 2. batch归一化 来源:博客园 作者: 银鞍白马 链接:https://www

李宏毅机器学习笔记01(regression)

匿名 (未验证) 提交于 2019-12-02 23:49:02
Regression 1、首先,什么是regression(回归) 2、然后,实现回归的步骤(机器学习的步骤)   step1、model(确定一个模型)――线性模型   step2、goodness of function(确定评价函数)――损失函数   step3、best function(找出最好的一个函数)――梯度下降法 3、进一步,如何做得更好(优化step1)   方法1、select another model(选择另一个模型)   方法2、consider the hidden factors(考虑其他隐藏因素) 4、再进一步,防止过拟合(优化step2)   方法:正则化 5、最后,总结 1、首先,什么是regression(回归)    Regression 就是找到一个函数 function,通过输入特征 x ,输出一个数值 Scalar 。 股市预测(Stock market forecast)     输入:过去10年股票的变动、新闻咨询、公司并购咨询等     输出:预测股市明天的平均值 自动驾驶(Self-driving Car)     输入:无人车上的各个sensor的数据,例如路况、测出的车距等     输出:方向盘的角度 商品推荐(Recommendation)     输入:商品A的特性,商品B的特性     输出:购买商品B的可能性 2

用scikit-learn进行LDA降维

匿名 (未验证) 提交于 2019-12-02 23:49:02
    在 线性判别分析LDA原理总结 中,我们对LDA降维的原理做了总结,这里我们就对scikit-learn中LDA的降维使用做一个总结。     在scikit-learn中, LDA类是sklearn.discriminant_analysis.LinearDiscriminantAnalysis。那既可以用于分类又可以用于降维。当然,应用场景最多的还是降维。和PCA类似,LDA降维基本也不用调参,只需要指定降维到的维数即可。     我们这里对LinearDiscriminantAnalysis类的参数做一个基本的总结。     1) solver shrinkage 进行正则化。默认值是svd     2) shrinkage :正则化参数,可以增强LDA分类的泛化能力。如果仅仅只是为了降维,则一般可以忽略这个参数。默认是None,即不进行正则化。可以选择"auto",让算法自己决定是否正则化。当然我们也可以选择不同的[0,1]之间的值进行交叉验证调参。注意shrinkage只在solver为最小二乘"lsqr"和特征分解"eigen"时有效。     3) priors     4) n_components :即我们进行LDA降维时降到的维数。在降维时需要输入这个参数。注意只能为[1,类别数-1)范围之间的整数。如果我们不是用于降维,则这个值可以用默认的None。

STRCF:Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking阅读笔记

匿名 (未验证) 提交于 2019-12-02 23:38:02
Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking cvpr2018,哈工大的文章, 论文地址 ; 项目地址 Motivation 解决边界效应的SRDCF采用HOG特征跟踪速度只有6fps,原因主要为:空间正则化迭代求解,学习模型时依赖来自历史帧的大规模训练集。 1.SRDCF 的高复杂度主要来源于对多幅图像的训练形式,破坏了封闭解形式。通过去除约束条件,单图像样本上的 SRDCF 可以通过 ADMM 有效地解决,具有封闭解。 ADMM在相关滤波的应用 2.基于PA将时间正则化引入模型,更新时只需要当前帧和前一帧信息。 在线被动攻击学习(PA)) ; PA论文 Abstract DCF算法在跟踪领域具有高效的跟踪性能,但受限于边界效应的影响。SRDCF通过对DCF相关参数赋予空间惩罚项来解决边界效应问题,提高跟踪性能的同时提高了计算复杂度。对于在线更新问题,SRDCF 在多幅训练图像上建立模型,进一步增加了提高效率的难度。本文通过对SRDCF中的单样本进行时间正则化,提出一种时空正则化相关滤波器(STRCF)。STRCF不仅能够取得与多训练样本SRDCF的近似效果,且在目标外观具有大幅度变化时外观模型鲁棒性更强。此外STRCF能够通过ADMM方法求解

Lipschitz constraint in deep learning

匿名 (未验证) 提交于 2019-12-02 23:36:01
1. “稳健”模型:满足L约束 (1)对于参数扰动的稳定性 如模型 与 是否有相近的效果。 (2)对于输入扰动的稳定性 如 与 是否有相近的效果。 2. L约束: 当 , 。 存在某个常数C(与参数有关,与输入无关),使下式恒成立 其中, 越小越好,意味着对输入扰动越不敏感。 3. 神经网络中的L约束: 单层全连接 , 为激活函数, 为参数矩阵(向量),则 让 充分接近,则 由于现有激活函数如sigmoid,relu等满足“导数有上下界”,则 (每个元素)的绝对值都不超过某个常数,则 希望C尽可能小,从而给参数带来一个正则化项 。 4. 矩阵范数: F范数(Frobenius Norm):(又称L2范数)――deep中常用的L2正则化就是这种。 通过柯西不等式,有 。 谱范数(Spectral Norm):(又称2范数或谱半径) , Ϊ (Hermite矩阵)的最大特征值 谱范数 等于 的最大特征根(主特征根)的平方根,若 是方阵,则 等于W的最大的特征根的绝对值。 则: Ϊ 提供了一个上界, 是最准确的C,如果不太关心精准度,则C取 也可以。 5. L2正则项: (L2正则化与F范数的关系) 由于谱范数暂时没有计算出来,则先计算一个更大的上界 ,此时神经网络的loss为 表明L2正则化使模型更好地满足L约束,降低模型对输入扰动的敏感性,增强模型的泛化性能。 6. 幂迭代求谱范数: