第五周 李宏毅《机器学习》笔记 CNN

CNN

前提知识

以图片分类为例
从第一个hidden layer到后面的layer,分类结果从简单到复杂。

  • Some patterns are much smaller than the whole image.
    每个neural只需要连接到小块区域,就可以判断图中信息的类别
    不同neural检测不同的patterns,合起来就可以知道整体信息的类别
  • Same patterns appear in different regions.
    相同模式出现在不同的区域,但是可以用同一个neural同组参数去侦查出来
  • Subsampling the pixels will not change the object
    subsampling 对图像不会有影响,但可以减小我们在neural中使用的参数

CNN架构

在这里插入图片描述
Ps:重复的次数需要提前定好
Convolution作用:找出重要的小区域,并且在不同区域找到
Max pooling作用:做subsampling

Convolution

有一组filter matrixs(好多filters),这里面的元素是必须被学出来的网络参数
filter的大小nn,就说明他在侦查一个nn的区域pattern
一个filter可以侦查在不同区域相同的pattern
每个filter都会去侦查,并得到相同大小的不同的值,这些就组成了Featuer Map.有多少个filter,就有多少维新的image。
在这里插入图片描述

如果一个待处理的照片是黑白的,那每个filter就是一个矩阵
如果照片是RGB彩色的,那每个filter就是一组立方体
convolution 就是减少weight还公用weight

Max Pooling

在convolution以后得到新的元素矩阵,再将这组矩阵划分为小部分,在小部分中依据一些原则保留部分元素,不要其他元素,这样就可以达到缩小图片的目的。这个原则可以多种多样。

通过多次重复Convolution+Max Pooling就可以得到比较小的image,通道数是filters数目。

Flatten

把新的image中元素拉直

Fully Connected Feedforward network

在这里插入图片描述

CNN in Keras

1.Convolution
25,3,3是25个33的filters
input_shape(1,28,28)是黑白的28
28的图片在这里插入图片描述
2.maxpooling
选择2*2为一个小部分,留下每个小部分中最大的数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

what does CNN learn?

我们通过分析第k个filter的输出来得到这个filter做了什么
定义一个值 degree of the activation of the k-th filter–是用来描述第k个filter被启动的程度
a k = ∑ i = 1 11 ∑ j = 1 11 a i j k a^k=\sum_{i=1}^{11} {\sum_{j=1}^{11} {a_{ij}^k}} ak=i=111j=111aijk
要使这个被启动的程度最大,就可以设置一个输入变量,计算 a k a^k ak最大时对应的x。使用梯度下降法。

用这个方法,可以找到每个filter的 a k a^k ak最大对应的那个输入图像
然后在C+M以后,可以看出这个filter的效果

Fully connected network 中的每个neural的功能是什么?
和上一个的思路很像
定义第j个neuron上的output,找一张图片,使得经过neural network以后输出 a j a^j aj最大。

对Fully Connected network后的输出找最大时对应的图片
发现,找到的各类别图片并不是真正对应的。
所以对这个方法的程式进行改进
x ∗ = a r g m a x ( y i − ∑ i , j ∣ x i j ∣ ) x^*=arg max(y^i-\sum_{i,j} {|x_{ij}|}) x=argmax(yii,jxij)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值