大多数现代神经网络的基本组成部分是一层神经元,本篇文章中,你将学会如何构造一层神经元,一旦你把它放下,你就能把那些积木,把它们放在一起形成一个大的神经网络。
一层神经元是如何工作的?
下面是我们从需求预测示例中得到的示例,我们有四个输入特征被输入到这层三个神经元中,在这个隐藏层里面,然后将输出发送到只有一个神经元的输出层,让我们放大到隐藏层来看看它的计算,这个隐藏层输入四个数字,这四个数字是三个神经元的输入,这三个神经元中的每一个都只是执行一个小的逻辑回归单元或者一个小小的逻辑回归函数,以第一个神经元为例,它有两个参数w和b,事实上,这是第一个隐藏的单位,把这个下标为W1B1,它所做的是输出一些激活值a,a=g(w*x+b),这里是熟悉的Z值,在逻辑回归中所学到的,g(z)是我们熟悉的逻辑函数,所以也许这最终是一个数字0.3,这就是激活值。第一个神经元a表示这是第一个神经元,再在它下边加一个下标1,所以a1=0.3,这是非常负担得起的机会,基于现在的输入特性。
第二个神经元有参数W2和B2两个,这是第二个后勤单元的参数,所以它计算出一个a2=(w2*x+b2),假设它是0.7,因为在这个例子中,我们认为潜在的偏见会意识到这件T恤的可能性,同样,第三个神经元有第三组参数W3和B3,类似的计算一个激活值,a3=(w3*x+b3),可能是0.2,所以在这个例子中,这三个神经元输出了0.3、0.7和0.2,这个由三个数组成的向量称为激活值的向量,然后传递到这个神经网络的最终输出层。
当你构建多层神经网络时,给图层不同的数字会很有用,三个圆圈那一层被称为神经网络的第一层,一个圆圈被称为第二层,输入层有时也称为零层,今天神经网络可以有几十个甚至数百个层,为了引入符号来帮助我们区分不同的层,将使用上标方括号[1]来索引不同的层,所以特别是方括号中的上标,将用一个符号表示神经网络中隐藏层的第一层输出,同样的,w1,b1时神经网络第一层第一单元的参数,所以还要在方括号中加上一个上标。而w2b2是第二个隐单元的参数或者第二个隐藏的神经元,所以这些参数也在这里表示这些是这个神经元第一层的隐藏单元的激活值,也许这个符号有点乱,但要记住,每当看到这个上标[1],这只是指与神经网络第一层相关的数量,如果看到上标[2],指的是与神经网络第二层相关的数量,其他层也是如此,包括第三层,第四层以此类推。这就是神经网络第一层的计算,它的输出是这个激活向量,上标[1],这个输出[1]变成了第二层的输入。
现在,放大神经网络第二层的计算,也就是输出层。所以第二层的输入是第一层的输出,向量a是[0.3,0.7,0.2],因为输出层只有一个神经元,它所做的就是计算一个下标,这是第一个也是唯一一个神经元的输出,作为g,应用于W1的Z状结肠函数,在带有上标方括号的产品中,所以这是进入这一层的输入,a1=g(w1*a[1]+b1),这就是所熟悉的Z,g是应用于这个的Z状结肠函数,如果这产生了一个数字,比如0.84,然后这就成为神经网络输出层的输出,在这个例子中,一位内输出层只有一个神经元,这个输出只是一个标量,这是一个单一的数字,而不是坚持我们的符号惯例的数字矢量,从以前开始,我们将使用方括号中的上标表示与神经网络第二层相关的量,所以上标[2]是这一层的输出,也就是神经网络的最终输出,为使符号一致,还可以添加这些上标[2],表示这些是参数和激活值,与神经网络的第二层相关联。
一旦神经网络计算出一个2,可以选择执行或不执行最后一个可选步骤,如果你想要一个二进制预测,你知道这是最畅销的还是零,是或不是,可以选取数字a上标[2]记作1,计算的临界值是0.5,所以如果它大于等于0.5.可以预测y帽=1,如果小于0.5,可以预测y帽=0,
这就是神经网络的工作原理,每一层都输出一个数字向量,并对其应用一组逻辑回归单元,然后计算另一个数字向量,然后从一层传递到另一层,直到你得到最终的输出层计算,这是对神经网络的预测,可以在零阙值或者不提出最终的预测。