从感知机到神经网络
1、感知机
感知机接收x1和x2两个输入信号,输出y。b是被称为偏置的参数,用于控制神经元被激活的容易程度;而w1和w2 是表示各个信号的权重的参数。这个感知机将x1、x2、1三个信号作为神经元的输入,将其和各自的权重相乘后, 传送至下一个神经元。
2、激活函数
激活函数:将输入信号的总和转换为输出信号
作用:在于决定如何来激活输入信号的总和
先计算输入 信号的加权总和,然后用激活函数转换这一总和
激活函数以阈值为界,一旦输入超过阈值,就切换输出。 这样的函数称为“阶跃函数”。因此,可以说感知机中使用了阶跃函数作为激活函数。
如果感知机使用其他激活函数,那就是神经网络了。
2.1 sigmoid函数
神经网络中用sigmoid函数作为激活函数,进行信号的转换,转换后的信号被传送给下一个神经元。
2.2 sigmoid与阶跃函数的比较
不同点:
- 平滑性
- 感知机中神经元之间流动的是0或1的二元信号,而神经网络中流动的是连续的实数值信号
相同点:
- 都是非线性函数(神经网络不可能是线性的,不然加深神经网络层数就没有意义了)
2.3 ReLU函数
最近常用的神经网络函数:
3、三层神经网络
4、输出层的设计
神经网络可以用在分类问题和回归问题上,不过需要根据情况改变输出层的激活函数。一般而言,回归问题用恒等函数,分类问题用softmax函数。
4.1 恒等函数
恒等函数会将输入按原样输出,对于输入的信息,不加以任何改动地直接输出。
4.2 softmax函数
假设输出层共有n个神经元,计算第k个神经元的输出yk。softmax函数的分子是输入信号ak的指数函数,分母是所有输入信号的指数函数的和。
弊端:容易超出最大值。比如,e 10的值 会超过20000,e 100会变成一个后面有40多个0的超大值,e 1000的结果会返回 一个表示无穷大的inf。
但是可以上下都加上一个常数:
的C可以使用任何值,但是为了防止溢出,一般会使用输入信号中的最大值。
4.21 softmax函数的特征
- softmax函数的输出是0.0到1.0之间的实数
- softmax 函数的输出值的总和是1。(正因为有了这个性质,我们才可以把softmax函数的输出解释为“概率”)
- 即便使用了softmax函数,各个元素之间的大小关系也不会改变。
4.3 输出层的神经元数量
输出层的神经元数量需要根据待解决的问题来决定。对于分类问题,输出层的神经元数量一般设定为类别的数量。比如,对于某个输入图像,预测是图中的数字0到9中的哪一个的问题(10类别分类问题), 可以将输出层的神经元设定为10个
来决定。对于分类问题,输出层的神经元数量一般设定为类别的数量。比如,对于某个输入图像,预测是图中的数字0到9中的哪一个的问题(10类别分类问题), 可以将输出层的神经元设定为10个