推广 热搜: page  使用  音视频  个数  搜索引擎  选择  企业  百度  可以  父亲 

Deep Learning 4 -正则化

   日期:2025-01-01     作者:0omy6    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/18406.html
核心提示:参考自:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearningdoc=exercises/ex5

参考自:http://openclassroom.stanford.edu/MainFolder/documentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html

数据地址ex5Data.zip

数据包含两个数据集,一个用作线性回归,一个用作逻辑回归。同时也包含了一个函数map_feature.m,该函数用在逻辑回归中。

加载ex5Linx.dat和ex5Liny.dat。对应于x和y变量。

注意,输入x为单特征,因而可以作出x的二维图。

 

由上图可以看出,如果用一条直线拟合可能过于简单,因此,我们用一高阶的多项式以拟合更多的数据。如下

 

这意味着我们假设有六个特征,因为x0,x1,…x5是我们回归所用的特征。注意到即使使用了多项式进行拟合,这仍然是一线性回归问题,因为每个特征都假设是线性的。正则问题中,最小化损失函数为

 

正则化参数λ是控制拟合程度的参数。由于适应性参数的增加,会对损失函数有一增加量。这个增加量与λ 和参数的平方有关。因此λ项中不包含θ0

用一般方程可得到最佳参数,表达式如下

 

λ项后的矩阵是(n+1)*(n+1)维,如上(n是特征维度,不含截距项,y和矩阵x有相同的非正则回归的定义

使用上述方程,利用下述不同的λ值求θ值

1.      λ为0

2.      λ为1

3.      λ为10

求解时,X是m*n+1为矩阵,因为有m组训练数据和n个特征,加上一截距项x0=1。第一列为1,其他列为相应的几次方,matlab中

 

当求得θ值,除了列出θ向量中的元素θj外,也列出了θ的L2范数来确保求解的正确。Matlab中,可用norm(x)求范数。作图如下

 

第二部分的联系是用牛顿法求解正则化逻辑回归模型。首先,加载ex5Logx.dat和ex5logy.dat。这个数据集代表了逻辑回归问题的两个特征。为了和前面的进行区别,两个特征定义为u,v,因此在数据ex5Logx.dat中,第一列为u,作图时可作为横轴,第二列为v,可作为纵轴。

Matlab如下

 
 
 
 
 
 
 
 
 
 
 

效果如下

 

逻辑回归中的函数为

将参数θTx作为sigmod函数参数g(θTx)。

x为u、v由0-6次方组成

 

因此,x有28个特征。

u是第一列,v是第二列。以后,x指的是x0,x1,而不是u,v。

为了节省x各项枚举的时间,Matlab中我们定义了函数'map_feature',能够使原始的输入映射到特征向量。这个函数适用于单独的训练样本和整个训练集。调用时

x = map_feature(u, v)

正则化逻辑回归模型的损失函数为

 

下面用牛顿法最小化函数。

更新规则为

 

同非正则逻辑回归模型的牛顿法更新规则一直,但是现在要处理正则项

和Hessian矩阵H如下

 

如果λ为0,则同非正则的逻辑回归模型。

1.      xi为特征向量,28维

2.      为28维向量

3.      xi*(xi)T和H为28*28矩阵

4.      yi和为标量

5.      在非正则项中,后面的对角阵为28*28维

下面运行牛顿法

1.      λ为0

2.      λ为1

3.      λ为10

为了确定时候收敛,每次迭代时记录J(θ)值。

收敛后,利用θ值求分类边缘。即

 

Matlab中

% Define the ranges of the grid

u = linspace(-1, 1.5, 200);

v = linspace(-1, 1.5, 200);

 

% Initialize space for the values to be plotted

z = zeros(length(u), length(v));

 

% evaluate z = theta*x over the grid

for i = 1:length(u)

    for j =1:length(v)

        %Notice the order of j, i here!

       z(j,i) = map_feature(u(i), v(j))*theta;

    end

end

 

% Because of the way that contour plotting works

% in Matlab, we need to transpose z, or

% else the axis orientation will be flipped!

z = z'

% Plot z = 0 by specifying the range [0, 0]

contour(u,v,z, [0, 0], 'LineWidth', 2)

如下图

 

由于有28个θ,将不显示结果的比对。但是可以用气2范数进行比对。

线性回归代码在这里,逻辑回归代码在这里。

一般解

 

随着λ增加,θ范数减小。这是由于λ越大,对较大的拟合参数惩罚大。

在第一幅途中,λ=0,意味着非正则线性回归。由于目标优化过程中仅最小化平方误差,这个曲线对于数据很合适,但并不能很好的反应一般趋势,是一种过拟合。

第二幅图显示过拟合减小在正则化参数增加到1后。由于过拟合的函数仍然是5阶多项式,因此曲线比第一幅图更简单。

第三幅图显示λ值过大。显示为少拟合,曲线并不遵从点的方向趋势。

牛顿法解

下图是在牛顿法收敛后θ的范数。λ为0时经过15次迭代后收敛,在为1或10时经过5次迭代后收敛

 

随着λ的增加,θ范数减小。在λ为0的途中,算法边缘拟合精度高,单仍然有1个点误判。这对于一般的分类来说精度过高。

λ为1时,图中显示了一个较小精度的边缘,该边缘仍然能够很好区分正负。

本文地址:http://ww.kub2b.com/news/18406.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号