CS229中需要用到Octave来做,张量的存储是必备的知识点,记录一下备用:

% The ; denotes we are going back to a new row.
A = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12]% Initialize a vector
v = [1;2;3] % Get the dimension of the matrix A where m = rows and n = columns
[m,n] = size(A)% You could also store it this way
dim_A = size(A)% Get the dimension of the vector v
dim_v = size(v)% Now let's index into the 2nd row 3rd column of matrix A
A_23 = A(2,3)

矩阵加/减/乘/除法

% Initialize matrix A and B
A = [1, 2, 4; 5, 3, 2]
B = [1, 3, 4; 1, 1, 1]% Initialize constant s
s = 2% See how element-wise addition works
add_AB = A + B % See how element-wise subtraction works
sub_AB = A - B% See how scalar multiplication works
mult_As = A * s% Divide A by s
div_As = A / s% What happens if we have a Matrix + scalar?
add_As = A + s

举个例子

代码:

house_sizes = [1,2104; 1,1416; 1,1534; 1, 852]
W = [-40; 0.25]
res = house_sizes * W
% 输出
res =486.00314.00343.50173.00

矩阵乘以矩阵

% 矩阵乘以矩阵
A = [1,3,2; 4,0,1]
B = [1,3; 0,1; 5,2]
C = A * B% 输出
C =11   109   14

再看一个具体的例子
我们需要经常想想的是:矩阵乘以向量,得出的还是向量,但维度变成矩阵的行数。

因此,在矩阵乘矩阵的场景下,右边的矩阵可以视作多个列向量的组合,所以得出的结果,也是多个列向量,且列向量的个数与右边矩阵的列向量个数一样,但是向量的维度则是左边矩阵的行数。

这个截图案例里,是把多个假设同时放在右边矩阵中,每个列向量是一个假设,得出的结果里,每个列向量是一个对应值。

% 矩阵乘矩阵案例
house_sizes = [1,2104; 1,1416; 1,1534; 1, 852]
hypotheses = [-40, 200, -150; 0.25, 0.1, 0.4]res = house_sizes * hypotheses% 输出
res =486.00   410.40   691.60314.00   341.60   416.40343.50   353.40   463.60173.00   285.20   190.80

用这些案例,可以从中体会到向量化的重要性,基于向量化,我们可以避免数据处理时的循环,从而加快运行效率。

单位矩阵

% 单位矩阵
I_2 = eye(2)
I_7 = eye(7)% 输出
% I_21   00   1% I_71   0   0   0   0   0   00   1   0   0   0   0   00   0   1   0   0   0   00   0   0   1   0   0   00   0   0   0   1   0   00   0   0   0   0   1   00   0   0   0   0   0   1

注意,矩阵的Octave表示,一行内的数据不一定非要用逗号隔开,可以用空格。

A = [3 4; 2 16]
A = [3,4; 2,16]

两种都是可以的。

矩阵的求逆

A = [3 4; 2 16]% 输出
reverse =0.400000  -0.100000-0.050000   0.075000% 检验
A * reverse
% 输出
ans =1.0000e+00   5.5511e-17-2.2204e-16   1.0000e+00

注意到,计算机里表示的浮点数0,是很小很小的数字,但不是绝对的精准的0.

矩阵的转置

% 矩阵转置
A = [1 2 0; 3 5 9]
A_T = transpose(A)% 输出
ans =1   32   50   9

END.

【机器学习】Octave矩阵,向量的表示与基本操作相关推荐

  1. 机器学习中矩阵向量求导

    以下内容是根据刘建平的求导博客做的相关笔记 一.导数的定义与布局 1. 相关说明 2.导数布局 导数部分有分子布局和分母布局两种情况. 分子布局和分母布局相差一个转置. 标量对向量求导布局 向量对向量 ...

  2. 机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则

    在机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法中,我们讨论了使用微分法来求解矩阵向量求导的方法.但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦. ...

  3. 机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法

    在机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法中,我们讨论了定义法求解矩阵向量求导的方法,但是这个方法对于比较复杂的求导式子,中间运算会很复杂,同时排列求导出的结果也很麻烦.因此我们需要其他的 ...

  4. 机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法

    在机器学习中的矩阵向量求导(一) 求导定义与求导布局中,我们讨论了向量矩阵求导的9种定义与求导布局的概念.今天我们就讨论下其中的标量对向量求导,标量对矩阵求导, 以及向量对向量求导这三种场景的基本求解 ...

  5. 机器学习中的矩阵向量求导(一) 求导定义与求导布局

    在之前写的上百篇机器学习博客中,不时会使用矩阵向量求导的方法来简化公式推演,但是并没有系统性的进行过讲解,因此让很多朋友迷惑矩阵向量求导的具体过程为什么会是这样的.这里准备用几篇博文来讨论下机器学习中 ...

  6. 3 Spark机器学习 spark MLlib 矩阵向量、矩阵运算Breeze库-1

    机器学习里矩阵是必不可少的,无论Python.Java能做机器学习的语言,都会提供比较优质的矩阵库. spark mllib中提供的矩阵库是Breeze,可以简单看看Breeze库的情况. Scala ...

  7. 机器学习:矩阵、向量求导理解

    文章目录 前言 1. 向量与单变量求导 1.1 向量对单变量 1.2 单变量对向量求导 2. 矩阵与单变量求导 2.1 矩阵对单变量求导 2.2 单变量对矩阵求导 3. 向量对向量的求导 3.1 列向 ...

  8. 机器学习中的矩阵向量求导(五) 矩阵对矩阵的求导

    在矩阵向量求导前4篇文章中,我们主要讨论了标量对向量矩阵的求导,以及向量对向量的求导.本文我们就讨论下之前没有涉及到的矩阵对矩阵的求导,还有矩阵对向量,向量对矩阵求导这几种形式的求导方法. 本文所有求 ...

  9. 数学狂想曲(三)——统计杂谈, PID算法, 20世纪10大算法, 矩阵向量的积

    http://antkillerfarm.github.io/ 统计杂谈 统计模拟 统计模拟是数理统计中非常有用的工具之一, 它是利用计算机产生某概率模型的随机数,再通过这些随机数来模拟真实模型. 这 ...

  10. [机器学习-数学] 矩阵求导(分母布局与分子布局),以及常用的矩阵求导公式

    一, 矩阵求导 1,矩阵求导的本质 矩阵A对矩阵B求导: 矩阵A中的每一个元素分别对矩阵B中的每个元素进行求导. A1×1A_{1\times1}A1×1​, B1×1B_{1\times1}B1×1 ...

最新文章

  1. 单元测试中使用mock最好不要使用easymock而应该使用powermock
  2. Windows Server 2008常用优化设置
  3. 内核启动流程分析(二)配置详解
  4. ecplice中class.forname一直报错_Python怎么把文件内容读取出来,怎么把内容写入文件中
  5. python使用urllib模块开发的多线程豆瓣小站mp3下载器
  6. long类型20位示例_Java Long类reverseBytes()方法与示例
  7. Gensee SDK RoleType详解
  8. yum安装elasticsearch慢_Elasticsearch客户端工具之ESHead
  9. for、while、do while 3种循环异同点
  10. 最短路径问题---SPEA算法详解
  11. linux编译hashcat,Hashcat用户手册——hashcat在linux系统下的安装
  12. Micron:DDR2 SDRAM与SODIMM
  13. Android对现有的apk进行修改(汉化,修改QQ尾巴)
  14. OneNET物联网平台介绍
  15. Mysql上线长时间以后重新发起请求报错
  16. 【adcdn优化案例】某工具类app广告优化收益增长275%经验分享
  17. unity科技风UI界面
  18. 勤哲excel服务器模板中excel公式失效的解决办法
  19. 【心得体会】2022年华为杯数学建模比赛参赛心得体会
  20. 西瓜书入门辅助【机器学习 周志华】一些关于机器学习的重要基础概念提炼

热门文章

  1. C++ Primer Plus学习(十)——类和对象
  2. php反向解析域名,域名系统 – Cloudflare,反向DNS和php邮件,最终在垃圾邮件文件夹中...
  3. gc android,Android GC Log解读
  4. 二维数组递归算法c语言,C语言课程设计--二维数组的按行求和及递归函数的编写简单家庭财务管理程序的设计.doc...
  5. 过年用计算机弹奏,过年实用,你可能需要的亲戚称呼计算器
  6. mysql临时表如何分页查询慢_面试官扎心一问:数据量很大,分页查询很慢,有什么优化方案?...
  7. android身高控件_安卓身高计算器(标准)
  8. python生成器表达式_python 生成器和生成器表达式
  9. mysql查binlog删除时间_mysql的binlog日志删除查询
  10. win10 电脑触摸板不能滑动_用好笔记本的触摸板(win10小技巧)