【转】零基础入门深度学习(4) - 卷积神经网络

论坛 期权论坛     
选择匿名的用户   2021-6-2 18:54   154   0
<div class="blogpost-body" id="cnblogs_post_body">
<div class="editor-reader-full-shown" id="editor-reader-full">
  <div class="reader-full-topInfo-shown" id="reader-full-topInfo">
   <code>&#64;hanbingtao</code>
   <code><span class="article-updated-date">2017-08-28 19:53</span></code>
   <code>字数 <span class="article-characters">28345</span></code>
   <code>阅读 <span class="article-read">85171</span></code>
  </div>
  <div class="wmd-preview wmd-preview-full-reader" id="wmd-preview">
   <div class="md-section-divider">
     
   </div>
   <div class="md-section-divider">
     
   </div>
   <h1 id="零基础入门深度学习4-卷积神经网络">零基础入门深度学习(4) - 卷积神经网络</h1>
   <p><code>机器学习</code> <code>深度学习入门</code></p>
   <hr>
   <p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-2cd79e41d0727a68e7d39461875cf5b0.jpg"></p>
   <blockquote class="white-blockquote">
    <p>无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就out了?现在救命稻草来了,《零基础入门深度学习》系列文章旨在讲帮助爱编程的你从零基础达到入门级水平。零基础意味着你不需要太多的数学知识,只要会写程序就行了,没错,这是专门为程序员写的文章。虽然文中会有很多公式你也许看不懂,但同时也会有更多的代码,程序员的你一定能看懂的(我周围是一群狂热的Clean Code程序员,所以我写的代码也不会很差)。</p>
   </blockquote>
   <div class="md-section-divider">
     
   </div>
   <h2 id="文章列表">文章列表</h2>
   <p><a href="https://www.zybuluo.com/hanbingtao/note/433855">零基础入门深度学习(1) - 感知器</a> <br><a href="https://www.zybuluo.com/hanbingtao/note/448086">零基础入门深度学习(2) - 线性单元和梯度下降</a> <br><a href="https://www.zybuluo.com/hanbingtao/note/476663">零基础入门深度学习(3) - 神经网络和反向传播算法</a> <br><a href="https://www.zybuluo.com/hanbingtao/note/485480">零基础入门深度学习(4) - 卷积神经网络</a> <br><a href="https://zybuluo.com/hanbingtao/note/541458">零基础入门深度学习(5) - 循环神经网络</a> <br><a href="https://zybuluo.com/hanbingtao/note/581764">零基础入门深度学习(6) - 长短时记忆网络(LSTM)</a> <br><a href="https://zybuluo.com/hanbingtao/note/626300">零基础入门深度学习(7) - 递归神经网络</a></p>
   <div class="md-section-divider">
     
   </div>
   <h2 id="往期回顾">往期回顾</h2>
   <p>在前面的文章中,我们介绍了全连接神经网络,以及它的训练和使用。我们用它来识别了手写数字,然而,这种结构的网络对于图像识别任务来说并不是很合适。本文将要介绍一种更适合图像、语音识别任务的神经网络结构——卷积神经网络(Convolutional Neural Network, CNN)。说卷积神经网络是最重要的一种神经网络也不为过,它在最近几年大放异彩,几乎所有图像、语音识别领域的重要突破都是卷积神经网络取得的,比如谷歌的GoogleNet、微软的ResNet等,打败李世石的AlphaGo也用到了这种网络。本文将详细介绍卷积神经网络以及它的训练算法,以及动手实现一个简单的卷积神经网络。</p>
   <div class="md-section-divider">
     
   </div>
   <h2 id="一个新的激活函数relu">一个新的激活函数——Relu</h2>
   <p>最近几年卷积神经网络中,激活函数往往不选择sigmoid或tanh函数,而是选择relu函数。Relu函数的定义是:</p>
   <div class="md-section-divider">
     
   </div>
   <p> </p>
   <div class="MathJax_SVG_Display">
     
   </div>
   <p> </p>
   <p>Relu函数图像如下图所示:</p>
   <p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-d4ae6c2aae057afadd00be3a82efa13a.png" title=""></p>
   <p>Relu函数作为激活函数,有下面几大优势:</p>
   <ul><li>速度快 和sigmoid函数需要计算指数和倒数相比,relu函数其实就是一个max(0,x),计算代价小很多。</li><li>减轻梯度消失问题 回忆一下计算梯度的公式<span class="MathJax_Preview"><span class="MathJax_SVG" id="MathJax-Element-2-Frame">。其中,<span class="MathJax_Preview"><span class="MathJax_SVG" id="MathJax-Element-3-Frame">是sigmoid函数的导数。在使用反向传播算法进行梯度计算时,每经过一层sigmoid神经元,梯度就要乘上一个<span class="MathJax_Preview"><span class="MathJax_SVG" id="MathJax-Element-4-Frame">。从下图可以看出,<span class="MathJax_Preview"><span class="MathJax_SVG" id="MathJax-Element-5-Frame">函数最大值是1/4。因此,乘一个<span class="MathJax_Preview"><span class="MathJax_SVG" id="MathJax-Element-6-Frame">会导致梯度越来越小,这对于深层网络的训练是个
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP