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 矩阵乘法来实现神经网络的内积。

'''

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

'''

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

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

相关文章

声纹识别在无人机探测上的应用

无人机在民用和军事领域的应用越来越广泛。然而,随着无人机数量的增加,"黑飞"现象也日益严重,对公共安全和隐私构成了威胁。因此,开发有效的无人机探测与识别技术变得尤为重要。及时发现黑飞无人机的存在进而对其型号进…

AI地名故事:鸦岗村

鸦岗村,位于广州市白云区石井镇,是一个历史悠久、文化底蕴深厚的村落。据《广州地名志》记载,南宋时期,南雄珠玑巷的凌氏家族迁移至此地,并在此建立村落。由于村子周边的山岗上常有乌鸦栖息,因此得名“鸦岗…

Redisson中分布式锁的实现原理

redisson版本:3.27.2 简介 锁归根结底就是对同一资源的竞争抢夺,不管是在单体的应用亦或者集群的服务中,上锁都是对同一资源进行修改的操作。至于分布式锁,那就是多个服务器或资源,同时抢占某一单体应用的同个资源了。…

什么是Google SEO优化,如何做好谷歌seo排名?2024年谷歌搜索引擎优化(谷歌SEO)3分钟速通教程指南

1 - 什么是SEO? 谷歌排名优化(SEO:Search Engine Optimization)是指当您在谷歌搜索那里输入一个您正在推广的产品或服务的关键词时,如何在使您的站在Google里获得一个较高的排名位置而做的优化过程。谷歌排名优化的意…

算法学习笔记(LCA)

L C A LCA LCA:树上两个点的最近公共祖先。(两个节点所有公共祖先中,深度最大的公共祖先) L C A LCA LCA的性质: 在所有公共祖先中, L C A ( x , y ) LCA(x,y) LCA(x,y)到 x x x和 y y y的距离都最短。 x …

什么是AOT,AOT 有什么优点

JDK 9 引入了一种新的编译模式 AOT (Ahead of Time Compilation)。与 JIT (Just-In-Time Compilation) 不同,AOT 在程序执行前将其编译成机器码,属于静态编译。这种模式具有很多优点,但也有一些限制。本文将详细探讨 AOT 的优点以及其限制。 …

六西格玛培训证书攻略2024:一站式解决方案助你快速上手

目前,企业对于员工的专业能力和综合素质要求越来越高。六西格玛作为一种先进的质量管理方法,已经成为众多企业提升运营效率、降低成本的重要手段。张驰咨询针对2024年六西格玛培训证书考取,为广大学员制定了实用的攻略,帮助学员们…

玩转大模型 企业AI着陆新正解 神州问学AI原生赋能平台正式发布

在人工智能技术日新月异的今天,神州数码凭借深厚的行业洞察和技术积累,揭开了AI原生赋能平台——神州问学的神秘面纱。作为企业AI着陆的加速引擎,神州问学致力于通过AI原生场景赋能,为企业开辟一条通往智能未来的坦途。 神州问学—…

vue3使用el-radio-group获取表格数据无法选中问题

这里是引用 今天写项目发现使用el-radio-group无法获取表格中的数据&#xff0c;于是去官网查看了一下&#xff0c;发现写的没啥问题&#xff0c;就是 <el-radio value"1" size"large"> 未知</el-radio>这样的写法&#xff0c;又在网上看了一些…

不写一行代码,使用ChatGpt开发一个射击游戏

1.简介 最近需要开发一个网页应用&#xff0c;想到了使用ChatGpt生成Html页面&#xff0c;生成的效果非常好&#xff0c;说几句话就可以实现复杂的功能。不过需要一步步耐心的引导。然后我就想到可以用ChatGpt生成一个网页游戏。这个游戏包含了人物移动、跳跃、射击、生命值&a…

02Django项目安装和环境变量设置

凯哥英语视频 Django项目安装和环境变量设置 凯哥英语视频1.汉化1.打开PyCharm&#xff0c;点击File&#xff0c;再点击Settings2.然后点击 Plugins&#xff0c;再Marketplace&#xff0c;找到Chinese&#xff08;simplified&#xff09;Language&#xff0c;再点击Install然后…

linux给history查看历史执行命令加上日期和时间

问题&#xff1a; 打开linux&#xff0c;执行history看一下上次执行的命令&#xff0c;结果命令是显示出来了&#xff0c;但没有日期和时间。 解决办法&#xff1a; 编辑 ~/.bashrc vim ~/.bashrc 在末尾加入以下命令 export HISTTIMEFORMAT"%F %T " 保存并退…

Rust语言实现图像编码转换

一、概述 Rust 作为一门现代的系统编程语言&#xff0c;不仅性能出色&#xff0c;安全性高&#xff0c;而且生态系统也在不断成熟。在图像处理方面&#xff0c;image-rs库是 Rust 社区中广泛使用的一个开源库&#xff0c;它提供了丰富的图像编解码功能。今天&#xff0c;我将带…

GPT-4o: 从最难的“大海捞针”基准看起

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在阅读过程中有些知识点存在盲区&#xff0c;可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果…

Python slice() 使用方法及示例说明

slice()参数 slice() 可以采用三个参数&#xff1a; start&#xff08;可选&#xff09; -对象切片开始的起始整数。如果未提供或者值为None&#xff0c;则默认为第一个数据。 stop-整数&#xff0c;直到切片发生。切片在索引stop-1&#xff08;最后一个元素&#xff09;处停…

基于EBAZ4205矿板的图像处理:12二值化图像的膨胀与腐蚀

基于EBAZ4205矿板的图像处理&#xff1a;12二值化图像的膨胀与腐蚀 先看效果 注意&#xff1a;我的项目中的膨胀和腐蚀是对二值化图像中的像素值为255的像素进行处理&#xff0c;而我的图像中255为白色&#xff0c;0为黑色&#xff0c;所以是对颜色为白色的像素点进行的膨胀和…

【Vue】Vue 中的数据传递策略:探索跨组件通信的多样化方法

Vue 中的数据传递策略&#xff1a;探索跨组件通信的多样化方法 在现代的前端开发过程中&#xff0c;Vue.js 以其灵活和易于理解的结构脱颖而出&#xff0c;成为了广受欢迎的 JavaScript 框架之一。在构建动态应用时&#xff0c;组件之间的数据传递是必不可少的&#xff0c;但随…

Google I/O 2024:有关AI的一切已公布|TodayAI

2024年谷歌I/O大会圆满落幕&#xff0c;谷歌在会上发布了一系列更新&#xff0c;涵盖从最新的人工智能技术到Android系统的多项改进。此次大会特别关注于谷歌的Gemini人工智能模型&#xff0c;并详细介绍了这些模型如何被融入到Workspace、Chrome等多个应用程序中&#xff0c;展…

男士内裤哪个牌子质量好又舒服?五款不容错过的男士内裤

男士内裤&#xff0c;作为男士日常穿着的重要贴身衣物&#xff0c;其舒适度和透气性至关重要。尽管有些男士可能习惯长时间穿着同一条内裤&#xff0c;但为了确保健康和舒适&#xff0c;建议每3-6个月更换一次内裤。长时间不更换内裤会导致其舒适性和透气性下降&#xff0c;同时…

性价比王者HUSB237,极简PD Sink的“瘦身秘籍”

在小型化、高集成的要求下&#xff0c;慧能泰取电芯片进行技术升级后“瘦身成功”&#xff0c;推出最新一代极具性价比的最简PD Sink取电芯片——HUSB237。 图1&#xff1a;HUSB237 demo及封装图 HUSB237 是一款极具性价比的最简PD Sink取电芯片&#xff0c;支持PD3.1协议包含…