NN-Neural Network
开始学习神经网络(Neural Network)
已有线性与逻辑回归,为什么需要用到NN
实际的应用中,需要根据很多特征进行训练分类器,当今有两个特征下,可以通过下图表述:
我们来看看我们如何使用神经网络来表示一个假设函数。简单地,神经元基本上是计算单位,其将输入(树突)作为被输送到输出(轴突)的电输入(称为“尖峰”)。 在我们的模型中,我们的树突像输入特征\(x_1、x_2...x_n\),输出是我们假设函数的结果。 在这个模型中,我们的\(x_0\)输入节点有时被称为“偏置单元”。 它总是等于1。
我们的输入节点(第1层)也称为“输入层”,进入另一个节点(第2层),最终输出称为“输出层”的假设函数。在输入层与输出层之间的部分我们一般称为隐藏层。在这个例子中,我们标注这些中间层或“隐藏”层节点\(a_0^2...a_n^2\)并将其称为“激励单元”。
\(a_j^{(j)}\)称为第j层中的第i个单元,矩阵\(\Theta^{(j)}\)描述的是第j层到第j+1层权重。下图反应了仅包含一个隐藏层的情况:
每个节点的”激励“(activation)按照一下计算:
对于权重矩阵的维度:
如果网络在层j + 1中有和\(s_{j+1}\)单元,层j中具有\(s_j\)单元,则\(\Theta^{(j)}\)将为尺寸\(s_{j+1}\)×(\(s_j\) + 1)。
如:在第一层有2个输入单元,第二层有4个激励点,那么权重参数\(\Theta^{(1)}\)的维度为4×(2+1)=4×3。
总结如下图所示:
接下来,我们将对上述函数进行向量化实现。 我们要定义一个包含我们g函数内的参数的新变量\(z_k^{(j)}\)。 在我们前面的例子中,如果我们用变量z代替所有参数,我们将得到:
\(z_k^{(2)}=\Theta_{k,0}^{(1)}x_0+\Theta_{k,1}^{(1)}x_1+...\Theta_{k,n}^{(1)}x_n\)
用向量表示为:
\(z^{(j)}=\Theta^{(j-1)}a^{(j-1)}\)
最后有:\(h_\Theta(x)=a^{(j+1)}=g(z^(j+1))\)
请注意,在最后一步中,在层j和层j + 1之间,我们的做法与我们在逻辑回归中完全一样。 在神经网络中添加所有这些中间层使我们能够更优雅地产生有趣和更复杂的非线性假设。