CNN比DNN更为简单
CNN过滤器,目的就是寻找一种pattern,这种pattern远远小于整个图片的大小,同时是和图片中大小,位置无关的.
卷积运算的核心就是用卷积核(Filter),也叫滤波器,扫描完整的图片并且输出扫描后的结果.
filter 与 图片扫描处做內积.意思就是对应位置相乘,最后相加.
一个卷积层的filter数量是要预先设定的.换言之就是超参数.
一个2维矩阵经过有n个filter的卷积层后会输出1+n维矩阵,称为Feature Map.
从这张图可以看出Convolution是简化版Full Connected.同时,颜色相同不是权重相同.
意思是filter在一次扫描中filter内的值不变.对比全连接层就是权重共享Sharedeights.
同时,filter是有深度的.等同于输入图片的深度.
例如输入彩色图片 64 × 64 × 3 64\times64\times3 64×64×3,则filter应为 x × x × 3 x\times x\times3 x×x×3.
例如经过若干conv层后输入 64 × 64 × 50 64\times64\times50 64×64×50,则filter应为 x × x × 50 x\times x\times50 x×x×50.
一个filter会把输入对应位置相乘并相加,同时每一层相加的结果再次相加.一个filter只出一层.
stride为卷积核扫描图片移动的步长.
假 设 s t r i d e = 1 , 3 × 3 的 F i l t e r 在 过 滤 输 入 矩 阵 为 6 × 6 之 后 会 得 到 4 × 4 的 输 出 矩 阵 假设stride=1, 3\times3的Filter在过滤输入矩阵为6\times6之后会得到4\times4的输出矩阵 假设stride=1,3×3的Filter在过滤输入矩阵为6×6之后会得到4×4的输出矩阵
假 设 s t r i d e = 2 , 3 × 3 的 F i l t e r 在 过 滤 输 入 矩 阵 为 6 × 6 之 后 会 得 到 2 × 2 的 输 出 矩 阵 假设stride=2, 3\times3的Filter在过滤输入矩阵为6\times6之后会得到2\times2的输出矩阵 假设stride=2,3×3的Filter在过滤输入矩阵为6×6之后会得到2×2的输出矩阵
padding层将信息浓缩
但是现在普遍不使用了.
最 大 池 化 如 图 所 示 , 选 择 矩 阵 中 一 定 范 围 内 的 最 大 值 输 出 . 假 设 p a d d i n g = 2 × 2 , 输 入 矩 阵 为 4 × 46 之 后 会 得 到 2 × 2 的 输 出 矩 阵 最大池化如图所示,选择矩阵中一定范围内的最大值输出.假设padding=2\times2, 输入矩阵为4\times46之后会得到2\times2的输出矩阵 最大池化如图所示,选择矩阵中一定范围内的最大值输出.假设padding=2×2,输入矩阵为4×46之后会得到2×2的输出矩阵
把矩阵拉直.n维矩阵变为一维向量.
flatten输出的一维向量shape巨大,通过全连接层可以把一维向量shape缩小到某一个值
如果是二分类这个值就是1,就是说最终输出一个数,加一个sigmoid函数就可以分类了;
如果是多分类,例如手写数字识别,这个值就是10.通过softmax函数概率归一.
CNN的核心就是filter或者叫kernel在图像中识别特征,在视频中可以直观看到每一个filter所识别的pattern是不同的.但是也是相似的.在fully connected Feedforward后每一个神经元识别的模式也是相似而不同的.
在输出层通过实验每一个神经元对于数字的识别准确率达到98%,但是明显是非数字的雪花图片也可以识别为数字,说明CNN学习到知识仍然与人类有巨大的区别.
通过增加先验知识,可以勉强辨认出一些数字.
x ∗ = argmax x ( y i − ∑ i , j ∣ x i , j ∣ ) x^*=\operatorname{argmax}_x(y^i-\sum_{i,j}|x_{i,j}|) x∗=argmaxx(yi−i,j∑∣xi,j∣)
x ∗ 表 示 某 一 张 图 片 , 可 以 使 神 经 元 的 输 出 值 最 大 , 通 过 增 加 L 1 正 则 化 , 让 雪 花 图 片 变 为 可 以 模 糊 辨 认 的 图 片 x^*表示某一张图片,可以使神经元的输出值最大,通过增加L1正则化,让雪花图片变为可以模糊辨认的图片 x∗表示某一张图片,可以使神经元的输出值最大,通过增加L1正则化,让雪花图片变为可以模糊辨认的图片
Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps
ICLR论文,可视化CNN
Visualizing and Understanding Convolutional Networks
ECCV论文,可视化并理解CNN
Deep Dream
DeepDream是Google 开源了用来分类和整理图像的 AI 程序。
大牛博客解析
官方地址
DeepStyle用于图像风格迁移
A Neural Algorithm of Artistic Style
alpha Go->alphaGo Zero->alpha Zero
deepMind团队的阿尔法狗世人皆知.
本科毕设就是做的alpha Zero,真的强大,深度强化神经网络一定是通往强人工智能的钥匙.
我们知道alpha Go赢了世界冠军
现在思考为什么CNN可以下围棋,这就回到了文章的开头
CNN过滤器,目的就是寻找一种pattern,这种pattern远远小于整个图片的大小,同时是和图片中大小,位置无关的.
围棋中(或者说棋类游戏中)也存在着这样的模式,所以在alpha Go的第一个卷积层使用 5 × 5 5\times5 5×5的192个filter.
根据领域特性,不使用MaxPooling的架构
论文好像现在要收费了,网上随便找找就有了
Mastering the game of Go with deep neural networks and tree search可在线预览
Mastering the game of Go without human knowledge可在线预览
A general reinforcement learning algorithm that masters chess, shogi and Go through self-play可下载
ImageNet Classification with Deep Convolutional Neural Networks
12年论文,AlexNet
Rich feature hierarchies for accurate object detection and semantic segmentation
CVPR论文,工业级目标检测模型, fast-CNN, faster-CNN的基石
Training Deep Convolutional Neural Network for Twitter Sentiment Classification
128篇论文,21大领域,深度学习最值得看的资源全在这里
github