深度学习中总会牵扯到大量的数值计算,且对于计算机视觉而言,其中很大一部分都是对于矩阵进行操作。

对于矩阵而言,卷积是很重要的一个操作,相对于平常函数的卷积:∫f(τ)∗g(x−τ)dτ\int f(\tau)*g(x-\tau) d\tau∫f(τ)∗g(x−τ)dτ
矩阵在进行卷积时,与之相类似,利用卷积核从左上角开始取与卷积核尺寸相同的元素进行对应元素相乘再相加。

卷积的方式有三种:full、same、valid
假设一矩阵image尺寸为n×n,卷积核filter尺寸为f×f,则image * filter为:

  • full
    对于full而言,卷积核刚刚接触矩阵时就开始进行计算。

  • same
    对于same,是指当filter的中心接触到image时开始进行计算。

  • valid
    对于valid是指filter需全部在image中才可以进行计算。

我们看到,在进行full和same模式的卷积运算时,卷积核会与超出已有矩阵的范围计算。因此我们需要另一个操作——padding,在已有的矩阵周围补充一些像素点并初始化为零。
若给定padding=p,经过padding之后的图片尺寸变为(n+2p)×(n+2p)(n+2p)×(n+2p)(n+2p)×(n+2p)。
若要保证padding之后卷积前后尺寸不变,需要:p=f−12p=\frac {f-1} {2}p=2f−1​

在进行卷积运算时,还有一项概念——步长stride。
步长是指在卷积核与相应矩阵区域进行卷积之后,下一次计算的区域与本次计算区域的距离。

如上图所示,设stride(s)为2,表格中1表示第一次计算的区域,2表示经过步长=2之后的计算区域。

综上,若一矩阵image尺寸为n×n,卷积核filter尺寸为f×f,令padding=p,stride=s,则image * filter的输出尺寸为:(n+2p−fs+1)∗(n+2p−fs+1)(\frac {n+2p-f} {s}+1)*(\frac {n+2p-f} {s}+1)(sn+2p−f​+1)∗(sn+2p−f​+1)

至此,下面介绍矩阵的求导。
矩阵的求导根据法则见:
https://blog.csdn.net/jmh1996/article/details/85040660
有矩阵对元素的求导,矩阵对向量的求导,矩阵对矩阵的求导等等。
具体的总结见:
https://blog.csdn.net/a493823882/article/details/81324037

下面是我对矩阵对向量求导的推导过程。
假设有一矩阵AA=[a11a12a13a21a22a23a31a32a33]A= \begin{bmatrix} a11 & a12 & a13 \\ a21 & a22 & a23 \\ a31 & a32 & a33 \\ \end{bmatrix} A=⎣⎡​a11a21a31​a12a22a32​a13a23a33​⎦⎤​有一向量xx=[x1x2x3]x= \begin{bmatrix} x1 \\ x2 \\ x3 \\ \end{bmatrix} x=⎣⎡​x1x2x3​⎦⎤​则令y为y=Ax=[a11×x1+a12×x2+a13×x3a21×x1+a22×x2+a23×x3a31×x1+a32×x2+a33×x3]y=Ax= \begin{bmatrix} a11×x1+a12×x2+a13×x3 \\ a21×x1+a22×x2+a23×x3 \\ a31×x1+a32×x2+a33×x3 \\ \end{bmatrix} y=Ax=⎣⎡​a11×x1+a12×x2+a13×x3a21×x1+a22×x2+a23×x3a31×x1+a32×x2+a33×x3​⎦⎤​那么根据Jacobian矩阵:

Ji,j=∂∂xjf(x)iJ_{i,j}=\frac {\partial} {\partial x_j}f(x)_iJi,j​=∂xj​∂​f(x)i​

y第一个元素对x1、x2、x3分别求导为输出的第一列,第二个元素对x1、x2、x3分别求导为输出的第二列,第三个元素对x1、x2、x3分别求导为输出的第三列,以此类推。
那么yx的导数为[a11a21a31a12a22a32a13a23a33]\begin{bmatrix} a11 & a21 & a31 \\ a12 & a22 & a32 \\ a13 & a23 & a33 \\ \end {bmatrix} ⎣⎡​a11a12a13​a21a22a23​a31a32a33​⎦⎤​即y=Ax中,∂y∂x=AT\frac {\partial y} {\partial x}=A^T∂x∂y​=AT

第一次写学习笔记,希望也相信自己可以坚持下去。
种一棵树最好的时间是十年前,其次是现在。

【深度学习学习笔记】数值计算——矩阵相关推荐

  1. 深度学习-最优化笔记

    深度学习-最优化笔记 作者:杜客 链接:https://zhuanlan.zhihu.com/p/21360434 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 译 ...

  2. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

     深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening 主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通 ...

  3. Deeplearning.ai深度学习课程笔记-在线版

    注意:请点击阅读原文 课程概述 课程视频离线版本可以到github:https://github.com/fengdu78/deeplearning_ai_books 查找下载. 课程地址:https ...

  4. torch的拼接函数_从零开始深度学习Pytorch笔记(13)—— torch.optim

    前文传送门: 从零开始深度学习Pytorch笔记(1)--安装Pytorch 从零开始深度学习Pytorch笔记(2)--张量的创建(上) 从零开始深度学习Pytorch笔记(3)--张量的创建(下) ...

  5. 过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...

    <python深度学习>笔记---4.4.过拟合与欠拟合(解决过拟合常见方法) 一.总结 一句话总结: 减小网络大小 添加权重正则化 添加 dropout 正则化 1.机器学习的根本问题? ...

  6. 深度学习入门首推资料--吴恩达深度学习全程笔记分享

    本文首发于微信公众号"StrongerTang",可打开微信搜一搜,或扫描文末二维码,关注查看更多文章. 原文链接:(https://mp.weixin.qq.com/s?__bi ...

  7. 深度学习入门笔记(六):误差反向传播算法

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  8. 深度学习入门笔记(四):神经网络

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  9. 深度学习入门笔记(十六):计算机视觉之边缘检测

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  10. 深度学习word2vec笔记之算法篇

    本文转载自<深度学习word2vec笔记之算法篇>对排版和内容作了部分调整,感谢大佬分享. PDF版本关注微信公众号:[终南樵],回复:[word2vec基础]获取 1. 声明 该博文是G ...

最新文章

  1. 给你的数据一个家,一个有DOI的地方 | 生物数据库承建
  2. access 战地1不加入ea_战地1正式加入origin access
  3. java-基础练习题3
  4. Concurrent集合 Atomic类
  5. setfacl 权限导出_Linux如何使用setfacl命令创建权限文件
  6. 谈谈Java开发中的对象拷贝
  7. 初学angularJS 个人总结 错误排除
  8. PLSQL大数据生成规则
  9. 闻泰通讯手机软件测试笔试内容,中科方德软件测试面试笔试经验
  10. asp.net开源项目及学习资料
  11. honeywell1900扫描枪的使用说明
  12. 太阳光轨迹软件_飞时达日照分析软件-FastSUN(日照分析软件)下载 v12.0中文版--pc6下载站...
  13. Flask框架学习:蓝图的使用
  14. 卢卡斯定理求组合数(逆元+费马小定理+扩展欧几里得)
  15. 爱剪辑 服务器维护,爱剪辑联网检测失败怎么办-修复爱剪辑联网检测失败的方法 - 河东软件园...
  16. Android面试经验一:
  17. Java安装环境变量
  18. 基于规则的中文地名识别系统的设计与实现
  19. SAST——Checkmarx静态检测工具收集(2)
  20. C#联合halcon开发框架源码

热门文章

  1. Android kotlin run函数学习
  2. x requested with php,PHP / Ajax“Vary:X-Requested-With”对我不起作用!
  3. 【论文阅读】Adaptive Cross-Modal Prototypes for Cross-Domain Visual-Language Retrieval
  4. 软件测试 | 手把手教你如何使用 Fiddler 抓包工具(电脑+手机端)
  5. 福师《大学摄影》在线作业一、二
  6. 修改安卓系统应用,将自己的app变成系统应用(需要root)
  7. Numpy API 速查表
  8. 编程题目:使用C++语言模拟完成一个简单的计算机系统
  9. 明明白白学通C语言 二维码版 pdf
  10. 关于springboot整合log4j2的史上最全配置解释