当前位置: 首页 > news >正文

Chapter 6 CNN(Convolutional Neural Network)

Why CNN for Image

事实上,一些图案比整个图像会小很多。神经元不一定要看到整个图像才能判别图形,可以用较少的参数连接到较小的区域。

举个例子,可以通过观测鸟嘴来判断图片中的动物为“鸟”。

 同样的部位会出现在图片中不同的地区,如下图,第一幅图片鸟嘴出现在图片左上角的位置,第二幅图片鸟嘴出现在图片正中间的位置。由于都是鸟嘴,做的几乎就是相同的事情,所以这两组可以使用相同的一组参数。

 Subsampling

对图片进行subsampling也不会改变对象,只是可以将图像变小,如下图。这样,网络处理图像的参数会更少。

 The whole CNN

  相关属性:

 

CNN-Convolution(卷积)

stride表示每次移动的距离。

这样6x6的矩阵就可以缩小成4x4的矩阵。然后重复这类操作,得到property 2,和property 1 组成feature map。

 CNN – Colorful image 

对于有颜色的图案来说,图像也会变成三层6x6的矩阵,filter变成了三层

 Convolution v.s. Fully Connected

两者看上去没有什么联系,如下:

 但是将 Convolution中6x6的矩阵变成36个参数摊开,那么filter就可以变成权重,相同颜色表示相同权重,所以权重是共享的。这时,Convolution 就可以变成Fully Connected。

 CNN – Max Pooling

通过每个filter得到4x4的矩阵,将其划分为四块,取每块中的最大值出来,就变成了2x2的矩阵,即产生更小的新图像。

 其中flatten的过程如下:

CNN in Keras 

input_shape=(28,28,1)

28,28:表示初始的形状是28x28的矩阵。

1:表示黑or白

What does CNN learn?

一个filter做的事情是什么呢?从下图右侧我们可以看到第二个filter的输出是一个11x11的矩阵。拿出第k个filter(11x11的矩阵),矩阵中每个值设置为a_{ij}^{k}a^{k}=\sum_{i=1}^{11}\sum_{j=1}^{11}a_{ij}^{k},其中a^{k}表示第k个filter的激活程度。我们现在需要找一张image使得第k个filter的激活程度最大,使用的方法是梯度上升法。

得到的结果如下(前12个filter)。

 

 然后flatten,将图形扩大到一张完整的图形之中

 那么,对于输出是怎样的呢?

深度神经网络是很容易被欺骗的,我们可以看到每个数字的image看起来都差不多。

那么,该如何让image更加明显。我们希望存在一个x,不仅使得y^{i}最大,而且使得像素的加和最小(即:每个image处有非常少的地方涂上了笔画)。

 

 Deep Dream

给定一张照片,机器将会添加它看到的东西。CNN夸大了它所看到的东西。

依赖于经过数百万张图像训练的神经网络。使用方便,只需要上传一张图片,工具根据原图生成新图片即可。

 Deep style

给定一张照片,使其风格像名画(也是给定的),如下图:

 图片来源于网络。

CNN的应用

(1)围棋——Alpha Go

(2)演讲

(3)文本

相关文章:

  • 网课题库接口搭建教程
  • 时代落在英伟达身上的是粒什么沙,国产GPU的机会又在哪?
  • 【软件测试】什么?这是最全的--金融行业测试类型细分,宝藏干G货......
  • c++学习笔记3_函数模板的使用并实现自己定义的队列
  • 进程地址空间
  • 接口与接口间怎样通过嵌套创造出新的接口?
  • HFCTF-2021-Final-easyflask
  • 神经网络系统技术是什么,神经网络系统技术应用
  • java+SpringBoot+HTML+Mysq基于微信小程序的大咖读书系统的设计与实现
  • 前端周刊第三十四期
  • Maven私服搭建与使用:nexus,repository,mirror,distributionManagement
  • ubuntu22.04安装Kubernetes1.25.0(k8s1.25.0)高可用集群
  • 高等教育学:技能的形成
  • 快来看,数据分析BI软件居然也能完成基金变迁大数据分析?
  • 16.线程通信1:生产者/消费者问题
  • SegmentFault for Android 3.0 发布
  • Angular 响应式表单之下拉框
  • bearychat的java client
  • CSS实用技巧干货
  • C语言笔记(第一章:C语言编程)
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES6简单总结(搭配简单的讲解和小案例)
  • JavaScript DOM 10 - 滚动
  • mockjs让前端开发独立于后端
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PHP 小技巧
  • react-native 安卓真机环境搭建
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 测试如何在敏捷团队中工作?
  • 分布式熔断降级平台aegis
  • 基于web的全景—— Pannellum小试
  • 将 Measurements 和 Units 应用到物理学
  • 免费小说阅读小程序
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 微信小程序开发问题汇总
  • Spring Batch JSON 支持
  • zabbix3.2监控linux磁盘IO
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​如何防止网络攻击?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #162 (Div. 2)
  • #stm32驱动外设模块总结w5500模块
  • #vue3 实现前端下载excel文件模板功能
  • #传输# #传输数据判断#
  • (1)(1.11) SiK Radio v2(一)
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (done) 两个矩阵 “相似” 是什么意思?
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...