CNN神经网络给图像分类(Matlab)

本人研一刚入学,老师让用CNN给图像分类。导师之前不是从事跟图像有关的研究,一直都是自己在学习。下载了一个deeplearningtoolbox,终于运行了出来了结果。关... 本人研一刚入学,老师让用CNN给图像分类。导师之前不是从事跟图像有关的研究,一直都是自己在学习。下载了一个deeplearning toolbox,终于运行了出来了结果。关于CNN的原理框架大概也都明白,不知道下一步该怎么办,学习什么了?
1、是要把自己的图像数据变成MNIST数据集的格式输入到该网络中训练吗?(它的这个手写数字体都是灰度图像,那么彩色图像怎么办呢?)
2、做CNN的都是在deeplearning toolbox里这些函数的基础上修改函数变量吗?这是不是相当于一个模版?(cnntrain、cnnff、cnnapplygrads、cnntest)
3、真的不知道自己该怎么学习CNN了,希望懂的朋友可以给指条明路啊!!
(本科是通信专业的,不是计算机)
谢谢!
展开
 我来答
匿名用户
2016-09-03
展开全部
  1. 你要看你的图像是什么。如果是彩色数字,先转成灰度。用MNIST训练网络。如果是各种主题,用彩色的imageNET训练。如果你的数据量大到足以与数据集媲美,那么直接用你的数据训练网络即可。

    在流行的数据集上训练完,你需要固定卷积池化层,只训练后面的全连接层参数,用你自己的数据集。

  2. CNN一是调整网络结构,几层卷积几层池化,卷积的模板大小等。而是在确定结构上调整参数,weight scale,learning rate,reg等。

  3. 你用CNN做图像分类,无非是把CNN当成学习特征的手段,你可以吧网络看成两部分,前面的卷积层学习图像基本-中等-高层特征,后面的全连接层对应普通的神经网络做分类。


需要学习的话,首先你去看UFLDL教程。然后cs231n


与其问别人,首先你看了imageNet数据集了吗?


对于把流行数据集与自己数据混合训练模型的方法。如果两种数据十分相似,也未尝不可。但是对于流行数据集而言,自己的标注数据量一般不会太大,如果是1:1000,1:100这种比例,那么可能不加自己的数据,完全用数据集训练的模型就能得到一个还好的结果。

如果自己的数据和数据集有些差别,那混在一起我认为自己的是在用自己的数据当做噪声加到数据集中。cnn认为图像是局部相关的,而欺骗CNN的方法则主要出于,自然图像分布在一种流形结构中,训练的模型需要这种流形假设,而人工合成的图像由于添加非自然噪点,不满足模型假设,所以能用肉眼难分辨的噪声严重干扰分类结果。

如果二者相差过大,数据集是一种分布,你的数据是另一种,放到一起训练,我没试过,但我认为结果不会太好。

这时候只能把数据集用来训练cnn的特征提取能力。而后用于分类的全连接层,视你的数据量调整规模。

阿猛的晴姐
2017-09-01
知道答主
回答量:2
采纳率:0%
帮助的人:1933
展开全部
刚刚看到,奉劝一句,还是放弃deeplearning toolbox吧,因为里面有很多错误,而且,如果想对网络进行改进很麻烦的,还是转到tensorflow或者caffe吧,不想换语言,可以用matconvnet框架
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友41ee313
2016-09-10
知道答主
回答量:4
采纳率:0%
帮助的人:4533
展开全部
你做的是直接输入彩色的图像吗
追问
是的,要让他学习颜色特征。你好,我想请教您关于CNN图片分类的问题,为什么不能把图片直接改成矩阵形式导入现成的程序中呢?那如果要实现分类,要做哪些工作?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式