《deep learning》学习笔记(2)——线性代数
来源:互联网 发布:淘宝网平板电脑手机 编辑:程序博客网 时间:2024/05/14 02:07
http://blog.csdn.net/u011239443/article/details/77942575
2.1 标量、向量、矩阵和张量
在numpy中,可以用以下方式生成各种维度的张量:
>>> import numpy as np## 生成元素全为0的二维张量,两个维度分别为3,4>>> np.zeros((3,4))array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]])## 生成三维的随机张量,三个维度分别为2,3,4>>> np.random.rand(2,3,4)array([[[ 0.93187582, 0.4942617 , 0.23241437, 0.82237576], [ 0.90066163, 0.30151126, 0.89734992, 0.56656615], [ 0.54487942, 0.80242768, 0.477167 , 0.6101814 ]], [[ 0.61176321, 0.11454075, 0.58316117, 0.36850871], [ 0.18480808, 0.12397686, 0.22586973, 0.35246394], [ 0.01192416, 0.5990322 , 0.34527612, 0.424322 ]]])
## 生成包含5个元素的向量x并将其转置>>> x = np.arange(5).reshape(1,-1)>>> xarray([[0, 1, 2, 3, 4]])>>> x.Tarray([[0], [1], [2], [3], [4]])## 生成3*4的矩阵并转置>>> A = np.arange(12).reshape(3,4)>>> Aarray([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])>>> A.Tarray([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]])## 生成2*3*4的张量>>> B = np.arange(24).reshape(2,3,4)>>> Barray([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]])## 将B的01两个维度转置>>> B.transpose(1,0,2)array([[[ 0, 1, 2, 3], [12, 13, 14, 15]], [[ 4, 5, 6, 7], [16, 17, 18, 19]], [[ 8, 9, 10, 11], [20, 21, 22, 23]]])
2.2 矩阵和向量相乘
>>> A = np.arange(6).reshape(3,2)>>> B = np.arange(6).reshape(2,3)>>> Aarray([[0, 1], [2, 3], [4, 5]])>>> Barray([[0, 1, 2], [3, 4, 5]])>>> np.matmul(A,B)array([[ 3, 4, 5], [ 9, 14, 19], [15, 24, 33]])
- 元素对应运算(Element-wise Operation):针对形状相同张量的运算统称,包括元素对应乘积、相加等,即对两个张量相同位置的元素进行加减乘除等运算。元素对应乘积(element-wise product)或者Hadamard 乘积(Hadamard product),记为 A ⊙ B:
>>> A = np.arange(6).reshape(3,2)>>> A*Aarray([[ 0, 1], [ 4, 9], [16, 25]])>>> A + Aarray([[ 0, 2], [ 4, 6], [ 8, 10]])>>> A + Aarray([[ 0, 2], [ 4, 6], [ 8, 10]])
2.3 单位矩阵和逆矩阵
>>> np.eye(4)array([[ 1., 0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]])
>>> A = np.arange(4).reshape(2,2)>>> Aarray([[0, 1], [2, 3]])>>> np.linalg.inv(A)array([[-1.5, 0.5], [ 1. , 0. ]])
2.4 线性相关和生成子空间
如果一组向量中的任意一个向量都不能表示成其他向量的线性组合,那么这组向量被称为线性无关。
2.5 范数
在机器学习中,我们经常使用被称为范数(norm)的函数衡量向量大小:
有时候我们可能也希望衡量矩阵的大小。在深度学习中,最常见的做法是使
用Frobenius 范数(Frobenius norm):
2.6 特殊类型的矩阵和向量
对角矩阵(diagonal matrix)只在主对角线上含有非零元素,其他位置都是零。
如果这些向量不仅互相正交,并且范数都为 1,那么我们称它们是标准正交(orthonormal)。
2.7 特征分解
2.8 奇异值分解
2.9 Moore-Penrose 伪逆
2.10 迹运算
2.11 行列式
行列式,记作 det(A),是一个将方阵 A 映射到实数的函数。行列式等于矩阵特征值的乘积。行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。如果行列式是 0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。如果行列式是 1,那么这个转换保持空间体积不变。
行列式通常使用迹运算来求解。
2.12 实例:主成分分析
参阅:《机器学习实战》(十三)—— PCA
阅读全文
0 0
- 《deep learning》学习笔记(2)——线性代数
- Deep Learning学习笔记——线性代数
- Deep Learning学习笔记之线性代数
- 《Deep Learning》(2)-线性代数
- 深度学习《deep learning》学习笔记第二章——线性代数(用玩王者荣耀的经验来学习)
- Deep Learning学习笔记——1
- 学习笔记(2)Deep Learning
- H2O学习笔记(三)—— Deep Learning
- H2O学习笔记(四)——Deep Learning 例子
- Deep Learning学习笔记(一)——基本介绍
- H2O学习笔记(四)——Deep Learning 例子
- 《deep learning》学习笔记(1)——引言
- 《deep learning》学习笔记(4)——数值计算
- Deep Learning(学习笔记)
- deep learning 学习笔记
- Deep Learning 学习笔记
- Deep Learning 学习笔记
- 深度学习《deep learning》学习笔记第一章——引言
- Spring 控制反转(IOC)与依赖注入(DI)
- The content of element type "mapper" must match "(cache-ref|cache|resultMap*|parameterMap*|sql*|inse
- Python 爬虫 —— 糗事百科爬虫实战
- Android Studio 插件汇总
- 机器学习是什么?
- 《deep learning》学习笔记(2)——线性代数
- 使用openface训练自己的第一个模型
- webpack中require和import的区别
- Java跨域请求
- Maven安装和配置及eclipse创建Maven项目
- 机器学习大牛李飞飞的电脑配置
- 2017第五届南京国际佛事文化用品展览会会刊(参展商名录)
- TexStudio光标问题
- Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用