【深度学习入门基础】从线性代数和微积分的角度看神经网络

这是深度学习入门系列文章,我们企图用最简洁的语言、最干净的表达,让读者快速获取到他所想要的。本系列文章持续更新。一些网上能查到的基础知识,诸如激活函数有哪些等,不再介绍。

导言

大多数介绍深度学习的资料,一开始就从生物神经元、轴突、树突、刺激等等讲起,本来很简单的东西,却被介绍得云里雾里。本文将从矩阵乘法和导数的角度入手,让你一下子 get 到什么是神经网络。

矩阵乘法看神经网络

问题是这样一个问题:假设有一个列向量 x\mathbf{x}x,希望它通过一个“黑箱子”的操作之后,出来的向量和另外的一个等长度的已知向量 y\mathbf{y}y 尽可能地“接近”,如何衡量“接近”?且听稍后介绍。

这里的“黑箱子”就是一个网络,它可以简单地理解为矩阵乘向量的嵌套,即:
F(x):=σ(An[⋯(A3[σ(A2[σ(A1x+b1)]+b2)]+b3)]+bn)F(\mathbf{x}):=\sigma(A_n[\cdots (A_3[\sigma(A_2[\sigma(A_1\mathbf{x}+\mathbf{b_1})]+\mathbf{b_2})]+\mathbf{b_3})]+\mathbf{b_n}) F(x):=σ(An​[⋯(A3​[σ(A2​[σ(A1​x+b1​)]+b2​)]+b3​)]+bn​)
这里的 A1、A2…AnA_1、A_2…A_nA1​、A2​…An​ 是参数矩阵,里面的元素都是一些未知的参数,这里的 b1、b2…bn\mathbf b_1、\mathbf b_2… \mathbf b_nb1​、b2​…bn​ 是参数列向量。Ai,bi,i=1,⋯,nA_i, \mathbf{b}_i, i=1,\cdots,nAi​,bi​,i=1,⋯,n 的规模总是让上式是合理的。σ\sigmaσ 是一个函数,人们喜欢称之为激活函数,它作用于一个向量表示分别作用于向量的每个分量。Ai,biA_i, \mathbf{b}_iAi​,bi​ 中元素都是未知量,我们统称为参数。

举个简单的例子。令 A=[w1,w2]A = [w_1,w_2]A=[w1​,w2​]。取激活函数为 sigmoid 函数:
σ(z)=11+e−z\sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+e−z1​
那么,F(x)=σ(Ax+b)F(\mathbf{x}) = \sigma(A\mathbf{x}+b)F(x)=σ(Ax+b),这就是逻辑回归的输出形式。逻辑回归就是一种最简单的神经网络。

微积分视角看训练

由上可知,F(x)F(\mathbf{x})F(x) 本质上就是一个含参的表达式,神经网络训练要做的事情就是调整参数,使得对于已知的 x\mathbf{x}x 和 y\mathbf{y}y,F(x)F(\mathbf{x})F(x) 和 y\mathbf{y}y 尽可能地近。度量向量之间的远近有很多种度量,比如欧式距离:
L(A1,A2,⋯,An,b1,⋯,bn):=∣∣F(x)−y∣∣\mathcal{L} (A_1,A_2,\cdots,A_n,\mathbf{b}_1,\cdots,\mathbf{b}_n):= || F(\mathbf{x}) - \mathbf{y} || L(A1​,A2​,⋯,An​,b1​,⋯,bn​):=∣∣F(x)−y∣∣
∣∣⋅∣∣|| \cdot ||∣∣⋅∣∣ 表示向量 2 范数。我们也称 $\mathcal{L} $ 为损失函数。显然,这里的 L\mathcal{L}L 只是一个关于参数的函数,优化上称之为目标函数,我们想做的就是关于这个函数的参数极小化目标函数。

给定一个目标函数,我们要关于参数极小化它,这是一个无约束优化问题,在数值上有很多求解方法,神经网络采用梯度下降。梯度下降的步长,被人们称为“学习率”。

要用梯度下降,就要求损失函数的梯度,梯度是由目标函数对各个参数求导组成的一个向量,所以,L\mathcal{L}L 需要对各个参数求导。F(x)F(\mathbf{x})F(x) 的表达式可以看出,不同层的参数之间存在嵌套关系,微积分告诉我们,复合类型的函数求导,需要用到链式法则,链式法则在神经网络上的应用,人们喜欢称之为“反向传播”。

上面提到的仅仅是一组输入输出的情况,当有多组输入输出 {xi,yi,i=1,2,⋯,N}\{\mathbf x_i,\mathbf y_i, i = 1,2,\cdots,N\}{xi​,yi​,i=1,2,⋯,N} 的时候,我们如此定义损失函数:
L(A1,A2,⋯,An,b1,⋯,bn):=12∑i=1N∣∣F(xi)−yi∣∣2\mathcal{L} (A_1,A_2,\cdots,A_n,\mathbf{b}_1,\cdots,\mathbf{b}_n):= \frac{1}{2}\sum_{i=1}^N || F(\mathbf{x}_i) - \mathbf{y}_i ||^2 L(A1​,A2​,⋯,An​,b1​,⋯,bn​):=21​i=1∑N​∣∣F(xi​)−yi​∣∣2
训练的优化过程和上述是一致的。

【深度学习入门基础】一、从线性代数和微积分的角度看神经网络相关推荐

  1. 深度学习入门(三)——线性代数和概率统计基础

    线性代数和概率统计基础 微分方程 什么是微分方程 特解和通解 齐次微分方程 全微分方程 积分因子 刘维尔公式 常系数齐次线性微分方程 一阶微分方程 常微分方程的初值问题的解的存在唯一性定理 n阶线性齐 ...

  2. 【深度学习入门基础】二、简单理解 Transformer

    [深度学习入门基础]二.简单理解 Transformer 文章目录 [深度学习入门基础]二.简单理解 Transformer 自注意力层 多头注意力 Transformer 输入(输出)嵌入 位置编码 ...

  3. 计算机视觉研究院出品:深度学习入门基础全库(附链接下载)

    关注并星标 从此不迷路 计算机视觉研究院 学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作者:Edison_G 今天我们"计算机视觉研究院"主要分享深度学习入门的基础书籍集 ...

  4. 深度学习入门基础讲义

    工作确定以后,闲暇时间做了如下一个PPT讲义,用于向实验室新生介绍深度学习.他们大部分在本科期间学习通信相关专业课程,基本没有接触过图像处理和机器学习. 对于一个研究生而言,自学应当是一个最基本也是最 ...

  5. 3D点云数据结合深度学习入门基础(目标篇)

    最近,老师让我们研究深度学习与3D点云数据的研究方向,开始时,确实也不清楚何为3D点云,以及深度学习. 由于实验室师弟师妹全部是做深度学习识图相关横向研究工作的,所以很快的就掌握了,深度学习识图技术, ...

  6. 深度学习入门系列,用白话文的方式让你看得懂学的快(第八章)

    8.1 BP神经网络极简史 在神经网络(甚至深度学习)参数训练中,BP(Back Propagation)算法非常重要,它都占据举足轻重的地位.在提及BP算法时,我们常将它与杰弗里•辛顿(Geoffr ...

  7. 深度学习入门基础CNN系列——填充(padding)与步幅(stride)

    填充(padding) 在上图中,输入图片尺寸为 3 × 3 3\times3 3×3,输出图片尺寸为 2 × 2 2\times2 2×2,经过一次卷积之后,图片尺寸为 2 × 2 2\times2 ...

  8. 深度学习入门基础CNN系列——卷积计算

    卷积计算 卷积是数学分析中的一种积分变换的方法,在图像处理中采用的是卷积的离散形式.这里需要说明的是,在卷积神经网络中,卷积层的实现方式实际上是数学中定义的互相关 (cross-correlation ...

  9. LSTM长短记,长序依赖可追忆(深度学习入门系列之十四)

    摘要:如果你是一名单身狗,不要伤心,或许是因为你的记忆太好了.有时,遗忘是件好事,它让你对琐碎之事不再斤斤计较.然而每当自己记不住单词而"问候亲人"时,也确实气死个人.于是你懂得了 ...

最新文章

  1. matlab拟合函数,Matlab拟合自定义函数 - 计算模拟 - 小木虫 - 学术 科研 互动社区...
  2. C++for循环中i++与++i的区别
  3. linux++命令+q,linux 命令 - osc_panqs2jh的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. promise 浏览器实现的源码_【大前端01-01】函数式编程与JS异步编程、手写Promise...
  5. java 取对象的类_Java中通过Class类获取Class对象的方法详解
  6. python3.x教程_Python3.x基础教程1
  7. 为什么电脑能随便重装系统,而手机刷机可能刷成砖?
  8. 网站被攻击拿下—只因为程序员一个文件上传功能没写好
  9. Oracle9i数据库DataGuard实施及维护手册3
  10. Mysql得隔离级别
  11. literal和meta的意义和用法
  12. 主从表mysql外键_主从表主键外键
  13. 怎么在WORD里给文字“框”起来,干货在这里,WORD文档中文字加边框的独家教程
  14. 0基础学HTML,从快捷方式(IntelliJ IDEA)入手,一步步就能看懂了!
  15. 群友问题,如何面对繁杂的数据需求?
  16. 高并发 高负载 网站系统架构
  17. 【转载】SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答
  18. SAP英语专栏:第1篇
  19. Java程序员:真是会服了面试官,不就要个40k嘛硬是把Spring问烂
  20. 【花雕动手做】有趣好玩的音乐可视化系列小项目(18)--LED平面板灯

热门文章

  1. 第11章两个相关样本的t检验
  2. 4-3 求给定精度的简单交错序列部分和
  3. 商用密码应用与安全性评估之(一)网络空间安全形式与商用密码工作
  4. Unity 3D项目 - 01 - 开始游戏主界面
  5. 个人日记-学习究竟是什么读后感4-2020/7/19
  6. 如何快速查询全部快递单号物流信息
  7. 菜鸟窝-数据结构与算法之稀疏数组
  8. Java 课程设计--数据库管理系统
  9. vue-color-picker-sheldon使用说明(一款基于Vue的取色器/颜色选择器)
  10. [洛谷P4158][SCOI2009]粉刷匠(动态规划)