首页 > 其他分享 >神经网络入门篇:详解多样本向量化(Vectorizing across multiple examples)

神经网络入门篇:详解多样本向量化(Vectorizing across multiple examples)

时间:2023-11-13 11:26:29浏览次数:33  
标签:multiple text Vectorizing 矩阵 入门篇 神经网络 训练样本 array vdots

多样本向量化

  • 与上篇博客相联系的来理解

逻辑回归是将各个训练样本组合成矩阵,对矩阵的各列进行计算。神经网络是通过对逻辑回归中的等式简单的变形,让神经网络计算出输出值。这种计算是所有的训练样本同时进行的,以下是实现它具体的步骤:


图1.4.1

上篇博客中得到的四个等式。它们给出如何计算出\(z^{[1]}\),\(a^{[1]}\),\(z^{[2]}\),\(a^{[2]}\)。

对于一个给定的输入特征向量\(X\),这四个等式可以计算出\(\alpha^{[2]}\)等于\(\hat{y}\)。这是针对于单一的训练样本。如果有\(m\)个训练样本,那么就需要重复这个过程。

用第一个训练样本\(x^{[1]}\)来计算出预测值\(\hat{y}^{[1]}\),就是第一个训练样本上得出的结果。

然后,用\(x^{[2]}\)来计算出预测值\(\hat{y}^{[2]}\),循环往复,直至用\(x^{[m]}\)计算出\(\hat{y}^{[m]}\)。

用激活函数表示法,如上图左下所示,它写成\(a^{[2](1)}\)、\(a^{[2](2)}\)和\(a^{[2](m)}\)。

【注】:\(a^{[2](i)}\),\((i)\)是指第\(i\)个训练样本而\([2]\)是指第二层。

如果有一个非向量化形式的实现,而且要计算出它的预测值,对于所有训练样本,需要让\(i\)从1到\(m\)实现这四个等式:

\(z^{[1](i)}=W^{[1](i)}x^{(i)}+b^{[1](i)}\)

\(a^{[1](i)}=\sigma(z^{[1](i)})\)

\(z^{[2](i)}=W^{[2](i)}a^{[1](i)}+b^{[2](i)}\)

\(a^{[2](i)}=\sigma(z^{[2](i)})\)

对于上面的这个方程中的\(^{(i)}\),是所有依赖于训练样本的变量,即将\((i)\)添加到\(x\),\(z\)和\(a\)。如果想计算\(m\)个训练样本上的所有输出,就应该向量化整个计算,以简化这列。

这里需要使用很多线性代数的内容,重要的是能够正确地实现这一点,尤其是在深度学习的错误中。实际上我认真地选择了运算符号,这些符号只是针对于我所写神经网络系列的博客的,并且能使这些向量化容易一些。

所以,希望通过这个细节可以更快地正确实现这些算法。接下来讲讲如何向量化这些:
公式1.12:

\[x = \left[ \begin{array}{c} \vdots & \vdots & \vdots & \vdots\\ x^{(1)} & x^{(2)} & \cdots & x^{(m)}\\ \vdots & \vdots & \vdots & \vdots\\ \end{array} \right] \]

公式1.13:

\[Z^{[1]} = \left[ \begin{array}{c} \vdots & \vdots & \vdots & \vdots\\ z^{[1](1)} & z^{[1](2)} & \cdots & z^{[1](m)}\\ \vdots & \vdots & \vdots & \vdots\\ \end{array} \right] \]

公式1.14:

\[A^{[1]} = \left[ \begin{array}{c} \vdots & \vdots & \vdots & \vdots\\ \alpha^{[1](1)} & \alpha^{[1](2)} & \cdots & \alpha^{[1](m)}\\ \vdots & \vdots & \vdots & \vdots\\ \end{array} \right] \]

公式1.15:

\[\left. \begin{array}{r} \text{$z^{[1](i)} = W^{[1](i)}x^{(i)} + b^{[1]}$}\\ \text{$\alpha^{[1](i)} = \sigma(z^{[1](i)})$}\\ \text{$z^{[2](i)} = W^{[2](i)}\alpha^{[1](i)} + b^{[2]}$}\\ \text{$\alpha^{[2](i)} = \sigma(z^{[2](i)})$}\\ \end{array} \right\} \implies \begin{cases} \text{$A^{[1]} = \sigma(z^{[1]})$}\\ \text{$z^{[2]} = W^{[2]}A^{[1]} + b^{[2]}$}\\ \text{$A^{[2]} = \sigma(z^{[2]})$}\\ \end{cases} \]

定义矩阵\(X\)等于训练样本,将它们组合成矩阵的各列,形成一个\(n\)维或\(n\)乘以\(m\)维矩阵。接下来计算见公式1.15:

以此类推,从小写的向量\(x\)到这个大写的矩阵\(X\),只是通过组合\(x\)向量在矩阵的各列中。

同理,\(z^{[1](1)}\),\(z^{[1](2)}\)等等都是\(z^{[1](m)}\)的列向量,将所有\(m\)都组合在各列中,就的到矩阵\(Z^{[1]}\)。

同理,\(a^{[1](1)}\),\(a^{[1](2)}\),……,\(a^{[1](m)}\)将其组合在矩阵各列中,如同从向量\(x\)到矩阵\(X\),以及从向量\(z\)到矩阵\(Z\)一样,就能得到矩阵\(A^{[1]}\)。

同样的,对于\(Z^{[2]}\)和\(A^{[2]}\),也是这样得到。

这种符号其中一个作用就是,可以通过训练样本来进行索引。这就是水平索引对应于不同的训练样本的原因,这些训练样本是从左到右扫描训练集而得到的。

在垂直方向,这个垂直索引对应于神经网络中的不同节点。例如,这个节点,该值位于矩阵的最左上角对应于激活单元,它是位于第一个训练样本上的第一个隐藏单元。它的下一个值对应于第二个隐藏单元的激活值。它是位于第一个训练样本上的,以及第一个训练示例中第三个隐藏单元,等等。

当垂直扫描,是索引到隐藏单位的数字。当水平扫描,将从第一个训练示例中从第一个隐藏的单元到第二个训练样本,第三个训练样本……直到节点对应于第一个隐藏单元的激活值,且这个隐藏单元是位于这\(m\)个训练样本中的最终训练样本。

从水平上看,矩阵\(A\)代表了各个训练样本。从竖直上看,矩阵\(A\)的不同的索引对应于不同的隐藏单元。

对于矩阵\(Z,X\)情况也类似,水平方向上,对应于不同的训练样本;竖直方向上,对应不同的输入特征,而这就是神经网络输入层中各个节点。

神经网络上通过在多样本情况下的向量化来使用这些等式。

标签:multiple,text,Vectorizing,矩阵,入门篇,神经网络,训练样本,array,vdots
From: https://www.cnblogs.com/oten/p/17828716.html

相关文章

  • 神经网络入门篇:详解计算一个神经网络的输出(Computing a Neural Network's output)
    一个神经网络的输出首先,回顾下只有一个隐藏层的简单两层神经网络结构:图1.3.1其中,\(x\)表示输入特征,\(a\)表示每个神经元的输出,\(W\)表示特征的权重,上标表示神经网络的层数(隐藏层为1),下标表示该层的第几个神经元。这是神经网络的符号惯例,下同。神经网络的计算关于神经网络是怎......
  • 神经网络入门篇:详解神经网络概述和表示
    神经网络概述(NeuralNetworkOverview)先开始快速浏览一下如何实现神经网络。上篇博客了解了逻辑回归,了解了这个模型(见图1.1.1)如何与下面公式1.1建立联系。图1.1.1:公式1.1:\[\left. \begin{array}{l} x\\ w\\ b \end{array} \right\} \implies{z={w}^Tx+b}\]如上所......
  • Displaying multiple columns in a HTML Listbox Control in ASP.Net
    REF:http://forums.aspfree.com/net-development-11/displaying-multiple-columns-in-a-html-listbos-control-in-asp-19062.html listboxcolumnspacingsolutionFINALLY!!!IKnowsomanypeoplehavehadthisproblem.Butfinallyisolveditwithyourbasicmonos......
  • 神经网络基础篇:详解向量化逻辑回归(Vectorizing Logistic Regression)
    向量化逻辑回归讨论如何实现逻辑回归的向量化计算。这样就能处理整个数据集,甚至不会用一个明确的for循环就能实现对于整个数据集梯度下降算法的优化首先回顾一下逻辑回归的前向传播步骤。所以,如果有\(m\)个训练样本,然后对第一个样本进行预测,需要这样计算。计算\(z\),正在使......
  • Tmux终端复用器(terminal multiplexer)使用教程
    Tmux基础用法会话与进程¶命令行的典型用法是打开终端(terminal)后,在里面输入指令。用户的这种与计算机交互的手段,称为会话(session)。在会话中,通过命令行启动的所有进程均与会话进程绑定。当会话进程终止时,该会话启动的所有进程也会随之强行结束。一点最常见的例子就是通过SSH连......
  • jsp select multiple
    //File:index.html<HTML><HEAD><TITLE>SubmittingMultipleSelectionSelectControls</TITLE></HEAD><BODY><H1>SubmittingMultipleSelectionSelectControls<H1><FOR......
  • 入门篇-其之八-常用类的简单使用
    本文中使用到的工具是IntellijIDEA和JDK8,需要安装两款工具的请查看这两篇教程:点我查看安装JDK8/11/17教程、点我查看安装IntellijIDEA教程。一、控制台输入类Scanner假设今天我想在瓜摊买一个西瓜(西瓜的重量是10斤),西瓜两块钱一斤,此时使用Java程序代码如下:/***计算西瓜......
  • Proj. Unknown: Deciding Differential Privacy of Online Algorithms with Multiple
    Paperhttps://arxiv.org/abs/2309.06615Abstract背景:自动机A被称作查分隐私自动机:当对某些D,对任何隐私预算ε>0,该自动机是Dε-differentiallyprivate(ADiPautomatonisaparametricautomatonwhosebehaviordependsontheprivacybudget......
  • ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
    ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑1.Elasticsearch产生背景大规模数据如何检索如:当系统数据量上了10亿、100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题:1)用什么数据库好?(mysql、oracle、mongodb、hbase…)2)如......
  • android开发Type BuildConfig is defined multiple times
    1.问题:TypeBuildConfigisdefinedmultipletimes2.原因:两个依赖库的namespace名字相同导致,导致生成的BuildConfig类路径一样导致编译失败android{namespace'com.suyf.demo'}3.解决方法:自然是改不同依赖库namespace为不同即可......