什么是神经网络

让计算机自己去解决问题,神经网络就是一个函数,从训练数据集中求出多元方程组的解,之后使用这个函数,求出输入对应的预期输出。

简单来说,神经网络就是能够从训练数据集学习的函数。

使用神经网络过程:

  1. 首先要构建一个解决某一个问题的神经网络。(创建函数)
  2. 使用大量训练数据集,训练网络。(求解多元 方程组)
  3. 最终得到一个神经网络(函数),输入数据,输出期望信息。

简单原理

公式:W1x1 + W2x2 > b
  1. W1、W2:weigh权重,用于改变分类直线的角度。神经元角度(W1、W2代表了输入与神经元连接的强度)
  2. b:bias 偏置,用于改变分类直线的位置。神经元角度(b表示一个神经元是否可被输入激活的阈值)
所以可以重复使用这个公式,分类任何可以被一条直线分类的数据集。

问题:怎么找到W1、W2、b的值,即所谓参数值。

训练神经元,反向传播和梯度下降算法 训练过程中的计算机会尝试一点点增大或减小每个参数,看其能如何减少相比于训练 数据集的误差,以望能找到最优的参数组合。

找到了W1,W2,b,即可以使用神经元做分类。

一个神经元所能做的唯一事情:使用权重和偏置检查输入值,将一个数据点分到两类中的一类。

带有两个输入时,一个神经元可以使用一条直线将一个数据点在一个二维空间中分成两类。如果有三个输入,一个神经元可以使用一个平面将一个三维空间分成两部分,以此类推。这就是所谓的「使用一个超平面分割 n 维空间(dividing n-dimensional space with a hyperplane)」。

一个神经元可以将任何数据点分为两类

隐含层

使用隐含层,将输入变换为特征空间,把非线性的问题,使其线性分类。