(formerly Decentralized & Collaborative AI on Blockchain)
Demo | Simulation | Security |
---|---|---|
Sharing Updatable Models (SUM) on Blockchain is a framework to host and train publicly available machine learning models.Ideally, using a model to get a prediction is free.Adding data consists of validation by three steps as described below.
The basics of the framework can be found in our blog post.A demo of one incentive mechanism can be found here.More details can be found in the initial paper describing the framework, accepted to Blockchain-2019, The IEEE International Conference on Blockchain.
This repository contains:
There are many options.We can restrict the framework to simple models: Perceptron, Naive Bayes, Nearest Centroid, etc.We can also combine off-chain computation with on-chain computation in a few ways such as:
We can also use algorithms that do not require all models parameters to be updated (e.g. Perceptron).We hope to inspire more research in efficient ways to update more complex models.
Some of those proposals are not in the true spirit of this system which is to share models completely publicly but for some applications they may be suitable.At least the data would be shared so others can still use it to train their own models.
Fees in Ethereum are low enough for simple models: a few cents as of July 2019.Simple machine learning models are good for many applications.As described the previous answer, there are ways to keep transactions simple.Fees are decreasing: Ethereum is switching to proof of stake.Other blockchains may have lower or possibly no fees.
Storing the model parameters off-chain, e.g. using IPFS, is an option but many of the popular solutions do not have robust mirroring to ensure that the model will still be available if a node goes down.One of the major goals of this project is to share models and improve their availability, the easiest way to do that now is to have the model stored and trained in a smart contract.
We're happy to make improvements! If you do know of a solution that would be cheaper and more robust than storing models on a blockchain like Ethereum then let us know by filing an issue!
This depends on the incentive mechanism (IM) chosen but essentially, you will lose a lot of money.Others will notice the model is performing badly or does not work as expected and then stop contributing to it.Depending on the IM, such as in Deposit, Refund, and Take: Self-Assessment, others that already submitted "good" data will gladly take your deposits without submitting any more data.
Furthermore, people can easily automatically correct your data using techniques from unsupervised learning such as clustering.They can then use the data offline for their own private model or even deploy a new collection system using that model.
That’s great!This system will work as a source for quality data and models.People will contribute data to help improve the machine learning models they use in their daily life.
Profit depends on the incentive mechanism (IM).Yes, in Deposit, Refund, and Take: Self-Assessment, the contributors will not profit and should be able to claim back their own deposits.In the Prediction Market based mechanism, contributors can still get rewarded by the original provider of the bounty and test set.
More details can be found in our initial paper, Decentralized & Collaborative AI on Blockchain, which describes the framework, accepted to Blockchain-2019, The IEEE International Conference on Blockchain.
An analysis of several machine learning models with the self-assessment incentive mechanism can be found in our second paper, Analysis of Models for Decentralized and Collaborative AI on Blockchain, which was accepted to The 2020 International Conference on Blockchain.
This project welcomes contributions and suggestions. Most contributions require you to agree to aContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant usthe rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to providea CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructionsprovided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct.For more information see the Code of Conduct FAQ orcontact opencode@microsoft.com with any additional questions or comments.
返回列表中元素的总和。 语法 (Syntax) sum(lst) 参数 (Parameters) Lst - 元素列表。 返回值 (Return Value) 返回列表中元素的总和。 例如 (For example) -module(helloworld). -import(lists,[sum/1]). -export([start/0]). start() -> Lst1 =
Gets the sum of the numeric values in the sequence. Signature Sequence.sum = function(valueFn) { /*...*/ } Sequence.sum = function sum(valueFn) { if (typeof valueFn !== "undefined") { return this.su
旋转门转动总次数 sensor_data.json 是某城市建筑的大门旋转次数一个月内的记录数据,记录数据每小时记录一次,一天记录 24 次。查看文档总条目 > db.data.find().count() 31查看一天 24 小时中每一小时旋转木的转动次数 > db.data.findOne() { "_id" : ObjectId("5b3c0d4a55593f76b5a9417f"),
Given an array of intergers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where
一、题目 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution. Example: Given nums = [2,
一、题目 Given an integer array, find a subarray where the sum of numbers is zero. Your code should return the index of the first number and the index of the last number. Example Given [-3, 1, 2, -3, 4],
Question leetcode: 3Sum | LeetCode OJ lintcode: (57) 3 Sum Problem Statement Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the ar
Question leetcode: Two Sum lintcode: Two Sum Problem Statement Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input