首页 > 其他分享 >李宏毅《机器学习》总结 - CNN

李宏毅《机器学习》总结 - CNN

时间:2024-01-25 18:45:16浏览次数:22  
标签:总结 李宏毅 矩阵 feature times filter CNN channel

使用场景:对图片进行分类
首先,将图片变成向量。例如,对于一个彩色的 \(N\times N\)(这个 N 指的是像素个数) 图片,其对应着一个 \(N\times N\times 3\) 的矩阵(其中 3 是图片的 channel,在彩色图片中,每个像素由 RGB 构成,因此 channel 为 3)

一个初始的想法

将这个矩阵拉长,变成一个向量,然后连一个 fully connected network。
效率太低

因此需要引入 CNN,有两种理解的方法,这两种本质上是一样的。
(注意:CNN 主要是通过缩减了很多图片中的信息来进行优化,具有较大局限性,因此如果不是图像处理的问题的话,需要慎用 CNN)

1

考虑分类的过程,实际上可以认为是找到一些“特征”。如识别鸟,只需要找到鸟嘴就可以判断。因此是否可以每次识别图片的一部分?——引入感受野(Receptive field)的概念
感受野就是在原来的矩阵中找到若干个小矩阵(如 \(3\times 3\) 的,称为 kernal size),将这个小矩阵作为“特征”输入到 neural network 里面。
image
首先,感受野是可以重叠的,也可以是长方形,也可以有大有小。所以可以在两个维度都设定一个步长(stride),这样能选出一堆感受野
image
对每个感受野,用一组 neuron 来处理(可以理解为有很多 feature,每个 neuron 处理其中一个 feature)
另外,如果有一个 feature,出现在多个位置,此时不应该用多个 neuron,而应该用一个,这就是参数共享,即在neural network 中的 weight 是要相同的。而某一个 feather 对应的共享参数的 neuron,我们称之为 filter
image

关系:
image

2

直接考虑 filter 和图片对应矩阵(此时,假设图片是黑白的,channel 为 1,因此对应的矩阵是 \(N\times N\times 1\) 的)进行的运算
image
这里进行的运算是 inner product(对应位置相乘再相加),得到结果矩阵
不同的 filter 和矩阵做运算,可以得到不同的结果矩阵(这些结果矩阵叫做 feature map)
image
有多少个 feature map 呢?就是 filter 的数量,这也决定了 feature map 的“高度”(channel,即第三维的大小),如 64 张图片就有 64 个 channel
image
因此,这样做的步骤就是:先将多个 filter 和当前矩阵求 inner product(这个过程即 convolution),得到若干个 feature map,并将其作为下一个操作的当前矩阵,继续操作。
有没有可能一个比较大的 feature 无法被识别到?不会。我们考虑一次 convolution 之后的下一个 convolution,我们发现拿一个 filter 做一次 inner product(蓝色框内),实质上是对原矩阵的 \(5\times 5\) 进行了运算,这就能扩大识别范围了。
image

  • 池化
    是一种 operator/函数(如ReLU/Sigmoid),不用训练。
    将得到的 feature map 几个组成一组(如 \(2\times 2\)分成一组),然后将每一组中最大的那个元素提取出来,得到新的矩阵。
    好处就是减少了数据规模,提升了效率。
    image

总的 CNN 框架如图:
image

标签:总结,李宏毅,矩阵,feature,times,filter,CNN,channel
From: https://www.cnblogs.com/SkyRainWind/p/17987402

相关文章

  • MAT使用思路总结
    参考:https://blog.csdn.net/x275920/article/details/123991656主要分为2种操作。简单粗暴来个内存泄漏分析LeakSuspects和TopConsumers,可以看出大部分简单的内存泄漏问题看保留堆/深堆RetainedHeap大的,这个表示如果这个对象被清理,那么RetainedHeap都是可以被清理的,所......
  • 选题要求分析总结
    问题:1、数据分布在不同的部门和系统中,数据采集难度大2、由于数据来源多样,且可能存在数据重复、数据不一致等问题3、缺乏专业的数据分析工具,导致数据分析能力不足,无法充分利用数据为决策提供支持4、缺乏有效的数据可视化工具,导致数据无法直观地展示,从而影响决策效率 功能:1......
  • Postman使用总结
    对于黑盒测试工程师来说,使用postman的场景无非就是拿它看看接口返回的数据。比对一下预期返回的参数与实际是否相符。所以我这里的postman使用方法仅限于如何调用接口。 首先,你需要下载postman(毋庸置疑,其实用网页版也可以)官网主页:https://www.postman.com/downloads/安装你......
  • Canal报错总结
    这是我的SQL表里面插入数据刷新下就可以看到已经查询出来了canal报错nosuchmethod…bytebuffer解决方法:更新jdk版本与es一致cancal报错configdirnotfound替换classpath中间封号两边的值canal控制台乱码将其改为GBK即可ERRORc.a.otter.canal.adapter.launcher......
  • canvas绘制图形总结
    ctx.beginPath()//新建一条路径,生成之后,图形绘制命令被指向到路径上生成路径。ctx.closePath()//闭合路径之后图形绘制命令又重新指向到上下文中。ctx.stroke()//通过线条来绘制图形轮廓。ctx.fill()//通过填充路径的内容区域生成实心的图形。 绘制矩形 ctx.save() ctx.......
  • Voxel R-CNN 代码解析
    1.网络主体架构以voxel_rcnn_car.yaml为例。主要包括:VFE(体素编码网络),这里采用下MeanVFE;BACKBONE_3D,这里采用VoxelBackBone8x;MAP_TO_BEV,这里采用HeightCompression,NUM_BEV_FEATURES为256;BACKBONE_2D,这里采用BaseBEVBackbone;DENSE_HEAD,这里采用AnchorHeadSingle;ROI_H......
  • 1.24总结
    packagecom.mediator;importcom.mediator.Annotations.CommandHandler;importcom.mediator.Annotations.EnableCommandHandler;importcom.mediator.Annotations.PipeLine;importcom.mediator.Mediator.IMediator;importcom.mediator.Mediator.impl.Mediator;impor......
  • petalinux 报错总结
    Failedtomenuconfigprojectcomponent....解决办法此处是由于Terminal(终端)的界面太窄导致的,把Terminal(终端)界面拉宽即可;重新执行命令【petalinux-config--get-hw-description=*.xsa“path”】后,可以看到配置界面弹出来了,且没有了刚刚的错误。do_rootfs:Thepostinstall......
  • 每日总结2024年1月24日
    比较适合用来做图表的网站首页-MadeAPiealova是一个轻量级的请求策略库,支持开发者使用声明式实现例如请求共享、分页请求、表单提交、断点续传等各种较复杂的请求,让开发者使用非常少量的代码就可以实现高可用性和高流畅性的请求功能,这意味着,你再也不需要自己绞尽脑汁编写请......
  • 1.23总结
    packagemainimport("fmt""os")funcmain(){commandArgs:=os.Argsfmt.Println(commandArgs)}执行程序:递归浏览指定目录下所有文件gorunmain.go--namels--value/etc-r输出:[/tmp/go-build2637413899/b001/exe/main--namels--value/etc-r]命令行参数......