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

目录

介绍: 

 初始化:

 建模:

 预测:

改变结果: 

介绍: 

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

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

参考: 使用程序设计流程图解析并建立神经网络(不依赖深度学习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.hqwc.cn/news/438814.html

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

相关文章

如何成为一个更好的沟通者?

新年伊始,我想跟大家分享9条我给自己定下的「沟通准则」。 这9条准则,是我对自己的要求,也是我身体力行践行了许多年的做法。我可能也没能践行得非常完美,但这也是我一直在努力的目标。 如果你希望能够跟别人「好好说话」&#xf…

《SPSS统计学基础与实证研究应用精解》视频讲解:在线分析处理报告

《SPSS统计学基础与实证研究应用精解》5.1 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解5.1节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。本书旨在手把手教会使…

《信息系统项目管理师》备考计划

《信息系统项目管理师》证书价值和作用 信息系统项目管理师证书的价值体现在提升专业知识、助力职业发展、职称评定、技能补贴和人才引进或积分落户等方面。 一方面可以通过系统学习,可以显著提高自己在信息系统项目管理领域的专业水平。方便自己以后向更多的方向…

sqli-labs部署及sqli-labs靶场第一关

部署 一、环境安装 1.下载phpstudy,下载链接:小皮面板(phpstudy) - 让天下没有难配的服务器环境! ,傻瓜式的安装过后打开软件进入如下界面,我们开启nginx和mysql !!!&#xff0…

Java把列表数据导出为PDF文件,同时加上PDF水印

一、实现效果 二、遇到的问题 实现导出PDF主体代码参考:Java纯代码实现导出PDF功能,下图是原作者实现的效果 导出报错Font STSong-Light with UniGB-UCS2-H is not recognized.。参考:itext 生成 PDF(五) 使用外部字体 网上都是说jar包的版本…

C语言循环分支数组练习

目录 一、打印三的倍数 二、从大到小输出 三、三角形判断 四、数9的个数 五、猜数字游戏 六、乘法口诀表 七、求最大值 八、分数求和 九、打印素数 十、打印闰年 十一、最大公约数 十二、打印空心正方形图案 十三、矩阵转置 十四、逆序输出 十五、输入10个整数&…

进程控制(一)进程创建与终止

文章目录 进程创建又识fork函数fork函数返回值写时拷贝fork常规用法fork调用失败的原因 进程终止进程退出的三种场景进程常见退出方法main函数return 0使用exit函数使用_exit函数 异常退出 进程创建 又识fork函数 目前我们知道在Linux下创建进程有两种方式: 命令…

基于springboot网上书城交易平台源码和论文

在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括网上书城管理系统的网络应用,在国外网上书城管理系统已经是很普遍的方式,不过国内的书城管理系统可能还处于起步阶段。网上书城管理系统具有网上书城信…

套接字小结

步骤: 1、定义sockaddr_in结构体 并对里面的成员进行初始化 sin_family IPV4还是IPV6 sin_port 端口号 hton: host to net //主机 -> 网络 小端转大端 struct sockaddr_in server_addr , client_addr;//对服务端网络信息结构体进行初始化server_add…

招聘网站简单爬虫_24.1.26

完整程序传送门 24.1.26 前些天接了一个大两届的师兄的小活,做了一下爬boss直聘岗位信息的程序,在这里记录一下 程序框架 定义一个名为paQu的接口函数,用于检查窗口的输入,它接受一个参数self,获取self对象的a属性&am…

第九节HarmonyOS 常用基础组件13-TimePicker

1、描述 时间选择组件,根据指定参数创建选择器,支持选择小时以及分钟。默认以24小时的时间区间创建滑动选择器。 2、接口 TimePicker(options?: {selected?: Date}) 3、参数 selected - Date - 设置选中项的时间。默认是系统当前的时间。 4、属性…

【驱动】TI AM437x(内核调试-07):devmem2直接读写内存、寄存器,devkmem读取内核变量

1、/dev/mem 和 /dev/kmem 1)/dev/mem: 物理内存的全镜像。可以用来访问物理内存 2)/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。kernel部分内存用户空间本不可访问。但是因为所有进程共享内核空间的页表。所以内核虚拟地址对应物理地址是确定的…