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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【译】Federated Learning: Bringing Machine Learning to the edge with Kotlin and Android

發(fā)布時間:2025/3/15 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【译】Federated Learning: Bringing Machine Learning to the edge with Kotlin and Android 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

采用機器學習模式需要數(shù)據(jù)。?我們越多越好。?但是,數(shù)據(jù)并不便宜,更重要的是,數(shù)據(jù)可能包含敏感的個人信息。

以新法律形式作為GDPR以及提高用戶和公民對其數(shù)據(jù)價值的認識的最新隱私發(fā)展正在產(chǎn)生對實施更多隱私的技術的需求

雖然匿名技術可以極大地幫助解決隱私問題,但所有數(shù)據(jù)都被發(fā)送到中央位置以訓練機器學習模型的事實始終是擔心的動機

該項目證明了如何使用Android應用程序作為邊緣設備來設置基本的聯(lián)合學習環(huán)境

代碼

如果你想直接跳到代碼中,你可以在下面的回復中找到它

Android應用程序

mccorby / PhotoLabeller
聯(lián)合學習:進行圖像分類和本地培訓的客戶端應用程序。更好的與...github.com

服務器在

mccorby / PhotoLabellerServer
PhotoLabellerServer - 聯(lián)合學習:參數(shù)服務器對來自客戶端的模型進行更新匯總...github.com

組件

該項目分為三個主要部分:

  • 一個服務器,用Kotlin編寫,并使用DL4J?生成基于Cifar-10數(shù)據(jù)集的模型
  • 使用此模型分類使用相機拍攝的圖像的Android應用程序。?寫在Kotlin并且也使用DL4J
  • Android應用程序能夠使用本地數(shù)據(jù)和服務器來訓練模型的聯(lián)合學習設置能夠使用來自邊緣的更新來更新共享模型
  • 該模型

    該模型基于Cifar-10數(shù)據(jù)集,這是一個眾所周知的數(shù)據(jù)集,可以對十種不同類別的圖像進行分類

    Cifar-10中的類有一些例子

    為了實現(xiàn)雙重目的,模型的體系結構進行了調(diào)整:

    a)具有不那么差的表現(xiàn)

    b)允許它在Android應用程序中加載和訓練

    所選的體系結構是一個具有一個CNN層和密集層的淺層卷積神經(jīng)網(wǎng)絡。?這被證明足以獲得一個體面的表現(xiàn),使用50個時期和10,000個樣本,同時保持模型的大小很小

    有密集層的CNN

    (關于模型大小的說明:這個PoC的重點在于聯(lián)合學習,更好的模型可以用更多的層次進行訓練,并通過應用不同的技術進行量化或使用結構化或草圖更新來減少其尺寸。的PoC!)

    用于在服務器端訓練模型的代碼位于PhotoLabellerServer項目的model模塊中

    用App做出預測

    該應用程序允許用戶使用嵌入在應用程序本身中的模型對照片進行基本分類,或者當連接到服務器時,可以使用最新版本的共享模型

    圖像分類器正在運行

    該應用app模塊結構為app模塊,其中包含Android特定的類和Deeplearning4j相關類的trainer?。?base模塊包含交互器和域對象

    訓練者的實現(xiàn),負責使用DL4J進行預測和訓練,調(diào)用預測函數(shù)以獲得圖像的分類

    聯(lián)合學習設置

    聯(lián)合學習通過允許邊緣設備參與培訓來顛倒機器學習模型的更新。

    代替將客戶端中的數(shù)據(jù)發(fā)送到集中位置,Federated Learning將模型發(fā)送給參與聯(lián)合的設備。?然后使用本地數(shù)據(jù)對模型進行重新訓練(使用轉移學習?)

    數(shù)據(jù)和數(shù)據(jù)永遠不會離開設備,讓它成為您的手機,筆記本電腦或物聯(lián)網(wǎng)小工具

    服務器打開一輪“培訓”,在此期間客戶可以將更新模型發(fā)送到服務器。

    客戶端。?在邊緣進行訓練

    我們的Android應用程序決定何時參與共享模型的培訓。?它使用已有的模型或服務器中的模型執(zhí)行Transfer Learning操作(如果更新)。?然后對模型進行的更新發(fā)送到服務器

    服務器端。?平均和更新模型

    一旦輪次結束,服務器通過執(zhí)行聯(lián)合平均來更新共享模型,如以下要點所示

    服務器還實現(xiàn)了客戶端使用的簡單REST API。

    請注意,客戶端,Android應用程序的實現(xiàn)方式只需要很少的努力即可轉移到其他Kotlin平臺

    筆記

    性能

    在Android應用程序中使用圖像進行任何類型的操作始終要求設備必須執(zhí)行的計算工作。?使用圖像對模型進行訓練會多次增加這種努力

    這意味著在Android應用程序中完成的轉換學習階段非常短:只有幾個樣本的幾個時代。?這是應用程序在內(nèi)存不足之前可以做的最多!?參數(shù)總數(shù)約為450k。?這對于應用程序可用的內(nèi)存非常重要

    但是,其他使用其他類型數(shù)據(jù)的模型運行平穩(wěn)。?以前版本的聯(lián)合學習設置僅使用了一些功能僅有的糖尿病數(shù)據(jù)集。?這可以用更多的時代來完成(我實際上沒有找到限制,因為我在達到OOM之前獲得了期望的表現(xiàn))以及更多的數(shù)據(jù)點

    該應用程序的架構適合您嘗試其他模型和數(shù)據(jù)集。?隨意重復使用它進行研究,并告訴我是否可以提供幫助

    謝謝閱讀!

    https://proandroiddev.com/federated-learning-e79e054c33ef

    總結

    以上是生活随笔為你收集整理的【译】Federated Learning: Bringing Machine Learning to the edge with Kotlin and Android的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。