深度学习笔记:神经网络(2)

news2025/1/14 18:03:52

对于神经网络上一篇文章,可见:https://blog.csdn.net/Raine_Yang/article/details/128473486?spm=1001.2014.3001.5501

神经网络各层信号传递的实现:
在这里插入图片描述
对于全连接网络,连接权重的个数为(前一层神经元总数 * 后一次神经元总数),偏置量(即图中的1)连接权重个数为后一次神经元个数

对于上图,a1的值即为:
在这里插入图片描述
如果要计算第一层加权和,可以使用矩阵的乘法运算。注意保证相乘的矩阵X的列数和W的行数相同。
在这里插入图片描述
程序实现如下(使用sigmoid作为激活函数):

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

X = np.array([1.0, 0.5])
W1 = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]])
B1 = np.array([0.1, 0.2, 0.3])
A1 = np.dot(X, W1) + B1
Z1 = sigmoid(A1)
print(Z1)

第一层到第二层的信号传递:

W2 = np.array([[0.1, 0.4], [0.2, 0.5], [0.3, 0.6]])
B2 = np.array([0.1, 0.2])

A2 = np.dot(Z1, W2) + B2
Z2 = sigmoid(A2)
print(Z2)

第二层到输出层的信号传递:
输出层实现和之前的实现基本相同,不过最后得出的激活函数和之前隐藏层不同。一般使用h(x)代表隐藏层激活函数,而使用σ(x)代表输出层激活函数。

输出层激活函数选取和问题性质相关,一般来说回归问题使用恒等函数,二分类问题可以使用sigmoid,多元分类可以使用softmax

def identity_function(x):
    return x

W3 = np.array([[0.1, 0.3], [0.2, 0.4]])
B3 = np.array([0.1, 0.2])
A3 = np.dot(Z2, W3) + B3
Y = identity_function(A3)
print(Y)

这里我们使用identity_function,称为恒等函数,作为输出层的激活函数

三层神经网络前向传播代码实现小结

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

def identity_function(x):
    return x

def init_network():
    network = {}
    network["W1"] = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]])
    network["b1"] = np.array([0.1, 0.2, 0.3])
    network["W2"] = np.array([[0.1, 0.4], [0.2, 0.5], [0.3, 0.6]])
    network["b2"] = np.array([0.1, 0.2])
    network["W3"] = np.array([[0.1, 0.3], [0.2, 0.4]])
    network["b3"] = np.array([0.1, 0.2])
    
    return network

def forward(network, x):
    W1, W2, W3 = network["W1"], network["W2"], network["W3"]
    b1, b2, b3 = network["b1"], network["b2"], network["b3"]
    
    a1 = np.dot(x, W1) + b1
    z1 = sigmoid(a1)
    a2 = np.dot(z1, W2) + b2
    z2 = sigmoid(a2)
    a3 = np.dot(z2, W3) + b3
    y = identity_function(a3)
    
    return y

network = init_network()
x = np.array([1.0, 0.5])
y = forward(network, x)
print(y)

该程序定义了init_network和forward两个方法。init_network初始化权重和偏置,并保存到一个字典里。forward则实现了加权运算的过程

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

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

相关文章

el-table(type=“selection“)多选框两种回显

目录 一、前端数据回显(页面间数据展示) 1、图篇帮助理解 2、描述: 3、代码 4、两个API,一个v-model 二、数据库数据回显 1、描述: 2、核心代码: 3、比较完整代码:(这是element ui官方文档上的) 4…

XMLHttpRequest 对象(AJAX通信)

1.XMLHttpRequest 对象是什么? 浏览器与服务器之间,采用 HTTP 协议通信。用户在浏览器地址栏键入一个网址,或者通过网页表单向服务器提交内容,这时浏览器就会向服务器发出 HTTP 请求。 1999年,微软公司发布 IE 浏览器…

基于STM32F411使用SPI+DMA驱动LCD

先看效果 F411CE 硬件SPI+DMA驱动LCD基于HAL库 其实HAL库我用不太习惯,一直也是用的标准库 但HAL库确实是好上手一些,就迅速创建一个新的template 这次就当尝试一下吧,因为用的比较少,我会记录的详细 如图点击&…

火山引擎DataLeap数据调度实例的 DAG 优化方案

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 实例 DAG 介绍 DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成、开发、运维、治理、资产管理能力于一身的大数据研发治理套件。在平台中&…

从0到1完成一个Vue后台管理项目(四、引入axios、配置路由)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) axios axios就是…

手握智算中心“绿洲”,毫末跑在中美自动驾驶长跑第一线

作者 | 白日梦想家 编辑 | 王博2022年过去,数据驱动成为自动驾驶演进共识。沿着数据驱动这条路线,自动驾驶加速迈入智算时代。 智算中心应运而生。 实际上,将智算引入自动驾驶的开先河者是特斯拉,其率先发布了专用于自动驾驶训练的…

登录与授权

目录 1.获取用户信息 1.button.open-type.getUserInfo 2.open-data组件 3.wx.getUserProfile(Object object) 头像昵称填写功能 2.登录 登录的流程图 sessin_key 3.授权 wx.openSetting wx.getSetting wx.authorize 手机号授权 登录与授权是两个不关联的事情&…

[Leetcode] 相同的树、对称二叉树

相同的树和对称二叉树都可以使用递归实现。相同的树题目链接:https://leetcode.cn/problems/same-tree/solution/xiang-tong-de-shu-by-leetcode-solution/1.1 递归、深度优先搜索使用递归,将问题转换为 --> 判断当前节点是否相同 判断左右子树分别是…

以前不知道字节面试难在哪,现在体验到了,被虐的很惨...

人们都说,互联网寒冬来了,这个时候还在大面积招人的公司,必然是牛逼的公司。而这个时候勇敢跳槽的人,必然是牛逼的人。于是我开始了字节跳动的社招面试。 为了这天,我前一天排老长的队,理了个利落的发型&a…

蚂蚁帮路由器Antbang A3s V2.0刷入OpenWrt/LEDE

参考资料路由器基本常识_冰色阳光的博客-CSDN博客_路由器bootloader是什么https://www.right.com.cn/forum/thread-3191610-1-1.html已知问题刷入OpenWrt/LEDE后,似乎路由器的Reset键不起作用。路由器在启动时,正常会先运行引导程序Breed,然后…

LinuxC—文件系统学习笔记

文件系统 1 目录和文件 1.1 获取文件属性信息stat 相关函数 stat() 得到file指向的文件并将其属性回填到buf中,面对符号链接文件时获取的是所指向的目标文件的属性 /* Get file attributes for FILE and put them in BUF. */ extern int stat (const char *__res…

Jetson nano 入手系列之5—远程可视化访问:jupyter lab与VNC连接

Jetson nano 入手系列之5—远程可视化访问:jupyter lab与VNC1. jupyter lab1.1 安装jupyter lab1.2 配置jupyter_lab1.3 打开jupyter lab1.3.1 ip地址方式打开1.3.2 cmd中ssh方式打开2. vino与VNC Viewer2.1 vino的安装2.2 Desktop Sharing配置与设置2.3 启动vino s…

ICG-DBCO;吲哚菁绿-二苯基环辛炔,荧光染料标记DBCO

中文名:吲哚菁绿-二苯基环辛炔 英文名:ICG-DBCO,ICG-Dibenzocyclooctyne 分子式: C63H64N4O5S 分子量: 989.27 g/mol 外观:绿色粉末 激发发射波长:785/821nm 结构式: ​ 溶解度:有机溶剂/水 储藏方法…

使用无人机 LiDAR 的重叠树冠的新型植被点云密度树分割模型

Paper题目:A Novel Vegetation Point Cloud Density Tree-Segmentation Model for Overlapping Crowns Using UAV LiDAR Abstract 由于常用的冠层高度模型(CHM)的局限性,在具有高密度和重叠树冠的森林生态系统中检测和分割单个树木经常会导致偏差。针对…

Flink 第3章 反压策略

概述Flink 中文网站的讲解https://flink-learning.org.cn/article/detail/138316d1556f8f9d34e517d04d670626涉及内容:网络流控的概念与背景TCP的流控机制Flink TCP-based 反压机制 1.5之前Flink Credit-based 反压机制 1.5及以后总结与思考网络流控的概念与背景为什…

AtCoder Beginner Contest 283 E - Don‘t Isolate Elements

E - Dont Isolate Elements (atcoder.jp)题意:题意:定义孤独的数为,该数上下左右的数都和它相反给定一个01矩阵,每次操作可以把某一行的数取反,问你把该矩阵变成没有孤独的数的最少操作次数是多少思路:一开…

AI降噪的N种数据扩增方法

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 基于统计信号处理的传统噪声抑制方法是通过检测持续的背景声,来估计背景噪声,然后通过估计到的背景噪声计算增益因子对带噪语音进行抑制。但这种方式针对规律的稳态噪声比较…

【算法笔记】最近公共祖先(LCA)算法详解

0. 前言 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 这种算法应用很广泛,可以很容易解决树上最短路等问题。 为了方便,我们记…

企业内训方案|领导力与执行力/TTT内训师/管理者情商修炼

企业内训方案|领导力与执行力/TTT内训师/管理者情商修炼 》》领导力与执行力 从精兵到强将 高绩效团队协作与跨部门沟通 核心人才的管理与激励 卓越管理者的胜任力提升 MTP中层管理技能提升训练 打造高绩效团队 高效沟通技巧 高绩效团队管理(中高层/中基层&#xf…

CRM帮助企业实现销售自动化

随着互联网技术的发展,各家企业都善用互联网优势发布各种信息,导致潜在客户被各种推销信息所淹没,销售周期延长,企业可以借助CRM有效规范销售流程,帮助企业实现销售自动化。 前言 各行各业的业务流程中似乎都少不了销…