谷歌發布TensorFlow Lattice:得益於先驗知識,提升模型泛化能力

2021-01-10 雷鋒網

雷鋒網(公眾號:雷鋒網) AI科技評論消息,近日,谷歌科學家發布TensorFlow Lattice,這是一套預建的TensorFlow Estimators,易於使用,它相當於是TensorFlow運算符,用來構建點陣模型(lattice model)。點陣是多維插值查找表(look-up table),與幾何教材背面近似於正弦函數的查找表類似。

雷鋒網 AI科技評論編譯整理如下:

我們利用查找表的結構(它可以通過多個輸入進行鍵控),來估計比較隨意及靈活的關係,並滿足於指定的單調關係,以便更好地泛化。也就是說,訓練查找表值使得訓練樣例的損失最小化。另外,查找表中的相鄰值被約束為在輸入空間的給定方向上增長,因此模型的輸出值也是在這些方向上增長。重要的是,因為是在查找表值之間進行插入,所以點陣模型很平滑,預測也是有界的,這有助於避免測試階段出現有較大偏差的雜散預測。

點陣模型的作用

設想一下,你正在設計一個向用戶推薦附近咖啡店的系統,你需要讓模型學習:「如果兩家咖啡店是一樣的,那就選擇更近一點的。」

下圖中我們展示了一個靈活的模型(粉色曲線),它可以精確地與來自東京用戶的訓練數據(紫色圓點)相匹配,在用戶附近有很多咖啡店。

由於訓練樣例比較嘈雜,可以看到粉色曲線模型產生了過擬合,並且模型還忽略了總的趨勢——越近的咖啡店越好。如果用這條粉色曲線模型排列來自德克薩斯州(藍色)的測試樣本,在德克薩斯州咖啡店的分布更加分散,你會發現模型的表現變得很奇怪,有時甚至會認為更遠的咖啡店更好!

對比起來,運用東京相同的樣本訓練的點陣模型能被約束為滿足單調關係,最終得到一個靈活的單調函數(綠色曲線)。這個函數能與東京的訓練樣例精準匹配,但是也能泛化到德克薩斯州的樣例上,不會出現更遠的咖啡店更好的情況。

一般說來,輸入會有每個咖啡店的咖啡質量、價格等等。靈活模型很難捕捉到這種形式的整體關係,特別是在一些特徵空間中,訓練數據非常稀疏和雜亂。「如果其他所有輸入佔的權重一樣,那麼更近就更好。」能捕捉到先驗知識(例如輸入是怎麼對預測值產生影響的)的機器學習模型在實際中取得的效果更好,更易於調試並更具有解釋性。

預建 Estimators

我們提供一系列點陣模型架構作為TensorFlow Estimators。我們提供的最簡單的estimator是校準線性模型(calibrated linear model),它能利用1-d點陣,學習到每個特徵的最佳1-d轉化,然後線性地將所有校準特徵結合起來。如果訓練數據集很小或沒有複雜的非線性輸入交互,模型將非常有效。

另外一個estimator是校準點陣模型(calibrated lattice model),這個模型能利用兩層單一點陣模型非線性地將校準特徵結合起來,能在數據集中表示複雜的非線性交互。如果有2-10個特徵,那麼校準點陣模型會是很好的選擇,但對於10個或10個以上的特徵,我們認為利用一組校準點陣將會得到最佳結果,這時候你能利用預建的一組架構來進行訓練。比起隨機森林,單調點陣集合(Monotonic lattice ensembles)能增加0.3% -- 0.5%的準確度。另外,比起之前頂尖的單調性學習模型,這些新的TensorFlow點陣estimator 能增加0.1% -- 0.4%的準確度。

動手建立模型

你或許想要用更深的點陣網絡進行實驗,或者利用部分單調函數(作為深度神經網絡或其他TensorFlow架構的一部分)來進行研究。我們提供構件:TensorFlow校準運算符、點陣插入和單調性投影(monotonicity projections)。下圖是一個9層深度點陣網絡:

在TensorFlow Lattice中,除了模型的靈活選擇以及標準的L1、L2正則化,我們還提供新的正則化矩陣:

大家可以在如下地址看到詳細信息並開始進行實驗:

GitHub地址:https://github.com/tensorflow/lattice

tutorials地址:https://github.com/tensorflow/lattice/blob/master/g3doc/tutorial/index.md

參考文獻:

[1] Lattice Regression, Eric Garcia, Maya Gupta, Advances in Neural Information Processing Systems (NIPS), 2009

[2] Optimized Regression for Efficient Function Evaluation, Eric Garcia, Raman Arora, Maya R. Gupta, IEEE Transactions on Image Processing, 2012

[3] Monotonic Calibrated Interpolated Look-Up Tables, Maya Gupta, Andrew Cotter, Jan Pfeifer, Konstantin Voevodski, Kevin Canini, Alexander Mangylov, Wojciech Moczydlowski, Alexander van Esbroeck, Journal of Machine Learning Research (JMLR), 2016

[4] Fast and Flexible Monotonic Functions with Ensembles of Lattices, Mahdi Milani Fard, Kevin Canini, Andrew Cotter, Jan Pfeifer, Maya Gupta, Advances in Neural Information Processing Systems (NIPS), 2016

[5] Deep Lattice Networks and Partial Monotonic Functions, Seungil You, David Ding, Kevin Canini, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NIPS), 2017

via:Google Research Blog

雷鋒網 AI科技評論編譯整理。

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 谷歌正式發布TensorFlow 1.5,究竟提升了哪些功能?
    昨天,谷歌在 GitHub 上正式發布了 TensorFlow 的最新版本 1.5.0,並開源了其代碼。支持 CUDA 9 和 cuDNN 7 被認為是本次更新的最重要部分。機器之心對這次更新的重大改變以及主要功能和提升進行了編譯介紹,原文請見文中連結。
  • 玩轉TensorFlow?你需要知道這30功能
    如果你關心如何使模型保持最新並監控它們,那麼你可以了解一下這個產品、看看它的論文。地址是:tensorflow.org/tfx/?hl=zh-cn2)TensorFlow hub如果你想在小型數據集上訓練你的模型,或者提高泛化能力,你會需要使用遷移學習。
  • TensorFlow Lite發布重大更新!支持移動GPU、推斷速度提升4-6倍
    乾明 發自 凹非寺量子位 出品 | 公眾號 QbitAITensorFlow用於行動裝置的框架TensorFlow Lite發布重大更新,支持開發者使用手機等行動裝置的GPU來提高模型推斷速度。在進行人臉輪廓檢測的推斷速度上,與之前使用CPU相比,使用新的GPU後端有不小的提升。
  • 谷歌剛發布的深度學習動態計算圖工具TensorFlow Fold是什麼?
    7 日,谷歌通過博客正式發布了 TensorFlow Fold,該庫針對 TensorFlow 1.0 框架量身打造,可以幫助深度學習開發者根據不同結構的輸入數據建立動態的計算圖(Dynamic Computation Graphs),簡化了模型訓練階段對輸入數據的預處理過程,提升了系統的運行效率。
  • TensorFlow極簡教程:創建、保存和恢復機器學習模型
    選自Github機器之心編譯參與:Jane W、李澤南TensorFlow 是一個由谷歌發布的機器學習框架,在這篇文章中,我們將闡述 TensorFlow 的一些本質概念。相信你不會找到比本文更簡單的介紹。
  • Tensorflow 全網最全學習資料匯總之Tensorflow 的入門與安裝【2】
    《TensorFlow學習筆記1:入門》連結:http://www.jeyzhang.com/tensorflow-learning-notes.html本文與上一篇的行文思路基本一致,首先概括了TensorFlow的特性,然後介紹了graph、session、variable 等基本概念的含義,以具體代碼的形式針對每個概念給出了進一步的解釋
  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    TensorFlow 在官方博客中對這項成果進行了發布,雷鋒網 AI 科技評論編譯如下。TensorFlow Serving 是應用於機器學習模型的靈活的高性能服務系統,而 NVIDIA TensorRT 則是一個用以實現高性能深度學習推理的平臺,將二者相結合後,用戶可以輕鬆地實現最佳性能的 GPU 推理。
  • 深度解讀TensorFlow,了解它的最新發展!
    TensorFlow.js 可以為開發者提供高性能的、易於使用的機器學習構建模塊,允許研發人員在瀏覽器上訓練模型,或以推斷模式運行預訓練的模型。TensorFlow.js 不僅可以提供低級的機器學習構建模塊,還可以提供高級的類似 Keras 的 API 來構建神經網絡。
  • TensorFlow極速入門
    最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、tensorflow是什麼?tensorflow 是 google 開源的機器學習工具,在2015年11月其實現正式開源,開源協議Apache 2.0。
  • 谷歌開源TensorFlow Object Detection API物體識別系統
    API 將谷歌內部使用的物體識別系統(2016 年 10 月,該系統在 COCO 識別挑戰中名列第一)開源給更大的社區,幫助打造更好的計算機視覺模型。在谷歌,研究人員開發了最高水平的計算機視覺機器學習系統,不僅可以用於谷歌自身的產品和服務,還可以推廣至整個研究社區。創造能夠在同一張圖片裡定位和識別多種物體的機器學習模型一直是業內的核心挑戰之一,谷歌宣稱自己已投入大量時間訓練和實驗此類系統。
  • TensorFlow 資源大全中文版
    節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯繫的多維數據數組,即張量(tensor)。它靈活的架構讓你可以在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU)、伺服器、行動裝置等等。
  • 終於來了,TensorFlow 新增官方 Windows 支持
    在谷歌的支持下,TensorFlow 已成為 GitHub 上最受歡迎的機器學習開源項目。同時,谷歌也在 TensorFlow 框架中進行過各類研究、開源了其中一些項目,這些研究涉及到自然語言處理、機器翻譯、圖像描述、圖像分類等等。谷歌在開發者博客上寫到:「原生的 Windows 版 TensorFlow 是自開源以來,我們工作的重中之重。
  • TensorFlow 中文資源全集,學習路徑推薦
    /GitHub:https://github.com/tensorflow安裝教程中文安裝教程Mac安裝:http://www.cnblogs.com/tensorflownews/p/7298646.htmlubuntu 16.04 安裝 tensorflow-gpu:http://www.tensorflownews.com/2017/09/02/tensorflow-gpu-install-ubuntu
  • 關於TensorFlow,你應該了解的9件事
    TensorFlow 下載地址:https://www.tensorflow.org/install/TensorFlow 初始教程:https://www.datacamp.com/community/tutorials/tensorflow-tutorial
  • 如何使用TensorFlow Hub的ESRGAN模型來在安卓app中生成超分圖片
    /ESRGAN.tflite' TFHub https://hub.tensorflow.google.cn/ TFHub(轉化後模型) https://hub.tensorflow.google.cn/captain-pool/lite-model/esrgan-tf2/1 現在 TFLite 已經支持動態大小的輸入,所以你也可以在模型轉化的時候不指定輸入圖片的大小
  • 步履不停:TensorFlow 2.4新功能一覽!
    集合運算        https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/collective_ops.py
  • TensorFlow Lattice:靈活、可控、可解釋的機器學習
    因此,相對靈活的機器學習解決方案,如DNN和隨機森林等,僅依賴於訓練數據的模型,在訓練數據集和驗證數據集沒有覆蓋的輸入空間的表現經常出乎意料甚至是瘋狂的。這個問題在重要的政策和公平性約束條件可能被打破的案例下變得尤為嚴重。沒有被約束的模型在只有很少的訓練樣本覆蓋的輸入空間中,可能表現得出乎意料。如圖所示,深度神經網絡和梯度提升樹的預測結果和測試集的真實結果相去甚遠。
  • TensorFlow 2.0 新鮮出爐!新版本,新架構,新特性
    今天凌晨,谷歌在加州舉辦TensorFlow開發者峰會(TensorFlow Dev Summit),正式發布2.0版本。這場發布會有幾大亮點:TensorFlow 2.0 Alpha版發布,用戶現在可以搶先體驗;2.0版本具有簡易性、更清晰、擴展性三大特徵,大大簡化API;提高了TensorFlow Lite和TensorFlow.js部署模型的能力;發布會還把TensorFlow目前的家底透露了一遍:目前TF在全球已經有超過4100萬的下載次數,社區有超過1800多個貢獻者
  • 如何利用TensorFlow.js部署簡單的AI版「你畫我猜」圖像識別應用
    作者使用谷歌 Colab 來訓練模型,並使用 TensorFlow.js 將它部署到瀏覽器上。我在 TensorFlow.js 上創建了一個教程(https://medium.com/tensorflow/a-gentle-introduction-to-tensorflow-js-dba2e5257702)。在繼續下面的工作之前,請務必先閱讀一下這個教程。
  • 谷歌開放GNMT教程:如何使用TensorFlow構建自己的神經機器翻譯系統
    由於其可以使用深度神經網絡獲取句義,該模型成為谷歌翻譯等多數商業翻譯系統事實上的標準模型。但是,儘管有關 OpenNMT 或 tf-seq2seq 等 seq2seq 模型的資料已經非常豐富,但能夠指導人們快速構建高質量翻譯系統的知識和技能仍然略顯不足。