2024-07-29, 19:07-今日內容

uniform distribution 和 normal distribution PDF 是概率密度函数 np.random.rand()的用法 Help的用法 Assert 检查是否位true,如果不是 会反回错误消息 Buffer 是什么意思(缓冲区) Linux command line 的命令 Linux 本地访问Kaggle 数据 Multivariable function多变量函数 , partial derivative偏导数, gradients梯度 Integral 积分f (calculus) 导数 derivative 1500 mile ‎ = 2,414.016 kilometers MNIST NN digits detection from scratch One hot encoding 对于 MNIST DATSET的实现。 主要是对Y label的coding 把它转化成matrix… 向量的维度混淆

2024-07-27-我想知道为什么你可以把m写在h的前面,难道维度m不是每个数据的第二维度的标志吗?你把它写在第一位是什么意思…

NN的权重矩阵,shape,bias的shape R 的n次方表示的是实向量空间(real vector space) Linear Algebra: linear combination of two vectors Linear Algebra:Vector 的变换 如果非要熬夜,三个小时是最划算的睡眠时间, 可以完全恢复,下次熬夜可以试试,要不然就是4.5,或者6,或者7.5个小时。 每次间隔… iPad用来打开chatgpt和google translate

2024-07-26-点乘和matrix 乘以matrix 有什么不一样吗? 什么时候该用什么点乘,什么时候该用matrix乘法…

Vector 和scaler Matrix equations in NN Transformer Neural Network(attention mechanisim)

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

uniform distribution 和 normal distribution 一个是均匀分布, 一个是正态分布

均匀分布就是所有位置的事件,发生的概率都是一摸一样的

正态分布是发生的概率在均值附近的可能性最高,对着离均值越来也远,发生的概率逐渐降低。他主要是由mean和方差variance来决定的。标准的正态分布是均值是0, 方差是1 。

#uniform_distribution #normal_distribution #propobility

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

PDF 是概率密度函数 他的积分是概率 均匀分布(0-1)是说在0到1的区间,pdf的value是1 。 也就是说在这个区间内的所有点的pdf都是1. 他们这个区间的integral 也就是面积,或者积分,是1.

想要计算均匀分布的概率,直接就是b-a。 • PDF 的值是 1:表示在 [0, 1) 区间内每个点的概率密度是 1。 • 概率的计算:通过积分计算区间 [a, b) 内的概率,结果是 b - a。

#uniform_distribution

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

np.random.rand()的用法 用来产生uniform distribution over [0, 1]的随机数的 注意里面接受的直接是维度,比如说np.random.rand(3, 4) 而不是写成np.random.rand((3, 4)) 第第二种写法,只有在one 和zero矩阵的生成syntax才是对的

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Help的用法 help(“assert”)

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Assert 检查是否位true,如果不是 会反回错误消息 assert condition, “Error message”

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Buffer 是什么意思(缓冲区) 是临时存储数据的一个地方/或者更专业一点叫做区域或者结构

memory buffer

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Linux command line 的命令

  1. 删除folder rm -r PATH

这里的r是recursive的意思,因为是remove的folder ,所以要recursive

或者rm -rf PATH 这里的f 是force 强制

2.	Unzip a zip file  Unzip FILENAME.zip 

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Linux 本地访问Kaggle 数据

  1. 在kaggle拿到API
    1. 把API放在linux该放的位置
    2. chmod to 600
    3. 利用kaggle 下载数据的命令下载即可

一般来说,data 都会在某一个ipynb的开头几行就能找到。 (kaggle的site里面

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Multivariable function多变量函数 , partial derivative偏导数, gradients梯度  Vector 是有方向的, 一般写成column的形式, 点是没有方向的,就用parentheses 来写的。 vector是用来展示motion的。 Tensor是三维空间的vector。 

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Integral 积分f (calculus) 积分f(integral)和derivative(d..)是彼此的inverse (逆)

Derivative -> antiderivative -> integral->antiintegral-> derivative

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

导数 derivative Derivative 描述的是两点之间的变化 瞬时速率(instanteneously change)描述的只是一个点的瞬时value 这两个东西是不一样

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

1500 mile ‎ = 2,414.016 kilometers 1 mile ‎ = 1.60934 kilometers

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

MNIST NN digits detection from scratch 

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

One hot encoding 对于 MNIST DATSET的实现。 主要是对Y label的coding 把它转化成matrix… One hot encoding 对于 MNIST DATSET的实现。 主要是对Y label的coding 把它转化成matrix的形式 

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

向量的维度混淆 我一直觉得vector是1维的,matrix是2维的 从某种意义上来说,是对的。 但是涉及到NN的操作。是错的

我感觉b的维度理解,也就是他的dimentiona 就错在这个误区。之前的理解太肤浅,太宏观。跟NN的具体操作差太多了。 要充分理解他们对于b的广播机制的使用。

可是为什么我们经常看到的NN的图例,每一个layer的neuron都是竖着排列的呢,然后那个neuron的bias都会跟着他一起竖着排列。 难道这不是说明bias是列向量吗? 因为是竖着的? 

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

2024-07-27-我想知道为什么你可以把m写在h的前面,难道维度m不是每个数据的第二维度的标志吗?你把它写在第一位是什么意思…

2024-07-27-我想知道为什么你可以把m写在h的前面,难道维度m不是每个数据的第二维度的标志吗?你把它写在第一位是什么意思呢?


layout: post title: ‘我想知道为什么你可以把m写在h的前面,难道维度m不是每个数据的第二维度的标志吗?你把它写在第一位是什么意思呢? ‘ date: 2024-07-27T12:05:58-04:00


权重矩阵维度的解释

在神经网络中,权重矩阵的维度表示了输入特征与神经元之间的连接。对于你提到的情况,让我们详细解释为什么权重矩阵 (W_1) 的维度是 (m \times h),以及为什么这种表示方式是合适的。

输入层到隐藏层的权重矩阵

假设有以下结构:

  • 输入层有 (m) 个特征。
  • 隐藏层有 (h) 个神经元。
权重矩阵 (W_1) 的维度

权重矩阵 (W_1) 的维度是 (m \times h)。这是因为:

  • 行数 (m):表示输入层的特征数量,每一行对应一个输入特征。
  • 列数 (h):表示隐藏层的神经元数量,每一列对应一个隐藏层神经元。

这种表示方式意味着每个隐藏层神经元都有 (m) 个权重(对应于每个输入特征),这些权重一起决定了该神经元的输出。

矩阵的计算

在前向传播中,计算隐藏层的输入和输出如下: [ Z_1 = XW_1 + b_1 ]

其中:

  • (X) 是输入数据矩阵,维度为 (n \times m),(n) 是训练样本的数量,(m) 是每个样本的特征数量。
  • (W_1) 是权重矩阵,维度为 (m \times h)。
  • (b_1) 是偏置向量,维度为 (1 \times h)。

通过矩阵乘法,(XW_1) 的维度为 (n \times h)。这意味着每个样本经过权重矩阵变换后,会产生 (h) 个值(对应隐藏层的每个神经元的输入)。

为什么是 (m \times h)

这种表示方式的原因可以归结于矩阵乘法的规则和神经网络的结构:

  • 矩阵乘法规则:矩阵 (A) 的维度是 (n \times m),矩阵 (B) 的维度是 (m \times p),它们的乘积 (AB) 的维度是 (n \times p)。为了保证矩阵乘法 (XW_1) 有效,输入矩阵 (X) 的列数(即特征数量 (m))必须等于权重矩阵 (W_1) 的行数(即输入特征数量 (m))。
  • 神经网络的结构:在神经网络中,输入层的每个特征与隐藏层的每个神经元都有连接。权重矩阵的每一列代表一个隐藏层神经元的所有权重,而每一行代表一个输入特征的所有权重。因此,权重矩阵 (W_1) 的维度自然是 (m \times h)。

例子

假设我们有以下数据和权重矩阵:

  • 输入矩阵 (X)(2个样本,每个样本3个特征): [ X = \begin{bmatrix} x_{11} & x_{12} & x_{13}
    x_{21} & x_{22} & x_{23} \end{bmatrix} ]
  • 权重矩阵 (W_1)(3个输入特征,2个隐藏层神经元): [ W_1 = \begin{bmatrix} w_{11} & w_{12}
    w_{21} & w_{22}
    w_{31} & w_{32} \end{bmatrix} ]

矩阵乘法 (XW_1): [ XW_1 = \begin{bmatrix} x_{11} & x_{12} & x_{13}
x_{21} & x_{22} & x_{23} \end{bmatrix} \begin{bmatrix} w_{11} & w_{12}
w_{21} & w_{22}
w_{31} & w_{32} \end{bmatrix} = \begin{bmatrix} z_{11} & z_{12}
z_{21} & z_{22} \end{bmatrix} ]

这意味着每个输入样本经过权重矩阵变换后会产生2个值(对应隐藏层的2个神经元的输入)。

总结

  • 权重矩阵 (W_1) 的维度为 (m \times h) 是因为每个隐藏层神经元需要与所有输入特征连接。
  • 这种表示方式符合矩阵乘法的规则,确保前向传播计算中的维度一致。
  • 偏置向量 (b_1) 的维度为 (1 \times h),表示每个隐藏层神经元对应一个偏置。

通过这种方式,我们可以清晰地表示和计算神经网络中各层之间的连接和转换。

#NN #weight #bias #shape #neuron #feature

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

NN的权重矩阵,shape,bias的shape 他代表的是输入特征雨神经元之间的连接 而不是每个数据的条数与神经元的连接

Bias则是附加在每个神经元上的bias的value 所以shape上来看,  这句话我觉得特别有用。 这里b是个vector,是1*h的shape 也就有了意义。他的shape只跟neuron的多少有关系。跟前面的feature,训练数量等等的都没关系。  这里就说明了,每一行就是一个特征对应的权重,每一列就是一个神经元的权重。 

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

R 的n次方表示的是实向量空间(real vector space) real number 就是实数

这里是gpt的解释:

微积分在矩阵上的作用

在神经网络(NN)中,微积分确实广泛作用于矩阵上。这种操作非常常见,尤其在训练过程中。以下是微积分如何作用于矩阵以及在NN中的具体应用:

微积分在矩阵上的操作

  1. 梯度计算
    • 梯度:梯度是一个向量,表示某个函数在各个变量方向上的偏导数。在神经网络中,损失函数 (L) 对权重矩阵 (W) 和偏置向量 (b) 的梯度是微积分的主要应用之一。
    • 反向传播(Backpropagation):利用微积分的链式法则,计算损失函数相对于每层权重和偏置的梯度。
  2. 矩阵微积分
    • Jacobian 矩阵:表示向量值函数的偏导数矩阵。
    • Hessian 矩阵:表示标量值函数的二阶偏导数矩阵,用于优化算法中的二阶信息。

微积分在神经网络中的应用

  1. 前向传播(Forward Propagation)
    • 计算每层的输出,主要涉及矩阵乘法和激活函数的应用。
    • 每层的输出 (Z) 是上一层输出 (A) 与权重矩阵 (W) 相乘,再加上偏置 (b): [ Z = A \cdot W + b ]
    • 然后通过非线性激活函数 (f) 得到下一层的输入: [ A = f(Z) ]
  2. 反向传播(Backpropagation)
    • 计算损失函数 (L) 对每个参数的梯度。
    • 使用链式法则将误差从输出层传播回输入层: [ \frac{\partial L}{\partial W} = \frac{\partial L}{\partial Z} \cdot \frac{\partial Z}{\partial W} ]
    • 其中 (\frac{\partial L}{\partial Z}) 是损失函数对输出层输入的梯度,通过前向传播的反向传播计算得到。
  3. 梯度下降(Gradient Descent)
    • 更新参数,使损失函数最小化: [ W \leftarrow W - \eta \frac{\partial L}{\partial W} ]
    • 其中 (\eta) 是学习率。

线性代数中的 (\mathbb{R}^n)

在线性代数中,(\mathbb{R}^n) 表示 (n) 维实数向量空间。它的意思是所有 (n) 元有序实数数组(向量)的集合。例如:

  • (\mathbb{R}^1):表示一维实数线。
  • (\mathbb{R}^2):表示二维平面上的所有点。
  • (\mathbb{R}^3):表示三维空间中的所有点。

在神经网络中,输入数据和参数通常可以看作是高维实数空间中的向量或矩阵。理解这些概念有助于理解神经网络的结构和操作。

英文解释

In linear algebra, (\mathbb{R}^n) represents the (n)-dimensional real vector space. This notation signifies the set of all ordered (n)-tuples of real numbers (vectors). For instance:

  • (\mathbb{R}^1): Represents the real line (one-dimensional space).
  • (\mathbb{R}^2): Represents the plane (two-dimensional space).
  • (\mathbb{R}^3): Represents the three-dimensional space.

In the context of neural networks, the input data and parameters are often viewed as vectors or matrices in high-dimensional real spaces. Understanding these concepts helps in grasping the structure and operations of neural networks.

综述

  1. 线性代数和微积分的结合
    • 神经网络训练过程中,线性代数用于数据和参数的表示和操作,微积分用于优化这些参数。
    • 微积分通过计算损失函数的梯度来指导参数更新,以最小化损失。
  2. (\mathbb{R}^n) 的解释
    • 表示 (n) 维实数向量空间,是理解神经网络数据表示的基础。

掌握线性代数和微积分对于深入理解和优化神经网络至关重要。两者的结合使得神经网络能够高效地处理和学习复杂的数据模式。

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Linear Algebra: linear combination of two vectors 就是向量的加 和乘法, 这样生成的蓝色的新的vector,可以在space的任意位置。或者换句话说span of these two vectors is all vectors of 2D space

 #linear_algebra

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Linear Algebra:Vector 的变换 Scaling,就是加法,或者乘法 , scalar就是一个标量的变换。 乘一个负数就是让他反向scaling。 Scale的多少就是乘的那个数的大小。

注意,scalar就是number比较fancy的说法。其实本质上都是一样的,根本就没有方向。

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

如果非要熬夜,三个小时是最划算的睡眠时间, 可以完全恢复,下次熬夜可以试试,要不然就是4.5,或者6,或者7.5个小时。 每次间隔… 如果非要熬夜,三个小时是最划算的睡眠时间, 可以完全恢复,下次熬夜可以试试,要不然就是4.5,或者6,或者7.5个小时。 每次间隔1.5个小时就可以。

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

iPad用来打开chatgpt和google translate Mac 用来看视频

现在Mac 新增加视频是不行的,因为一旦全屏,ipad就会黑屏。这是一个bug。。。 所以就只弄鼠标连接就好了。

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

2024-07-26-点乘和matrix 乘以matrix 有什么不一样吗? 什么时候该用什么点乘,什么时候该用matrix乘法…

2024-07-26-点乘和matrix 乘以matrix 有什么不一样吗? 什么时候该用什么点乘,什么时候该用matrix乘法呢?


layout: post title: ‘点乘和matrix 乘以matrix 有什么不一样吗? 什么时候该用什么点乘,什么时候该用matrix乘法呢?’ date: 2024-07-26T11:37:35-04:00


点乘(Dot Product)与矩阵乘法(Matrix Multiplication)

点乘和矩阵乘法是线性代数中的两种基本运算,它们用于不同的场景并且具有不同的计算规则和用途。

点乘(Dot Product)

点乘是两个向量之间的操作,计算结果是一个标量。它主要用于计算两个向量之间的投影或相似度。

公式: 如果有两个向量 (\mathbf{a}) 和 (\mathbf{b}): [ \mathbf{a} = \begin{bmatrix} a_1 & a_2 & \cdots & a_n \end{bmatrix} ] [ \mathbf{b} = \begin{bmatrix} b_1 & b_2 & \cdots & b_n \end{bmatrix} ] 那么它们的点乘是: [ \mathbf{a} \cdot \mathbf{b} = a_1 b_1 + a_2 b_2 + \cdots + a_n b_n ]

用途

  1. 计算相似度:在机器学习中,点乘用于衡量两个向量(如特征向量或嵌入向量)的相似度。
  2. 投影:点乘用于计算一个向量在另一个向量方向上的投影。
  3. 物理应用:在物理中,点乘用于计算力和位移的关系(如功的计算)。

矩阵乘法(Matrix Multiplication)

矩阵乘法是两个矩阵之间的操作,结果是一个新的矩阵。它用于线性变换的组合以及多维数据的变换。

公式: 如果有两个矩阵 (\mathbf{A}) 和 (\mathbf{B}),其中: [ \mathbf{A} = \begin{bmatrix} a_{11} & a_{12}
a_{21} & a_{22} \end{bmatrix} ] [ \mathbf{B} = \begin{bmatrix} b_{11} & b_{12}
b_{21} & b_{22} \end{bmatrix} ] 那么它们的矩阵乘法是: [ \mathbf{C} = \mathbf{A} \cdot \mathbf{B} = \begin{bmatrix} a_{11}b_{11} + a_{12}b_{21} & a_{11}b_{12} + a_{12}b_{22}
a_{21}b_{11} + a_{22}b_{21} & a_{21}b_{12} + a_{22}b_{22} \end{bmatrix} ]

用途

  1. 线性变换:矩阵乘法用于表示和组合线性变换,例如旋转、缩放和投影。
  2. 数据变换:在机器学习和数据分析中,矩阵乘法用于将数据变换为新的表示形式,常用于神经网络中的前向传播和反向传播。
  3. 系统方程:在控制系统和物理系统中,矩阵乘法用于描述和解决系统方程。

什么时候使用点乘,什么时候使用矩阵乘法?

  • 点乘
    • 当你需要计算两个向量之间的相似度或投影时,使用点乘。
    • 在机器学习中,点乘常用于特征向量之间的相似度计算,如余弦相似度。
  • 矩阵乘法
    • 当你需要将一个线性变换应用到数据上时,使用矩阵乘法。
    • 在神经网络中,矩阵乘法用于前向传播过程中的权重矩阵和输入向量的乘积。
    • 在数据处理中,矩阵乘法用于将数据投影到新的维度或进行维度变换。

举例说明

  1. 点乘: 如果 (\mathbf{a} = [1, 2, 3]) 和 (\mathbf{b} = [4, 5, 6]),它们的点乘是: [ \mathbf{a} \cdot \mathbf{b} = 1 \cdot 4 + 2 \cdot 5 + 3 \cdot 6 = 4 + 10 + 18 = 32 ]

  2. 矩阵乘法: 如果 (\mathbf{A} = \begin{bmatrix} 1 & 2 \ 3 & 4 \end{bmatrix}) 和 (\mathbf{B} = \begin{bmatrix} 5 & 6 \ 7 & 8 \end{bmatrix}),它们的矩阵乘法是: [ \mathbf{A} \cdot \mathbf{B} = \begin{bmatrix} 1 \cdot 5 + 2 \cdot 7 & 1 \cdot 6 + 2 \cdot 8 \ 3 \cdot 5 + 4 \cdot 7 & 3 \cdot 6 + 4 \cdot 8 \end{bmatrix} = \begin{bmatrix} 19 & 22 \ 43 & 50 \end{bmatrix} ]

通过这些解释和示例,你应该可以更好地理解点乘和矩阵乘法的不同用途及其在实际应用中的选择依据。

#dot_product #matrix_product

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Vector 和scaler 就是矢量和标量 Vector是有方向 有长短的 Scalar是没有方向,只有长短的 Vector的运算其实很简单,就是x 对应x的,y对应y的 

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Matrix equations in NN link(https://www.youtube.com/watch?v=ZTt9gsGcdDo&t=357s)

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️

Transformer Neural Network(attention mechanisim) Query /key/value是来自 检索系统 retrieval system

下面的图是怎么进行检索我们想要的word: 也就是query和key的dot product(他们都是向量vector)会生成新的score矩阵(matrix)  现在这个matrix就是可以决定哪个字和哪个字最相关的。 (想想为什么刚好是这种形状,embedding的时候,每个word的dimention似乎消失了,因为抵消了)  现在是用value matrix去除the square root of dimension and keys去scale ,这样做的目的是为了获得更加稳定的gradient(因为两个vector相乘,会有exploding的effects)  接下里就是要获取概率,就用的softmax来对scale后的函数进行求概率值的matrix。 从0-1。 Value越高,model就越confident,之前的哪个word 要attend to。 (注意到 attention)  然后就可以用这个概率函数乘现在的value vector,从而获取output。  R然后就是把这个output feed进去一个linear layer 去process  multi headead attention的意思,就是要把每个word的query , key, value 分开。 每个word 都是一个attention head, 然后我们是要concate他们的。 

link(https://www.youtube.com/watch?v=4Bdc55j80l8&t=93s)

#匯總今日內容