codecamp

AI人工智能 卷积神经网络(CNN)

卷积神经网络与普通神经网络类似,因为它们也由具有可学习权重和偏置的神经元组成。普通神经网络忽略输入数据的结构,所有数据在输入到网络之前都被转换为一维数组。这个过程适合常规数据,但是如果数据包含图像,这个过程可能会很麻烦。

CNN 轻松解决了这个问题。它在处理图像时考虑了图像的二维结构,这使得它们能够提取图像特有的属性。通过这种方式,CNN 的主要目标是从输入层的原始图像数据到输出层的正确分类。普通神经网络和 CNN 的唯一区别在于对输入数据的处理和层的类型。

CNN 的架构概述

从架构上看,普通神经网络接收输入并通过一系列隐藏层进行转换。每一层都通过神经元连接到另一层。普通神经网络的主要缺点是它们不能很好地扩展到完整图像。

CNN 的架构中,神经元排列在三个维度上,称为宽度、高度和深度。当前层中的每个神经元连接到前一层输出的一个小区域。这类似于叠加一个过滤器,过滤器是特征提取器,提取边缘、角落等特征。

用于构建 CNN 的层

以下层用于构建 CNN:

  • 输入层:直接接收原始图像数据。
  • 卷积层:这是 CNN 的核心构建块,执行大部分计算。该层计算神经元和输入中各个区域之间的卷积。
  • 整流线性单元层:它将激活函数应用于前一层的输出。它为网络添加非线性,使其能够很好地泛化到任何类型的函数。
  • 池化层:池化帮助我们在网络中前进时只保留重要部分。池化层独立地对输入的每个深度切片进行操作,并在空间上调整其大小。它使用 MAX 函数。
  • 全连接层:该层计算最后一层的输出分数。最终输出的大小为 (L,),其中 L 是训练数据集中类别的数量。
AI人工智能 机器学习与深度学习的对比
AI人工智能 安装有用的 Python 包
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

AI人工智能监督学习(回归)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }