Fully Connect Feedforward Network
不同的连接方式构成不同的网络结构。 所有的neurons神经节点中的权重$w$和偏置$b$就是Network parameter $\boldsymbol{\theta}$ .
fully connect是指全连接:前一层m个neurons与后一层n个neurons都有连接,连接数为$m \times n$。Feedforward:neurons影响下层neurons,而不会返回影响上层节点。
Deep = Many Hidden Layers:
计算
一个神经网络实际上起到是一个函数作用$\mathbb{R}^m \to \mathbb{R}^n $。输入层进过每一层的计算,最终得到最后的结果。
计算过程中,会用到大量的矩阵计算。*如果输入层是m维,下一层neurons的个数是n,那么这个矩阵就是$n \times m$矩阵。矩阵是线性变换:列$j$代表对输入$a_j$的线性变换,也就是$a_j$与下一层neurons连接的权重组成。矩阵的行$i$与下一层$z_i$对应:$z_i = \sum w_{i}x_* $。如下图,矩阵是一个$2 \times 2$的矩阵:
当经过所有层的运算,实际上就是一个叠加的过程,可以使用并行计算加速矩阵操作:
当输出为多类时,我们可以使用Softmax:
使用神经网络的好处是特征工程不是那么重要了:DL本身就是一个特征变换的过程,另外经常我们不知道哪个特征更好。我们需要决定的是网络结构是什么样的:多少层,每层多少个neurons(经验,尝试),激活函数等。网络结构就决定了我们的function set, 下一步就是怎么衡量function的好坏。我们还是用交叉熵:
和所有的机器学习模型一样,为了找到合适参数组合,最后我们就要最小化所有训练集上的交叉熵之和:
这个最优化问题还是采用梯度下降法去求:
这里梯度的计算就是重点,如何高效的求梯度?就要用到BP算法。