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

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

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

Google開(kāi)源了一款名為T(mén)ensorFlow Federated的框架

電子工程師 ? 來(lái)源:lp ? 2019-03-11 09:40 ? 次閱讀

【導(dǎo)語(yǔ)】據(jù)了解,全球有 30 億臺(tái)智能手機(jī)和 70 億臺(tái)邊緣設(shè)備。每天,這些電話(huà)與設(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ù)敏感且昂貴的話(huà),那么這種中心化的數(shù)據(jù)收集手段可能就不太適用了。

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

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

傳送門(mén):https://www.tensorflow.org/federated/

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

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

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

讓我們一起來(lái)看看使用教程

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

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

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

下面顯示的是通過(guò)調(diào)用 TFF 的 FL API,使用已由 GitHub 上的“Leaf”項(xiàng)目處理的 NIST 數(shù)據(jù)集版本來(lái)分隔每個(gè)數(shù)據(jù)提供者所寫(xiě)的數(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 還帶有一組較低級(jí)的原語(yǔ)(primitive),稱(chēng)之為 Federated Core (FC) API。這個(gè) API 支持在去中心化的數(shù)據(jù)集上表達(dá)各種計(jì)算。

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

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

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

然后在該類(lèi)型的數(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)行。從開(kāi)發(fā)者的角度來(lái)講,F(xiàn)L 算法可以看做是一個(gè)普通的函數(shù),它恰好具有駐留在不同位置(分別在各個(gè)客戶(hù)端和協(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)]))

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

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

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

    關(guān)注

    5

    文章

    1752

    瀏覽量

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

    關(guān)注

    66

    文章

    8325

    瀏覽量

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

    關(guān)注

    4

    文章

    1199

    瀏覽量

    24595

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    TensorFlow是什么?TensorFlow怎么用?

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

    tensorflow和pytorch哪個(gè)更簡(jiǎn)單?

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

    tensorflow和pytorch哪個(gè)好

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

    keras模型轉(zhuǎn)tensorflow session

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

    TensorFlow的定義和使用方法

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

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

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

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

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

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

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

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

    請(qǐng)問(wè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 ?1175次閱讀

    邊緣計(jì)算平臺(tái)開(kāi)源框架有哪些類(lèi)型

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

    feapder:一款功能強(qiáng)大的爬蟲(chóng)框架

    今天推薦一款更加簡(jiǎn)單、輕量級(jí),且功能強(qiáng)大的爬蟲(chóng)框架:feapder 項(xiàng)目地址: https://github.com/Boris-code/feapder 2. 介紹及安裝 和 Scrapy 類(lèi)似
    的頭像 發(fā)表于 11-01 09:48 ?982次閱讀

    Kivy :開(kāi)源跨平臺(tái)的Python 框架

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

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

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