CNN & Tensorflow 入门——以Cifar-10为例

其实这是算分Project的内容,受到CS231n启发,我和晶晶打算做图像分类的机器学习项目。很多人向我推荐tensorflow训练数据,因为有模板,不用手推python公式。

首先参考tensorflow官方文档中文版
下载tensorflow (Mac OS) 很简单,安装了anaconda大礼包后,直接输入

$ pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl

然后是入门级的学习笔记:tensorflow,张量+数据流,是基于graph的计算。
session是上下文。tf在生成graph后,选择必要的路径计算,而不是逐条语句执行,因而高效。
笔记1 笔记2

接着跟随官方文档的脚步,看MNIST入门
(啊我没怎么看,只知道MNIST是手写字符识别…)



CNN到底是什么

在tensorflow的模板中,CNN的结构是这样的。
模型的预测流程由inference()构造,该函数会添加必要的操作步骤用于计算预测值的 logits,其对应的模型组织方式如下所示:
这里写图片描述
这里写图片描述
由conv卷积层,pool池化层,norm归一化,local全连接层,softmax输出层构成。

由于时间紧张,主要参考机器之心的知乎回答
以及神经网络的直观解释

brief history

Yann Lecun 是深度学习三大鼻祖之一,他在90年代初提出的LeNet-5成为NN的基础。

经典的网络结构:Lecun做的是字符识别。
这里写图片描述

这是现在的网络结构:图像分类。其实30年来差别不大。
这里写图片描述

CNN在2012年的翻身之作,标志着CNN进入computer vision,NIPS2012,深度学习三大鼻祖之一Hinton的论文《imagenet classification with deep CNN》中的网络结构(AlexNet):
这里写图片描述
我已经存在本地了,经典之作必须阅读。

现在逐一解释:

pixel 像素

现在我已经明白,图像是RGB三通道的,就会是一个三维tensor,深度是3,存储red,green,blue分量的值[0,255]。
而为了存储方便,有时会采用灰度矩阵。RGB转灰度值的著名心理学公式:
Gray=R0.299+G0.587+B0.114

这里写图片描述

convolutional layer 卷积层

第一层往往是卷积层convolutional layer.
这里写图片描述
这是卷积层的卷积核——过滤器filter,比如它是一个5*5*3的tensor,和图像的相应5*5*3作卷积,不断遍历相邻的块,得到一个28*28*1的matrix。
过滤器是一个特征识别器。
这里写图片描述
做卷积如图所示,符合这一特征的块对应的结果会很大。
这里写图片描述
我们把这个结果称作激活图/特征图(activation map/),相当于图像的某个小块激活了某一特征。
各种filter的效果
这里写图片描述
不同的过滤器会得到不同的激活映射matrix,将其叠成tensor,就构成了28*28*n的卷积层(n个feature map)。
如这是两个filter特征提取的动画。
这里写图片描述

至于相邻的卷积层,是指后一层的卷积层的输入是前一层的输出。这样越深的卷积层的视野越开阔,能看到更大的图像部分,提取整体的特征。如第一层是判断曲线直线,第二层是鼻子嘴,第三层是脸手。

ReLU层 rectified linear units

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值