• 比特币上的人工智能


    感知机为例

    人工智能,尤其是机器学习形式的人工智能,最近取得了巨大的进步,应用范围从人脸识别到自动驾驶汽车。我们建议将 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    感知器合约

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

    在这里插入图片描述

    性别分类感知器

    总结

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


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

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

  • 相关阅读:
    Java序列化以及反序列化
    【JavaWeb】火车票管理系统 (三)用户注册-最终版
    Laravel定时任务
    wins10安装ffmpeg
    第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍
    Python全栈开发【基础-05】基本数据类型
    【RK3588】Firefly 瑞芯微板子入门知识、和环境篇
    一级建造师从业者面试需要注意什么问题?
    OpenGL原理与实践——核心模式(五):颜色、基础光照、Phong模型、材质与光
    CSS 设置垂直居中
  • 原文地址:https://blog.csdn.net/freedomhero/article/details/134421441