卷积神经网络源码——最终输出部分的理解

  针对matlab版本的卷积神经网络的最终分类器(输出部分)的理解:   部分代码:

    '''cnnff'''
    net.fv = []; % 把最后一层得到的特征map拉成一条向量,作为最终提取到的特征向量  
    for j = 1 : numel(net.layers{n-1}.a) % 最后一层的特征map的个数 
        sa = size(net.layers{n-1}.a{j});   %得到几行几列的数
        % 将所有的特征map拉成一条列向量。还有一维就是对应的样本索引。每个样本一列,每列为对应的特征向量  
        net.fv = [net.fv; reshape(net.layers{n-1}.a{j}, sa(1) * sa(2), sa(3))];
    end;
    %  feedforward into output perceptrons
    if strcmp(net.layers{n}.objective, 'sigm')
         % 计算网络的最终输出值
        net.o = sigm(net.ffW * net.fv + repmat(net.ffb, 1, size(net.fv, 2)));
    '''cnntest'''
    net = cnnff(net, x);  %前向传播得到输出
    % [Y,I] = max(X) returns the indices of the maximum values in vector I   
    [~, h] = max(net.o);   % 找到最大的输出对应的标签 
    [~, a] = max(y);  % 找到最大的期望输出对应的索引 
    bad = find(h ~= a); % 找到他们不相同的个数,也就是错误的次数  
    er = numel(bad) / size(y, 2);

  拿MNIST手写体的十种分类来举例, 单纯的提取出CNN输出特征向量的最大值在向量里的位置,位置对应于10个数字0~9   如向量L1=[0 0.9 0.1 0.2 0 0 0 0 0 0 ], 0.9最大,在第二个位置,分类到数字1的类中。   如向量L2=[0 0.5 0.1 0.2 0 0 0 0 0 0.8 ], 0.8最大,在第十个位置,分类到数字9的类中。   说明:为什么第二个位置就代表数字1这一类呢,这和标签有关,这里面标签的设定不是1,2,3,4,5…;而是[1,0,0,0,…],1代表表示哪一类。   当然也可以进行其他分类器设计,CNN的主要任务是进行特征提取,对应分类器设计没有要求。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

对数几率回归 —— Logistic Regression

首先,在引入LR(Logistic Regression)模型之前,非常重要的一个概念是,该模型在设计之初是用来解决0/1二分类问题,虽然它的名字中有回归二字,...

982
来自专栏瓜大三哥

matlab GUI基础8

图像处理工具箱 从屋物理和数学角度看,图像时记录物体辐射能量的空间发呢不,这个分布是空间坐标、时间坐标和波长的函数,即i = f(x,y,z,λ,t),这样的图...

2447
来自专栏Gaussic

Machine Learning笔记(二) 单变量线性回归

对于给定的训练集(Training Set),我们希望利用学习算法(Learning Algorithm)找到一条直线,以最大地近似所有的数据,然后通过这条直线...

673
来自专栏人工智能LeadAI

前馈神经网络——深度学习之神经网络核心原理与算法

因上几次读者反映,公式代码有乱码和不规整的问题,小编有改善哟,这篇文章开始亲们会看到效果的哟~

1144
来自专栏大数据挖掘DT机器学习

Python实现--元算法、AdaBoost

第一节,元算法略述 遇到罕见病例时,医院会组织专家团进行临床会诊共同分析病例以判定结果。如同专家团临床会诊一样,重大决定汇总多个人的意见往往胜过一个人的决定。机...

2956
来自专栏人工智能

卷积神经网络详解(二)——自己手写一个卷积神经网络

作者:Charlotte77数学系的数据挖掘民工 博客专栏:http://www.cnblogs.com/charlotte77/ 个人公众号:Charlott...

21110
来自专栏fangyangcoder

Andrew Ng机器学习课程笔记(二)之逻辑回归

http://www.cnblogs.com/fydeblog/p/7364636.html

833
来自专栏码洞

机器学习sklearn线性回归

回归算法是机器学习的一个基础算法,简单的就是线性回归,还有非线性回归。本节我们讲解简单的线性回归。

481
来自专栏JadePeng的技术博客

python实现多变量线性回归(Linear Regression with Multiple Variables)

本文介绍如何使用python实现多变量线性回归,文章参考NG的视频和黄海广博士的笔记 现在对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型...

3997
来自专栏null的专栏

利用Theano理解深度学习——Multilayer Perceptron

一、多层感知机MLP 1、MLP概述 对于含有单个隐含层的多层感知机(single-hidden-layer Multi-Layer Perceptron, M...

2906

扫码关注云+社区