[机器学习]第四周记录

这篇记录的内容来自于Andrew Ng教授在coursera网站上的授课。 


1.为什么使用神经网络:样本的特征数太多了,使用前面的算法都几乎不可能达到一个理想的结果。

2.神经网络(neural networks):

 受到脑神经的启发,我们有以下结构:

术语:

输入层(input layer):输入样本的特征。

输出层(output layer):输出预测。

隐藏层(hidden layer):因为“看不到”,所以叫隐藏层。(除非debug)

激活单元(activation units):即图中的$a_1^{(2)},a_2^{(2)}$,通过前面一层的输出作为输入,经过激活函数来计算输出值。表示方法为$a_i^{j}$,含义为第j层(输入层是第一层)的第i个激活单元。

激活函数:这里用sigmoid函数。所以每一个输出的值都在(0,1)中。

权重(weights):层与层之间的映射。记为$\Theta^{(j)}$,含义为第j层到第j+1层的权重。$\Theta^{(j)}_{x,y}$表示第j层的第y个(不要搞反了)激活单元与第j+1层的第x个激活单元的权重。权重矩阵的大小是$s_{j+1}*(s_j+1)$的。+1是应为多了一个偏置(bias)项,老传统了。

前向传播(forward propagation):根据输入,计算输出的方法。对于第j层的输出,有:$$a^{j}=g(\Theta^{j-1}*a^{j-1})$$,其中g是sigmoid函数。

我们的假设h函数就等于它,它也是个向量而不止是一个数字了。


1.记号:
L:总层数。

$s_i$:第i层的节点数(不包括偏置项)。

K:分类数。

那么,整个网络的代价即为:

$$J(\Theta)=-\frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{K}(y_k^(i)log((h_{\theta}(x^{(i)}))_k)+(1-y_k^{i})log(1-(h_{\theta}(x^{(i)}))_k))+\frac{\lambda}{2m}\sum_{l=1}^{L-1}\sum_{i=1}^{s_l}\sum_{j=1}^{s_{l+1}}(\Theta_{j,i})^2$$

猜你喜欢

转载自www.cnblogs.com/GreenDuck/p/12330022.html