继续创造,加快成长!这是我参加「日新计划 10 月更文挑战」的第3天,点击检查活动概况

之前咱们说过了数据操作以及预处理的常识,关于里边用到的线性代数和概率的常识,咱们在本篇文章中详细描述。

线性代数

标量

仅包含一个数值的咱们称之为 标量(scalar),它由只要一个元素的张量标明

  • 深度学习中,标量一般由一般小写字母标明(例如,xxyyzz);
  • R\mathbb{R} 标明所有(连续)实数标量的空间,那么表达式x∈Rx\in\mathbb{R}是标明xx是一个实值标量的整式形式,例如x,y∈{0,1}x, y \in \{0,1\}标明xxyy是值只能为0011的数字。

在下面的代码中,咱们实例化两个标量,并运用它们履行一些熟悉的算术运算,即加法、乘法、除法和指数。

import torch
x = torch.tensor([3.0])
y = torch.tensor([2.0])
x + y, x * y, x / y, x**y
# 运转成果
(tensor([5.]), tensor([6.]), tensor([1.5000]), tensor([9.]))

向量

1. 向量标明

咱们能够将向量视为标量值组成的列表,这些标量值称为向量的元素(element)或重量(component)。

当咱们运用向量标明数据会集的样本时,它们的值具有必定的现实意义。例如,假如咱们正在训练一个模型来预测借款违约危险,咱们或许会将每个申请人与一个向量相关联,其重量与其收入、作业年限、过往违约次数和其他要素相对应。假如咱们正在研究医院患者或许面临的心脏病产生危险,咱们或许会用一个向量来标明每个患者,其重量为最近的生命体征、胆固醇水平、每天运动时间等。

一般将向量记为粗体、小写的符号(例如,x\mathbf{x}y\mathbf{y}z)\mathbf{z})

咱们运用一维张量处理向量x = torch.arange(6),运用下标来引证向量的任一元素。例如,咱们能够经过xix_i来引证第ii个元素。留意,元素xix_i是一个标量,大量文献中都会默许列向量是向量的默许方向。在数学中,向量x\mathbf{x}能够写为:

x=[x1x2⋮xn],\mathbf{x} =\begin{bmatrix}x_{1} \\x_{2} \\ \vdots \\x_{n}\end{bmatrix},

其间x1,…,xnx_1,\ldots,x_n是向量的元素。

2. 向量维度

向量仅仅一个数字数组。就像每个数组都有一个长度一样,每个向量也是如此。在数学标明法中,假如咱们想说一个向量x\mathbf{x}nn个实值标量组成,咱们能够将其标明为x∈Rn\mathbf{x}\in\mathbb{R}^n

向量的长度一般称为向量的维度(dimension)。
当用张量标明一个向量(只要一个轴)时,咱们能够经过.shape属性拜访向量的长度。形状(shape)是一个元组,列出了张量沿每个轴的长度(维数),关于只要一个轴的张量,形状只要一个元素。

x.shape     # torch.Size([4])

为什么我会着重强调这个概念呢,由于维度(dimension)这个词在不同上下文往往会有不同的意义,这经常会使人感到困惑。

  • 向量的维度 被用来标明向量的长度,即向量或轴的元素数量。
  • 张量的维度 用来标明张量具有的轴数。在这个意义上,张量的某个轴的维数便是这个轴的长度。

矩阵

1. 矩阵界说

向量将标量从零阶推广到一阶,矩阵将向量从一阶推广到二阶。

矩阵,咱们一般用粗体、大写字母来标明(例如,X\mathbf{X}Y\mathbf{Y}Z\mathbf{Z}),在代码中标明为具有两个轴的张量。

在数学标明法中,咱们运用A∈Rmn\mathbf{A} \in \mathbb{R}^{m \times n}来标明矩阵A\mathbf{A},其由mm行和nn列的实值标量组成。直观地,咱们能够将恣意矩阵A∈Rmn\mathbf{A} \in \mathbb{R}^{m \times n}视为一个表格,其间每个元素aija_{ij}属于第ii行第jj列:

A=[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn].\mathbf{A}=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix}.

关于恣意A∈Rmn\mathbf{A} \in \mathbb{R}^{m \times n},A\mathbf{A}的形状是(mm,nn)或mnm \times n。当矩阵具有相同数量的行和列时,咱们称之为方矩阵(square matrix)。

当调用函数来实例化张量时,咱们能够经过指定两个重量mmnn来创建一个形状为mnm \times n的矩阵

A = torch.arange(20).reshape(5, 4)
A

2. 矩阵的转置

当咱们交流矩阵的行和列时,能够得到一个新的矩阵,咱们称之为矩阵的转置(transpose),用a⊤\mathbf{a}^\top来标明矩阵的转置。

  • 假如B=A⊤\mathbf{B}=\mathbf{A}^\top,则关于恣意iijj,都有bij=ajib_{ij}=a_{ji}

  • 作为方矩阵的一种特殊类型,对称矩阵(symmetric matrix)A\mathbf{A}等于其转置:A=A⊤\mathbf{A} = \mathbf{A}^\top

3. 哈达玛积

两个矩阵按元素相乘称为哈达玛积(Hadamard product)(数学符号⊙\odot)。

关于矩阵A∈Rmn\mathbf{A} \in \mathbb{R}^{m \times n}B∈Rmn\mathbf{B} \in \mathbb{R}^{m \times n},其间矩阵A\mathbf{A} 和 矩阵B\mathbf{B}ii行和第jj列的元素分别为aija_{ij},bijb_{ij}。那么这两个矩阵的哈达玛积为:

A⊙B=[a11b11a12b12…a1nb1na21b21a22b22…a2nb2n⋮⋮⋱⋮am1bm1am2bm2…amnbmn].\mathbf{A} \odot \mathbf{B} = \begin{bmatrix} a_{11} b_{11} & a_{12} b_{12} & \dots & a_{1n} b_{1n} \\ a_{21} b_{21} & a_{22} b_{22} & \dots & a_{2n} b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} b_{m1} & a_{m2} b_{m2} & \dots & a_{mn} b_{mn} \end{bmatrix}.

点积(Dot Product)

线性代数中最根本的操作之一是点积。给定两个向量x,y∈Rd\mathbf{x},\mathbf{y}\in\mathbb{R}^d,它们的点积 x⊤y\mathbf{x}^\top\mathbf{y}(或⟨x,y⟩\langle\mathbf{x},\mathbf{y}\rangle)是相同方位的按元素乘积的和

  • x⊤y=∑i=1dxiyi\mathbf{x}^\top \mathbf{y} = \sum_{i=1}^{d} x_i y_i
y = torch.ones(4, dtype = torch.float32)
x, y, torch.dot(x, y)
# tensor([0., 1., 2., 3.]), tensor([1., 1., 1., 1.]), tensor(6.)

点积在许多场合都有用。例如,给定一组由向量x∈Rd\mathbf{x} \in \mathbb{R}^d标明的值,和一组由w∈Rd\mathbf{w} \in \mathbb{R}^d标明的权重。x\mathbf{x}中的值根据权重w\mathbf{w}的加权和能够标明为点积x⊤w\mathbf{x}^\top \mathbf{w}。当权重为非负数且和为1(即(∑i=1dwi=1)\left(\sum_{i=1}^{d}{w_i}=1\right))时,点积标明加权均匀(weighted average)。将两个向量归一化得到单位长度后,点积标明它们夹角的余弦。

概率

在某种形式上,机器学习便是做出预测。举例阐明
例一:如图所示,咱们很简单的能够从160160160 \times 160像素的分辨率识别出狗,但它在404040\times40像素上变得具有挑战性,而且在101010 \times 10像素下几乎是不或许的。换句话说,咱们在很远的间隔(然后下降分辨率)区分狗的才能或许会挨近不知情的猜想。 概率给了咱们一种正式的途径来阐明咱们的确认性水平。

  • 假如咱们彻底必定图画是一只狗,咱们说标签yy是”狗”的概率,标明为P(y=P(y=“狗”))等于11
  • 假如咱们没有证据标明y=y=“猫”或y=y=“狗”,那么咱们能够说这两种或许性是等或许的,把它标明为P(y=P(y=“猫”)=P(y=)=P(y=“狗”)=0.5)=0.5
  • 假如咱们有足够的决心,但不确认图画描绘的是一只狗,咱们能够将概率赋值为0.5<P(y=0.5<P(y=“狗”)<1)<1

一文带你了解深度学习的前置预备知识(下)

例二,给出一些天气监测数据,咱们想预测明天金华下雨的概率。假如是夏天,下雨的概率是0.5。

在这两种状况下,咱们都不确认成果。但这两种状况之间有一个要害区别。在第一种状况中,图画实际上是狗或猫,咱们仅仅不知道哪个。在第二种状况下,成果实际上或许是一个随机的事情。因而,概率是一种灵敏的言语,用于阐明咱们的确认程度。

联合概率

联合概率(joint probability)P(A=a,B=b)P(A=a,B=b)。给定任何值aabb,联合概率能够答复,一起满意A=a一起满意A=aB=bB=b的概率是多少。

请留意,关于任何aabb的取值,P(A=a,B=b)≤P(A=a)P(A = a, B=b) \leq P(A=a)。这点是确认的,由于要一起产生A=aA=aB=bB=bA=aA=a就有必要产生,B=bB=b也有必要产生(反之亦然)。因而,A=aA=aB=bB=b一起产生的或许性不大于A=aA=a或是B=bB=b独自产生的或许性。

条件概率

咱们称下面比率为条件概率(conditional probability),并用P(B=b∣A=a)P(B=b \mid A=a)标明它:它是B=bB=b的概率,前提是A=aA=a已产生。

  • 0≤P(A=a,B=b)P(A=a)≤10 \leq \frac{P(A=a, B=b)}{P(A=a)} \leq 1

期望和差异

为了概括概率散布的要害特征,咱们需要一些测量方法。

随机变量XX期望(或均匀值)标明为

  • E[X]=∑xxP(X=x).E[X] = \sum_{x} x P(X = x).

当函数f(x)f(x)的输入是从散布PP中抽取的随机变量时,f(x)f(x)的期望值为

  • Ex∼P[f(x)]=∑xf(x)P(x).E_{x \sim P}[f(x)] = \sum_x f(x) P(x).

在许多状况下,咱们期望衡量随机变量XX与其期望值的偏置。这能够经过方差来量化

  • Var[X]=E[(X−E[X])2]=E[X2]−E[X]2.\mathrm{Var}[X] = E\left[(X – E[X])^2\right] = E[X^2] – E[X]^2.

方差的平方根被称为标准差(standared deviation)。

随机变量函数的方差衡量的是,当从该随机变量散布中采样不同值xx时,函数值违背该函数的期望的程度:

  • Var[f(x)]=E[(f(x)−E[f(x)])2].\mathrm{Var}[f(x)] = E\left[\left(f(x) – E[f(x)]\right)^2\right].

总结

这部分的数学常识还是很重要的,但本文触及的常识面并没有那么全,仅仅讲了论文中经常用到的数学常识。假如想要了解更多,大家能够在平台上再搜索补习下相关常识。一起关于本文所叙述的内容,我概括了以下几点:

  • 标量、向量、矩阵和张量是线性代数中的根本数学目标。
  • 向量泛化自标量,矩阵泛化自向量。
  • 标量、向量、矩阵和张量分别具有零、一、二和恣意数量的轴。