【人工智能大脑】仿生学与人工智能交汇:基于MP神经网络的精准农业实践

MP神经网络,即McCulloch-Pitts模型(MCP Model),是神经网络的早期形式之一,由Warren McCulloch和Walter Pitts在1943年提出。这个模型为现代人工神经网络的发展奠定了理论基础,并首次尝试模拟了生物神经元的工作原理。
在这里插入图片描述

MCP由来

深度学习的历史可以追溯到1943年,当时Walter Pitts(数学家)和Warren McCulloch(神经科学家)基于人类大脑的神经网络创建了一个计算机模型,模型名字是用两人名字命名,McCulloch&Pitts,称为MCP模型。

沃尔特·皮茨简介

在这里插入图片描述

1923年4月23日,美国逻辑学家小沃尔特·皮茨出生在底特律一个简陋的社区,年轻的皮茨他特别喜欢数理逻辑。12岁时,他在图书馆阅读了伯特兰·罗素(英国哲学家、数学家、逻辑学家、历史学家、文学家,分析哲学的主要创始人)和阿尔弗雷德·诺斯·怀特海的《数学原理》,并给罗素写了一封信,这封信给他留下了深刻的印象,罗素回复了他,还邀请皮茨来英国。 1938年,皮茨在芝加哥大学(University of Chicago)研究时,他被认为是一个古怪的天才。他参加了罗素在芝加哥的讲座,皮茨也给芝加哥的教授们留下了深刻的印象。
1940年,莱特文把皮茨介绍给了伊利诺伊大学新来的精神病学教授沃伦·麦卡洛克。42岁的麦卡洛克和匹兹第一次交谈时,他们马上发现他们有很多共同之处。而麦卡洛克则成为了皮茨生命中最重要的人。McCulloch和Pitts的研究是在计算机科学领域的早期阶段进行的,他们利用有限的计算资源和技术设备,最终提出了McCulloch-Pitts神经元模型。

跨学科合作创举MCP(MP)

McCulloch是一位神经科学家,而Pitts则是一位数学家和逻辑学家。他们的合作是跨学科的,结合了神经科学、数学和逻辑学的知识。这种跨学科的合作促进了他们对神经元行为的理解,并为神经网络的发展提供了坚实的基础。
原理: MP神经元模型相对简单,它是一个二值逻辑单元,可以看作是一种简化的阈值函数。其工作原理如下:

输入层:MP神经元接受多个布尔型输入信号,这些信号对应于生物神经元中的树突输入。
权重:每个输入信号都有一个对应的权重(w1, w2, w3…),表示该输入信号对神经元输出的影响程度,类似于突触强度。
加权求和与阈值比较:神经元将所有输入信号与其权重相乘后求和,并加上一个偏置(bias),然后将这个总和与一个预设的阈值进行比较。
非线性激活:当加权求和结果大于或等于阈值时,神经元输出一个固定的“兴奋”状态(通常为1);否则输出“抑制”状态(通常为0)。这种开关行为是对生物神经元激发/不激发状态的简化模拟。

数学原理

在这里插入图片描述

使用方法: MP神经元主要用于构建简单的逻辑门电路,例如与门、或门、非门等。通过适当设置权重和阈值,可以实现布尔逻辑运算。然而,由于其功能较为有限,无法直接处理连续值输入或实现复杂的非线性映射,因此在现代神经网络中并不常用作为基础计算单元。

原理电路

在这里插入图片描述

MP神经网络模型(McCulloch-Pitts 模型)的原理可以生动地比喻
一个自动灌溉系统精灵,它基于天气和土壤湿度来决定是否开启洒水装置。这个系统包含两个输入信号:一个是“天气传感器”,它提供晴天或雨天的信息(0表示晴天,1表示雨天);另一个是“土壤湿度传感器”,它提供土壤湿度的高低信息(0表示湿度低,1表示湿度高)。
在这里插入图片描述

权重:在这个系统中,你可以给每个输入信号分配一个权重值。比如,如果认为下雨时不需要浇水(因此雨天信号应该降低开启洒水器的可能性),你可以赋予“天气传感器”一个负权重,如-2;同时,如果认为土壤干燥时强烈需要浇水,你可以赋予“土壤湿度传感器”一个正权重,如+3。

加权求和与阈值比较:当系统接收到输入信号时,会将这两个信号分别乘以其对应的权重值,然后将它们相加。例如,如果是雨天且土壤湿度低(0 * -2 + 0 * 3 = 0),或者晴天且土壤湿度高(1 * -2 + 1 * 3 = 1),此时的结果就是系统的加权输入。

阈值判断(洒水装置自动调节开关):

def fire(self, weather_signal, humidity_signal):"""模拟神经元激活函数,计算加权求和并判断是否达到阈值。输入信号weather_signal和humidity_signal分别代表天气和土壤湿度状态,对应于自动灌溉系统中的晴雨信息和土壤干湿程度。返回值:True - 开启洒水装置(对应门开启)False - 不开启洒水装置(对应门关闭)"""weighted_sum = self.weather_weight * weather_signal + self.humidity_weight * humidity_signalif weighted_sum >= threshold:return 1else:return 0

系统有一个预设的阈值(假设为1)。只有当加权后的总和大于等于这个阈值时,洒水装置才会被激活开启。
所以,在上面的例子中有一行核心分析代码,帮助神经元做出精准判断,在晴天且土壤湿度高的情况下,洒水器才会开启。

洒水控制的高端大脑函数 def fire(self, weather_signal, humidity_signal)

# 计算加权求和,这个步骤是将天气信号(weather_signal)和土壤湿度信号(humidity_signal)分别乘以对应的权重值(self.weather_weight 和 self.humidity_weight)
# 然后将这两个加权后的结果相加。在洒水系统的比喻中:
# - 天气信号的权重(self.weather_weight)代表了天气条件对是否需要灌溉决策的影响程度;
#   如果天气权重为负数,则说明雨天时减少洒水需求(比如-2表示雨天时洒水装置开启的可能性降低)。
# - 土壤湿度信号的权重(self.humidity_weight)则反映了土壤湿度对于是否需要灌溉的重要性;
#   如果湿度权重为正数,则说明土壤干燥时增加洒水需求(如+3表示土壤越干燥,洒水装置开启的可能性越高)。weighted_sum = self.weather_weight * weather_signal + self.humidity_weight * humidity_signal# 通过上述计算,我们得到一个综合考虑了当前天气状况与土壤湿度情况的加权求和值,
# 这个数值将会用来决定是否开启洒水装置(例如,当加权求和值大于或等于阈值时,意味着应该开启洒水装置)。
# 定义类:MPNeuron(对应自动灌溉系统的决策中心“小精灵”)
class MPNeuron:def __init__(self, weather_weight=-2, humidity_weight=3, threshold=1):"""初始化MP神经元,权重参数对应于比喻中的“魔法棒”的魔力大小,阈值对应于决定是否开启门或洒水装置所需的神秘数值。"""self.weather_weight = weather_weight  # 天气传感器信号权重(雨天影响)self.humidity_weight = humidity_weight  # 土壤湿度传感器信号权重(土壤湿度影响)self.threshold = threshold  # 决策阈值def fire(self, weather_signal, humidity_signal):"""模拟神经元激活函数,计算加权求和并判断是否达到阈值。输入信号weather_signal和humidity_signal分别代表天气和土壤湿度状态,对应于自动灌溉系统中的晴雨信息和土壤干湿程度。返回值:True - 开启洒水装置(对应门开启)False - 不开启洒水装置(对应门关闭)"""weighted_sum = self.weather_weight * weather_signal + self.humidity_weight * humidity_signalif weighted_sum >= threshold:return 1else:return 0# 实例化MP神经元,并进行测试
neuron = MPNeuron()# 测试示例,假设获取到的实际天气和湿度信号
test_weather = 1  # 雨天(对应信号1)
test_humidity = 0  # 干燥(对应信号0)# 判断是否开启洒水装置
decision = neuron.fire(test_weather, test_humidity)
print(f"当前天气:{('晴天', '雨天')[test_weather]},土壤湿度:{'干燥' if test_humidity == 0 else '湿润'}")
print(f"是否开启洒水装置:{decision}")

还原神经网络本质

# 定义激活函数(这里使用阶跃函数作为简化)
def step_function(summed_signal):if summed_signal >= 0:return 1  # 激活状态,对应洒水装置开启else:return 0  # 非激活状态,对应洒水装置关闭# 初始化权重和阈值
weather_weight = -2
humidity_weight = 3
threshold = 1# 定义模拟MP神经元的函数
def mp_neuron(weather, humidity):# 计算加权求和weighted_sum = weather * weather_weight + humidity * humidity_weight# 应用激活函数output = step_function(weighted_sum - threshold)  # 减去阈值是因为通常在实际应用中,我们会从总和中减去阈值来进行判断return output# 测试数据
test_weather = 0  # 晴天(0代表晴天,1代表雨天)
test_humidity = 0  # 干燥(0代表干燥,1代表湿润)# 模拟决策过程mp_neuron()函数是一个激活开头,激活就是decision = mp_neuron(test_weather, test_humidity)print(f"当前天气:{'晴天' if test_weather == 0 else '雨天'},土壤湿度:{'干燥' if test_humidity == 0 else '湿润'}")
print(f"是否开启洒水装置:{decision}")

在这里插入图片描述

古老的MP虽然现在已经退居幕后,但是MP神经网络:从硬件智慧的基石到深度学习繁花——也曾经,如同人工智能世界中的初露晨曦,启迪了如何在电路板上编织逻辑之网;而今,在误差反向传播算法破晓的光辉中,MP模型原理为多层感知器(MLP)等更繁复精妙的架构提供了更强有力的支撑。这些后继者犹如科技树上的累累硕果,将智能渗透至图像识别、语音辨识与自然语言处理的广阔天地,续写着人类认知机器智慧的新篇章。"

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

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

相关文章

最长子字符串的长度(二) - 华为OD统一考试

OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出’l’、‘o’、‘x’ 字符都恰好出现了偶数次最长子字符串的长度。 输入描…

​《WebKit 技术内幕》学习之九(3): JavaScript引擎

3 JavaScriptCore引擎 3.1 原理 JavaScriptCore引擎是WebKit中的默认JavaScript引擎,也是苹果在开源WebKit项目之后,开源的另外一个重要的项目。同其他很多引擎一样,在刚开始的时候它的主要部分是一个基于抽象语法树的解释器,这…

react 实现页面状态缓存(keep-alive)

前言: 因为 react、vue都是单页面应用,路由跳转时,就会销毁上一个页面的组件。但是有些项目不想被销毁,想保存状态。 比如:h5项目跳转其他页面返回时,页面状态不丢失。设想一个 页面我滑倒了中间&#xf…

仓储管理系统——软件工程报告(需求分析)②

需求分析 一、系统概况 仓库管理系统是一种基于互联网对实际仓库的管理平台,旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询,可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率&#xff…

shell脚本概述

将命令写到脚本里面,利用路径或者解释器去执行。简要来说脚本其实就是命令的集合。 例如:echo $? 自定义变量,查看上次命令执行是否正确 linux常用的shell 脚本的构成: 1.解释器 (脚本是用什么语言写的…

【数据结构】二叉树算法讲解(定义+算法原理+源码)

博主介绍:✌全网粉丝喜爱、前后端领域优质创作者、本质互联网精神、坚持优质作品共享、掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战✌有需要可以联系作者我哦! 🍅附上相关C语言版源码讲解🍅 &#x1f44…

Java - 深入四大限流算法:原理、实现与应用

文章目录 Pre概述简单计数器原理实现测试优缺点 滑动窗口算法原理实现测试优缺点 漏桶算法原理实现测试优缺点 令牌桶算法原理实现测试优缺点 小结 Pre 深入理解分布式技术 - 限流 并发编程-25 高并发处理手段之消息队列思路 应用拆分思路 应用限流思路 SpringBoot - 优雅…

画眉(京东科技设计稿转代码平台)介绍

前言 随着金融App业务的不断发展,为了满足不同场景下的用户体验及丰富的业务诉求,业务产品层面最直接体现就是大量新功能的上线及老业务的升级,随之也给研发带来了巨大的压力,所以研发效率的提升就是当前亟需解决的问题&#xff…

QGIS生成热力图

目录 1 QGIS介绍 2 实现效果 3 具体步骤 3.1 获取北京市地图(区县级) 3.1.1 方法一:直接找到北京市地图 3.1.2 方法二:若没有单独的北京市地图,从中国地图上提取 3.2 获取数据 3.3 导入数据 1 QGIS介绍…

数据结构之使用顺序表写出通讯录

前言 昨天我们踏入了数据结构的深山,并且和顺序表battle了一番,虽说最后赢了,但同时也留下了一个问题:如何从顺序表的增删查改加强到通讯录的的增删查改,别急,今天就带你一探究竟。 一.回顾与思考 我们昨…

geemap学习笔记053:纹理特征

前言 纹理特征通常描述了遥感影像中像素之间的空间关系和变化,对于地物分类、目标检测以及图像分割等遥感应用非常有价值。本节将会介绍Earth Engine中提供的一些纹理特征计算方法,包括熵和灰度共生矩阵。 1 导入库并显示数据 import ee import geema…

【UE5】第一次尝试项目转插件(Plugin)的时候,无法编译

VS显示100条左右的错误,UE热编译也不能通过。原因可能是[名字.Build.cs]文件的错误,缺少一些内容,比如说如果要写UserWidget类,那么就要在 ]名字.Build.cs] 中加入如下内容: public class beibaoxitong : ModuleRules …

自己本机Video retalking制作数字人

首先需要注意的是,这个要求你的笔记本显存和内存都比较大。我的电脑内存是64G,显卡是8G,操作系统是Windows 11,勉强能够运行出来,但是效果不是很好。 效果如下,无法上传视频,只能通过图片展示出…

[分章:阅读]《我的第一本算法书》

第一章数据结构 1.链表 1、数据结构之一,线性排列数据,指针链接数据;访问O(n),删除/添加O(1) 2、类似链条。 2.数组 1、线性排列数据,含数据下标(即索引&…

Ubuntu20.04.3LTS桌面版与Window10双系统并存

Ubuntu20.04.3LTS桌面版与Window10双系统并存 文章目录 Ubuntu20.04.3LTS桌面版与Window10双系统并存1.分区与安装1. 硬盘分区1. 一般用途2. 服务器用 2. 操作系统版本及分区信息3. 安装时创建用户4. 安装后修改root设置用户密码:3. 安装时指定ip4. 设置静态IP 2. 安…

Java线程池七大参数详解和配置(面试重点)

一、corePoolSize核心线程数 二、maximunPoolSize最大线程数 三、keepAliveTime空闲线程存活时间 四、unit空闲线程存活时间的单位 五、workQueue线程工作队列 1、ArrayBlockingQueue FIFO有界阻塞队列 2、LinkedBlockingQueue FIFO无限队列 3、PriorityBlockingQueue V…

【代码随想录】刷题笔记Day54

前言 差单调栈就结束代码随想录一刷啦,回家二刷打算改用python补充进博客,小涛加油!!! 647. 回文子串 - 力扣(LeetCode) 双指针法 中心点外扩,注意中心点可能有一个元素可能有两个…

Supervised Contrastive 损失函数详解

有什么不对的及时指出,共同学习进步。(●’◡’●) 有监督对比学习将自监督批量对比方法扩展到完全监督设置,能够有效地利用标签信息。属于同一类的点簇在嵌入空间中被拉到一起,同时将来自不同类的样本簇推开。这种损失显示出对自然损坏很稳…

【Linux C | 进程】进程终止、等待 | exit、_exit、wait、waitpid

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

【Kafka】开发实战和Springboot集成kafka

目录 消息的发送与接收生产者消费者 SpringBoot 集成kafka服务端参数配置 消息的发送与接收 生产者 生产者主要的对象有: KafkaProducer , ProducerRecord 。 其中 KafkaProducer 是用于发送消息的类, ProducerRecord 类用于封装Kafka的消息…