卷积神经网络CNN的各个层做的事情No.30

2024-05-15 08:48

本文主要是介绍卷积神经网络CNN的各个层做的事情No.30,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我是小蕉。

今天跟大家聊聊卷积神经网络各个层实际做的事情以及原理。

马老大在一个峰会说:"我们之前做了很多算法的优化,但是现在有了深度学习,可能用一个算法,不断叠加叠加到729层,就能达到之前所不能达到的精度和效果。"

卷积神经网络是深度学习很重要的基础结构之一,很多深度学习的网络中都是一层加一层地叠加卷积神经网络来达到各种各样的目的。卷积神经网路开始发力应该是在2012年的ImageNet大赛中出现的AlexNet,达到了之前很多算法都无法达到的精度。也是在那之后,很多深度学习的网络开始出现。

按照我目前了解的情况来看,其实大部分是聪明能干的机器学习专家们从实验环境实验出来某个网络结构的表现比较好,后面的人都在上面改进吧了。

卷积神经网络难不难?

从两方面来说吧,卷积和神经网络。

卷积是什么?

先说一个定义,叫卷积核。卷积核就是一个N*N的矩阵。

比如下面就是一个3*3的卷积核C:

-1   1  -1

-1   5  -1

-2   2  -2

再说一个定义,叫补白padding,下面就是对原始矩阵进行0补白,从A变为Ap。

0?wx_fmt=png        ->           0?wx_fmt=png

好接下来要开始卷积了,怎么做呢?

从A的左上角的第一个矩阵元素开始,以它为中心划出一个3*3的矩阵Q(这个矩阵跟卷积核的大小保持一致)。

如果中心在边缘咋办呢?那就需要我们补白过的矩阵Ap了,反正就要保证每一次都是3*3就对了。

然后对挑选出来的Q和卷积核C进行向量叉乘然后把矩阵9个元素进行加和。C x Q,然后加和得到Q’,这就生成了新矩阵的其中一个元素啦,也就是完成了一次卷积。

下定义:步长。就是3*3卷积核每次移动的的步伐。(步子大了容易扯到,你懂的)

如果步长为1那么就是把矩阵从左上角一步一步挪到右下角,每一个矩阵都做一次上面的卷积,这样就做完了一整个矩阵的卷积,然后就得到一个新的卷积后的新矩阵。

这个矩阵就能获取到原始矩阵的一些特征。怎么获得的呢,这个跟卷积核有关,卷积核能做的事情就是突出某些东西,忽视某些东西,这样经过整个卷积后,就能得到一整个矩阵的一些特征啦。

对于图片像素矩阵来说,就是把某些特点提取出来。

接下来该说说神经网络啦,神经网络是什么呢?其实上一篇已经说过了,大家可以翻回去看看。大意就是:每一个神经元都有1到N个输入,经过神经元的处理,然后有0或者M个输出。

尝试克服一下小伙伴对神经网络的恐惧No.26

能坚持看到这里的都是很有毅力的人了。

卷积神经网络的解释到此就差不多了。下面介绍经典的AlexNet,很多卷积神经网络都是在这个上面进行改进的。

不知道大家是不是跟我有同一个疑惑,神经网络有一个很玄乎的问题,什么叫隐藏层(Hidden Layer)。

后来发现。

特么的。除了输入层和输出层,其他全特么叫隐藏层。

好了吐槽完进入正题。

AlexNet来了。

0?wx_fmt=png

上面的图也可以不用看。

输入层->卷积层->Relu层->pooling层->卷积层->Relu层->pooling层->全连接层->全连接层->softmax层->输出层。

除了输入层和输出层,其他全特么叫隐!藏!层!再吐槽一次,这个问题真的困扰了我很久什么叫隐藏层。

好了一个一个说吧。

卷积层就不说了,就上面那样的操作,目的就是提取特征,可能一次性给48个卷积和然后就获得48个特征输出矩阵啦。

Relu层,relu其实是一个函数,就是f(x) = max{0 , x},如果x小于0,那么f(x)就取0,如果x大于0,那么f(x)就取x。

pooling层,这个好玩了,pooling层就是把一个大大的矩阵切块,然后每一块都是一样大的比如2*2。然后做什么事情呢?取平均值或者取最大值。一般来说有maxPooling或者averagePooling两种。

比如说这个。

0?wx_fmt=png    ->      0?wx_fmt=png       ->      0?wx_fmt=png

进行maxpooling后就变成最右边这样了。这样做的好处是什么呢?就是为了减少特征数目,在把损失变成最小的同事把特征数目控制住。可别忽视了这一步,这一步要是没有,传入下一个卷积层的数据可就翻了好多倍啦!

有人说,那为毛不把步长变成2呢,这样直接结果也是maxpooling后的大小啊。

步长变成2,岂不是很多格子都没有扫到?这样损失也太严重了吧。所以普遍的做法都是先完整卷积,再进行pooling,这样子特征数目得到控制,精度也得到保证了。

这样叠个两层,聪明的科学家发现已经足够提取大部分的特征了,接下来就把所有的特征平铺成一维的,然后再当成我们前一节写的softmax神经网咯,进行两层的全连接,然后再进行softmax进行分类。

分类的结果呢,肯定是有误差的嘛,所以又会反向传播到第一层,进行参数梯度的变更,再进行下一次的训练啦,其他的跟上一次的没什么差别。

至于说为什么需要两个全连接层来做分类,分类是一定要的不然没法输出,为什么是两层这个是科学家实验的结果,你完全可以试试三四层或者一层这样。

另一方面全连接层在现在都是饱受诟病的东西,因为参数实在是太太太多了,所以后面很多科学家的研究都是把全连接层替换掉。有的网络里面就把全连接层替换成卷积层了。

卷积神经网络有什么好处呢?

最最最大的好处就是,参数少,神经网络最好的地方就是参数多,最怕的地方也是参数多。

一次完整的卷积,只需要一个卷积核参数,整个大矩阵都是按照这个卷积核来进行计算,这很大程度降低了训练的成本。

除此之外,上面没讲到的一个东西就是dropout层。

dropout,也就是丢掉。

我们都知道神经网络都具有过拟合的倾向,卷积神经网络也不例外,他也很可能会过拟合。科学家发现,通过设定某一个概率,去丢掉一些计算结果,反而会使得网络更加健壮,所以dropout层所做的事情就是把按照概率把某些计算结果丢掉。

神经元:计算完啦,给你给你。

dropout层:我掐指一算,你这个结果跟我的星座不合,不要不要,丢掉。

神经元:zzz。

好啦,卷积神经网络就分享到这,如果觉得有帮助的话,分享给你的朋友吧,这对我很重要,谢谢大家支持,么么哒~~

赏个糖吃嘛~

0?wx_fmt=jpeg

这篇关于卷积神经网络CNN的各个层做的事情No.30的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991368

相关文章

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的身份识别。对于考勤系统而言,CNN可以自动从摄像头捕捉的视频流中检测并识别出员工的面部。 我们在该项目中采用了 RetinaFace 模型,它基于CNN的结构实现高效、精准的

机器学习之监督学习(三)神经网络

机器学习之监督学习(三)神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一:TensorFlow搭建神经网络 4. 反向传播梯度下降 Back Propagation Gradient Descent模块二:激活函数 activ

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

基于深度学习 卷积神经网络resnext50的中医舌苔分类系统

项目概述 本项目旨在通过深度学习技术,特别是利用卷积神经网络(Convolutional Neural Networks, CNNs)中的ResNeXt50架构,实现对中医舌象图像的自动分类。该系统不仅能够识别不同的舌苔类型,还能够在PyQt5框架下提供一个直观的图形用户界面(GUI),使得医生或患者能够方便地上传舌象照片并获取分析结果。 技术栈 深度学习框架:采用PyTorch或其他

图神经网络(2)预备知识

1. 图的基本概念         对于接触过数据结构和算法的读者来说,图并不是一个陌生的概念。一个图由一些顶点也称为节点和连接这些顶点的边组成。给定一个图G=(V,E),  其 中V={V1,V2,…,Vn}  是一个具有 n 个顶点的集合。 1.1邻接矩阵         我们用邻接矩阵A∈Rn×n表示顶点之间的连接关系。 如果顶点 vi和vj之间有连接,就表示(vi,vj)  组成了

自然语言处理系列六十三》神经网络算法》LSTM长短期记忆神经网络算法

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列六十三神经网络算法》LSTM长短期记忆神经网络算法Seq2Seq端到端神经网络算法 总结 自然语言处理系列六十三 神经网络算法》LSTM长短期记忆神经网络算法 长短期记忆网络(LSTM,Long S

神经网络训练不起来怎么办(零)| General Guidance

摘要:模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。关键词:模型性能,Model Bias, Optimization, Overfitting。 零,领域背景 如果我们的模型表现较差,那么我们往往需要根据 Training l

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络,提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题,常见的两种是: 二分类或多分类:预测患者对治疗有无耐受(二分类)、判断患者的疾病分级(多分类); 连续数值的预测:预测癌症病人的风险、预测患者的白细胞数值水平; 尽管传统的机器学习提供了高效的建模预测与初步的特征重