x和w都是向量,b是标量,感知机的输出是:w和x做内积之后+偏移b,最后加上一个函数(这个函数很多种选择)。
如果当前是第i个样本,yi是真实标签值,
解释一下,损失函数中,如果分类正确的话-y
损失函数求导,w的导数为yixi,b的导数为yi(损失函数中,把b写进了w和x向量里,b以增广矩阵的形式放到了w矩阵最后一列了)
感知机等价于用损失函数,使用批量大小为1做梯度下降。
一次分类不出,就先学一个简单的函数,再学一个简单函数,再用另一个简单函数组合之前学的两个函数。
隐藏层的大小是一个超参数,输入的大小是不能改变的,输出的大小看输入数据分为几类,而隐藏层有多大是能设计的。
注意,这里是解释单分类,而右边图片明显分类数为3,因此不要对应起来,具体解释如下:
Q:为什么需要非线性的激活函数?
答:假设激活函数为f(x)=x,也输出就是输入的话,则h = W1x+b1,再把h带入到第二个式子:o = W2Th+b2,则o = w2TW1x+b‘ ,并且w2TW1是一个向量,若把它记为W’ ,那么最后的输出是 o = w‘x+b’,仍然是一个线性模型,就无法解决XOR问题,也就等价于单层感知机。
蓝色曲线是红色曲线的soft版本,更平滑。
主要的好处:算起来很快,不用像之前的函数做指数运算。
多类分类和softmax没有本质区别是因为,相对于softmax回归,唯一不同是加了隐藏层,加上隐藏层就变成了多层感知机,没有加就是softmax回归。
做多类分类的感知机如下:
每一个隐藏层都有自己的W和b。