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

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

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

Google開源了一款名為TensorFlow Federated的框架

電子工程師 ? 來源:lp ? 2019-03-11 09:40 ? 次閱讀

【導(dǎo)語】據(jù)了解,全球有 30 億臺智能手機(jī)和 70 億臺邊緣設(shè)備。每天,這些電話與設(shè)備之間的交互不斷產(chǎn)生新的數(shù)據(jù)。傳統(tǒng)的數(shù)據(jù)分析和機(jī)器學(xué)習(xí)模式,都需要在處理數(shù)據(jù)之前集中收集數(shù)據(jù)至服務(wù)器,然后進(jìn)行機(jī)器學(xué)習(xí)訓(xùn)練并得到模型參數(shù),最終獲得更好的產(chǎn)品。

但如果這些需要聚合的數(shù)據(jù)敏感且昂貴的話,那么這種中心化的數(shù)據(jù)收集手段可能就不太適用了。

去掉這一步驟,直接在生成數(shù)據(jù)的邊緣設(shè)備上進(jìn)行數(shù)據(jù)分析和機(jī)器學(xué)習(xí)訓(xùn)練呢?

近日,Google 開源了一款名為 TensorFlow Federated (TFF)的框架,可用于去中心化(decentralized)數(shù)據(jù)的機(jī)器學(xué)習(xí)及運(yùn)算實(shí)驗(yàn)。它實(shí)現(xiàn)了一種稱為聯(lián)邦學(xué)習(xí)(Federated Learning,F(xiàn)L)的方法,將為開發(fā)者提供分布式機(jī)器學(xué)習(xí),以便在沒有數(shù)據(jù)離開設(shè)備的情況下,便可在多種設(shè)備上訓(xùn)練共享的 ML 模型。其中,通過加密方式提供多一層的隱私保護(hù),并且設(shè)備上模型訓(xùn)練的權(quán)重與用于連續(xù)學(xué)習(xí)的中心模型共享。

傳送門:https://www.tensorflow.org/federated/

實(shí)際上,早在 2017 年 4 月,Google AI 團(tuán)隊就推出了聯(lián)邦學(xué)習(xí)的概念。這種被稱為聯(lián)邦學(xué)習(xí)的框架目前已應(yīng)用在 Google 內(nèi)部用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,例如智能手機(jī)中虛擬鍵盤的下一詞預(yù)測和音樂識別搜索功能。

圖注:每臺手機(jī)都在本地訓(xùn)練模型(A);將用戶更新信息聚合(B);然后形成改進(jìn)的共享模型(C)。

DeepMind 研究員Andrew Trask 隨后發(fā)推稱贊:“Google 已經(jīng)開源了Federated Learning……可在數(shù)以百萬計的智能手機(jī)上共享模型訓(xùn)練!”

讓我們一起來看看使用教程

從一個著名的圖像數(shù)據(jù)集 MNIST 開始。MNIST 的原始數(shù)據(jù)集為 NIST,其中包含 81 萬張手寫的數(shù)字,由 3600 個志愿者提供,目標(biāo)是建立一個識別數(shù)字的 ML 模型。

傳統(tǒng)手段是立即將 ML 算法應(yīng)用于整個數(shù)據(jù)集。但實(shí)際上,如果數(shù)據(jù)提供者不愿意將原始數(shù)據(jù)上傳到中央服務(wù)器,就無法將所有數(shù)據(jù)聚合在一起。

TFF 的優(yōu)勢就在于,可以先選擇一個 ML 模型架構(gòu),然后輸入數(shù)據(jù)進(jìn)行訓(xùn)練,同時保持每個數(shù)據(jù)提供者的數(shù)據(jù)是獨(dú)立且保存在本地。

下面顯示的是通過調(diào)用 TFF 的 FL API,使用已由 GitHub 上的“Leaf”項(xiàng)目處理的 NIST 數(shù)據(jù)集版本來分隔每個數(shù)據(jù)提供者所寫的數(shù)字:

GitHub 傳送鏈接:https://github.com/TalwalkarLab/leaf

#Loadsimulationdata.source,_=tff.simulation.datasets.emnist.load_data()defclient_data(n):dataset=source.create_tf_dataset_for_client(source.client_ids[n])returnmnist.keras_dataset_from_emnist(dataset).repeat(10).batch(20)#WrapaKerasmodelforusewithTFF.defmodel_fn():returntff.learning.from_compiled_keras_model(mnist.create_simple_keras_model(),sample_batch)#Simulateafewroundsoftrainingwiththeselectedclientdevices.trainer=tff.learning.build_federated_averaging_process(model_fn)state=trainer.initialize()for_inrange(5):state,metrics=trainer.next(state,train_data)print(metrics.loss)

除了可調(diào)用 FL API 外,TFF 還帶有一組較低級的原語(primitive),稱之為 Federated Core (FC) API。這個 API 支持在去中心化的數(shù)據(jù)集上表達(dá)各種計算。

使用 FL 進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練僅是第一步;其次,我們還需要對這些數(shù)據(jù)進(jìn)行評估,這時就需要 FC API 了。

假設(shè)我們有一系列傳感器可用于捕獲溫度讀數(shù),并希望無需上傳數(shù)據(jù)便可計算除這些傳感器上的平均溫度。調(diào)用 FC 的 API,就可以表達(dá)一種新的數(shù)據(jù)類型,例如指出 tf.float32,該數(shù)據(jù)位于分布式的客戶端上。

READINGS_TYPE=tff.FederatedType(tf.float32,tff.CLIENTS)

然后在該類型的數(shù)據(jù)上定義聯(lián)邦平均數(shù)。

@tff.federated_computation(READINGS_TYPE)defget_average_temperature(sensor_readings):returntff.federated_average(sensor_readings)

之后,TFF 就可以在去中心化的數(shù)據(jù)環(huán)境中運(yùn)行。從開發(fā)者的角度來講,F(xiàn)L 算法可以看做是一個普通的函數(shù),它恰好具有駐留在不同位置(分別在各個客戶端和協(xié)調(diào)服務(wù)中的)輸入和輸出。

例如,使用了 TFF 之后,聯(lián)邦平均算法的一種變體:

參考鏈接:https://arxiv.org/abs/1602.05629

@tff.federated_computation(tff.FederatedType(DATASET_TYPE,tff.CLIENTS),tff.FederatedType(MODEL_TYPE,tff.SERVER,all_equal=True),tff.FederatedType(tf.float32,tff.SERVER,all_equal=True))deffederated_train(client_data,server_model,learning_rate):returntff.federated_average(tff.federated_map(local_train,[client_data,tff.federated_broadcast(server_model),tff.federated_broadcast(learning_rate)]))

目前已開放教程,可以先在模型上試驗(yàn)現(xiàn)有的 FL 算法,也可以為 TFF 庫提供新的聯(lián)邦數(shù)據(jù)集和模型,還可以添加新的 FL 算法實(shí)現(xiàn),或者擴(kuò)展現(xiàn)有 FL 算法的新功能。

據(jù)了解,在 FL 推出之前,Google 還推出了 TensorFlow Privacy,一個機(jī)器學(xué)習(xí)框架庫,旨在讓開發(fā)者更容易訓(xùn)練具有強(qiáng)大隱私保障的 AI 模型。目前二者可以集成,在差異性保護(hù)用戶隱私的基礎(chǔ)上,還能通過聯(lián)邦學(xué)習(xí)(FL)技術(shù)快速訓(xùn)練模型。

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

    關(guān)注

    5

    文章

    1748

    瀏覽量

    57187
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131843
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1197

    瀏覽量

    24538

原文標(biāo)題:讓數(shù)百萬臺手機(jī)訓(xùn)練同一個模型?Google把這套框架開源了

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

收藏 人收藏

    評論

    相關(guān)推薦

    ?介紹一款Java開發(fā)的開源MES系統(tǒng)

    ?介紹一款Java開發(fā)的開源MES系統(tǒng),萬界星空科技開源的MES系統(tǒng)。該系統(tǒng)基于Java開發(fā),具有廣泛的適用性和高度的可定制性,能夠滿足不同行業(yè)、不同規(guī)模企業(yè)的智能制造需求。
    的頭像 發(fā)表于 09-05 17:39 ?281次閱讀
    ?介紹<b class='flag-5'>一款</b>Java開發(fā)的<b class='flag-5'>開源</b>MES系統(tǒng)

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發(fā)的開源深度學(xué)習(xí)框架,它允許開發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機(jī)器學(xué)習(xí)模型。
    的頭像 發(fā)表于 07-12 16:38 ?392次閱讀

    tensorflow和pytorch哪個更簡單?

    TensorFlow和PyTorch都是用于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的開源框架TensorFlowGoogle Brain團(tuán)隊開發(fā),而Py
    的頭像 發(fā)表于 07-05 09:45 ?380次閱讀

    tensorflow和pytorch哪個好

    tensorflow和pytorch都是非常不錯的強(qiáng)大的框架,TensorFlow還是PyTorch哪個更好取決于您的具體需求,以下是關(guān)于這兩個框架
    的頭像 發(fā)表于 07-05 09:42 ?440次閱讀

    keras模型轉(zhuǎn)tensorflow session

    和訓(xùn)練深度學(xué)習(xí)模型。Keras是基于TensorFlow、Theano或CNTK等底層計算框架構(gòu)建的。TensorFlow開源的機(jī)器學(xué)
    的頭像 發(fā)表于 07-05 09:36 ?315次閱讀

    TensorFlow的定義和使用方法

    TensorFlow個由谷歌人工智能團(tuán)隊谷歌大腦(Google Brain)開發(fā)和維護(hù)的開源機(jī)器學(xué)習(xí)庫。它基于數(shù)據(jù)流編程(dataflow programming)的概念,將復(fù)雜的
    的頭像 發(fā)表于 07-02 14:14 ?523次閱讀

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    深度學(xué)習(xí)作為人工智能領(lǐng)域的個重要分支,在過去十年中取得了顯著的進(jìn)展。在構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的過程中,深度學(xué)習(xí)框架扮演著至關(guān)重要的角色。TensorFlow和PyTorch是目前最受歡迎的兩大深度
    的頭像 發(fā)表于 07-02 14:04 ?584次閱讀

    谷歌模型框架是什么軟件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌開發(fā)的用于機(jī)器學(xué)習(xí)和人工智能的軟件框架,其中最著名的是TensorFlow。TensorFlow
    的頭像 發(fā)表于 03-01 16:25 ?648次閱讀

    三星顯示展出一款名為Cling Band的卷曲腕戴概念機(jī)

    WitDisplay消息,在折疊之后,卷曲是許多人預(yù)想中的下個手機(jī)新型態(tài)。而在此次 MWC 上,柔性 OLED 面板龍頭三星顯示便帶來了一款名為 Cling Band 的卷曲腕戴概念機(jī)。
    的頭像 發(fā)表于 02-29 11:07 ?624次閱讀

    AURIX TC397是否可以搭配Google TensorFlow的演算法去運(yùn)算?

    請問各位大神,AURIX TC397 是否可以搭配 Google TensorFlow 的演算法 去運(yùn)算??
    發(fā)表于 02-18 06:05

    LG發(fā)布一款名為“MyView”的32英寸4K家用顯示器/智能電視混合產(chǎn)品

    據(jù)悉,LG將在今年的消費(fèi)電子展上展示一款名為“MyView”的32英寸4K家用顯示器/智能電視混合產(chǎn)品。
    的頭像 發(fā)表于 01-12 16:22 ?1105次閱讀

    邊緣計算平臺開源框架有哪些類型

    邊緣計算平臺開源框架是指基于邊緣計算概念開發(fā)的開源軟件框架,用于構(gòu)建和管理邊緣計算平臺。這些框架提供
    的頭像 發(fā)表于 12-27 15:17 ?974次閱讀

    Kivy :開源跨平臺的Python 框架

    好久沒有寫游戲系列教程,今天恰好瀏覽到了 Kivy 這個開源跨平臺的Python 框架,它能用于開發(fā)多點(diǎn)觸控的用戶界面程序,允許快速簡單的交互設(shè)計,非常方便,于是有制作本教程的想法
    的頭像 發(fā)表于 10-31 15:27 ?859次閱讀
    Kivy :<b class='flag-5'>開源</b>跨平臺的Python <b class='flag-5'>框架</b>

    PyTorch與TensorFlow的優(yōu)點(diǎn)和缺點(diǎn)

    轉(zhuǎn)載自:冷凍工廠 ? 深度學(xué)習(xí)框架是簡化人工神經(jīng)網(wǎng)絡(luò) (ANN) 開發(fā)的重要工具,并且其發(fā)展非常迅速。其中,TensorFlow 和 PyTorch 脫穎而出,各自在不同的機(jī)器學(xué)習(xí)領(lǐng)域占有
    的頭像 發(fā)表于 10-30 09:56 ?828次閱讀
    PyTorch與<b class='flag-5'>TensorFlow</b>的優(yōu)點(diǎn)和缺點(diǎn)

    iTOP-RK3588開發(fā)板使用 tensorflow框架

    TensorFlow個軟件庫或框架,由 Google 團(tuán)隊設(shè)計,以最簡單的方式實(shí)現(xiàn)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)概念。它結(jié)合優(yōu)化技術(shù)的計算代數(shù),
    發(fā)表于 10-08 10:04