【面向代码】学习 Deep Learning(三)Convolution Neural Network CNN

本文从代码角度解析MATLAB DeepLearnToolbox中的卷积神经网络(CNN)算法,通过cnnsetup、cnntrain等函数探讨CNN的工作流程。文中提到CNN的经典结构,并建议读者预先了解卷积和池化概念。尽管toolbox中的 pooling 层未使用sigmoid激活函数,但依然详细介绍了代码实现过程。最后,提到了Alex Krizhevsky的ImageNet成果,该成果基于2012年的深度卷积神经网络。
摘要由CSDN通过智能技术生成
               

==========================================================================================

最近一直在看Deep Learning,各类博客、论文看得不少

但是说实话,这样做有些疏于实现,一来呢自己的电脑也不是很好,二来呢我目前也没能力自己去写一个toolbox

只是跟着Andrew Ng的UFLDL tutorial 写了些已有框架的代码(这部分的代码见github)

后来发现了一个matlab的Deep Learning的toolbox,发现其代码很简单,感觉比较适合用来学习算法

再一个就是matlab的实现可以省略掉很多数据结构的代码,使算法思路非常清晰

所以我想在解读这个toolbox的代码的同时来巩固自己学到的,同时也为下一步的实践打好基础

(本文只是从代码的角度解读算法,具体的算法理论步骤还是需要去看paper的

我会在文中给出一些相关的paper的名字,本文旨在梳理一下算法过程,不会深究算法原理和公式)

==========================================================================================

使用的代码:DeepLearnToolbox  ,下载地址:点击打开,感谢该toolbox的作者

==========================================================================================

今天是CNN的内容啦,CNN讲起来有些纠结,你可以事先看看convolutionpooling(subsampling),还有这篇:tornadomeet的博文

下面是那张经典的图:

======================================================================================================

打开\tests\test_example_CNN.m一观


cnn.layers = {    struct('type', 'i') %input layer    struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer    struct('type', 's', 'scale', 2) %sub sampling layer    struct('type', 'c', 'outputmaps'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值