日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

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

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

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

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

代碼

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

Android應用程序

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

服務器在

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

組件

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

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

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

    Cifar-10中的類有一些例子

    為了實現雙重目的,模型的體系結構進行了調整:

    a)具有不那么差的表現

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

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

    有密集層的CNN

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

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

    用App做出預測

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

    圖像分類器正在運行

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

    訓練者的實現,負責使用DL4J進行預測和訓練,調用預測函數以獲得圖像的分類

    聯合學習設置

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

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

    數據和數據永遠不會離開設備,讓它成為您的手機,筆記本電腦或物聯網小工具

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

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

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

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

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

    服務器還實現了客戶端使用的簡單REST API。

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

    筆記

    性能

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

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

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

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

    謝謝閱讀!

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

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。