KET QUA THỰC NGHIEM

Một phần của tài liệu Khóa luận tốt nghiệp Công nghệ thông tin: Xây dựng thuật toán trả thưởng dựa trên công nghệ Blockchain (Trang 59 - 76)

5.1. Thiết lập môi trường thực nghiệm

Framework FlwrBC được viết chủ yếu trên ngôn ngữ Python, được xây dựng dựa trên hai framework chính là Tensorflow và Flower. Tensorflow được dùng để thực hiện các chức năng xử lý tiền dữ liệu, xây dựng model, các chức năng của đào tạo model. Flower được dùng dé triển khai mô hình học máy liên kết.

Về phần mô phỏng blockchain, FlwrBC sử dụng truffle và ganache để mô phỏng Ethereum blockchain và triển khai hợp đồng thông minh.

Vé môi trường, dự án viết trên python và sử dụng một số packages của NodeJS. Do

đó, anaconda được dùng để thiết lập môi trường ảo, cấu hình của môi trường ảo được

quy định trong file ENV.tx của project.

Cấu hình của máy thử nghiệm như sau: CPU AMD Ryzen 7 5800H (8 cores — 16

threads — 3.20 GHz), RAM 16GB, GPU GTX1650 4GB, Window 11 OS.

Hệ thống chia thành ba thành phan chính gồm Blockchain, Server, Client.

Hình 5-1: Tổ chức thư mục trong project 5.1.1. Thanh phần thư mục Blockchain

Các mã nguồn trong thư mục Blockchain được xây dựng theo project chuẩn của truffle. Để cài đặt truffle cần phải cài đặt NodeJS, sau khi cài đặt NodeJS, sử dụng lệnh npm install -g truffle để cài đặt truffle và truffle init để tạo

4

project. Các hợp đồng thông minh sẽ được viết trong thư mục contracts bằng ngôn ngữ solididy. Sau khi viết hợp đồng thông minh, dùng lệnh truffle compile các hợp đồng sẽ được phiên dịch thành file json và lưu ở thư mục build. Trong thư mục migrations sẽ chứa các file quản lý các deployment script viết bằng javascript. Dé triển khai các hợp đồng thông minh lên blockchain ta dùng lệnh truffle migrate. Sau khi deploy hai hợp đồng, trên blockchain ta sẽ thay hai block của việc tạo hợp đồng trên blockchain. Ở thử nghiệm này, hệ thống được test trên mạng blockchain

mô tả Etherum do Ganache cung cấp.

Hình 5-2: Tổ chức thư mục Blockchain

48

BLOCK 1

856119 6721975 2022-12-14 60:45:47 6x1€6b1ifa 3f9b13b22d62d61d27fbae136e1e7a2fc560f494943f57a56835

'9xc399e28f121e655badf1677be49f2dd86e69db209bbb1ddff2dbe29f4570e5f2

mm

- BLOCK 2

|

985999 6721975 2022-12-14 00:4 9x799ed5a47916c '4d282901a7c9d9ac37e0c79b48215a49f3ee1d982bd

.8xcdd689a5687a11345b772ab99ccdfe6d2a81feaf3e8869bdf36dfc17428d468f

FROM ADDRESS CONTRACT ADDRESS

f6Fe12FAsaD4BFCFaD A0C1A2 FOSCABE!

Blockchain c\vsers\xietws\worispace rõC\Blockch

| contribution €x90bCafeE3C¿73C37f5F18A9874a98353F3£6E993 , |

Federation 9xeF7F9846A9C1A2FD8cA9E99673D9774d98864/55d. 2 ca

Hình 5-4: Smart Contracts sau khi deploy lên blockchain

49

5.1.2. Thanh phần thư mục Server

Các tệp tin trong Server sẽ xử lý tác vụ quản lý việc học máy liên kết, chức năng từng

tệp tin được trình bày như sau:

Tên tệp tin Chức năng

blockchain_ service.py Định nghĩa lớp BlockchainService đề quản lý các tác

vụ liên quan đến blockchain trong quá trình học máy liên kết

FLstrategy.py Định nghĩa Strategy sử dụng trong học máy liên kết

bao gồm thuật toán tổng hợp, configure fit, aggregate_fit, configure_evaluate,

aggregate_evaluate, evaluate

server_api.py Quan lý các api của server

config_training.json File json được tao khi server khởi chạy một session

training, chứa thông tin số rounds đào tạo, đạo tạo tiếp

tục hay đào tạo mới, thời gian khởi tạo session (dạng int)

model_architecture.json _ | Kiến trúc của mô hình dao tạo trong hệ thống, đồng

nhất với kiến trúc của mô hình ở client, nhưng không chứa tham số mô hình

fl_session Lưu trên local các tham số mô hình qua các rounds và

sessions Bang 5-1: Bảng chức nang các tệp tin ở Server

50

Các tệp tin trong Client sẽ xử lý tác vụ quản lý việc học máy cục bộ, và các tác vụ blockchain liên quan. Các chức năng từng tệp tin được trình bày như sau:

Tên tệp tin Chức năng

blockchain_ service.py Định nghĩa lớp BlockchainService dé quản lý các tác

vụ liên quan đến blockchain trong quá trình học máy liên kết

client.py Định nghĩa client sử dụng trong học máy cục bộ bao

gồm việc get tham số mô hình toàn cục và set tham số

để đào tạo cục bộ, định nghĩa tác vu fit (dao tạo) va

evaluate (đánh giá lại) trong đào tạo cục bộ client_api.py Quản lý các api của server

51

Tên tệp tin Chức năng

model_architecture.json Kiến trúc của mô hình đào tạo trong hệ thông, đồng

nhất với kiến trúc của mô hình ở server, nhưng không chứa tham số mô hình

Local-weights Lưu trên local tham số mô hình sau khi đào tạo cục bộ

Global-weights Lưu tham số mô hình toàn cục qua các rounds và

sessions

verify.py Định nghĩa hàm lay tham số toàn cục mới nhất

Bảng 5-2: Bảng chức năng các tệp tin ở Client

5.2. Dataset dùng trong thực nghiệm

Trong thực nghiệm, FlwrBC dùng dé thực hiện bài toán phân loại hình anh, dataset

sử dụng là CIFAR-10 (Canadian Institute for Advanced Research, 10 classes) [27].

CIFAR- 10 là bộ dataset về thị giác máy tinh rất thông dụng trong bai toán phân loại hình ảnh, bộ đữ liệu CIFAR-10 chứa 60,000 hình ảnh màu sắp xếp ngẫu nhiên (50,000 hình thuộc về training data, 10,000 hình thuộc về testing data) thuộc mười lớp, mỗi lớp có 6,000 bức hình (tương tự 5.000 hình thuộc về traing và 1,000 hình thuộc về

testing).

52

split: test [J 10000images split: train [MJ 50000 images

Hinh 5-7: Train set va test set trong CIFAR-10

Các lớp trong CIFAR-10 gom: airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck. Mỗi hình trong CIFAR-10 có kích thước 32 x 32 pixels, va theo chuan

mau RGB, kích thước

0

Hình 5-8: Hình ảnh một đối tượng trong CIFAR-10

53

label: airpl.. J 6000 images label: auto. 6000 images _ label: bird 6000 images label: deer 6000 images

6000 images label: ship [MN 6000 images label: dog MN 6000 images label: frog Ii 6000 images

fabel:truck J 6000 images | label: cat [INN 6000 images

Hình 5-9: Các lớp trong CIFAR-10

5.3. Do lường kết quả

5.3.1. Các thang đo hiệu suất học máy

Dé đánh giá hiệu suất và so sánh giữa học máy cục bộ và học máy liên kết, bài luận

sử dụng các thang đo sau:

e_ Accuracy: tính toán phan trăm dữ liệu được dự đoán trúng trên tổng số mẫu

quan sát. Trong đó True Positives (TP) là số dữ liệu dự đoán đúng thuộc nhóm đúng, False Positives (FP) là số dữ liệu dự đoán sai thuộc nhóm đúng, True Negatives (TN) là số dir liệu dự đoán đúng thuộc nhóm sai, False Negatives (EN) là số dữ liệu dự đoán sai thuộc nhóm sai. Công thức thang đo accuracy:

TP+TN

Accuracy = ——————————y TP+NP+TN+FN

54

e Loss: xác định độ khác biệt giữa dự đoán của mô hình và giá trị thực tế. Trong

bài luận này hàm loss được sử dụng là sparse_categorical_crossentropy. Giá

tri Joss càng thap thì mô hình càng tiệm cận với thực tế.

e Precision (độ chính xác): tính toán phần trăm dữ liệu được dự đoán đúng nhóm

đúng trên tổng dữ liệu được dự đoán thuộc nhóm đúng. Công thứ thang đo:

TP TP+NP

Precision =

e Recall (độ nhận dạng): tính toán phần trăm dữ liệu được dự đoán đúng nhóm

đúng trên tổng lượng dữ liệu thực tế. Công thức thang đo:

TP TP+FN

Recall =

¢ Fl-Score: điểm số hợp nhất của recall va precision, F1 có giá trị càng cao thi

mô hình có độ chính xác và độ nhận dạng càng cao. Công thức thang đo:

2 * precision * recall

F1=

precision + recall

¢ ROC-AUC score: được tinh bằng việc vẽ biểu đồ ROC (Receiver Operating

Characteristic) và tính diện tích bên dưới đường cong ROC (AUC - Area

Under the Curve) dựa trên tỷ lệ giữa số lượng dữ liệu dự đoán đúng (TPR - True Positive Rate) va số lượng dữ liệu dự đoán sai (FPR - False Positive

Rate).

5.3.2. So sánh kết quả học máy liên kết và học máy cục bộ

Để so sánh với kết quả học máy cục bộ, bài nghiên cứu sẽ so sánh theo các thông số

accuracy và confusion matrix. Kịch bản đảo tạo của học máy cục bộ như sau: batch

size: 32, epochs: 10, dataset: CIFAR-10; kịch bản dao tạo của học máy liên kết như sau: số clients: 3, local batch size: 32, local epochs: 2, số rounds đào tạo: 10. Sau quá trình đào tạo, FlwrBC cho thang đo accuracy là 0.763 tương đương với chỉ số của mô hình học cục bộ là 0.757; thang đo loss giữa hai mô hình cho thấy học máy cục bộ có chỉ số tốt hơn (0.766 với FlwrBC và 0.698 với học máy cục bộ)

55

Training and validation accuracy - Federated Learning Training and validation accuracy - Centralized Learning

0.80 0.80

0.768 0763) 0764

0.756 0.757]

Gữaa 0752 0751

075 075

0.70 0.70

— Training accuracy

06

— Training accuracy

G60 060 dọa,

055 oss

o5;

650 oso

o 1 2 3 4 5 6 7 8 9

epochs

Hình 5-10: Biểu đồ thông số accuracy giữa Federated va Centralized Learning

„ „aining and validation accuracy - Federated Learning - Jgining and validation accuracy - Centralized Learning

—— Training loss — Training loss12

14

pet 13

12 10

Ỹ Šò

10

03 865, 08

0824

0.795

os 026 o757 0766 0766| 4,

rounds

Hình 5-11: Biểu đồ thông số loss giữa Federated va Centralized Learning

Khi so sánh confusion matrix, kết quả giữa hai mô hình cũng tương đồng nhau. Tuy nhiên, thang đo của FlwrBC cho kết quả cao hơn so với học máy cục bộ hai điểm phan trăm, cụ thé Fl-score trung bình của FlwrBC là 0.78 so với 0.76 của học máy cục bộ. Tương tự, kết quả của ROC-AUC score của các class ở FlwrBC cũng cao hơn

học máy cục bộ.

56

Confusion Matrix - Federated learning

2 4 6 8

- Centrali

Confusion Matrix

2 4

ized Learning

6 8

9 17 13 78 19 o 62 28 29 02 09 06 18.9 3.6

12 00 28 47 05 01 02 02 02 39 69

2 58 26 10 04 273.5 67 89 48 47 29 21 10

73 22 10 05 14 08 56 158 51 33 17 17

Bs 46 42 08 01] 24/04 01 5.2 3.1 47 17 03

bì §

g 48 3.0 0.2 02 g 11 01 49 180 40 49 06 0.5

6701 00 51 40 15 12 0.1 ứ{05 02 42 53 19 14 06 06 03

09 00 34 34 51 69 04 14 00 20 41 45 45 08 16

8131 10 22 14 09 05 11 8713 12 06 15 02 01 03 29

15 55 10 12 06 05 10 10 21 38 07 06 03 01 04 06

Predictions Predictions

Hình 5-12: Confusion matrix giữa Federated va Centralized Learning

Multiclass ROC curve - Federated Learning Multiclass ROC curve - Centralized Learning

10 10

os os

s06 Íass 0 RỌC AUC: 0.381444 | y O° — Giass 0 Roc AUC: 0.973779

§ “— Class 1 Roc auc: 0.993074 | = “— Class 1 ROC AUC: 0.993642

H — Class 2 Roc auc: 0.949023 | 8 — Class 2 ROC AUC: 0.944870

gy 04 — Class 3 ROC AUC: 0.935656 | 9 04 — Class 3 ROC AUC: 0.921571

Ễ — Class 4 Roc auc: 0.969961 | = — class 4 Roc AUC: 0.968352

— Class 5 RỌC AUC: 0.955300 — class 5 Roc AUC: 0.955568 o2 — class 6Roc auc: 0.985838 | 02 — class 6 Roc AUC: 0.984608

— Class 7 ROC AUC: 0.980966 — class 7 Roc AUC: 0.979529

— Class 8 Roc auc: 0.988693 — class 8 Roc AUC: 0.987439

oo — class 9 oc AuC: 0989919 | 9 — class 9 Roc auc: 0.988521

so 02 oa 06 08 10 so 02 oa 06 oe xo

False Positive Rate False Positive Rate

Hình 5-13: ROC-AUC curve giữa Federated va Centralized Learning

Class Centralized learning Federated learning

Precision | Recal | F1-Score | Precision Recal | F1-Score

0 0.83 0.63 0.72 0.86 0.73 0.79

1 0.92 0.87 0.89 0.91 0.88 0.89

2 0.68 0.65 0.66 0.67 0.71 0.69

3 0.56 0.59 0.57 0.63 0.57 0.60

4 0.73 0.77 0.75 0.73 0.78 0.75

5 0.69 0.64 0.66 0.65 0.69 0.67

6 0.83 0.85 0.84 0.76 0.87 0.81

7 0.82 0.81 0.81 0.84 0.79 0.81

8 0.73 0.92 0.81 0.84 0.88 0.86

57

Class Centralized learning Federated learning

Precision |Recal |El-Score | Precision | Recall | F1-Score

9 0.82 0.88 0.85 0.90 0.86 0.88 avg 0.76 0.76 0.76 0.78 0.78 0.78 Bang 5-3: Thang do Precision, Recall, Fl-score giữa Federated va Centralized

Learning 5.3.3. Các bản ghi trên blockchain

Khi compile hai smart contract, terminal sé xuat thông báo thành công đồng thời trong

thư mục ~/Blockchain/build/contracts sẽ có hai file build của smart contract ở định

dạng json. Sau đó, ta thực hiện migrate hợp đồng lên blockchain, khi migrate thành công terminal sẽ trả về các thông số của hợp đồng gồm transaction hash, số thứ tự

Hình 5-14: Compile thành công smart contracts

58

Blockchain cw WinNative\Fiwr8C\alockehain

NAM ADDRESỳ coun

‘Ontriputio ° ‘DEPLOYED

NAM

ETETETTOT

‘DEPLOYED

Hình 5-16: Blocks của smart contracts trên Ganache

Starting migrations.

> Network name: ‘development’

> Network id: 5777

> Block gas limit: 6721975 (@x6691b7)

1_Contracts_Migration

Deploying ‘Contribution’

> transaction has! @x7@b2ac8dbcc214c4855b48cb0eGa5a38a5383518a8904607d5b19a4a66678d84

@x3@47710E5D3C7925bF417DDb26aeff6d7a7282Fb

> block timestamp: 1671463895

> account: @xC378F8820553731803CBF8a1565379@F 6BB50a06

balance 999.98287762

> gas used: 856119 (@xd1037)

> gas pri 20 gwei

> value sent 9 ETH

total cost: @.01712238 ETH

> transaction hash: @x2908388ef5149b0c361709948a8eef4F704b02114729Fcfd4bd8b855a33de625

> Blo Seconds:

contract address: x4D4eA1E1C38996b764a709EB@72d36F432dAb998

Saving artifact:

> Total cost: @.03684236 ETH

Summary

> Total deployments: 2

> Final cost: @.03684236 ETH

Hình 5-17: Migrate thành công smart contracts

Hop đồng Contribution sẽ ghi lại số round tham gia, trạng thái công việc, lượng data

đóng góp cho session đào tạo và lượng token nhận được sau khi hoàn thành session.

Hợp đồng Federation sẽ ghi lại đường dẫn của các tham số cục bộ từ các client, strategy sử dụng trong học máy liên kết và đường dẫn của tham số toàn cục.

60

TX @x5d0d863abfe224db07000359b3d28a3a3bad39838141c8ef35cde0020140759e

‘SENDER ADDRESS TOCONTRACT ADDRESS

0x3a345E4d8E18141F659e12078D0e9a4502D2bb84 6xFa61EeFbA42C10e322a2910baC3dF9291Ed25643

ae casusen ‘cas PRE 649L MNED im stock

9.09 ETH 93091 20006000000 193091 83

9x1ff34C6b909886996988890008888696888869688886908998896909986900898869665800966088969969069900988969698869000988009698899668990096609. 166688088006008866999860000000809996989690090909066988860660941129690089960900906090989969908800690080099999000009000966698696666.

t

CONTRACT F

C0NTRAGT ‘ones

Contribution @xFa61EeFbA42C10e322a2910baC3dF9291Ed25043 |!

FUNCTION

calculateContribution(_rNo: uint256, _finished: bool, _dataSize: uint256, _payment: uint256)

inputs

5, true, 16666, 6

EVENTS

EVENT AME

contributeEvent

contact TX HASH Lo moe

Contribution 95ded883abf222d097909359b3d28a3a3bad39838141c8 0 3246 |

ef 35¢de00201407598

Hình 5-18: Block ghi bởi Contribution contract

TX 0x1f4d44d456e5224f88c995a87a743750a7d6893f5c833f57ad3fe9824ac8e096

SENDER ADORESS TO.CONTRACT ADDRESS :

9x3a345E4d8E18141F659e1207800e9a4592D02bb84. 9xd71ffb38627f49e¿348b932D31c169F89EbB6a1.

vuuec exsusen As PRICE cxsumr MNED 2.00%

9.69 ETH 190742 20080000000 290742 114

6 F8¢c5530080000000000000000000080000000000000000000000009000000632022910000000000000000009090800000000000000802000099000000090000

'9808666696666696686666966696966866666966866668866669666660688411ã90666806668666966688866899666066666660896669066689668666696660a606098666.

)96908660666909600666908600069808869669066080912086690660006669886606606866090869906000669806660966090806066690592e2e2£436c63656e7

768747 32 F43669656e7420312F5365737 3606 f622d313637313437333830302F526F 75 1477 65696768747: 90666686966699600086666886906698686800669680666888686968680006866696006/

36435333934383430336561343037313338396466333335633365316339323636353062

CONTRACT

contract ADRESS

Federation xd71ffb38627f40e4348b032D31C169F89EbB6a14.

FUNCTION

addWeight(_session: uint256, _round_num: uint256, _dataSize: uint256, _filePath: string, _fileHash: strin

8)

INEITS

1671473809, 9, 16666, .. /Client/Local-weights/Client-1/Session-1671473809/Round-9-training.

41d41f6bfb321bc9002516d4e6cd53948403ea4071389dF335c3e1c926650b

jeights.npy, 4d

Hình 5-19: Block chứa thông tin tham số cục bộ ghi bởi Federation contract

61

se TX 0xa32c4f39af03d6bdd2e120dde27b87efdc46bcfe3e3b55fd827787b89dbcb9bc

‘SENDER ADDRESS ‘To CONTRACT ADDRESS

@x722D03D6395C184e293a75750273050522e7749E 9xd71ffb38627f49e4348b632031c169F86EbB6a14.

vawe Assen CAS PRICE 0ASLMT MNED NBL0OK 9.89 ETH 169848. 20980999096. 269848. 118

TXDMA

953785216e9699096866698866686689666968669069896669869990668666898663a8aa91606066966096866686869660686666969666669666966896968866896698666. '9068666698660066666698660966696669686990660066696899908600699866090666660606669096066699869008906608968686008666969666969916880606666. '9000866668660000606666966069808060606660980000666089694c2e2e2f5365727665722f666c5£73657373696f6e732f53657373696f682đ313637313437333838392.

#6766£62616c5£73657373696f6e5f313637313437333836395f6d664656c2e6e76799886089666988908666868696686886968869609888968896868896880688666 '9908699699608090086968989086908060694939373066376664353360656536656364353534363638643463333666383538363338373636656436362396366396336333 33037386362366235313334343030

CONTRACT

contract ooness

Federation 6xd71ffb38627f40e4348b632D31c169F86EbB6a14.

FUNCTION

addModel(_session: uint256, _round_num: uint256, _fiLePath: string, _fileHash: string)

Nirs

1671473809, 19, .. /Server/fl_sessions/Session-1671473809/global_session_1671473809_model.npy, 979f7fd53fee 6ecd554668d4c 368580387 06ed61b9c F9c033078cb6b5134400

Hình 5-20: Block chứa thông tin tham số toàn cục ghi bởi Federation contract

1ơ TX 0x351710fc0006bc3e96a4642a7fb85355 1eaaf fe215de27d43 fdd45637a9a7 F22

SENOER ADDRESS ‘TOCONTRACT ADDRESS

0x722D03D6395C184e293a75750273050522e7749E 9xd71ffb38627f%9e4348b932D31c169F86EbB6a1⁄4

vawe casusen cas pmce cas unt neo mw BLocK

0.00 ETH 88588 2098906966. 188588 87

TxDATA

.9zŸ985b6586689668869666860666688889606966668669998669606626986689638622916666806699668666690660866866669866668868669866696888666966668. .9866860608660869889608600866888699009069888999006066666099986a9800626606869000099695606698090966868860869096088886980009096839999900. .9966860066660096086606086006088869000000988868900000864665644176676688689660900000260690600000086680660000808666086606.

CONTRACT

C0NIMGT ‘Ress

Federation 6xd71ffb38627f40e4348b932D31c169F86EbB6a14.

| RNEION

addStartegy(_session: uint256, _algoName: string, _nunRounds: uint256, _numCLients: uint256)

neuts

1671473809, FedAvg, 10, 3

.

addStrategyEvent

contract TaHasH 10 moe sock Tm

Federation 85351716f28086bc3e96a464237 fb853551eaaffe315d427 — 0 2022-12-20 01:16:58

đã3f6d45637a9a7F22

Hình 5-21: Block chứa thông tin strategy ghi bởi Federation contract

62

oe TX_9xe778819bd489e9b91dfb7bbf62f838e36c7013ca67cc676906172973ef88e0d7

SENDER ADDRESS To CONTRACT ADDRESS

‘CONTRACT CALL

9+72206306395C1846293275750273050522e7749E ——_ 0x32345Ead8E18141765961207800e9a456202:bp. CD

AWE casuse GAS PRICE .0ASUME MNED In BLOCK.

6.00 ETH 21008 20000000000 121000 124

TxDATA

ox

EVENTS

Hinh 5-22: Block giao dich tra thuong

63

Một phần của tài liệu Khóa luận tốt nghiệp Công nghệ thông tin: Xây dựng thuật toán trả thưởng dựa trên công nghệ Blockchain (Trang 59 - 76)

Tải bản đầy đủ (PDF)

(81 trang)