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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

通过 Continual Learning 提高 ML.NET 模型准确性并增强性能

發布時間:2023/12/4 asp.net 86 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过 Continual Learning 提高 ML.NET 模型准确性并增强性能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從事機器學習的學者大多認為持續學習(Continual Learning)是邁向人工智能的根本一步。持續學習是模型模仿人類在整個生命周期中不斷從數據流中學習、微調、轉移知識和技能的能力。實際上,這意味著模型在進入新數據時能自主學習和適應生產。過去提出自動自適應學習(Auto-adaptive Learning),或持續自動機器學習(Continual AutoML)就是出于對這項能力的支持。在機器學習中,目標是通過生產環境部署模型,通過持續學習,我們希望使用進入生產環境的數據,并激活訓練過程重新訓練模型。

持續學習帶來的好處是顯而易見的,典型的就是商品銷售推薦。隨著不同時期客戶流量的特點熱銷商品會發生變化,比如以往在運動季節買飲料的客戶,過了幾個月會慢慢改成買純凈水了,這個過程不是突然轉變的,如果沒有持續學習的機制讓推薦模型適應,那就要等到人為感知到模型的不準確,然后再重新收集數據訓練新模型,這樣一來不僅要耗費專門的時間處理,還錯過了好的銷售時機。

持續學習最重要的構件之一就是 AutoML,當我們有了預處理后的數據集或數據流,也設計好了在管道中訓練的流程閉環,AutoML 才會發揮價值,在算法種類、超參數、迭代方式、內存消耗、指標、準確性等方面擇優平衡。ML.NET 在 1.x 版本后就已經具備了 AutoML 的特性,這在我以前的文章介紹過了。這次僅介紹 ML.NET 是怎么開展重新訓練步驟的。

到目前已知 ML.NET 中重新訓練支持以下這些算法:

  • AveragedPerceptronTrainer

  • FieldAwareFactorizationMachineTrainer

  • LbfgsLogisticRegressionBinaryTrainer

  • LbfgsMaximumEntropyMulticlassTrainer

  • LbfgsPoissonRegressionTrainer

  • LinearSvmTrainer

  • OnlineGradientDescentTrainer

  • SgdCalibratedTrainer

  • SgdNonCalibratedTrainer

  • SymbolicSgdLogisticRegressionBinaryTrainer

以回歸算法訓練的模型為例,假設我們已經有了如下的訓練過程:

// Define data preparation estimator IEstimator<ITransformer> dataPrepEstimator =mlContext.Transforms.Concatenate("Features", new string[] { "Size", "Prices" }).Append(mlContext.Transforms.NormalizeMinMax("Features"));// Create data preparation transformer ITransformer dataPrepTransformer = dataPrepEstimator.Fit(data);// Define OnlineGradientDescent regression algorithm estimator var ogdEstimator = mlContext.Regression.Trainers.OnlineGradientDescent();// Pre-process data using data prep operations IDataView transformedData = dataPrepTransformer.Transform(data);// Train regression model RegressionPredictionTransformer<LinearRegressionModelParameters> trainedModel = ogdEstimator.Fit(transformedData);

保存數據準備管道和已訓練的模型,我們一般使用以下方式:

// Save Data Prep transformer mlContext.Model.Save(dataPrepTransformer, data.Schema, "data_preparation_pipeline.zip");// Save Trained Model mlContext.Model.Save(trainedModel, transformedData.Schema, "model.zip");

當我們開始要重新訓練前,反過來要先加載預訓練的模型,使用以下代碼:

// Create MLContext MLContext mlContext = new MLContext();// Define DataViewSchema of data prep pipeline and trained model DataViewSchema dataPrepPipelineSchema, modelSchema;// Load data preparation pipeline ITransformer dataPrepPipeline = mlContext.Model.Load("data_preparation_pipeline.zip", out dataPrepPipelineSchema);// Load trained model ITransformer trainedModel = mlContext.Model.Load("model.zip", out modelSchema);

然后就可以提取預訓練的模型參數,加載模型后,通過訪問預訓練模型的 Model 屬性來提取已學習的模型參數。

// Extract trained model parameters LinearRegressionModelParameters originalModelParameters =((ISingleFeaturePredictionTransformer<object>)trainedModel).Model as LinearRegressionModelParameters;

重新訓練模型的過程與訓練模型的過程沒有什么不同。唯一的區別是,除了數據之外,Fit 方法還將原始學習模型參數作為輸入,并將它們用作重新訓練過程的起點。

//Load New Data IDataView newData = mlContext.Data.LoadFromEnumerable<SomeData>(someData);// Preprocess Data IDataView transformedNewData = dataPrepPipeline.Transform(newData);// Retrain model RegressionPredictionTransformer<LinearRegressionModelParameters> retrainedModel =mlContext.Regression.Trainers.OnlineGradientDescent().Fit(transformedNewData, originalModelParameters);

當然我們總是想比較一下模型參數,看看是否真的進行了重新訓練。一種方法是比較重新訓練模型的參數是否與原始模型的參數不同。下面的代碼示例將原始模型與重新訓練模型的權重進行比較,并將它們輸出到控制臺。

// Extract Model Parameters of re-trained model LinearRegressionModelParameters retrainedModelParameters = retrainedModel.Model as LinearRegressionModelParameters;// Inspect Change in Weights var weightDiffs =originalModelParameters.Weights.Zip(retrainedModelParameters.Weights, (original, retrained) => original - retrained).ToArray();Console.WriteLine("Original | Retrained | Difference"); for(int i=0;i < weightDiffs.Count();i++) {Console.WriteLine($"{originalModelParameters.Weights[i]} | {retrainedModelParameters.Weights[i]} | {weightDiffs[i]}"); }

下表演示了比較模型參數的輸出效果,?從表格中反映了四項參數權重發生了調整:

原始重新訓練后?差值
33039.8656293.76-23253.9
29099.1449586.03-20486.89
28938.38?48609.23-19670.85
30484.0253745.43-23261.41

總結

以上是生活随笔為你收集整理的通过 Continual Learning 提高 ML.NET 模型准确性并增强性能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 五月天婷婷基地 | 亚洲日本精品一区 | 波多野结衣av在线观看 | 粉嫩aⅴ一区二区三区 | 欧美性极品xxxx做受 | 久久国产视频精品 | 欧美一级在线播放 | 久久在线电影 | 国产一级淫片a | 在线观看免费视频一区 | av老司机久久 | 亚洲av无码成人精品国产 | 91中文| 免费一级特黄3大片视频 | 男人插女人的网站 | 日本黄色片| 91中文字幕永久在线 | 亚洲欧洲精品在线 | 久久黄色视屏 | 欧美女优在线观看 | 男女无遮挡xx00动态图120秒 | 黄免费在线观看 | 一区二区三区视频网 | 轻轻色在线观看 | 99视频免费看 | 欧美与黑人午夜性猛交久久久 | 国产在线久 | 国产精品av网站 | 国产成人无码精品久久二区三 | 麻豆tv在线观看 | 国产精品第七页 | 欧美三级网站 | 日韩两性视频 | 欧美三级自拍 | 欧美精品99 | 日韩免费视频一区 | 日本肉体xxxx裸体137大胆图 | 免费毛片一区二区三区久久久 | 91在线视频在线观看 | 99激情视频 | 亚洲视频欧洲视频 | 中文字幕精品无码亚 | 国产欧美视频在线播放 | 在线中文视频 | 精品视频一二区 | 国偷自产视频一区二区久 | 在线观看成人黄色 | 色97色| 中文在线а√天堂官网 | 久热最新视频 | 99蜜桃臀久久久欧美精品网站 | 97午夜 | 久久1024 | 国产精品96 | 永久免费的av网站 | 免费看欧美一级片 | 亚洲美女自拍视频 | 国产区在线观看 | 亚洲精品一区二三区 | 激情久久综合 | 蜜臀中文字幕 | 69av一区二区三区 | 欧美在线日韩在线 | 粗暴video蹂躏hd| 亚洲黄色激情视频 | 一区二区日韩在线观看 | 欧美在线日韩在线 | 亚洲一区二区三区在线看 | 亚洲精品日韩精品 | 国产激情毛片 | 精品国产AV色欲天媒传媒 | 久久国产毛片 | 欧美人与动性xxxxx杂性 | 日本精品不卡 | 91精品国产99久久久久久红楼 | 高清欧美性猛交xxxx | 国产综合无码一区二区色蜜蜜 | www.色人阁| 亚洲第四页 | 免费涩涩网站 | av片免费观看 | av亚洲在线| 女人叉开腿让男人桶 | 色婷视频 | 色开心| 日韩中文一区二区 | 国产大片中文字幕在线观看 | 91在线观看 | 日韩大片免费观看视频播放 | 杨幂一区二区三区免费看视频 | 色人阁在线视频 | 欧美二区在线观看 | 欧美aaaaa| 欧美精品一区在线观看 | 精品国产乱码久久久久久免费 | 成年人视频在线免费观看 | 欧美性猛交ⅹ乱大交3 | 日韩高清影视 | 成年在线观看 |