色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用顯式核方法改進線性模型

Tensorflowers ? 來源:陳翠 ? 2018-12-02 11:11 ? 次閱讀

本文使用tf.contrib.learn(TensorFlow 的高階機器學習 API)Estimator 構(gòu)建我們的機器學習模型。如果您不熟悉此 API,不妨通過Estimator 指南著手了解。我們將使用 MNIST 數(shù)據(jù)集。本文包含以下步驟:

加載和準備 MNIST 數(shù)據(jù),以用于分類

構(gòu)建一個簡單的線性模型,訓練該模型,并用評估數(shù)據(jù)對其進行評估

將線性模型替換為核化線性模型,重新訓練它,并重新進行評估

加載和準備用于分類的 MNIST 數(shù)據(jù)

運行以下實用程序命令,以加載 MNIST 數(shù)據(jù)集:

data = tf.contrib.learn.datasets.mnist.load_mnist()

上述方法會加載整個 MNIST 數(shù)據(jù)集(包含 7 萬個樣本),然后將數(shù)據(jù)集拆分為訓練數(shù)據(jù)(5.5 萬)、驗證數(shù)據(jù)(5 千)和測試數(shù)據(jù)(1 萬)。拆分的每個數(shù)據(jù)集均包含一個圖像 NumPy 數(shù)組(形狀為 [sample_size, 784])以及一個標簽 NumPy 數(shù)組(形狀為 [sample_size, 1])。在本文中,我們僅分別使用訓練數(shù)據(jù)和驗證數(shù)據(jù)訓練和評估模型。

要將數(shù)據(jù)饋送到tf.contrib.learn Estimator,將數(shù)據(jù)轉(zhuǎn)換為張量會很有幫助。為此,我們將使用input function 將操作添加到 TensorFlow 圖,該圖在執(zhí)行時會創(chuàng)建要在下游使用的小批次張量。有關(guān)輸入函數(shù)的更多背景知識,請參閱輸入函數(shù)這一部分(https://tensorflow.google.cn/guide/premade_estimators?hl=zh-CN#create_input_functions)。在本示例中,我們不僅會將 NumPy 數(shù)組轉(zhuǎn)換為張量,還將使用tf.train.shuffle_batch操作指定 batch_size 以及是否在每次執(zhí)行 input_fn 操作時都對輸入進行隨機化處理(在訓練期間,隨機化處理通常會加快收斂速度)。以下代碼段是加載和準備數(shù)據(jù)的完整代碼。在本示例中,我們使用大小為 256 的小批次數(shù)據(jù)集進行訓練,并使用整個樣本(5 千個條目)進行評估。您可以隨意嘗試不同的批次大小。

import numpy as npimport tensorflow as tfdef get_input_fn(dataset_split, batch_size, capacity=10000, min_after_dequeue=3000): def _input_fn(): images_batch, labels_batch = tf.train.shuffle_batch( tensors=[dataset_split.images, dataset_split.labels.astype(np.int32)], batch_size=batch_size, capacity=capacity, min_after_dequeue=min_after_dequeue, enqueue_many=True, num_threads=4) features_map = {'images': images_batch} return features_map, labels_batch return _input_fndata = tf.contrib.learn.datasets.mnist.load_mnist()train_input_fn = get_input_fn(data.train, batch_size=256)eval_input_fn = get_input_fn(data.validation, batch_size=5000)

訓練一個簡單的線性模型

現(xiàn)在,我們可以使用 MNIST 數(shù)據(jù)集訓練一個線性模型。我們將使用tf.contrib.learn.LinearClassifierEstimator,并用 10 個類別表示 10 個數(shù)字。輸入特征會形成一個 784 維密集向量,指定方式如下:

image_column = tf.contrib.layers.real_valued_column('images', dimension=784)

用于構(gòu)建、訓練和評估 LinearClassifier Estimator 的完整代碼如下所示:

import time# Specify the feature(s) to be used by the estimator.image_column = tf.contrib.layers.real_valued_column('images', dimension=784)estimator = tf.contrib.learn.LinearClassifier(feature_columns=[image_column], n_classes=10)# Train.start = time.time()estimator.fit(input_fn=train_input_fn, steps=2000)end = time.time()print('Elapsed time: {} seconds'.format(end - start))# Evaluate and report metrics.eval_metrics = estimator.evaluate(input_fn=eval_input_fn, steps=1)print(eval_metrics)

下表總結(jié)了使用評估數(shù)據(jù)評估的結(jié)果。

如何使用顯式核方法改進線性模型

注意:指標會因各種因素而異。

除了調(diào)整(訓練)批次大小和訓練步數(shù)之外,您還可以微調(diào)一些其他參數(shù)。例如,您可以更改用于最小化損失的優(yōu)化方法,只需明確從可用優(yōu)化器集合中選擇其他優(yōu)化器即可。例如,以下代碼構(gòu)建的 LinearClassifier Estimator 使用了 Follow-The-Regularized-Leader (FTRL) 優(yōu)化策略,并采用特定的學習速率和 L2 正則化。

optimizer = tf.train.FtrlOptimizer(learning_rate=5.0, l2_regularization_strength=1.0)estimator = tf.contrib.learn.LinearClassifier( feature_columns=[image_column], n_classes=10, optimizer=optimizer)

無論參數(shù)的值如何,線性模型可在此數(shù)據(jù)集上實現(xiàn)的準確率上限約為93%。

結(jié)合使用顯式核映射和線性模型

線性模型在 MNIST 數(shù)據(jù)集上的錯誤率相對較高(約 7%)表明輸入數(shù)據(jù)不是可線性分隔的。我們將使用顯式核映射減少分類錯誤。

直覺:大概的原理是,使用非線性映射將輸入空間轉(zhuǎn)換為其他特征空間(可能是更高維度的空間,其中轉(zhuǎn)換的特征幾乎是可線性分隔的),然后對映射的特征應用線性模型。如下圖所示:

如何使用顯式核方法改進線性模型

技術(shù)詳情

在本示例中,我們將使用 Rahimi 和 Recht 所著的論文 “Random Features for Large-Scale Kernel Machines”(大型核機器的隨機特征)中介紹的隨機傅里葉特征來映射輸入數(shù)據(jù)。隨機傅里葉特征通過以下映射將向量x∈Rd 映射到x′∈RD

如何使用顯式核方法改進線性模型

其中,Ω∈RD×d、x∈Rd,b∈RD和余弦值會應用到元素級別。

在本示例中,Ω和b條目是從分布中采樣的,使映射符合以下特性:

如何使用顯式核方法改進線性模型

上述表達式右側(cè)的量也稱為 RBF(或高斯)核函數(shù)。此函數(shù)是機器學習中使用最廣泛的核函數(shù)之一,可隱式衡量比原始空間維度高得多的其他空間中的相似性。要了解詳情,請參閱徑向基函數(shù)核(https://en.wikipedia.org/wiki/Radial_basis_function_kernel)。

核分類器

tf.contrib.kernel_methods.KernelLinearClassifier是預封裝的tf.contrib.learnEstimator,集顯式核映射和線性模型的強大功能于一身。其構(gòu)造函數(shù)與 LinearClassifier Estimator 的構(gòu)造函數(shù)幾乎完全相同,但前者還可以指定要應用到分類器使用的每個特征的一系列顯式核映射。以下代碼段演示了如何將 LinearClassifier 替換為 KernelLinearClassifier。

# Specify the feature(s) to be used by the estimator. This is identical to the# code used for the LinearClassifier.image_column = tf.contrib.layers.real_valued_column('images', dimension=784)optimizer = tf.train.FtrlOptimizer( learning_rate=50.0, l2_regularization_strength=0.001)kernel_mapper = tf.contrib.kernel_methods.RandomFourierFeatureMapper( input_dim=784, output_dim=2000, stddev=5.0, name='rffm')kernel_mappers = {image_column: [kernel_mapper]}estimator = tf.contrib.kernel_methods.KernelLinearClassifier( n_classes=10, optimizer=optimizer, kernel_mappers=kernel_mappers)# Train.start = time.time()estimator.fit(input_fn=train_input_fn, steps=2000)end = time.time()print('Elapsed time: {} seconds'.format(end - start))# Evaluate and report metrics.eval_metrics = estimator.evaluate(input_fn=eval_input_fn, steps=1)print(eval_metrics)

傳遞到KernelLinearClassifier的唯一額外參數(shù)是一個字典,表示從 feature_columns 到要應用到相應特征列的核映射列表的映射。以下行指示分類器先使用隨機傅里葉特征將初始的 784 維圖像映射到 2000 維向量,然后在轉(zhuǎn)換的向量上應用線性模型:

kernel_mapper = tf.contrib.kernel_methods.RandomFourierFeatureMapper( input_dim=784, output_dim=2000, stddev=5.0, name='rffm')kernel_mappers = {image_column: [kernel_mapper]}estimator = tf.contrib.kernel_methods.KernelLinearClassifier( n_classes=10, optimizer=optimizer, kernel_mappers=kernel_mappers)

請注意stddev參數(shù)。它是近似 RBF 核的標準偏差 (σ),可以控制用于分類的相似性指標。stddev通常通過微調(diào)超參數(shù)確定。

下表總結(jié)了運行上述代碼的結(jié)果。我們可以通過增加映射的輸出維度以及微調(diào)標準偏差,進一步提高準確率。

如何使用顯式核方法改進線性模型

標準偏差

分類質(zhì)量與標準偏差的值密切相關(guān)。下表顯示了分類器在具有不同標準偏差值的評估數(shù)據(jù)上達到的準確率。最優(yōu)值為標準偏差 = 5.0。注意標準偏差值過小或過大會如何顯著降低分類的準確率。

如何使用顯式核方法改進線性模型

輸出維度

直觀地來講,映射的輸出維度越大,兩個映射向量的內(nèi)積越逼近核,這通常意味著分類準確率越高。換一種思路就是,輸出維度等于線性模型的權(quán)重數(shù);此維度越大,模型的 “自由度” 就越高。不過,超過特定閾值后,輸出維度的增加只能讓準確率獲得極少的提升,但卻會導致訓練時間更長。下面的兩個圖表展示了這一情況,分別顯示了評估準確率與輸出維度和訓練時間之間的函數(shù)關(guān)系。

如何使用顯式核方法改進線性模型

如何使用顯式核方法改進線性模型

總結(jié)

顯式核映射結(jié)合了非線性模型的預測能力和線性模型的可擴展性。與傳統(tǒng)的雙核方法不同,顯式核方法可以擴展到數(shù)百萬或數(shù)億個樣本。使用顯式核映射時,請注意以下提示:

隨機傅立葉特征對具有密集特征的數(shù)據(jù)集尤其有效

核映射的參數(shù)通常取決于數(shù)據(jù)。模型質(zhì)量與這些參數(shù)密切相關(guān)。通過微調(diào)超參數(shù)可找到最優(yōu)值

如果您有多個數(shù)值特征,不妨將它們合并成一個多維特征,然后向合并后的向量應用核映射

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 線性模型
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7802

原文標題:如何使用顯式核方法改進線性模型

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于GAC模型實現(xiàn)交互圖像分割的改進算法

    基于GAC模型實現(xiàn)交互圖像分割的改進算法提出了一種改進的交互圖像分割算法。采用全變分去噪模型
    發(fā)表于 09-19 09:19

    線性模型和非線性模型的區(qū)別是什么

    線性模型和非線性模型的區(qū)別,以及激活函數(shù)的作用
    發(fā)表于 06-05 12:08

    介紹支持向量機與決策樹集成等模型的應用

    本文主要介紹支持向量機、k近鄰、樸素貝葉斯分類 、決策樹、決策樹集成等模型的應用。講解了支持向量機SVM線性與非線性模型的適用環(huán)境,并對
    發(fā)表于 09-01 06:57

    一種基于改進線性規(guī)劃的LDPC碼混合譯碼算法

    一種基于改進線性規(guī)劃的LDPC碼混合譯碼算法_陳紫強
    發(fā)表于 01-07 16:52 ?0次下載

    基于改進單相dq變換與形態(tài)濾波的電壓暫降檢測方法_金

    基于改進單相dq變換與形態(tài)濾波的電壓暫降檢測方法_金
    發(fā)表于 01-08 11:37 ?5次下載

    基于ARMLinux 臺的模型預測控制算法實現(xiàn)

    基于ARMLinux 臺的模型預測控制算法實現(xiàn)
    發(fā)表于 09-25 08:48 ?16次下載
    基于ARMLinux 臺的<b class='flag-5'>顯</b><b class='flag-5'>式</b><b class='flag-5'>模型</b>預測控制算法實現(xiàn)

    八代酷睿的尷尬,遭遇研發(fā)瓶頸

    八代酷睿從HD系列更名為UHD系列,官方聲稱UHD系列的主要改變在于支持硬件編解碼10bit 4K HEVC視頻(或解碼VP9),而本質(zhì)上與上代HD6XX
    發(fā)表于 11-01 16:39 ?3571次閱讀

    一種改進的非線性亮度提升模型的逆光圖像恢復手段

    針對因為拍照時光線不足或拍攝角度不佳而拍出逆光圖像影響肉眼觀察或計算機識別的問題,提出一種改進的非線性亮度提升模型的逆光圖像恢復手段。已有的非線性亮度提升
    發(fā)表于 12-06 16:45 ?1次下載
    一種<b class='flag-5'>改進</b>的非<b class='flag-5'>線性</b>亮度提升<b class='flag-5'>模型</b>的逆光圖像恢復手段

    應該如何選擇使用獨有什么切換策略嗎?

     獨內(nèi)部也有一個官方的程序清單,建議哪些程序用獨(高性能),哪些程序用(省電)
    發(fā)表于 08-19 17:31 ?0次下載
    應該如何選擇使用獨<b class='flag-5'>顯</b>和<b class='flag-5'>核</b><b class='flag-5'>顯</b>有什么切換策略嗎?

    cpu帶和不帶的區(qū)別

    CPU帶表示處理器中集成了核心顯卡,可以在無獨立顯卡的情況下顯示畫面。相反,不帶的CPU則需要額外配備獨立顯卡才能正常顯示畫面。同一芯片的處理器帶
    發(fā)表于 05-12 16:18 ?3.6w次閱讀

    基于反饋的改進協(xié)同過濾算法研究

    基于反饋的協(xié)同過濾算法只存在3個變量,其相似度計算方法依賴用戶評分數(shù)據(jù)的反饋行為,而未考慮現(xiàn)實推薦場景中存在的隱性因素影響,這決定了
    發(fā)表于 04-28 11:30 ?3次下載
    基于<b class='flag-5'>顯</b><b class='flag-5'>式</b>反饋的<b class='flag-5'>改進</b>協(xié)同過濾算法研究

    結(jié)合和隱特征交互的融合模型

    特征工程是影響杋器茡習算法性能的關(guān)鍵因素之一,隨著互聯(lián)網(wǎng)數(shù)據(jù)規(guī)模的擴大,傳統(tǒng)特征工程的人力成本不斷増加。為減少對特征工程的依賴,構(gòu)建一種結(jié)合和隱特征交互的融合模型。將稀疏結(jié)構(gòu)單元
    發(fā)表于 05-12 16:13 ?5次下載

    基于除法畸變模型的鏡頭線性標定方法

    針對魚眼鏡頭的高精度標定需求,提岀一種基于除法畸變模型線性標定方法。通過除法模型將題轉(zhuǎn)換為線性方程組求解問題相機畸變中心后對畸變方程矩陣進
    發(fā)表于 05-19 11:39 ?7次下載

    面向非線性動態(tài)的保精度-稀疏特性回歸模型

    面向非線性動態(tài)的保精度-稀疏特性回歸模型
    發(fā)表于 07-02 15:00 ?3次下載

    什么是方法

    方法是機器學習中的一類算法,它使用函數(shù)將數(shù)據(jù)映射到高維特征空間,然后在該特征空間中執(zhí)行線性或非線性分類/回歸。
    的頭像 發(fā)表于 03-31 10:49 ?1641次閱讀
    主站蜘蛛池模板: 午夜福利08550| 先锋资源久久| 亚洲精品tv久久久久久久久久| 夜夜骑夜夜欢| 白银谷在线观看| 国产麻豆剧看黄在线观看| 久久无码人妻中文国产| 日本一二三区视频在线| 亚洲免费观看视频| 久青草国产在视频在线观看| 女人爽得直叫免费视频| 亚洲AV无码乱码国产麻豆穿越 | free俄罗斯性xxxxhd派对| 国产精品久久人妻拍拍水牛影视 | 免费完整版观看| 午夜影院美女| AV天堂午夜精品蜜臀AV| 国产在线观看免费| 前后灌满白浆护士| 亚洲一区二区三不卡高清| 村上里沙快播| 伦理片飘花免费影院| 丫鬟粗大狠狠贯穿h| xxx日本高清视频hd| 久久国产精品萌白酱免费| 视频成人app永久在线观看| 4hu四虎免费影院www| 国产亚洲AV精品无码麻豆| 欧美一区二区视频97色伦| 又爽又黄又粗又大免费视频| 国产精品人妻午夜福利| 欧美一级久久久久久久久大| 在线视频 亚洲| 国产亚洲一区二区三区啪| 日本毛片久久国产精品| 4480yy午夜私人影院| 狠狠色在在线视频观看| 天美传媒MV高清免费看| 不分昼夜H1V3| 欧美精品一区二区三区四区| 在线观看成年人免费视频|