目录
1 神经元
上次做的线性归回是单个神经元,并且再网络的最后没有使用激活函数而是直接进行输出
- 神经元:我下面画的这个圈就是神经元
我们每一个输入我们理解为都有一定的特征,我们定义为x1,x2,x3,每一个特征我们认为都有相应的权重改变 y = ax + b 我们把这些权重求和,最终通过传递函数(激活函数)输出结果,下面这个图是单个神经元的图例
如果有多个神经元,我们就可以得到多个输出,这个可以是中间层的神经元,也可以是最终的输出,比如我们对货物进行分类,最终判定的结果有两个,是否易碎,是否有棱角,如果满足两种条件都会有相应的输出
单层神经元(注意是层不是个,三个神经元在一层也叫单层神经元)没有办法处理异或运算
- 异或运算
原因是单层神经元要求的数据必须是线性的,异或问题无法找到一条直线分割两个类
为了解决单层神经元无法解决异或问题,我们可以多加几层
2 激活函数
激活函数的作用是筛选部分没有用的输入,我们可以使用一个图片举一个例子
在这个图中A就是被激活的信号,B就是没被激活的信号,当信号满足激活函数的条件,这个信号才可以输出给下一个神经元(或直接输出出去)
如果没有激活函数的话,我们无论有多少Dense层,我们最终的结果也是线性的,如果有激活函数,我们就摆脱了结果只为线性的约束
加入我们看电视剧判断一个人是否为正面人物,我们也是通过不同的输入来得到的这个结果,比如是否甘于奉献,是否善待他人等
下面是常用的几个激活函数
2.1 relu
当输入小于0时,输入为0,当输入大于零时,输出与输入相等的数值
2.2 sigmoid
是按照图中的p(x)根据输入x进行输出,输出范围为[-1,1],逻辑回归会使用sigmoid
2.3 tanh
这个的范围也是[-1,1]之间
2.4 Leak relu
相比relu会输出一些负值,常用于生成的网络中,比如使用对抗网络生成一张图