神经网络(一)

写在前面

  • 神经网络, 是深度学习领域中非常重要的概念, 在这个系列文章中, 将会带你理解一些基础概念, 并带你从头推导一个神经网络的正反向传播过程.
  • 在开始之前, 你可能需要掌握一部分微积分知识, 在这里, 附上之前写的微积分系列链接微积分(一), 如果觉得看文字描述比较吃力, 可以考虑看一下里面推荐的视频.

介绍

  • 神经网络, 顾名思义, 就是由多个神经元组成的网络结构. 上图为一个神经元的组成结构, 一个神经元通常具有多个树突, 主要用来接受传入信息. 而轴突只有一条, 轴突尾端有许多轴突末梢可以给其他多个神经元传递信息. 轴突末梢跟其他神经元的树突产生连接, 从而传递信号. 这个连接的位置在生物学上叫做'突触'.

只有一个Feature输入的一个神经元

  • 上图为只有一个Feature输入的一个神经元, 将 作为feature输入, 输入时神经元会对其输入做 的处理, 之后使用active(激活函数激活), 并将其输出. w在这里表示weight, 权重; b在这里表示bias, 偏差.
  • 稍微对线性代数有些了解的话, 应该知道 就是一条直线, 这里很好理解. 由于线性模型在某些场景表达能力不足, 加入了active(激活函数), 使其能表述非线性因素.

输入多个Features

  • 你可能第一眼看到这个图会有点懵, 在这里圆圈代表单元, 方块代表运算. 如果没看懂, 不要慌, 问题不大. 容我慢慢给你解释.
  • 我们用 来表示所有的Features, 那么这里的 中的两个Feature, 最后面那个1是权重的系数, 也就是说在求和这步应该是 , 简化一下就是 , 你应该非常熟悉这个公式, 它跟线性回归模型是一样的!
  • f(h)为激活函数.

激活函数

  • 神经网络中四种常见的激活函数: Sigmoid, ReLU, TanH, Softmax.

  • 上图为Sigmoid函数图形, Sigmoid函数值域是0到1之间, 它的输出还可以被解释为成功的概率. 实际上, 用Sigmoid函数作为激活函数的结果, 跟对数几率回归(Logistic回归)是一样的. 适用于二分类模型.
  • 优点: 在特征相差比较复杂或是相差不是特别大时效果比较好.
  • 缺点: 计算量大, 反向传播求误差梯度时, 求导涉及除法, 容易出现梯度消失的情况, 从而无法完成深层网络的训练.

  • TanH函数也被称为双切正切函数, 取值范围为[-1, 1].
  • 其实就是在Sigmoid函数的基础上做一个变形, 把曲线整体下拉0.5个单位(经过原点)就得到TanH.

  • ReLu函数, 输入信号<0时, 输出都是0; 输入信号>0的情况下, 输出等于输入.
  • 优点: 计算速度非常快, 只需要判断输入是否大于0, 收敛速度远快于Sigmoid和TanH.
  • 缺点: 某些神经元可能永远不会被激活, 导致相应的参数永远不能被更新.

  • Softmax函数主要用于多分类任务, 通常情况下, 我们只会在神经网络的最后一层会采用Softmax函数, 通过运算之后每个神经元会得到一个概率, 用于判断它属于哪个分类.

梯度下降

  • 在神经网络中的梯度下降, 就是对weights, bias进行学习的过程.

写在后面

  • 这个章节中, 对神经网络中的一些基本概念与常用函数做了介绍, 我们将在下个章节内推导正向传播过程.

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据