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

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

导言

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

矩阵乘法看神经网络

问题是这样一个问题:假设有一个列向量 线性神经网络与jordan标准型网络区别 神经网络 线性代数_神经网络,希望它通过一个“黑箱子”的操作之后,出来的向量和另外的一个等长度的已知向量 线性神经网络与jordan标准型网络区别 神经网络 线性代数_微积分_02

这里的“黑箱子”就是一个网络,它可以简单地理解为矩阵乘向量的嵌套,即:
线性神经网络与jordan标准型网络区别 神经网络 线性代数_神经网络_03
这里的 线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_04 是参数矩阵,里面的元素都是一些未知的参数,这里的 线性神经网络与jordan标准型网络区别 神经网络 线性代数_神经网络_05 是参数列向量。线性神经网络与jordan标准型网络区别 神经网络 线性代数_线性代数_06 的规模总是让上式是合理的。线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_07 是一个函数,人们喜欢称之为激活函数,它作用于一个向量表示分别作用于向量的每个分量。线性神经网络与jordan标准型网络区别 神经网络 线性代数_机器学习_08

举个简单的例子。令 线性神经网络与jordan标准型网络区别 神经网络 线性代数_线性代数_09。取激活函数为 sigmoid 函数:
线性神经网络与jordan标准型网络区别 神经网络 线性代数_机器学习_10
那么,线性神经网络与jordan标准型网络区别 神经网络 线性代数_微积分_11,这就是逻辑回归的输出形式。逻辑回归就是一种最简单的神经网络。

微积分视角看训练

由上可知,线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_12 本质上就是一个含参的表达式,神经网络训练要做的事情就是调整参数,使得对于已知的 线性神经网络与jordan标准型网络区别 神经网络 线性代数_神经网络线性神经网络与jordan标准型网络区别 神经网络 线性代数_微积分_02线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_12线性神经网络与jordan标准型网络区别 神经网络 线性代数_微积分_02 尽可能地近。度量向量之间的远近有很多种度量,比如欧式距离:
线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_17
线性神经网络与jordan标准型网络区别 神经网络 线性代数_线性代数_18 表示向量 2 范数。我们也称 $\mathcal{L} $ 为损失函数。显然,这里的 线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_19

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

要用梯度下降,就要求损失函数的梯度,梯度是由目标函数对各个参数求导组成的一个向量,所以,线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_19 需要对各个参数求导。线性神经网络与jordan标准型网络区别 神经网络 线性代数_深度学习_12

上面提到的仅仅是一组输入输出的情况,当有多组输入输出 线性神经网络与jordan标准型网络区别 神经网络 线性代数_神经网络_22 的时候,我们如此定义损失函数:
线性神经网络与jordan标准型网络区别 神经网络 线性代数_神经网络_23
训练的优化过程和上述是一致的。