深度学习--感知器
感知器(Perceptron)
是神经网络的基本单元,即一个无隐层的神经网络。每个感知器依照输入数据来决定如何对数据进行分类。
Weight:权重
- 某个特征的权重表示该特征的重要程度。权重越大,该特征越重要。
- 输入数据会与权重相乘。
- 权重一开始是随机值,网络根据之前权重下分类的错误来调整权重,这个过程叫神经网络的训练。
输入数据加总
- 经过加权的数据被加总,生成一个值,用来实现最终的输出。
- 感知器把权重应用于输入再加总的过程叫做线性组合
计算**函数的输出
- 通过把感知器的线性组合传递给**函数来实现感知器求和的结果转换成输出信号。
- 层的输出称作”**”
- 最简单的**函数之一就是单位阶跃函数(Heaviside step function)
偏置项 bias
- 在线性组合的结果上加一个偏置项使函数更多的返回我们期望的值
- 我们并不能事先知道神经网络该如何选择偏置项。但没关系,偏置项跟权重一样,可以在训练神经网络的时候更新和改变。权重 () 和偏置项 () 被初始化为一个随机值,然后神经网络使用一种学习算法(比如梯度下降算法)来更新它们的值。权重和偏置项的更新使得下一个训练样本更准确地被归类,数据中蕴含的模式,也就被神经网络“学”出来了。当随机在正态分布中初始化时,因为其值是随机的,可以包含的改变,一边此时b都是简单的直接取0。
- 单个感知器可以实现AND, OR, NOT这样线性可分的分类,但是对于XOR这样非线性可分的话就需要多个感知器了
实现XOR,但是这种表示方法确实不可建模的。
一个简单的神经网络的例子
下图展示了一个简单的神经网络。权重、输入和偏置项的线性组合构成了输入 ,其通过**函数 ,给出感知器最终的输出,标记为
这个架构最酷的一点,也是使得神经网络可以实现的原因,就是**函数 可以是 任何函数,并不只是上面提到的阶跃函数。
例如,如果让 =,输出等于输入,那网络的输出就是:
它跟线性回归模型是一样的!
其它常见**函数还有对数几率(又称作 sigmoid),tanh 和 softmax。实际上,用 sigmoid 函数作为**函数的结果,跟对数几率回归是一样的。