主要是在学习Michael Nielsen的《神经网络与深度学习》时整理的一些零散知识点以及自己的理解
神经网络与手写识别
1.感知器
感知器就是人工神经元模型,现在主要是用一种叫S型神经元。
只有0或者1这两种信号
然后引入了权重和阈值
权重用来表示输入对输出的重要性
阈值用来和分配权重后的总和Σ w*x相比较来决定输出0还是1
令 b=-threshold,则称b为偏置而不是阈值
2.S型神经元
与感知器一样,但被修改权重和偏置就只会引起输出微小的变化。这样我们就可以修改权重和偏置来让 网络达到我们想要的
输入的值可以取0-1之间的值,而不是仅仅0或1,比如0.5443
输出也不是0或1,而是σ(w · x+b)
这里σ被定义为S型函数,定义为
3.神经网络架构
先介绍一些术语,比如这个神经网络
最左边的成为输入层(Input layer),其中的神经元成为输入神经元
最右边的即输出层(Output layer)包含输出神经元
而中间,被称为隐藏层(Hidden layer),这个“隐藏”并没有什么特别的含义,只是因为他既不是输入也不是输出
这种多层神经网络会被称为多层感知器或者MLP
目前我们所说的神经网络都是以上层输出作为下一层的输入。这种网络被称为前馈神经网络这意味着信息总是向前传递,并没有反向回馈。
具有反馈环路的被称为递归神经网络。
4.梯度下降(Gradient Descent)
梯度就是目标函数的导数,梯度下降的目的就是求损失函数最小值(0)时对应自变量的取值
损失函数就是自变量为算法的参数,函数值为误差的函数
即梯度下降就是要找到误差最小的那个算法的参数
梯度下降含义(具体操作)是:改变x的值使得导数的绝对值变小,当导数小于0时候,我们要让目前x值大一点点,再看它导数值。当导数大于0时候,我们要让目前x值减小一点点,再看它导数值。当导数接近0时候,我们就得到想要的自变量x了。也就是说找到这个算法最佳参数,使得拟合(也就是回归)曲线与真实值误差最小。