学习笔记:
标量,向量,矩阵与张量
1、标量scalar
一个标量就是一个单独的数,一般用小写的的变量名称表示。
实数标量,令s∊ℝ表示一条线斜率。自然数标量,令n∊ℕ表示元素数目。
2、向量vector
一个向量就是一列数,有序排列。次序索引,确定每个单独的数。常粗体小写变量名称。
当需要明确表示向量中的元素时,会将元素排列成一个方括号包围的纵柱:
我们可以把向量看作空间中的点,每个元素是不同的坐标轴上的坐标。
3、矩阵matrix
矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定。我们通常会赋予矩阵粗体的大写变量名称,比如A。 如果一个实数矩阵高度为m,宽度为n,那么我们说
矩阵这东西在机器学习中就不要太重要了!实际上,如果我们现在有N个用户的数据,每条数据含有M个特征,那其实它对应的就是一个NM的矩阵呀;再比如,一张图由1616的像素点组成,那这就是一个16*16的矩阵了。现在才发现,我们大一学的矩阵原理原来这么的有用!要是当时老师讲课的时候先普及一下,也不至于很多同学学矩阵的时候觉得莫名其妙了。
4、张量tensor
几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。 例如,可以将任意一张彩色图片表示成一个三阶张量,三个维度分别是图片的高度、宽度和色彩数据。
将这张图用张量表示出来,就是最下方的那张表格:
其中表的横轴表示图片的宽度值,这里只截取0319;表的纵轴表示图片的高度值,这里只截取04;表格中每个方格代表一个像素点,比如第一行第一列的表格数据为[1.0,1.0,1.0],代表的就是RGB三原色在图片的这个位置的取值情况(即R=1.0,G=1.0,B=1.0)。
当然我们还可以将这一定义继续扩展,即:我们可以用四阶张量表示一个包含多张图片的数据集,这四个维度分别是:图片在数据集中的编号,图片高度、宽度,以及色彩数据。
张量在深度学习中是一个很重要的概念,因为它是一个深度学习框架中的一个核心组件,后续的所有运算和优化算法几乎都是基于张量进行的
标量可以看做0阶张量
向量可以看做1阶张量,或者1元矩阵
矩阵可以看做2阶张量
转置(transpose)
矩阵转置,以对角线为轴镜像。A的转置表为A⫟。(A⫟)i,j=Aj,i。向量可作一列矩阵。向量转置,一行矩阵。标量可看作一元矩阵。标量转置等于本身,a=a⫟。
深度学习,矩阵和向量相加,产生另一矩阵,C=A+b,Ci,j=Ai,j+bj。向量b和矩阵A每一行相加。无须在加法操作前定义一个将向量b复制到第一行而生成的矩阵。隐式复制向量b到很多位置方式,称广播(broadcasting)。
矩阵、向量相乘
单位矩阵
单位矩阵(identity matrix),任意向量和单位矩阵相乘,都不会改变,保持n维向量不变的单位矩阵记In。In∊ℝ⁽n*n⁾。∀x∊ℝⁿ,Inx=x。单位矩阵结构简单,所有沿对角线元素都是1,其他位置所有元素都是0。
矩阵逆(matrix inversion)