比特币上的人工智能

news2024/11/23 21:33:11

以感知机为例

人工智能,尤其是机器学习形式的人工智能,最近取得了巨大的进步,应用范围从人脸识别到自动驾驶汽车。我们建议将 AI 与比特币区块链结合起来,以获得许多其他方式无法实现的显着优势¹:

  1. 公开透明:区块链上的代码和数据都是公开的,任何人都可以验证,因此是可信的。
  2. 协作数据集:与传统的孤立数据集相比,每个人都可以贡献数据并访问已发布的数据。

比特币不仅可以维护链上的数据集以作为 AI 的输入,它还可以托管 AI 算法本身来处理这些数据集²。

我们已经实现了一个机器学习的基本构建块——感知器,并展示了在比特币上构建 AI 的巨大潜力。

感知器

与作为神经网络构建块的神经元类似,感知器相当于人工神经网络 (ANN)。感知器是单层神经网络,如下所示:

在这里插入图片描述

它消耗多个输入,对它们进行加权、求和,将其馈送到阶跃函数(如下所示)并产生一个二进制输出(只有 0 或 1)。

在这里插入图片描述

一个性别分类感知器

我们使用感知器来解决一个简单的分类问题。输入是多人的身高和体重,输出是他们的性别。

在这里插入图片描述

红色标记表示男性和洋红色表示女性

我们的目标是拟合一条将所有男性样本与女性样本分开的边界线。当样本变得庞大时,感知器是一种很好的找到界限的方法。

我们已经将这样的感知器实现为有状态合约。它的状态由所有权重和偏差(图中的 w0)组成。最初,它们被分配一些随机值,然后在每次交易更新状态时进行调整。学习阶段一直运行到收敛。

// Perceptron's internal state includes 2 inputs: height & weight
struct State {
	int heightWeight;
	// 1st weight means weight in KGs
	int weightWeight;
	int bias;
}

struct Input {
	// in inches
	int height;
	// in KGs
	int weight;
}

// correct classification of gender: 0 means female, 1 male
type Output = int;

/*
 * A simple perceptron classifying gender based on height & weight
 */
contract Perceptron {
	// sample size
	static const int N = 10;
	// learning rate
	static const int LR = 1;

	// training data set
	// inputs
	Input[N] inputs;
	// outputs
	Output[N] outputs;

	// train the perceptron
	function train(State s) : State {
		loop (N) : i {
			int prediction = this.predict(s, i);
			int delta = this.outputs[i] - prediction;
			s = this.adjust(s, delta);
		}
		return s;
	}

	// prediction for the i-th input
	function predict(State s, int i) : int {
		int sum = s.bias;
		sum += this.inputs[i].height * s.heightWeight + this.inputs[i].weight * s.weightWeight;
		return stepActivate(sum);
	}

	// learn internal state
	function adjust(State s, int delta) : State {
		int scaledDelta = delta * LR;
		loop (N) : i {
			s.heightWeight += this.inputs[i].height * scaledDelta;
			s.weightWeight += this.inputs[i].weight * scaledDelta;
		}
		s.bias += scaledDelta;
		return s;
	}

	// binary step function
	static function stepActivate(int sum): int {
		return (sum >= 0 ? 1 : 0);
	}
}
感知器合约

我们的感知器找到的最终边界如下所示。

在这里插入图片描述

性别分类感知器

总结

一旦我们将感知器构建为基本模块,就可以在比特币之上构建更先进、更实用的人工神经网络,从而开辟无限机会。


[1] 区块链上的去中心化和协作 AI,JD Harris,2019

[2] 区块链上的人工智能实现。用例和未来应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1220330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试资料快速复习 Git常用命令(简单实用)

Git-command Git常用命令、面试复习、简单实用命令 ​ 一、概念理解 (一)工作区、暂存区、本地仓库、远程仓库 workspace:工作区staging area:暂存区/缓存区local repository:本地仓库remote repository&#xff…

前端实现页面内容的截图与下载(html2canvas)

今天是一个发文的好日子😀~ 👇👇👇 一个需求,要截取页面中的内容并截图保存,来看一看我是怎么实现的吧: 这里需要使用到插件--html2canvas 1.安装并引入html2canvas npm install html2canv…

Es 拼音搜索无法高亮

目录 背景: Es 版本: 第一步 第二步 (错误步骤 - 只是记录过程) 第三步 第四步 第五步 第六步 第七步 背景: app 原有的搜索功能无法进行拼音搜索,产品希望可以支持,例如内容中含有&a…

upload-labs关卡10(点和空格绕过)通关思路

文章目录 前言一、回顾前几关知识点二、靶场第十关通关思路1、看源代码2、bp抓包绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测…

软件质量保护与测试(第2版)学习总结第十一章 白盒测试

错误隐藏在角落里、集聚在边界处 ----Boris Beizer 白盒测试是看源代码的,静态分析和动态分析 11.2 控制流测试 程序结构主要有3种 顺序结构、分支结构、循环结构 #include "stdafx.h" …

C++实现KNN和K-Means

学校机器学习课程的实验课要求实现KNN和K-Means: (平时没听课)临时去查了一下KNN和K-Means是啥,然后自己用C写了小例子,想着写都写了那就把代码贴出来吧。 顺便再聊聊自己对于这俩算法的理解。 下面是文心一言的回答…

洛谷 P3131 [USACO16JAN] Subsequences Summing to Sevens S

被普及-卡的没思路真是蒟蒻啊233 优化思路 每次都在枚举(a[r]-a[l-1])%70,所以可以认为数组大小对最终答案没有影响,考虑对前缀和数组取模,那么如果有a[r]的值等于a[l-1]的值相等(即余数相等),那么两者相减…

米尔AM62x核心板,高配价低,AM335x升级首选

AM335x是TI经典的工业MPU,它引领了一个时代,即工业市场从MCU向MPU演进,帮助产业界从Arm9迅速迁移至高性能Cortex-A8处理器。随着工业4.0的发展,HMI人机交互、工业工控、医疗等领域的应用面临迫切的升级需求,AM62x处理器…

Python 双门双向门禁控制板实时监控源码

本示例使用设备:实时网络双门双向门禁控制板可二次编程控制网络继电器远程开关-淘宝网 (taobao.com) #python通过缩进来表示代码块,不可以随意更改每行前面的空白,否则程序会运行错误!!!如果缩进不一致&a…

这款IDEA插件真的爱了

IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。 今天给大家介绍一款IDEA插件:Api…

Taro编译警告解决方案:Error: chunk common [mini-css-extract-plugin]

文章目录 1. 背景2. 问题分析3. 解决方案3.1 更新 Taro 版本3.2 更新相关依赖3.3 调整 webpack 配置3.4 检查依赖版本 4. 拓展与分析4.1 拓展4.2 避免不必要的依赖4.3 查阅 Taro GitHub 仓库 5. 总结 🎉欢迎来到Java学习路线专栏~Taro编译警告解决方案:E…

golang学习笔记——斐波纳契数列

斐波纳契数列 编写一个程序来计算某个数字的斐波纳契数列。 斐波那契数列是一个数字列表,其中每个数字是前两个斐波那契数字之和。 例如,数字 6 的序列是 1,1,2,3,5,8,数字 7 的序列是 1,1,2,3,5,8,13,数字 8 的序列是 1,1,2,3,5…

[每周一更]-(第72期):Docker容器瘦身方式

Docker清理缓存操作 在构建测试的过程中,由于是自家小服务器,资源紧张,发现磁盘一直爆满,删除一些大镜像还是会占满的情况,就想到是不是也是缓存问题。 经过查询确实是build过程中的缓存启发的占用问题。 因此引出以下…

WPF创建自定义控件编译通过但是找不到资源

报错: 原因: 路径写错了: 不是这样: Source"pack://application:,,,/Controls/Styles/xTabControl.xaml" 而是这样: Source"pack://application:,,,/项目名;component/Controls/Styles/xTabControl.xaml …

Objectarx 使用libcurl请求WebApi

因为开发cad需要请求服务器的数据,再次之前我在服务器搭设了webapi用户传递数据,所以安装了libcurl在objectarx中使用数据。 Open VS2012 x64 Native Tools Command Prompt补充地址: 我在此将相关的引用配置图片,cad里面的应用和…

CI/CD --git版本控制系统

目录 一、git简介 二、git使用 三、github远程代码仓库 一、git简介 Git特点: 速度简单的设计对非线性开发模式的强力支持(允许成千上万个并行开发的分支)完全分布式有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数…

【Mysql】学习笔记

目录 基本操作登录指令:启动、关闭、重启mysql指令(适用于centos7):查看mysql运行状态:删除和创建表 修改密码(ubuntu18.04可行,其余版本行不行不知道)3 使用MYSQL了解数据库和表 4 …

VR智慧景区:VR赋能文旅产业,激活消费潜能

随着国家数字化战略的不断深入实施,文旅产业数字化转型的步伐也在逐渐加快,以VR技术赋能文旅产业,让文旅景区线上线下双渠道融合,进一步呈现文化底蕴、激活消费潜能。 VR智慧景区以沉浸式、互动式、科技感的方式,将景区…

std::copy代替memcpy

在工作中,经常会有c/c的混合使用。但看到memcpy总是感觉不太安全,c中有一个替代品std::copy,用起来还不错,而且std::copy不会有效率上的损失,放心用吧。迭代器的方式还安全些。 将int数组转换为vector int inputArr[…

springboot+vue+element简单实现教学课程申报管理系统

目录 一、项目预览 二、项目效果图及说明 1.项目说明 1.登录 2.欢迎页 3.教师管理 4.课程申报 ​5.管理员管理 三、代码实现 1.后端项目结构图 2.数据库表脚本 3.路由配置 四、总结 一、项目预览 在线预览:点击访问其他项目访问:点击访问后端实…