矩阵

卷积神经网络(一)——基础知识

為{幸葍}努か 提交于 2020-02-15 06:04:38
(一)卷积神经网络基础知识 (1) 卷积神经网络基本结构 卷积神经网络(Convolutional Neural Networks,CNN)是一类特殊的人工神经网络,其最主要的特点就是卷积运算。卷积其实就是一种效果的叠加。CNN 目前在图像相关任务上有很好的效果。如图像分类、语音分割、图像检索、目标检测等计算机视觉问题。 卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像、音频等数据,通过卷积操作、池化操作、非线性激活函数等一系列操作的层层堆叠。目的是将高层语义信息逐层抽象出来,这一过程就是前向传播的过程。 卷积神经网络的组成部分 CNN层次结构 作用 输入层 网络原始输入,可以是原始或预处理后的像素矩阵 卷积层 参数共享、局部连接,利用平移不变性从全局特征图提取局部特征 激活层 将卷积层的输出结果进行非线性映射 池化层 进一步对特征进行筛选,可有效的减少网络所需的参数量 全连接层 将多维特征展平为2维特征,通常低维度特征对应任务的学习目标 1、输入层 输入的图片一般包含RGB三个通道,是一个由长宽分别为H和W组成的3维像素值矩阵H W 3(图片默认的是通道是H W C,在处理的时候一般要将通道转换为C H W ),卷积网络会将输入层的数据传递到一系列卷积、池化等曹操做进行特征提取和转化,最终由全连接层对特征进行汇总和结果输出。若指定输入层接收到的图像个数为N

leetcode 74. 搜索二维矩阵

╄→гoц情女王★ 提交于 2020-02-15 04:06:34
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 示例 2: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 13 输出: false 方法1:二分搜索,将二维矩阵看做一位矩阵搜索 public boolean searchMatrix ( int [ ] [ ] matrix , int target ) { if ( matrix . length == 0 ) { return false ; } int row = matrix . length ; int col = matrix [ 0 ] . length ; int right = row * col - 1 ; int left = 0 ; while ( left <= right ) { int mid = ( left + right ) / 2 ; //所在行 int i = mid / col ; //所在列

向量与矩阵求导与实例分析

妖精的绣舞 提交于 2020-02-15 02:12:25
【说明】 1. 相关内容经过诸多学习内容整理 2. 比较权威的学习源可参考维基百科 https://en.wikipedia.org/wiki/Matrix_calculus#Scalar-by-vector_identities 3. 机器学习关联内容学习: 1)西瓜书第55页多元线性回归涉及到的公式推导 2)机器学习实战 第138页 目录 一,布局的概念 分子布局 分母布局 二、一个求导的例子(线性回归中正规方程) 三、另一个例子的推导 四、矩阵及向量求导法则 五、求导公式速查表 一,布局的概念 重要前提: 若 x 为向量,则默认 x 为列向量, 为行向量 布局简单地理解就是分子 y、分母 x 是行向量还是列向量。 分子布局(Numerator-layout): 分子为 y 或者分母为 (即,分子为列向量或者分母为行向量) 分母布局(Denominator-layout): 分子为 或者分母为 x (即,分子为行向量或者分母为列向量) 为了更加深刻地理解两种布局的特点和区别,下面是从维基百科中布局部分拿来的例子: 分子布局 标量/向量: (分母的向量为行向量) 向量/标量: (分子的向量为列向量) 向量/向量: (分子为列向量横向平铺,分母为行向量纵向平铺) 标量/矩阵: ( 注意这个矩阵部分是转置的,而下面的分母布局是非转置的 ) 矩阵/标量: 分母布局 标量/向量:

PCA主成份分析学习记要

冷暖自知 提交于 2020-02-15 01:04:15
前言 主成份分析,简写为PCA(Principle Component Analysis)。用于提取矩阵中的最主要成分,剔除冗余数据,同时降低数据纬度。现实世界中的数据可能是多种因数叠加的结果,如果这些因数是线性叠加,PCA就可以通过线性转化,还原这种叠加,找到最原始的数据源。 PCA原理 P.S: 下面的内容需要一定线性代数基础,如果只想了解如何在R 中使用,可以跳过此节 本质上来讲,PCA主要是找到一个线性转换矩阵P,作用在矩阵X(X的列向量是一条记录,行向量是一个feature)上,使其转换(或称之为投影,投影可以使用矩阵形式表示)到一个新的空间中,得到矩阵Y。目的是使得Y的协方差矩阵具有如下特点: 1) 对角线元素重左上角到右下角降序排列 2) 非对角线元素全部为0 为什么要这样达到这个目的呢? 对角线上的元素是Y的行向量的方差,非对角线上的元素是协方差。方差越大,表示保留的信息越多越重要;协方差越小,表示相关性越低,冗余性越小。这个也是PCA的主要目的。 下面形式的描述PCA的原理 矩阵X,纬度为m*n,m是变量个数,n是数据数量,处理之前需要对X的行向量做均值化,也就是每一个元素减去行均值,为了简化方差和协方差的计算。令Y=PX,使得 是对角矩阵,且对角线上的值从大到小排列。 展开S,如下所示: 令A= ,很容易证明A是对称矩阵,那么 实对称均值的对角化

R语言常用的矩阵操作

陌路散爱 提交于 2020-02-14 23:36:53
R语言是一门非常方便的数据分析语言,它内置了许多处理矩阵的方法。下面列出一些常用的矩阵操作方法示例。 矩阵的生成 > mat <- matrix(1:16, ncol = 4, nrow = 4, byrow=TRUE, dimnames=list(c(paste("x", 1:4, sep = ".")), c(paste("y", 1:4, sep = ".")))) > mat y.1 y.2 y.3 y.4 x.1 1 2 3 4 x.2 5 6 7 8 x.3 9 10 11 12 x.4 13 14 15 16# 矩阵的行列名还可以使用rownames或者colnames进行修改 > rownames(mat) <- paste("row", 1:4, sep=".") > colnames(mat) <- paste("col", 1:4, sep=".")> mat col.1 col.2 col.3 col.4 row.1 1 2 3 4 row.2 5 6 7 8 row.3 9 10 11 12 row.4 13 14 15 16 矩阵的维度 # 表示这是一个4行4列的矩阵> dim(mat) [1] 4 4 矩阵的加减 > mat.2 <- matrix(51:66, nrow = 4) > mat.2 [,1] [,2] [,3] [,4] [1,] 51

ZZULIOJ 1125: 上三角矩阵的判断

南楼画角 提交于 2020-02-14 23:09:51
1125: 上三角矩阵的判断 题目描述 编写程序,输入一个正整数n(1<=n<=10)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。 上三角矩阵即主对角线以下(不包括主对角线)的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。 要求定义函数IsUpperTriMatrix()判断矩阵a是否是上三角矩阵,如果是返回1,否则返回0。函数原型如下: int IsUpperTriMatrix(int a[][N], int n); 输入 输入一个正整数n(1<=n<=10)和n阶 方阵 a中的元素,均为整数。 输出 如果a是上三角矩阵,输出“YES”,否则,输出“NO” 样例输入 4 1 2 3 4 0 2 2 2 0 0 3 4 0 0 0 4 样例输出 YES (C语言) # include <stdio.h> int IsUpperTriMatrix ( int a [ ] [ 11 ] , int n ) //函数原型中的N换成具体数据,要求1<=n<=10,所以N=11 { int i , j , flag = 0 ; /*判断当j<i时,二维数组中对应的数是否为0*/ for ( i = 0 ; i < n ; i ++ ) { for ( j = 0 ; j < i ; j ++ ) { if ( a [ i ] [ j ] != 0

MATLAB绘图与图形处理

风格不统一 提交于 2020-02-14 02:05:15
参考: http://www.cnblogs.com/djcsch2001/tag/MATLAB/ matlab部分写的不错! 7.2 三维图形 7.2.1 三维曲线、面填色命令 命令1 comet3 功能 三维空间中的彗星图。彗星图为一个三维的动画图像,彗星头(一个小圆圈)沿着数据指定的轨道前进,彗星体为跟在彗星头后面的一段痕迹,彗星轨道为整个函数所画的实曲线。注意一点的是,该彗星轨迹的显示模式EraseMode为none,所以用户不能打印出彗星轨迹(只能得到一个小圆圈),且若用户调整窗口大小,则彗星会消失。 用法 comet3(z) 用向量z中的数据显示一个三维彗星 comet3(x,y,z) 显示一个彗星通过数据x,y,z确定的三维曲线。 comet3(x,y,z,p) 指定彗星体的长度为:p*length(y)。 例7-24 >>t = -20*pi:pi/50:20*pi; >>comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t); 图形的结果为图7-24。 命令2 fill3 功能 用指定的颜色填充三维多边形。阴影类型为平面型和Gouraud型。 用法 fill3(X,Y,Z,C) 填充由参数x,y和z确定多边形。若x,y或z为矩阵,fill3生成n个多边形,其中n为矩阵的列数。在必要的时候

线性代数

十年热恋 提交于 2020-02-13 23:10:07
目录 第一章 行列式 1 二阶与三阶行列式 2 全排列及其逆序数 3 n阶行列式的定义 4 对换 5 行列式的性质 6 行列式按行(列)展开 7 克拉默法则 习题 第二章 矩阵及其运算 1 矩阵 2 矩阵的运算 3 逆矩阵 4 矩阵分块法 习题二 第三章 矩阵的初等变换与线性方程组 1 矩阵的初等变换 2 矩阵的秩 3 线性方程组的解 习题三 第四章 向量组的线性相关性 1 向量组及其线性组合 2 向量组的线性相关性 3 向量组的秩^ 4 线性方程组的解的结构 5 向量空间 习题四 第五章 相似矩阵及二次型 1 向量的内积、长度及正交性 2 方阵的特征值与特征向量 3 相似矩阵 4 对称矩阵的对角化 5 二次型及其标准形 6 用配方法化二次型成标准形 7 正定二次型 习题五 第六章 线性空间与线性变换 1 线性空间的定义与性质 2 维数、基与坐标 3 基变换与坐标变换 4 线性变换 5 线性变换的矩阵表示式 习题六 来源: https://www.cnblogs.com/end/archive/2011/11/13/2247563.html

二维数组中的查找某个数

橙三吉。 提交于 2020-02-13 22:31:17
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题意比较简单,如果能想到从左下角来开始查找数据则非常简单,如果target大于则向右移动一个单位、小于则向上移动一个单位。 public class Solution { public boolean Find(int [][] array,int target) { int i = array.length -1; int m = array[0].length -1; int j = 0; while(i>=0 && j<=m){ if(target == array[i][j]){ return true; }else if(target >array[i][j]){ j++; }else{ i--; } } return false; }} 来源: https://www.cnblogs.com/ScarecrowAnBird/p/6729466.html

拟牛顿法 分析与推导

只谈情不闲聊 提交于 2020-02-13 22:20:19
  针对牛顿法中海塞矩阵的计算问题,拟牛顿法主要是使用一个海塞矩阵的近似矩阵来代替原来的还塞矩阵,通过这种方式来减少运算的复杂度。其主要过程是先推导出海塞矩阵需要满足的条件,即拟牛顿条件(也可以称为拟牛顿方程)。然后我们构造一个满足拟牛顿条件的近似矩阵来代替原来的海塞矩阵。   另外,在满足拟牛顿条件的基础上如何构造近似的海塞矩阵,这有很多种方法,比如:DFP算法,BFGS算法,L-BFGS算法以及Broyden类算法等。本文主要介绍前两种算法构造近似还塞矩阵。 1、拟牛顿条件 那么,如何构造一个近似海塞矩阵呢?即构造出来的近似海塞矩阵需要满足哪些条件呢?为此,我们先来看下牛顿法中的海塞矩阵是如何推导出来的。 在牛顿法中,首先对函数f(x)在x=x k+1 处进行泰勒展开,即: 然后对f(x)求偏导: 在牛顿法中,到此步后我们就已经得到了海塞矩阵,然后对f(x)的导数赋值为0,得到x的值。 但是我们这次是为了得到海塞矩阵需要满足的条件,于是我们令x=x k 得到: 即: 为了简化下面的符号表达式,令: 于是有: 上式中B k+1 为海塞矩阵,D k+1 为海塞矩阵的逆矩阵。 到了此步,我们可以看出海塞矩阵需要满足(式1.1)这个条件。那么在满足此条件的基础上如何构造近似海塞矩阵呢?下面介绍两个方法:DFP算法和BFGS算法。 1、DFP算法 该算法的核心思想在于通过迭代的方法