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

多神经元神经网络

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

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

多神经元神经网络概述

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

image-20210716111314267

  • 最左侧负责输入的特征叫作输入层
  • 最右侧输出的叫作输出层
  • 而中间的全部曾叫作隐藏层

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

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

image-20210716111933995

运算流程:网络

image-20210716112556336

再来对比一下多神经元网络,咱们把多神经元网络单个拆分红一个一个单独的神经元来看:框架

image-20210716111647540

image-20210716111659199

其具体运算流程以下:oop

image-20210716112507229

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

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

超参数调参方法

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

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

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

\

相关文章
相关标签/搜索