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

news2024/11/19 13:18:21

目录

介绍: 

 初始化:

 建模:

 预测:

改变结果: 

介绍: 

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

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

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

for epochs in range(2000):   
    sum = np.dot(input_value, weights) + bias #summation and bias
    act_output = sigmoid_func(sum) #activation
    
    error = act_output - output_value #calculte error in predict
    total_error = np.square(error).mean() 
    
    act_der = der(act_output) #Backpropagation and chain rule
    derivative = error * act_der
    
    final_derivative = np.dot(input_value.T, derivative)
    
    j=j+1 #debug draw picture
    k.append(j) #debug draw picture
    l.append(total_error) #debug draw picture
    print(j,total_error) #debug draw picture
    
    # update weights by gradient descent algorithm
    weights = weights - 0.5 * final_derivative
    
    # update bias
    for i in derivative:
        bias = bias - 0.5 * i

plt.plot(k,l)
print('weights:',weights)
print('bias:',bias)

 预测:

# prediction
pred = np.array([1,0])

result = np.dot(pred, weights) + bias

res = sigmoid_func(result) >= 1/2

print(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 picture

for epochs in range(2000):   
    sum = np.dot(input_value, weights) + bias #summation and bias
    act_output = sigmoid_func(sum) #activation
    
    error = act_output - output_value #calculte error in predict
    total_error = np.square(error).mean() 
    
    act_der = der(act_output) #Backpropagation and chain rule
    derivative = error * act_der
    
    final_derivative = np.dot(input_value.T, derivative)
    
    j=j+1 #debug draw picture
    k.append(j) #debug draw picture
    l.append(total_error) #debug draw picture
    print(j,total_error) #debug draw picture
    
    # update weights by gradient descent algorithm
    weights = weights - 0.5 * final_derivative
    
    # update bias
    for i in derivative:
        bias = bias - 0.5 * i

plt.plot(k,l)
print('weights:',weights)
print('bias:',bias)

# prediction
pred = np.array([1,0])

result = np.dot(pred, weights) + bias

res = sigmoid_func(result) >= 1/2

print(res)
#结果:[False]

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

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

相关文章

腾讯发表多模态大模型最新综述,从26个主流大模型看多模态效果提升关键方法

在大规模语言模型(LLMs)通往通用人工智能(AGI)的道路中,从传统的单一的“语言模态”扩展到“图像”、“语音”等等的“多模态”必然是大模型进化的必经之路。 在过去的 2023 年,多模态大规模语言模型&…

Java 与 JavaScript的区别

Java 与 JavaScript的区别 Java 与 JavaScript:概述Java的特点JavaScript 的起源JavaScript 的特点Java 与 JavaScript,哪个更好?JavaScript 与 Java 相似吗?Java 与 JavaScript 的区别JavaScript 在服务器端的运行方式是怎样的&a…

arco design table遇到的一些问题

问题1:不知情就成了树形table table中不知道为啥就多了个树形加号在前面,查找问题后发现,是后端返回的数据中有children,框架中默认对这个参数做了树形结构。 解决办法: 当时没找到取消或者修改字段的属性或方法&…

美赛违规被判作弊,注意这几种情况

每年都会有队伍被判为作弊或无效,无非就是买了思路、找了代做或不小心造成的。 下图是2023美赛评奖结果(MCM是前三题,ICM是后三题,去年疫情补办了春季赛),可以看到共1264个队被取消评奖资格(Di…

扩展学习|一文明晰推荐系统应用开发核心技术发展

文献来源:Lu J, Wu D, Mao M, et al. Recommender system application developments: a survey[J]. Decision support systems, 2015, 74: 12-32. 主题:关于推荐系统应用开发的调查研究 关键词:推荐系统、电子服务个性化、电子商务、电子学习、电子政务 …

STM32学习笔记一——初识STM32

目录 一、什么是ARM 二. Cortex 内核 三.什么是STM32 四.STM32核心板原理图: 五.STM32的内部结构: 六.stm32系统结构简化图 STM32基本原理分析: 七.典型型号——STM32F103ZET6 stm32——32位单片机(数据总线是32位的&am…

idea连接docker

idea 插件无法连接docker问题 原文:idea 插件无法连接docker问题 // 修改docker配置 vi /usr/lib/systemd/system/docker.service // 加上该段配置允许任何ip访问 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock // 重启docker即可 systemctl restart dock…

计算机网络·网络层

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

PaddleNLP的简单使用

1 介绍 PaddleNLP是一个基于PaddlePaddle深度学习平台的自然语言处理(NLP)工具库。 它提供了一系列用于文本处理、文本分类、情感分析、文本生成等任务的预训练模型、模型组件和工具函数。 PaddleNLP有统一的应用范式:通过 paddlenlp.Task…

Windows Server 2003 Web服务器搭建

系列文章目录 目录 系列文章目录 前言 一、Web服务器是什么? 二、配置服务器 1.实验环境搭建 2.服务器搭建 1)控制面板中找到增加或删除程序打开 2)点击增加程序 3)安装Web服务器 4)查看安装是否成功 5)打开Internet信息服务(IIS)管理器,进行配置 6)找…

Deepin基本环境查看(七)【任务管理器和进程管理】

Deepin基本环境查看 - 目录Deepin基本环境查看(一)【基本信息】Deepin基本环境查看(二)【内存】Deepin基本环境查看(三)【网络信息】Deepin基本环境查看(四)【硬盘/分区、文件系统、…

Sqli-labs-master第一关通关攻略

第一关基于错误的字符串/数字型注入 第一关打开,请输入id数值作为参数,那就输呗整个1,2,3看看效果 通过ID数值得变动,页面也随之发生变化,然后就是判断SQL语句是否拼接,是字符型还是数字型 输入…

C++ —— 智能指针

C —— 智能指针 文章目录 C —— 智能指针一、为什么需要使用智能指针?二、内存泄漏什么是内存泄漏?内存泄漏的危害?内存泄漏分类 三、智能指针的使用及原理1. RAII2. 智能指针的原理 三、智能指针的缺陷及其发展3.1 std::auto_ptr3.2 std::…

Spring IoC容器(一)

IoC,Inversion of Control 控制反转,是一个过程。仅通过构造函数、工厂方法或在对象实例化后在对象实例上设置属性来定义其依赖关系。容器负责这些工作,这个过程从本质上来说是bean本身的反向,因此称为反向控制。 1 容器 负责实例化、配置及…

Linux系列之查看cpu、内存、磁盘使用情况

查看磁盘空间 df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。使用df -h命令,加个-h参数是为了显示GB MB KB单位,这样更容易查看 Filesystem …

2024年软考高项备考攻略

一、了解考试大纲和要求 在开始备考之前,首先要对考试大纲和要求进行全面了解。这有助于明确考试内容和学习方向,制定学习计划。 二、制定学习计划 在制定计划时,可以根据自己的实际情况和学习习惯,选择适合自己的学习方式。以…

LocalContainerEntityManagerFactoryBean源码

是 Spring Data JPA 中的一个类,它用于创建 EntityManagerFactory 的实例,获取EntityManager实例 public class LocalContainerEntityManagerFactoryBean extends AbstractEntityManagerFactoryBeanimplements ResourceLoaderAware, LoadTimeWeaverAwar…

Netty源码二:服务端创建NioEventLoopGroup

示例 还是拿之前启动源码的示例,来分析NioEventLoopGroup源码 NioEventLoopGroup构造函数 这里能看到会调到父类的MultiThread EventLoopGroup的构造方法 MultiThreadEventLoopGroup 这里我们能看到,如果传入的线程数目为0,那么就会设置2倍…

RabbitMQ-如何保证消息不丢失

RabbitMQ常用于 异步发送,mysql,redis,es之间的数据同步 ,分布式事务,削峰填谷等..... 在微服务中,rabbitmq是我们经常用到的消息中间件。它能够异步的在各个业务之中进行消息的接受和发送,那么…

代码随想录算法刷题训练营day19

代码随想录算法刷题训练营day19:LeetCode(404)左叶子之和、LeetCode(112)路径总和、LeetCode(113)路径总和 II、LeetCode(105)从前序与中序遍历序列构造二叉树、LeetCode(106)从中序与后序遍历序列构造二叉树 LeetCode(404)左叶子之和 题目 代码 /*** Definitio…