6. 神经网络的内积

目录

1. 准备知识

1.1 NumPy 的多维数组

1.2 矩阵乘法

1.2.1 矩阵乘法顺序

1.2.2 矩阵乘法范例

2. 神经网络的内积

2.1 使用场合 

2.2 Python 实现


1. 准备知识

1.1 NumPy 的多维数组

        大家应该对多维数组都很熟悉,我不再多言。在 NumPy 模块中,可以使用 np.ndim() (

Return the number of dimensions of an array.)去获得多维数组的具体信息;用 np.shape 获得多维数组的形状。

        我们先准备一个数据,可以看到这是一个二维数组,有四行三列数据。二维数据又称为矩阵。横排为行,竖排为列。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
multi_arr=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
multi_arr

1.2 矩阵乘法

1.2.1 矩阵乘法顺序

        NumPy 模块提供 np.dot(A,B) 函数进行乘积计算,请注意,np.dot(A,B) 不等于 np.dot(B,A),因为矩阵的乘法是有顺序的!

  1. 矩阵的乘积是通过从左边矩阵的行(横向)和右边矩阵的列(纵行)以对应元素的方式相乘后再求和而得到的,并且运算的结果保存为新的多维数组的元素。
  2. 所以 np.dot(A,B) 时候,A 的列数必须等于 B 的行数!
  3. A 为(m,n),B 为 (n,k) 时,生成的心得多维数组元素形状为 (m,k)

1.2.2 矩阵乘法范例

        范例代码如下:

multi_arr1=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
multi_arr2=np.array([[1,2],[3,4],[0,0]])
print("*"*50)
print(multi_arr1)
print("*"*50)
print(multi_arr2)
print("*"*50)
print(np.dot(multi_arr1,multi_arr2))

结果如下:

 详细解释一下,各个数据的来源,大家应该能看懂了吧。

[[ 7 10] # 7 = 1*1+2*3+3*0;10 = 1*2+2*4+3*0;
 [19 28] # 19 = 4*1+5*3+6*0;28 = 4*2+5*4+6*0;
 [31 46] # 31 = 7*1+8*3+9*0;46 = 7*2+8*4+9*0;
 [43 64]]

如果矩阵相乘不符合这个要求“所以 np.dot(A,B) 时候,A 的列数必须等于 B 的行数!”,那么则会报错。

2. 神经网络的内积

2.1 使用场合 

        神经网络内积(也称为点积或标量积)是一种基本的数学操作,它在网络的各个层次和阶段中发挥着重要作用。下面的几种作用可能大家现在还不明白,没关系,我们在后面慢慢讲。大家了解到神经网络的内积非常重要不可或缺就行。

  1. 线性变换(Linear Transformation): 在神经网络的每一层中,输入向量与权重向量的内积用于实现线性变换。具体来说,神经元的输出是输入向量与权重向量的内积加上一个偏置(bias),然后通过激活函数进行非线性变换。                                                         z=w⋅x+b                                                                                                                                 其中,𝑤w 是权重向量,𝑥x 是输入向量,𝑏b 是偏置,𝑧z 是线性变换的结果。

  2. 激活函数输入的计算: 计算每个神经元的激活值之前,需要将输入向量和权重向量做内积运算。这个激活值再经过非线性激活函数(如ReLU、Sigmoid或Tanh)得到最终输出。

    𝑎=𝜎(𝑧)

    其中,𝜎 表示激活函数,a 是激活值。

  3. 损失函数中的梯度计算: 在反向传播(Backpropagation)过程中,需要计算损失函数对权重的梯度。梯度计算中也涉及到许多内积运算,以更新权重。

    ∇𝑤=∂𝐿/∂𝑤​

    其中,L 是损失函数,∇w​ 是损失函数对权重的梯度。

  4. 卷积操作中的局部内积: 在卷积神经网络(CNN)中,卷积操作实际上是输入数据的局部区域与卷积核(滤波器)的内积。这种局部内积用于提取输入数据的局部特征。

  5. 相似度计算: 在一些特殊的应用场合,如推荐系统和自然语言处理中的词向量(word embedding)表示中,内积常用来计算向量之间的相似度或相异度。例如,通过内积可以计算两个向量的余弦相似度:

    cosine similarity = \frac{\displaystyle a\cdot b }{||a|| ||b||}

    其中,a 和 b 是两个向量,∣∣𝑎∣∣ 和 ∣∣𝑏∣∣ 是它们的范数。

  6. 注意力机制(Attention Mechanism)中,内积用于计算查询(query)向量与键(key)向量之间的相关性分数,这些分数用于加权求和值(value)向量以生成注意力输出。

        总结来说,内积是神经网络中一种核心的数学运算,贯穿于前向传播、反向传播、特征提取和相似度计算等多个方面,是实现神经网络各类功能的基础。

2.2 Python 实现

        我们可以使用 NumPy 矩阵乘法来实现神经网络的内积。

'''

要是大家觉得写得还行,给我回复几个字吧,想给博客涨涨人气,非常感谢!

'''

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PXI/PXIe规格1553B总线测试模块

面向GJB5186测试专门开发的1553B总线适配卡,支持4Mbps和1Mbps总线速率。该产品提供2个双冗余1553B通道、1个测试专用通道、2个线缆测试通道。新一代的TM53x板卡除了支持耦合方式可编程、总线信号幅值可编程、共模电压注入、总线信号波形采集等功能外,又新…

添砖Java之路(其四)——面向对象的编程,类和对象

目录 前言: 面向对象的编程: this关键字: 构造方法: 前言: 其实中间我还有很多地方没有去讲,因为我觉得里面的很多东西和c/c差不太多,就比如逻辑运算,方法重载,以及数…

【数据结构】 二叉树的顺序结构——堆的实现

普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储 。 一、堆的概念及结构 父节点比孩子结点大 是大堆 父节点比孩子结点小 是小堆 堆的性质 堆中某…

SpringBoot设置默认文件大小

1、问题发现 有个需求,上传文件的时候,发现提示了这个错误,看了一下意思是说,文件超过了1M。 看我们文件的大小: 发现确实是,文件超出了1M,查了一下资料,tomcat默认上传文件大小为1M…

2024龙年新版ui周易测算网站H5源码/在线起名网站源码/运势测算网站系统源码

更新日志 1、修复时间不能选择子时; 2、部分机型支付后不跳转; 3、新增后台支持按照时间、项目、进行订单筛选查询; 4、数据库新增测算结果的纳音、藏干、感情、性格分析; 5、微信支付支持https证书; 6、修复PC端扫码支付问题; 7、新增代理分销功能; 8、新增会员功能&a…

如何把小程序视频下载保存

在这个快节奏的数字时代,小程序已成为我们生活的一部分,而那些在小程序中流转的精彩视频,常常让我们驻足。想象一下,如果能够将这些瞬间的精彩捕捉下来,让它们不再只是屏幕上的一抹流光,而是成为你个人收藏…

Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 解锁版 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 解锁版 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 解锁版 (视…

[算法][贪心算法][leetcode]2244. 完成所有任务需要的最少轮数

题目地址 https://leetcode.cn/problems/minimum-rounds-to-complete-all-tasks/description/ 错误解法(暴力解法) class Solution {public int minimumRounds(int[] tasks) {int ans 0;//先用一个hashmap记录每个key值出现的次数//判断他们是否能被2或…

Vue3实战笔记(21)—自定义404页面

文章目录 前言一、标题1二、通过守卫导航配置404总结 前言 一个精致的404页面对于网站的用户体验至关重要。404页面,也称为“未找到”页面,是在用户尝试访问网站中不存在或已删除的页面时显示的。 一、标题1 404都很熟悉了,vue3默认找不到界…

高校推免报名|基于SSM+vue的高校推免报名系统的设计与实现(源码+数据库+文档)

高校推免报名 目录 基于SSM+vue的高校推免报名的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台登录模块 5.2.1管理员功能模块 5.2.2考生功能模版 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

【数据结构】解密链表之旅(单链表篇)

前言 哈喽大家好,我是野生的编程萌新,首先感谢大家的观看。数据结构的学习者大多有这样的想法:数据结构很重要,一定要学好,但数据结构比较抽象,有些算法理解起来很困难,学的很累。我想让大家知道…

基于PHP+MySQL开发的 外卖点餐在线二合一小程序源码系统 附带源代码以及系统的部署教程

在移动互联网时代,外卖行业蓬勃发展,各大外卖平台竞争激烈。然而,传统的外卖平台存在诸多问题,如用户体验不佳、操作繁琐、系统性能低下等。罗峰给大家分享一款基于PHPMySQL的外卖点餐在线二合一小程序源码系统。该系统旨在为用户…

FullCalendar日历组件集成实战(3)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

什么是工具? 从语言模型视角的综述

24年3月CMU和上海交大的论文“What Are Tools Anyway? A Survey from the Language Model Perspective”。 到底什么是工具? 接下来,工具在哪里以及如何帮助语言模型? 在综述中,对语言模型使用的外部程序工具进行了统一定义&…

Redis-分片集群存储及读取数据详解

文章目录 Redis分片集群是什么?Redis分片集群的存储及读取数据? 更多相关内容可查看 Redis分片集群是什么? Redis分片集群是一种分布式部署方式,通过将数据分散存储在多个Redis节点上,从而提高了系统的性能、扩展性和…

解密跨境电商ERP开发的5大常见问题及解决方案

跨境电商平台开发是一个充满挑战的领域,企业在此过程中常常面临着各种技术、管理和资源等方面的问题。下面是解析这些问题并提供解决方案的五大主要问题: 1. 集成难题: 在跨境电商平台开发中,一个最为常见的问题是集成不同系统和…

中国高分辨率国家土壤信息网格基本属性数据集(2010-2018)

中国高分辨率国家土壤信息网格基本属性数据集(2010-2018) 数据介绍 土壤是人类生存和发展的基础,多个联合国可持续发展目标(SDGs)与土壤资源利用和管理直接相关。然而,全球和我国现有土壤信息大多源于历史土…

酒厂做配送分销小程序商城的作用是什么

线上优势明显,酒厂零售批发需要多渠道进行,品牌宣传、酒水经营分销配送、会员管理以及拓展更多营收可能等,商家与客户都需要完善的体系触达对方。 运用【雨科】平台搭建酒厂商城,电脑手机网页端和微信小程序端,多渠道…

可重构柔性装配系统,为制造业的未来描绘出一幅崭新的蓝图

随着科技的飞速发展,传统的产线设计模式正面临着前所未有的挑战。在这个变革的时代,可重构柔性装配系统凭借其独特的优势,正引领着智能化生产的新浪潮,为制造业的未来描绘出一幅崭新的蓝图。 传统的产线设计往往固定且僵化&#x…

精品录播|电磁场数值仿真技术及天线设计与应用

电磁场数值仿真技术及天线设计与应用