深度学习 --- stanford cs231学习笔记三(卷积神经网络CNN)

卷积神经网络CNN

 


 

1,有效的利用了图像的空间信息/局部感受野

        全连接神经网络中的神经是由铺平后的所有像素计算决定。 由于计算时是把图像的所有像素拉成了一条线,因此在拉伸的同时也损失了图像像素之间固有的空间信息。

        卷积层中的神经只由5x5x3(假设filter的尺寸为5x5x3)个像素的计算结构决定,即,由图像的一部分决定。 这样一来也就保持了图像原有的空间信息,卷积层的这一特性也被城之称局部感受野

 

局部感受野这一特性来自于一个早期的关于猫咪的实验(以下介绍引自参考文献1):

        “故事得回到20世纪60年代初,哈佛大学两位神经生物学家休伯尔David Hubel和威泽尔Torsten Wiesel,作了一个有趣的猫咪实验,见图1。他们使用幻灯机向猫展示特定的模式,然后记录猫脑中各个神经元的电活动[1]。他们发现特定的模式刺激了猫咪大脑特定部位的活动。正因为他们在视觉信息处理方面的杰出贡献,荣获了1981年诺贝尔生理学或医学奖。

        哈佛学者的实验证明,视觉特征在大脑皮层的反应是通过不同的细胞达成的。其中,简单细胞(Simple Cell)感知光照信息,复杂细胞(Complex Cell)感知运动信息。到了1980年前后,日本科学家福岛邦彦受猫咪生物实验的启发,模拟生物视觉系统并提出了一种层级化的多层人工神经网络,即“神经认知”系统,这是现今卷积神经网络的前身。在论文中,福岛邦彦提出了一个包含卷积层、池化层的神经网络结构。

福岛老爷爷今年已经88岁了,5年前他还发表了神经网络方面的研究论文。”

 

        简单来说就是就猫的神经系统而言,例如猫的大脑。当猫看到某些物体物体时,大脑中只有一部分会产生特别强烈的响应。比如说,当猫看到球形时,在猫的大脑的左上角的某块区域会产生特别强烈的响应,但其他地方则无反应。当猫猫看到三角形时,大脑的右下角某块区域又会产生特别强烈的响应,等等。

        如果再把这个实验结果和我们的全连接神经网络VS卷积神经网络来类比的话。卷积神经网络对不同事物的反映就好比是猫的大脑,是分区域响应的。而,如果猫的大脑使用的全连接神经网络模型的话,那么不论看到什么事物,猫的整个大脑都会同时产生响应。

 


 

2,卷积层的一些性质

 

2,1 卷积后activation map的尺寸

对于全连接神经网络而言,计算所产的神经元的个数等于class num。

 

对于卷积层而言,计算所产生的神经元的个数等于卷积运算后的图像尺寸

2,2 有几个filter,卷积运算的结果就有几层。

 

         下面的例子中输入图像是一个32x32x3的卡车,filter的尺寸为5x5x3,总共使用了16个不同的filter,产生了16层activation map。

 

 2,3 bias偏置项

 

        每个卷积层对应一个bias,因此有多少个filter就应该有多少个bias.


3,Pooling layer 

 

        池化即down-sample,也就是对输入数据进行下采样,经过下采样的数据长宽各缩减为原来的一半。一般常用的池化方式是max pooling。下采样的作用有二:

1,同时在水平和竖直两个方向缩小数据尺寸,节省空间

2,维持原始数据的空间不变性,即,下采样不会引入空间信息的变化。

 

 

4,CNN的大致框架结构

 

举个例子:

现有结构如下的CNN网络:input==>Conv==>ReLU==>Pool==>Conv==>ReLU==>Pool==>Conv==>ReLU==>Pool==>FC+softmax(以及在全连接层的最后一层后接softmax激活函数的FC神经网络)

(例如,在图像分类任务中,网络的最后一层可能是一个全连接层,其神经元数量等于类别数量。然后,通过softmax函数将这些神经元的输出值转换为概率分布,该网络用于预测输入图像属于每个类别的概率)

 头三层:

中间三层: 

 最后三层:

fc+softmax: 


(全文完) 

--- 作者,松下J27

 参考文献(鸣谢): 

1,猫咪怎样启发了人工神经网络的诞生?

2,Stanford University CS231n: Deep Learning for Computer Vision

3,ConvNetJS CIFAR-10 demo

 

(配图与本文无关)

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/712627.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4-字符串-11-反转字符串-LeetCode344

4-字符串-11-反转字符串-LeetCode344 LeetCode: 题目序号344 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998(纯纯技术文&#xff0…

基于Python+OpenCV+SVM车牌识别系统(GUI界面)【W3】

简介: 随着交通管理的日益复杂化和智能化需求的增加,车牌识别系统在安防、智慧交通管理等领域中扮演着重要角色。传统的车牌识别系统主要基于图像处理和模式识别技术,随着计算机视觉技术的发展,基于Python、OpenCV和机器学习算法的…

微服务之网关

1、什么是微服务网关? 微服务网关是一种用于管理和调度微服务的工具或服务,它在微服务架构中扮演着关键角色。以下是关于微服务网关的清晰概述: 概念定义: 微服务网关是微服务架构中的前端门户,它提供了一个统一的入…

Android中的消息异步处理机制及实现方案

基本介绍 当我们需要执行复杂的计算逻辑,网络请求等耗时操作时,服务器可能不会立即响应请求,如果不将这类操作放在子线程中运行,就会导致主线程被阻塞住,从而影响用户的使用体验如果想要更新应用程序中的UI控件&#…

JDK17 你的下一个白月光

JDK版本升级的非常快,现在已经到JDK20了。JDK版本虽多,但应用最广泛的还得是JDK8,正所谓“他发任他发,我用Java8”。 但实际情况却不是这样,越来越多的java工程师拥抱 JDK17,于是了解了一下 JDK17新语法&a…

亲测几十款随身wifi,全网最全随身WiFi避坑指南!最值得买的随随身wifi品牌推荐!

关于随身wifi我认为我是比较有发言权的,历经三年测评了几十种随身wifi,便宜的贵的,大牌的小厂的,电池款USB款等各种随身wifi。根据测试结果以及通过电商平台搜索、粉丝反馈、社交平台评价等综合测评结果。今天就跟大家分享一下&am…

如何打造电力全域知识中心:知识库融合知识图谱

前言 随着人工智能技术的进步,智能化成为产业转型升级的关键抓手,国家电网在“十四五”发展规划中提出加快公司数字化转型进程、推进能源互联网企业建设的要求。知识管理能力建设作为强化企如何打造电力全域知识中心:知识库融合知识图谱业运…

5G消息 x 文旅 | 一站式智慧文旅解决方案

5G消息 x 文旅 | 一站式智慧文旅解决方案 文旅 x 5G 消息将进一步强化资源整合,满足游客服务需求、企业营销需求、政府管理需求,推进文化旅游项目的智慧化、数字化,增强传播力、竞争力和可持续性。5G 消息的“原生入口”、“超强呈现”、“智…

matlab 路面点云标线提取

目录 一、算法原理二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 算法来自本人自创。实现效果如下图所示,具体实现原理看代码即可。 二、代码实现 clc; cle…

构建旧物回收系统的决策支持系统

内容概要: 在旧物回收系统中,构建一个有效的决策支持系统对于提高管理效率、优化资源配置具有重要意义。本文将探讨如何构建旧物回收系统的决策支持系统,并分析其如何辅助管理者做出更科学的决策。 一、决策支持系统的定义与功能 决策支持…

Opencv数一数有多少个水晶贴纸?

1.目标-数出有多少个贴纸 好久没更新博客了,最近家里小朋友在一张A3纸上贴了很多水晶贴纸,要让我帮他数有多少个,看上去有点多,贴的也比较随意,于是想着使用Opencv来识别一下有多少个。 原图如下: 代码…

校园车辆管理系统的设计与实现

第1章 绪论 1.1 研究背景与意义 随着高等教育的普及和扩张,大学校园已成为一个综合性的小型社会。教学楼、实验室、宿舍、体育设施等构成了庞大且复杂的校园基础设施。在这样的环境下,教师、学生、家长及访客的车辆数量也随之增多,这不仅带来…

python-02

面向对象 Python中把具有相同属性和方法的对象归为一个类。 class ClassName: 语句 class Myclass: # 定义类Myclassdef pp(self): # 定义方法pp()print("这是产品说明书")myclass Myclass() # 实例化类Myclass myclass.pp() # 调用Myclass中的方法pp()打印…

电脑缺失d3dcompiler_47.dll会怎么样,该如何修复呢

在计算机使用过程中,我们常常会遇到一些错误提示,其中之一就是“缺少d3dcompiler47.dll文件”。那么,d3dcompiler47.dll到底是什么?为什么计算机会缺失它?它会对电脑产生什么具体影响?如何解决这个问题&…

⭐Unity 控制任意UI的渐隐渐显

使用脚本之前先给要控制的UI加上CanvasGroup组件 解释: 这个脚本使用协程来逐渐改变CanvasGroup的alpha值,从而实现渐隐和渐显的效果。 Mathf.Lerp函数用于在指定的时间内平滑地从当前透明度过渡到目标透明度。 通过调用FadeIn和FadeOut方法,你可以在任…

SpringBoot 实现 阿里云语音通知(SingleCallByTts)

目录 一、准备工作1.开通 阿里云语音服务2.申请企业资质3.创建语音通知模板,审核通过4.调用API接口---SingleCallByTts5.调试API接口---SingleCallByTts 二、代码实现1.导入依赖 com.aliyun:aliyun-java-sdk-dyvmsapi:3.0.22.创建工具类,用于发送语音通知…

C++面向对象程序设计 - 函数库

C语言程序中各种功能基本上都是由函数来实现的,在C语言的发展过程中建立了功能丰富的函数库,C从C语言继承了些函数功能。如果要用函数库中的函数,就必须在程序文件中包含文件中有关的头文件,在不同的头文件中,包含了不…

RabbitMQ实践——交换器(Exchange)绑定交换器

在《RabbitMQ实践——交换器(Exchange)和绑定(Banding)》一文中,我们实验了各种交换器。我们可以把交换器看成消息发布的入口,而消息路由规则则是由“绑定关系”(Banding)来定义&…

GitLab教程(二):快速上手Git

文章目录 1.将远端代码克隆到本地2.修改本地代码并提交到远程仓库3.Git命令总结git clonegit statusgit addgit commitgit pushgit log 首先,我在Gitlab上创建了一个远程仓库,用于演示使用Gitlab进行版本管理的完整流程: 1.将远端代码克隆到本…

快速构建本地RAG聊天机器人:使用LangFlow和Ollama实现无代码开发

基于LangChain的快速RAG应用原型制作方法 还记得构建智能聊天机器人需要数月编码的日子吗? LangChain这样的框架确实简化了开发流程,但对非程序员来说,数百行代码仍然是一道门槛。 有没有更简单的方法呢? 图片由 Ravi Palwe 在…