神经网络建立(结果可变)最小神经元

目录

介绍: 

 初始化:

 建模:

 预测:

改变结果: 

介绍: 

在深度学习中,神经元通常指的是人工神经元(或感知器),它是深度神经网络中的基本单元。深度学习的神经元模拟了生物神经元的工作原理,但在实现上更加简化和抽象。

在深度学习神经元中,每个神经元接收一组输入信号,通过加权求和和激活函数来生成输出信号。每个输入信号都有一个对应的权重,用于控制其对输出信号的影响程度。加权求和之后,通过激活函数进行非线性变换,以生成最终的输出信号。

参考: 使用程序设计流程图解析并建立神经网络(不依赖深度学习library)-CSDN博客 深度学习使用python建立最简单的神经元neuron-CSDN博客

 初始化:

import numpy as np
from matplotlib import pyplot as plt
# (1) assign input values
input_value=np.array([[0,0],[0,1],[1,1],[1,0]])
input_value.shape
#结果:(4,2)input_value
'''结果:
array([[0, 0],[0, 1],[1, 1],[1, 0]])
'''# (2) assign output values
output_value=np.array([0,1,1,0])
output_value=output_value.reshape(4,1)
output_value.shape
#结果:(4,1)output_value
'''结果:
array([[0],[1],[1],[0]])
'''# (3) assign weights
weights = np.array([[0.3],[0.4]])
weights
'''结果:
array([[0.3],[0.4]])
'''# (4) add bias
bias = 0.5# (5) activation function
def sigmoid_func(x):return 1/(1+np.exp(-x))
# derivative of sigmoid function
def der(x):return sigmoid_func(x)*(1-sigmoid_func(x))

 建模:

# updating weights and bias
j=0 #debug draw picture
k=[] #debug draw picture
l=[] #debug draw picturefor epochs in range(2000):   sum = np.dot(input_value, weights) + bias #summation and biasact_output = sigmoid_func(sum) #activationerror = act_output - output_value #calculte error in predicttotal_error = np.square(error).mean() act_der = der(act_output) #Backpropagation and chain rulederivative = error * act_derfinal_derivative = np.dot(input_value.T, derivative)j=j+1 #debug draw picturek.append(j) #debug draw picturel.append(total_error) #debug draw pictureprint(j,total_error) #debug draw picture# update weights by gradient descent algorithmweights = weights - 0.5 * final_derivative# update biasfor i in derivative:bias = bias - 0.5 * iplt.plot(k,l)
print('weights:',weights)
print('bias:',bias)

 预测:

# prediction
pred = np.array([1,0])result = np.dot(pred, weights) + biasres = sigmoid_func(result) >= 1/2print(res)
#结果:[False]

改变结果:

output_value=np.array([0,1,1,0])
#改为output_value=np.array([0,0,0,0])
# updating weights and bias
j=0 #debug draw picture
k=[] #debug draw picture
l=[] #debug draw picturefor epochs in range(2000):   sum = np.dot(input_value, weights) + bias #summation and biasact_output = sigmoid_func(sum) #activationerror = act_output - output_value #calculte error in predicttotal_error = np.square(error).mean() act_der = der(act_output) #Backpropagation and chain rulederivative = error * act_derfinal_derivative = np.dot(input_value.T, derivative)j=j+1 #debug draw picturek.append(j) #debug draw picturel.append(total_error) #debug draw pictureprint(j,total_error) #debug draw picture# update weights by gradient descent algorithmweights = weights - 0.5 * final_derivative# update biasfor i in derivative:bias = bias - 0.5 * iplt.plot(k,l)
print('weights:',weights)
print('bias:',bias)

# prediction
pred = np.array([1,0])result = np.dot(pred, weights) + biasres = sigmoid_func(result) >= 1/2print(res)
#结果:[False]

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

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

相关文章

JavaWeb基础01-基本技术体系介绍和相关工具的安装

一、JavaWeb 1.概述 Web:全球广域网,也称为万维网(www),能够通过浏览器访问的网站JavaWeb:是用Java技术来解决相关web互联网领域的技术栈 2.组成 (1)网页:展示数据(前端技术&…

计算机网络·网络层

网络层 网络层提供的两种服务 争论: 网络层应该向运输层提供怎样的服务?面向连接还是无连接? 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 2 种观点: 面向连接的可靠交付。 无连…

【C\C++ 04】归并排序

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,也是用空间换时间思维的体现。 将已有序的子序列合并,得到完全有…

w24文件上传之PHP伪协议

PHP支持的伪协议 file:// - 访问本地文件系统 http:// - 访问网址 ftp:// - 访问文件 php:// -访问各个输入/输出流 zlib:// -压缩流 data:// - 数据 glob:// -查找匹配的文件路径模式 phar:// - php归档 ssh2:// - Secure shell 2 rar:// - RAR ogg:// - 音频流 expect:// - …

软件个性化选型:制造企业如何选择适合自身的工单管理系统-亿发

企业制造业是实体经济中非常重要和基础的组成部分,直接关系到国家经济的血脉。然而,传统制造业在生产与管理上所采用的老一套方法和经验已不再适应当下的发展需求。信息化、数字化和智能化被视为制造企业的必然趋势。要想在竞争激烈的市场中永立潮头&…

K8S、keepalived、haproxy 高可用集群实战

K8S、keepalived、haproxy 高可用集群实战 环境:Centos7.6、2个CPU、8G内存以上配置 Master1:172.20.26.24 Master2:172.20.26.86 Master3:172.20.26.89 Node1: 172.20.26.104 VIP :172.20.26.201 在master1、2、3、Node1上…

diff命令详解

diff是Unix系统的一个很重要的工具程序。 它用来比较两个文本文件的差异&#xff0c;是代码版本管理的基石之一。你在命令行下&#xff0c;输入&#xff1a; $ diff < 变动前的文件 > < 变动后的文件 >; diff就会告诉你&#xff0c;这两个文件有何差异。它的显示结…

web前端---------盒子模型

1.内容 盒子的内容可以包含文字、图片等多种类型。 浏览器在加载网页时&#xff0c;会将元素按照内容区分为替换元素与非替换元素。 &#xff08;1&#xff09;替换元素指的是HTML中的一些形如<img>、<input>等非文本元素。 这些元素本身不包含任何内容&#x…

小周学JAVA—八股三

当问到多线程时候如何解决线程安全的问题时候&#xff0c;大部分人都知道加锁。提到锁最先接触到的就是Synchronized关键字。 当我们想要保证一个共享资源在同一时间只会被一个线程访问到时&#xff0c;我们可以在代码中使用synchronized关键字对类或者对象加锁 synchronized…

容器和虚拟机的对比

容器和虚拟机的对比 容器和虚拟机在与硬件和底层操作系统交互的方式上有所不同 虚拟化 使多个操作系统能够同时在一个硬件平台上运行。 使用虚拟机监控程序将硬件分为多个虚拟硬件系统&#xff0c;从而允许多个操作系统并行运行。 需要一个完整的操作系统环境来支持该应用。…

企业为何对数据可视化越发看重?

数据可视化&#xff0c;作为信息时代的一项重要技术&#xff0c;正在企业中崭露头角&#xff0c;逐渐成为业务决策和运营管理的得力助手。企业之所以对数据可视化如此重视&#xff0c;是因为它为企业带来了诸多实际利益和战略优势。 首先&#xff0c;数据可视化为企业提供了更…

JVM面试合集

前言 前文介绍了数据库、中间件相关。本期我们继续学习Java特性的JVM。 JVM面试合集 JVM的架构组成是怎样的&#xff1f; JVM主要由**类加载器&#xff08;ClassLoader&#xff09;、运行时数据区&#xff08;Runtime Data Area&#xff09;、执行引擎&#xff08;Execution…

如何实现无公网ip远程SSH连接家中本地的树莓派

文章目录 如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址4.5 ssh公网…

word文档怎么做成翻页电子书

随着科技的进步&#xff0c;电子书已成为越来越多人阅读的首选。翻页电子书以其独特的翻页效果和丰富的互动功能&#xff0c;更是受到了广大读者的喜爱。那么&#xff0c;如何将传统的Word文档制作成翻页电子书呢&#xff1f; 一、了解翻页电子书的特点 翻页电子书&#xff0c…

计网Lesson12 - UDP客户服务器模型和UDP协议

文章目录 丢个图在这&#xff0c;实在不是很明白在讲啥&#xff0c;等学完网编的我归来狠狠拿下它

js原型模式克隆

原型模式的实现关键&#xff0c;是语言本身是否提供了clone方法。ECMAScript 5提供了Object.create方法&#xff0c;可以用来克隆对象 var Plane function(){this.blood 100;this.attackLevel 1;this.defenseLevel 1;};var plane new Plane();plane.blood 500;plane.atta…

ArcGIS Pro 如何计算长度和面积等数据?

要素的几何属性属于比较重要的信息&#xff0c;作为一款专业的GIS软件&#xff0c;ArcGIS Pro自然也是带有计算几何的功能&#xff0c;这里为大家介绍一下计算方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的矢量数据&#xff0c;除了矢…

3步体验在DAYU200开发板上完成OpenHarmony对接华为云IoT

一、前言 OpenHarmony 3.1.1 是一个开源的智能终端操作系统&#xff0c;主要用于智能家居、智能手机、平板电脑、智能穿戴设备等智能终端设备。是一个分布式操作系统&#xff0c;支持多种硬件平台和多种编程语言&#xff0c;可以方便地进行移植和定制。 特点&#xff1a; &a…

【SpringBoot3】什么是SpringBoot Starter,创建自己的Starter

文章目录 一、什么是SpringBoot Starter1、介绍2、Starter 命名规则 二、Starter 工作原理三、Spring Boot Starter Parent四、如何创建自己的Starter1. 创建项目2. 添加依赖3. 编写自动配置4. 创建spring.factories文件5. 添加附加配置属性&#xff08;可选&#xff09; 参考 …

Java类和对象详解

文章目录 一、面向对象初步认识1.1 什么是面向对象 二、类的定义和使用2.1 简单认识类2.2 类的定义格式 三、类的实例化3.1 什么是类的实例化3.2 类和对象的说明 四、对象的构造及初始化4.1 如何初始化对象4.2 构造方法(1) 概念(2) 特性 4.3 默认初始化4.4 就地初始化 本文章&a…