×

PyTorch教程18.1之高斯过程简介

消耗积分:0 | 格式:pdf | 大小:0.76 MB | 2023-06-05

远不及你

分享资料个

在许多情况下,机器学习相当于从数据中估计参数。这些参数通常很多且相对难以解释——例如神经网络的权重。相比之下,高斯过程提供了一种机制,可以直接推理适合我们数据的函数的高级属性。例如,我们可能了解这些函数是否快速变化、周期性、涉及条件独立性或平移不变性。高斯过程使我们能够通过直接指定适合我们数据的函数值的高斯分布,轻松地将这些属性合并到我们的模型中。

让我们从一些例子开始,感受一下高斯过程是如何运作的。

假设我们观察以下回归目标(输出)的数据集,y,由输入索引,x. 例如,目标可以是二氧化碳浓度的变化,输入可以是记录这些目标的时间。数据有哪些特点?它看起来变化多快?我们是否定期收集数据点,或者是否缺少输入?您如何想象填补缺失的区域,或预测直到x=25

https://file.elecfans.com/web2/M00/A9/CD/poYBAGR9PPyAc7YNAAC_o4iD57A201.svg

图 18.1.1观测数据。

为了用高斯过程拟合数据,我们首先指定我们认为合理的函数类型的先验分布。在这里,我们展示了几个来自高斯过程的示例函数。这个先验看起来合理吗?请注意,这里我们不是在寻找适合我们数据集的函数,而是在寻找解决方案的合理高级属性,例如它们随输入变化的速度。请注意,我们将在下一个关于先验和推理的笔记本中看到用于重现此笔记本中所有图的代码。

https://file.elecfans.com/web2/M00/AA/48/pYYBAGR9PP6AGLMoAAByefveCHc747.svg

图 18.1.2我们可能希望用我们的模型表示的示例先验函数。

一旦我们以数据为条件,我们就可以使用它来推断适合数据的函数的后验分布。在这里,我们展示了示例后验函数。

https://file.elecfans.com/web2/M00/AA/48/pYYBAGR9PQCAK2WmAAF9sEzpcC8328.svg

图 18.1.3样本后验函数,一旦我们观察到数据。

我们看到这些函数中的每一个都与我们的数据完全一致,完美地贯穿了每一次观察。为了使用这些后验样本进行预测,我们可以对后验中每个可能的样本函数的值进行平均,以创建下面的粗蓝色曲线。请注意,我们实际上不必采用无限数量的样本来计算此期望;正如我们稍后将看到的,我们可以计算封闭形式的期望。

https://file.elecfans.com/web2/M00/A9/CD/poYBAGR9PQOAANq0AAGKOFg-YU4060.svg

图 18.1.4后验样本,以及后验均值,可用于点预测,蓝色。

我们可能还需要不确定性的表示,因此我们知道我们应该对我们的预测有多大的信心。直觉上,我们应该有更多的不确定性,因为样本后验函数的可变性更大,因为这告诉我们真实函数可以采用更多可能的值。这种不确定性称为认知不确定性,即可约化的不确定性。与缺乏信息有关。随着我们获取更多数据,这种不确定性就会消失,因为与我们观察到的一致的解决方案将越来越少。与后验均值一样,我们可以计算封闭形式的后验方差(这些函数在后验中的可变性)。使用阴影,我们在均值两侧显示两倍的后验标准差,创建一个可信区间 ,该区间有 95% 的概率包含任何输入的函数真实值x.

https://file.elecfans.com/web2/M00/A9/CD/poYBAGR9PQWATnU9AAHgGnHjlss694.svg

图 18.1.5后验样本,包括 95% 的可信集。

如果我们删除后验样本,只需可视化数据、后验均值和 95% 可信集,该图看起来会更清晰一些。注意不确定性如何从数据中增长,这是认知不确定性的一个特性。

https://file.elecfans.com/web2/M00/A9/CD/poYBAGR9PQeAWUckAADQ-Om3KjE055.svg

图 18.1.6点预测和可信集。

我们用来拟合数据的高斯过程的属性受到所谓的协方差函数(也称为内核)的强烈控制。我们使用的协方差函数称为RBF(径向基函数)核,其形式为

(18.1.1)kRBF(x,x′)=Cov(f(x),f(x′))=a2exp⁡(−12ℓ2||x−x′||2)

这个内核的超参数是可解释振幅 参数_a控制函数变化的垂直尺度,以及长度尺度参数控制函数的变化率(摆动度)。更大a 意味着更大的函数值,并且更大意味着更缓慢地改变函数。让我们看看我们的样本先验函数和后验函数随着我们的变化会发生什么a.

长度尺度对 GP 的预测和不确定性有特别显着的影响。||x−x′||=ℓ,一对函数值之间的协方差是a2exp⁡(−0.5). 在比更远的距离,函数值变得几乎不相关。这意味着如果我们想在某个点做出预测x∗,然后是带有输入的函数值 x这样||x−x′||>ℓ不会对我们的预测产生强烈影响。

让我们看看更改长度尺度如何影响样本先验和后验函数以及可信集。以上拟合使用长度尺度2. 现在让我们考虑 ℓ=0.1,0.5,2,5,10. 的长度尺度0.1相对于我们正在考虑的输入域的范围来说非常小, 25. 例如,函数的值在x=5x=10在这样的长度范围内基本上没有相关性。另一方面,对于长度尺度10,这些输入的函数值将高度相关。请注意,下图中的垂直比例发生了变化。

先验点1邮寄1

优先点5邮寄5

先验2post2

先验5post5

请注意,随着长度尺度的增加,函数的“摆动性”会降低,我们的不确定性也会降低。如果长度尺度很小,随着我们远离数据,不确定性会迅速增加,因为数据点对函数值的信息变得越来越少。

现在,让我们改变振幅参数,将长度尺度固定在2. 请注意,垂直比例对于先验样本保持固定,而对于后验样本则不同,因此您可以清楚地看到函数的增加比例以及对数据的拟合。

先验1邮寄点1

先验2posta2

先验8邮局8

我们看到振幅参数影响函数的尺度,但不影响变化率。在这一点上,我们也感觉到我们程序的泛化性能将取决于这些超参数的合理值。价值观ℓ=2a=1似乎提供了合理的拟合,而其他一些值却没有。幸运的是,有一种强大且自动的方法可以使用所谓的边际似然来指定这些超参数,我们将在笔记本中进行推理。

那么究竟什么是全科医生呢?在我们开始时,GP 简单地说任何函数值的集合<


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'PyTorch教程18.1之高斯过程简介',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);