人工智能学习教程笔记-08:多神经元神经网络

496 阅读2分钟

多神经元神经网络

之前编写的对猫的识别的算法准确率仍然不是很高,主要是因为其是单神经元网络,太过简单,层数太低。

神经网络分为单神经元和多神经元,多神经元神经网络又分为浅层和深层,下面介绍一下多神经元网络中的若干概念。

多神经元神经网络概述

多神经元网络流程是同单神经元网络相同的,只不过层数更多。下面是一个多神经元神经网络,其中间多了一层,但实际中可能远不止一层:

image-20210716111314267

  • 最左侧负责输入的特征叫做输入层
  • 最右侧输出的叫做输出层
  • 而中间的所有曾叫做隐藏层

多神经元网络与单神经元网络

先来复习一下之前学过的单神经元神经网络:

image-20210716111933995

运算流程:

image-20210716112556336

再来对比一下多神经元网络,我们把多神经元网络单个拆分成一个一个单独的神经元来看:

image-20210716111647540

image-20210716111659199

其具体运算流程如下:

image-20210716112507229

我们先算出第一层(不带输入层)的3个神经元的a=\sigma(z),然后再将这3个a当做x输入到第二层的神经元中进行计算。上面的w^{[i]}表示的是第一层的神经元关于输入层x的权重,所以w^{[i]}是一个33的矩阵,因为第一层有3个神经元,每一个神经元都有3个特征输入,共计33。

反向传播计算也一样,先算出第二层的梯度dw和db,然后再向第一层传播,算出第一层3个神经元的dw和db。

超参数调参方法

神经网络的层数、每层神经元的个数都是超参数,和前面提到的学习率一样,需要慢慢调才能找到一个最合适的值,调的方式大概有几种:

  • 网格搜索/穷举搜索 在高维空间不实用,复杂度过高
  • 随机搜索 很多超参是通过并行选择的,它们之间是相互独立的。一些超参会产生良好的性能,另一些不会。
  • 手动调参 主要是靠各位调参侠的经验了
  • 自动参数寻优(Auto Machine Learning) 这是目前比较新的一个方向,比较成熟的框架有Auto-Skleran

其实最主要用到的还是手动调参,不同的项目背景下有不同的原则,建议从一个较小数值开始,如 果欠拟合然后慢慢添加更多的层和神经元,如果过拟合就减小层数和神经元。

\