终于学到多层感知机了,累死哥们了。。。
下面是多层感知机的过程图,以及相关的运算公式过程:
首先是x,假设是一个n * 1的列向量,一般x的输入数据都是这样的一个列向量
其次是W1,是一个m * n的权重矩阵,m实际上指的是我们的隐藏层共有m个节点,也就是上图中h的个数(m=5),n列指的是x的输入个数。
W2是输出层的权重,m * 1的列向量
之后就是计算了,当一个x列向量输入到多层感知机时,我们知道很多模型都是基于线性回归进行拓展的,感知机也是如此,相比如线性回归y=wx+b多了一个激活函数,这样隐藏层的输出就是
我们知道共有m个h,W是m * n的矩阵,W1x就能得到m个h的值,并且每个h都是通过输入数据x1-xn与各个h对应的x1-xn的权重的和,正好得到m个h。这样m个h就可以作为输出层的输入继续进行计算,最后得到输出值的一个m向量。
那么为什么会出现多层感知机呢?这是由于感知机给出的是一个线性分割,单纯一个感知机的线性分割具有很大局限性,类似XOR函数的问题就不能进行分类,这样通过多个简单感知机的值进行堆叠就能够对XOR问题进行解决。具体可以看李沐的多层感知机的课。