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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习笔记8 数据预处理

發布時間:2025/4/16 pytorch 105 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习笔记8 数据预处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據預處理標準流程

  • 自然灰度圖像
    (1)灰度圖像具有平穩特性,對每個數據樣本分別做均值消減(即減去直流分量)——每個圖像塊,計算平均像素值,并將圖像每個像素點減去均值。每個圖像塊有一個不同的均值。
  • x=x-repmat(mean(x,1),size(x,1),1);%x是144*10000,代表10000個patch

    (2)然后采用PCA/ZCA白化處理,其中的epsilon要足夠大以達到低通濾波的作用。epsilon值如何取,教程上說:
    一種檢驗 epsilon 是否合適的方法是用該值對數據進行 ZCA 白化,然后對白化前后的數據進行可視化。如果 epsilon 值過低,白化后的數據會顯得噪聲很大;相反,如果 epsilon 值過高,白化后的數據與原始數據相比就過于模糊。一種直觀上得到 epsilon 大小的方法是以圖形方式畫出數據的特征值,如下圖的例子所示,你可以看到一條”長尾”,它對應于數據中的高頻噪聲部分。你需要選取合適的 epsilon,使其能夠在很大程度上過濾掉這條”長尾”,也就是說,選取的 epsilon 應大于大多數較小的、反映數據中噪聲的特征值。

    如原始數據是x

    sigma=x*x'./size(x,2); [u,s,v]=svd(sigma); plot(1:size(sigma,1),diag(s));

    顯示原數據的特征值曲線:

    可以看到大約第50個特征值后面的部分要過濾掉,因此,epsilon>=第50個特征值就可以了。

    >> s(50,50)ans =0.1080

    可以取epsilon=0.1080,教程上的代碼給的值是epsilon=0.1,看來這個方法還是很有效的。

  • 彩色圖像
    (1)對于彩色圖像,色彩通道間并不存在平穩特性。因此首先對數據進行特征縮放(使像素值在[0,1]間)。對于圖像[0,255],可將像素值除以255.
    (2)對特征進行分量均值歸零化
    從下面代碼中可看到是對同一通道的對應像素點(即特征)進行均值歸零。——這屬于特征標準化。
    特征標準化:
    首先計算每一維度上數據的均值(使用全體數據),之后再每個維度上減去該均值。下一步便是在數據的每一維度上除以該維度上數據的標準差。對于自然圖像,方差歸一化不用進行。
    (3)使用足夠大的epsilon來做PCA/ZCA。
    ——參考linearDecoderExercise.m
  • % Subtract mean patch (hence zeroing the mean of the patches) meanPatch = mean(patches, 2); %patches' size :192*10000 ,即10000個8*8*3塊 patches = bsxfun(@minus, patches, meanPatch);% Apply ZCA whitening epsilon=0.1; sigma = patches * patches' / numPatches; [u, s, v] = svd(sigma); ZCAWhite = u * diag(1 ./ sqrt(diag(s) + epsilon)) * u'; patches = ZCAWhite * patches;displayColorNetwork(patches(:, 1:100));

    執行:

    plot(1:size(s,1),diag(s))

    結果:

    要濾掉長尾,選第十幾個特征值很合適。可選episilon=s(12,12)=0.0962.練習上給的是epsilon=0.1,看來這個方法還是比較靠譜的。~~呵呵

    白化

  • 基于重構的模型
    episilon的選擇就采用上面的方式——濾掉“長尾”。
  • 基于正交化ICA的模型
    對基于正交化ICA的模型來說,保證輸入數據盡可能地白化(即協方差矩陣為單位矩陣)非常重要。這是因為:這類模型需要對學習到的特征做正交化,以解除不同維度之間的相關性(詳細內容請參考 ICA 一節)。因此在這種情況下,epsilon 要足夠小(比如 epsilon = 1e ? 6)。
    在上例采用epsilon=1e-6時,ZCA后的數據協方差矩陣,圖示:

    如果是單位矩陣,就是1對應的一條直線,而現在接近單位矩陣。
  • 注意: 在使用分類框架時,我們應該只基于練集上的數據計算PCA/ZCA白化矩陣。需要保存以下兩個參數留待測試集合使用:(a)用于零均值化數據的平均值向量;(b)白化矩陣。測試集需要采用這兩組保存的參數來進行相同的預處理。
    例:在linearDecoderExercise.m中,可以看到,把ZCA白化后的patches訓練稀疏自編碼器,保存了 ‘ZCAWhite’, ‘meanPatch’。這樣當后面在有圖像通過該稀疏自編碼器提取特征時,就要和訓練時一樣的白化矩陣和平均值。
  • theta = initializeParameters(hiddenSize, visibleSize);% Use minFunc to minimize the functionaddpath minFunc/options = struct;options.Method = 'lbfgs';options.maxIter = 400;options.display = 'on';[optTheta, cost] = minFunc( @(p) sparseAutoencoderLinearCost(p, ...visibleSize, hiddenSize, ...lambda, sparsityParam, ...beta, patches), ...theta, options);% Save the learned features and the preprocessing matrices for use in% the later exercise on convolution and poolingfprintf('Saving learned features and preprocessing matrices...\n');save('STL10Features.mat', 'optTheta', 'ZCAWhite', 'meanPatch');

    總結

    以上是生活随笔為你收集整理的深度学习笔记8 数据预处理的全部內容,希望文章能夠幫你解決所遇到的問題。

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