神经网络:表示(Neural Networks: Representation)
如今的神经网络对于许多应用来说是最先进的技术。
对于现代机器学习应用,它是最有效的技术方法。
神经网络模型是许多逻辑单元按照不同层级组织起来的网络, 每一层的输出变量都是下一层的输入变量。
下图为一个 3 层的神经网络:
第一层为输入层(Input Layer)
中间一层为隐藏层(Hidden Layers)
最后一层为输出层(Output Layer)
我们为每一层都增加一个偏差单位(bias unit):
代表第 j 层的第 i 个激活单元。
代表从第 j 层映射到第 j+1 层时的权重的矩阵。
其尺寸为:以第 j+1 层的激活单元数量为行数,以第 j 层的激活单元数加1为列数的矩阵。
对于上图所示的模型,激活单元和输出分别表达为:
每一个 a 都是由上一层所有的 x 和每一个 x 所对应的权重决定的。
把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION )
完整计算过程:
其实神经网络就像是 logistic regression,只不过我们把 logistic regression 中的输入向量[x1~x3]变成了中间层的[a(2)1~a(2)3]。
我们可以把 a0,a1,a2,a3看成更为高级的特征值,也就是 x0,x1,x2,x3的进化体,并且它们是由 x 与决定的。
这些更高级的特征值远比 x 次方厉害,也能更好的预测新数据。
这就是神经网络相比于逻辑回归和线性回归的优势。
—————————————————————————————————————————————————————————
从本质上讲,神经网络能够通过学习得出其自身的一系列特征。
神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑 AND、逻辑或 OR 、逻辑非NOT。
可以利用神经元来组合成更为复杂的神经网络以实现更复杂的运算, 例如 XNOR 功能。
按这种方法我们可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。
这就是神经网络的厉害之处。
—————————————————————————————————————————————————————————
假设k类,则输出层有k个神经元。
每个样例的类标都是一个k向量,对应下标置1,其余置0。
如有4类: