机器学习入门——线性代数简单回顾
来源:互联网 发布:国税申报软件服务费 编辑:程序博客网 时间:2024/05/17 22:26
本节课程回顾了一些简单但常用的线性代数知识
很基础的,我会直接跳过,并对矩阵的一些运算进行编程实现。
3.1 矩阵的加法和标量乘法
矩阵加法:要求行列数要相等,然后,每个元素对应相加。
exp:
矩阵的标量乘法:每个元素都要乘
exp:
3.2 矩阵的向量乘法
矩阵的向量乘法,就是矩阵和向量相乘。要求:矩阵的列数要与向量的行数相等!
exp:
如上例所示,2×3的矩阵乘以3×1的向量,得到2×1的向量。
3.3 矩阵的乘法
矩阵乘法:实际就是乘加运算,对应行和对应列的对应元素相乘后相加(如下图所示)。注意:矩阵乘法中,前一个矩阵的列数要与后一个矩阵的行数相等。
矩阵乘法运算过程:
exp:
3.4 矩阵的转置和逆
矩阵的转置 定义矩阵A的转置:有这样一个矩阵B,满足B=a(j,i),即b(j,i)=a(i,j)(B的第i行第j个元素是A的第j行第i个元素),记作
exp:
矩阵的逆 如矩阵A是一个m×m矩阵(即方阵),如果有逆矩阵,则:
矩阵可逆的条件
矩阵A可逆,则A为方阵,且A的行列式值不为0。反过来同样成立!
方阵A的行列式如果为0,则为奇异方阵(singular)。
exp:
显然,矩阵A与矩阵B相乘,结果为I(单位阵)。所以,A是B的逆阵,B也是A的逆阵。
3.5 编程实现矩阵基本运算
程序是使用Python2.7编写,基于tensorflow框架。
#!/usr/bin/env python2# -*- coding: utf-8 -*-"""Created on Tue Jan 17 12:24:29 2017@author: louishao"""import tensorflow as tf#Matrix additionmata = tf.constant([[1,2],[3,4],[5,6]])matb = tf.constant([[5,3],[2,4],[6,7]])matadd = tf.add(mata,matb)#Scalar multiplicationcons = tf.constant(3)mat1 = tf.constant([[1,2],[3,4],[5,6]])scalmul = tf.mul(cons,mat1)#Matrix vector multiplicationmat = tf.constant([[1,2,3],[4,5,6]])vec = tf.constant([[1],[2],[3]])matvecmul = tf.matmul(mat,vec)#Matrix multiplicationm1 = tf.constant([[1,2],[2,3],[3,4]])m2 = tf.constant([[2,1],[3,5]])matmul = tf.matmul(m1,m2)#Matrix transposemattt = tf.constant([[1,2],[3,4],[5,6]])mattrans = tf.transpose(mattt)#Matrix inversematt = tf.constant([[3.0,2.0,0.0],[2.0,1.0,2.0],[2.0,1.0,1.0]],'float32')matinver = tf.matrix_inverse(matt)with tf.Session() as sess: print "Matrix addition" print "the addition is \n%s"%(sess.run(matadd)) print "---------------------------" print "Scalar multiplication" print "the scalar multiplication is \n%s"%(sess.run(scalmul)) print "--------------------------" print "Matrix vector multiplication" print "the matrix vector multiplication is\n%s"%(sess.run(matvecmul)) print "--------------------------" print "Matrix multiplication" print "the matrix multiplication is\n %s"%(sess.run(matmul)) print "--------------------------" print "Matrix transpose" print "transpose is\n %s"%(sess.run(mattrans)) print "-------------------------" print "Inverse matrix" print "matrix inverse is \n%s"%(sess.run(matinver))
运行结果:
Matrix additionthe addition is [[ 6 5] [ 5 8] [11 13]]---------------------------Scalar multiplicationthe scalar multiplication is [[ 3 6] [ 9 12] [15 18]]--------------------------Matrix vector multiplicationthe matrix vector multiplication is[[14] [32]]--------------------------Matrix multiplicationthe matrix multiplication is [[ 8 11] [13 17] [18 23]]--------------------------Matrix transposetranspose is [[1 3 5] [2 4 6]]-------------------------Inverse matrixmatrix inverse is [[-0.99999994 -1.99999988 3.99999976] [ 1.99999988 2.99999976 -5.99999952] [-0. 1. -1. ]]
0 0
- 机器学习入门——线性代数简单回顾
- 【机器学习】Andrew Ng——03线性代数知识回顾
- 斯坦福机器学习笔记 第1周 三、线性代数回顾
- 龙星计划-机器学习 notes-Lecture1-机器学习简介及线性代数、概率论、统计学知识回顾
- 机器学习精简教程之一——线性代数知识
- 【回顾】从零开始入门机器学习算法实践
- 线性代数、微积分学习与回顾
- 机器学习中的线性代数
- 线性代数,机器学习,笔记!!!
- 机器学习--线性代数基础
- 机器学习笔记--线性代数
- 机器学习 数学知识 线性代数
- 机器学习线性代数介绍
- 机器学习入门——简单模型讲解
- 数据科学入门—线性代数
- 【斯坦福大学-机器学习】3.线性代数
- 机器学习-->矩阵和线性代数
- 吴恩达机器学习二:线性代数
- sofelf转jic
- XSLT转换XML
- linux下载命令
- 开始重新找工作了加胡思乱想
- linux curses函数库
- 机器学习入门——线性代数简单回顾
- easyUI toolbar中添加select下拉选
- java 生成证书和签发证书(纯代码,编译通过)
- Servlet基础
- linux之awk命令
- android gradle 上传module aar 至nexus
- Python的tornado框架性能研究
- Android拍照或者选取本地图片
- jQuery和js有什么关系