首页 > 其他分享 >深度学习面试的时候,如何回答1x1卷积的作用

深度学习面试的时候,如何回答1x1卷积的作用

时间:2024-11-14 23:29:49浏览次数:1  
标签:降维 卷积 面试 1x1 计算 通道

11月了,秋招已经开始了。不知最近有没有同学在投简历面试呢?

回想起几年前我面试某大厂的时候,被问到了很多深度学习相关的知识,那时的我懂的不多,可以说是被面试官360度无死角蹂躏。

那次面试,印象最深的是问了很多与卷积相关的问题,导致我后来工作一段时间看到卷积就时不时的去查些资料,害怕自己又理解错了。

今天就介绍一个我曾经被问到的问题,那就是:在卷积神经网络中,1x1的卷积都有什么作用?

在卷积神经网络中,1x1的卷积有什么作用呢?

大概有以下几个作用。

第一是可以实现输出feature map(特征图)的升维和降维第二个是可以减少模型中的参数量,从而减少计算量,提升模型的推理性能除此之外,就是使用1x1的卷积可以增加网络的深度,从而提升模型的非线性表达能力。

1x1的卷积是如何实现升维和降维的

这里说的1x1的卷积实现升维和降维的功能,指的是 feature map 通道维度的改变,也即特征维度的改变。

这是因为1x1的卷积,卷积核长宽尺寸都是 1,在计算的过程中,不存在长、宽方向像素之间的融合计算(乘累加计算),而仅仅存在通道之间的融合计算。

因此,在这种情况下,1x1的卷积所能改变的仅仅是通道数。

而从卷积算法上可以看出,卷积核的个数就是卷积输出的通道数。因此如果想让输出特征图的通道数增大,就要使用更多数量的卷积核来做卷积,从而实现特征维度的升或者降。

1x1的卷积是如何减少模型参数的

减少参数量可以这么理解:在输出相同特征图的前提下,将一个普通的卷积,替换成一个1x1的卷积加上另一个卷积,先进行降维,然后计算,如此一来整体的计算量要比普通卷积少。

举个例子,如上图所示。假设一个卷积的输入通道是128,输出通道是32,如果不使用1x1的卷积,那么整个卷积的乘累加计算量是:28x28x128x3x3x32 = 28901376

而如果使用1x1的卷积先降维处理,然后在降维之后的特征图上进行一个卷积计算,那么整体的乘累加计算量为:128x28x28x16 + 28x28x16x3x3x32 = 5218304

两者对比,后者比前者减少了80%的计算量。

如何理解1x1卷积可以提升模型的非线性表达能力

神经网络模拟的就是一个非线性系统,之所以在卷积层后面增加非线性层,比如Relu层,其实就是这个道理。

而1x1的卷积可以使得在完成相同卷积功能的前提下,网络的层数变得更深(如上面的例子,一个普通卷积变成了2层卷积)。

网络层数的加深,就会导致更多非线性层数的增加,从而使得整个神经网络模型的非线性表达能力更强。

1x1的卷积还有其他哪些优势吗

1x1的卷积还可以增加通道之间的融合程度。

由于1x1卷积不存在长宽方向的像素融合,所有的计算都是通道之间的交叉计算,因此,可以更好的完成通道间的融合,而通道代表的是特征,因此可以更好的实现特征融合这一点,和全连接类似(因为1x1的卷积就可以表示为全连接)。

总结:如果在面试过程中被问到关于1x1的卷积问题,把上面的几点回答出来,这个问题基本就可以了,不知道有没有人被问道过这个问题呢?

最后,祝各位在秋招中表现出色,都能拿到满意的offer~

我是一名 AI 攻城狮,如果你也想学习 AI ,欢迎你关注我的公众号,会有非常多好玩的AI技术分享~

标签:降维,卷积,面试,1x1,计算,通道
From: https://www.cnblogs.com/dongdongcan/p/18547165

相关文章

  • Java面试之有三个线程T1,T2,T3,如何保证顺序执行?
    前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!有三个线程T1,T2,T3,如何保证顺序执行?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘***12万字的java面试题整理***有三个线程T1,T2,T3,如何保证顺序执行?在多线程中有多种方法让线程按特定顺序执行,......
  • Java面试之多线程&并发篇(3)
    前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!SynchronizedMap和ConcurrentHashMap有什么区别?什么是线程安全?Thread类中的yield方法有什么作用?Java线程池中submit()和execute()方法有什么区别?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘***12......
  • Java面试之多线程&并发篇(3)
    前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!SynchronizedMap和ConcurrentHashMap有什么区别?什么是线程安全?Thread类中的yield方法有什么作用?Java线程池中submit()和execute()方法有什么区别?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘***12万字的j......
  • 面试必备41道 SpringBoot 面试题
    博主介绍上海交大毕业,大厂资深Java后端工程师《Java全套学习资料》作者专注于系统架构设计和高并发解决方案和面试辅导阿里云开发社区乘风者计划专家博主@author[vx]vip1024p(备注java)/***@author[vx]vip1024p(备注java)*@【描述:浏览器打开】docs.qq.com/doc/DUk......
  • 面试题——Java中的锁
    文章目录谈谈你对线程安全的理解?1、synchronized关键字是怎么用的?1.1构造方法可以使用synchronized关键字修饰么?1.2使用String作为锁对象,会有什么问题?1.3synchronized的底层原理有了解吗?1.4synchronized怎么保证可重入性?可见性?抛异常怎么办?1.4还使用过其他锁......
  • Python并行编程1并行编程简介(上)高频面试题:GIL进程线程协程
    1并行编程简介首先,我们将讨论允许在新计算机上并行执行的硬件组件,如CPU和内核,然后讨论操作系统中真正推动并行的实体:进程和线程。随后,将详细说明并行编程模型,介绍并发性、同步性和异步性等基本概念。介绍完这些一般概念后,我们将讨论全局解释器锁(GIL)及其带来的问题,从而了解Py......
  • Typescript面试题
    简述typescript简称ts,是js的一个超集,也是带有类型检测的js,拓展了js语法。优点:程序更容易理解;减少错误(编译期间排除常见错误);包容性强(兼容js)。特点:跨平台;面向对象(类、接口、枚举);类型检测。 ts的数据类型除js的类型外,还包含enum(枚举)、any(任意值)、void(表示无,常用于表示无返回值......
  • 应届毕业生找不到工作很焦虑怎么办?用多面鹅ai来帮你面试!
    缓解焦虑的最好办法就是手拿很多Offer,本文分享我是如何从连面试邀请都没有的小白,成为offer收割机。学会1点,你就赚到了!最开始我也是一头雾水。没什么过人的经历,简历写得磕磕绊绊,面试更是紧张得不知道说啥。然后我在网上刷到有人推荐Offergoose这个AI面试工具,抱着试试看的心态下......
  • 个人网站建站日记-面试宝典功能
    目前,关于java的面试相关的,网上可以说是多的数不胜数,但是关于.net的,找来找去却发现很少,并且大部分相似,所以,我这里便想做个关于.net面试相关的功能,所以就我花了好几个周末的时间,毛毛糙糙的算是把这个功能赶了出来,当然也有很多不完善的地方。欢迎大家赏脸哈!现在我把我的实现步骤贴出......
  • 30道Spring高频面试题,学完吊打面试官(实用干货!!!)
    1、什么是Spring框架?Spring框架有哪些主要模块?答:Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可......