日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 循环神经网络 >内容正文

循环神经网络

次梯度法matlab代码,实例:连续化次梯度法解 LASSO 问题

發(fā)布時(shí)間:2023/11/30 循环神经网络 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 次梯度法matlab代码,实例:连续化次梯度法解 LASSO 问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)例:連續(xù)化次梯度法解 LASSO 問(wèn)題

我們將在此頁(yè)面中構(gòu)造一個(gè) LASSO 問(wèn)題

并且展示連續(xù)化次梯度方法在其中的應(yīng)用。

目錄

構(gòu)造LASSO優(yōu)化問(wèn)題

設(shè)定隨機(jī)種子。clear;

seed = 97006855;

ss = RandStream('mt19937ar','Seed',seed);

RandStream.setGlobalStream(ss);

構(gòu)造 LASSO 優(yōu)化問(wèn)題

生成隨機(jī)的矩陣 和向量 以使得 。第一次實(shí)驗(yàn),給定正則化系數(shù)為 1e-3 。m = 512;

n = 1024;

A = randn(m, n);

u = sprandn(n, 1, 0.1);

b = A * u;

x0 = randn(n, 1);

mu = 1e-3;

求解 LASSO 優(yōu)化問(wèn)題

固定步長(zhǎng)為 。AA = A' * A;

L = eigs(AA, 1);

首先在更嚴(yán)格的停機(jī)準(zhǔn)則下進(jìn)行試驗(yàn),將收斂時(shí)得到的函數(shù)值作為真實(shí)的最優(yōu)值的參考 。opts = struct();

opts.maxit = 5000;

opts.maxit_inn = 500;

opts.opts1 = struct();

opts.method = 'subgrad';

opts.opts1.step_type = 'diminishing';

opts.verbose = 0;

opts.alpha0 = 1/L;

opts.ftol = 1e-12;

opts.ftol0 = 1e4;

opts.etag = 1;

addpath('../LASSO_con')

[x, out] = LASSO_con(x0, A, b, mu, opts);

f_star = out.fvec(end);

求解 LASSO 問(wèn)題,記錄輸出。opts.maxit = 3000;

opts.maxit_inn = 200;

opts.opts1.step_type = 'diminishing';

opts.verbose = 0;

opts.ftol = 1e-8;

[x, out] = LASSO_con(x0, A, b, mu, opts);

data1 = (out.fvec - f_star) / f_star;

k1 = length(data1);

將 修改為 1e-2 重復(fù)實(shí)驗(yàn)。mu = 1e-2;

opts.maxit = 5000;

opts.maxit_inn = 500;

opts.opts1.step_type = 'fixed';

opts.ftol = 1e-10;

[x, out] = LASSO_con(x0, A, b, mu, opts);

f_star = out.fvec(end);

opts.maxit = 3000;

opts.maxit_inn = 200;

opts.ftol = 1e-8;

opts.opts1.step_type = 'fixed';

[x, out] = LASSO_con(x0, A, b, mu, opts);

data2 = (out.fvec - f_star) / f_star;

k2 = length(data2);

結(jié)果可視化

可視化優(yōu)化過(guò)程:觀察目標(biāo)函數(shù)值隨迭代次數(shù)的變化。fig = figure;

semilogy(1:k1, max(data1,0), '-', 'Color',[0.2 0.1 0.99], 'LineWidth',2);

hold on

semilogy(1:k2, max(data2,0), '-.','Color',[0.99 0.1 0.2], 'LineWidth',1.5);

legend('\mu = 10^{-3}', '\mu = 10^{-2}');

ylabel('$(f(x^k) - f^*)/f^*$', 'fontsize', 14, 'interpreter', 'latex');

xlabel('迭代步');

print(fig, '-depsc','subgrad.eps');

結(jié)果分析

于固定正則化系數(shù) 和步長(zhǎng)時(shí)不同,采取連續(xù)化策略之后,次梯度法在固定步長(zhǎng)下收斂到了最小值。 注意到在 減小到 1e-2 之前,兩次優(yōu)化的過(guò)程是完全相同的 (圖像不重合而是平行是由于對(duì)應(yīng)的最小值不同),并且在每次 減小后,函數(shù)值都有迅速的下降。 最終在 次迭代左右最終收斂,比之采取相同的連續(xù)化策略的光滑化梯度法稍慢。

參考頁(yè)面

此頁(yè)面的源代碼請(qǐng)見(jiàn): demo_cont.m。

版權(quán)聲明

此頁(yè)面為《最優(yōu)化:建模、算法與理論》、《最優(yōu)化計(jì)算方法》配套代碼。 代碼作者:文再文、劉浩洋、戶(hù)將,代碼整理與頁(yè)面制作:楊昊桐。

著作權(quán)所有 (C) 2020 文再文、劉浩洋、戶(hù)將

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的次梯度法matlab代码,实例:连续化次梯度法解 LASSO 问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。