神经网络学习(十五)神经网络学习到了什么
2018-04-01 13:23
357 查看
系列博客是博主学习神经网络中相关的笔记和一些个人理解,仅为作者记录笔记之用,不免有很多细节不对之处。
这一节,我们看看到底神经网络学习到了什么。原本是要对卷积神经网络进行研究的,但是卷积神经网络的训练太慢了,我们就以BP网络为例,简单探寻一下吧。
那么,我们如何去探寻一个神经元学习到了什么呢?我们可以这样做:定义一个神经元的激活度,然后找到可以最大化激活这个神经元的输入 xx,通过 xx 看看神经元学习了什么。对于全连接的神经元可以定义如下的一个目标函数x∗=argmaxaljx∗=argmaxajl这个 x∗x∗ 就是我们要考察的对象。对于上面的这个目标函数,我们可以使用其他的代价函数代替,比如前面我们学校的交叉熵代价函数,它们的本质是一致的,通过不断训练使分类结果接近真实标签。这样我们就不需要对正向传播和反向传播进行做太大更改了。
由于使用常规的正向传播算法,我们只需要关心反向传播即可。如何进行反向传播误差呢?有了前面的咱们推导的基础,这个就非常简单了–依旧是我们的核心运算:链式法则:∂C∂al−1=∂C∂zl∂zl∂al−1=(wl)Tδl∂C∂al−1=∂C∂zl∂zl∂al−1=(wl)Tδl通过这个递推式,我们就可以递推到第一个输入上。输入的更新公式为x∗=x∗−ηδ1x∗=x∗−ηδ1
好了,下面咱们看看可以最大化激活输出神经元的输入吧
Whoops…….完全没有期待中的数字,上面这个图说明,即使我们给网络输入一堆电视雪花一样的数值,我们也可以得到一个分类结果。机器学习到的东西与我们的认识是非常不一样的。加入一些稀疏性,即对代价函数添加一个L!正则化项(x∗=x∗−ηλsgn(x∗)−ηδ1x∗=x∗−ηλsgn(x∗)−ηδ1),情况大为好转,隐隐约约可以看到数字的模样。
这一节,我们看看到底神经网络学习到了什么。原本是要对卷积神经网络进行研究的,但是卷积神经网络的训练太慢了,我们就以BP网络为例,简单探寻一下吧。
那么,我们如何去探寻一个神经元学习到了什么呢?我们可以这样做:定义一个神经元的激活度,然后找到可以最大化激活这个神经元的输入 xx,通过 xx 看看神经元学习了什么。对于全连接的神经元可以定义如下的一个目标函数x∗=argmaxaljx∗=argmaxajl这个 x∗x∗ 就是我们要考察的对象。对于上面的这个目标函数,我们可以使用其他的代价函数代替,比如前面我们学校的交叉熵代价函数,它们的本质是一致的,通过不断训练使分类结果接近真实标签。这样我们就不需要对正向传播和反向传播进行做太大更改了。
由于使用常规的正向传播算法,我们只需要关心反向传播即可。如何进行反向传播误差呢?有了前面的咱们推导的基础,这个就非常简单了–依旧是我们的核心运算:链式法则:∂C∂al−1=∂C∂zl∂zl∂al−1=(wl)Tδl∂C∂al−1=∂C∂zl∂zl∂al−1=(wl)Tδl通过这个递推式,我们就可以递推到第一个输入上。输入的更新公式为x∗=x∗−ηδ1x∗=x∗−ηδ1
好了,下面咱们看看可以最大化激活输出神经元的输入吧
Whoops…….完全没有期待中的数字,上面这个图说明,即使我们给网络输入一堆电视雪花一样的数值,我们也可以得到一个分类结果。机器学习到的东西与我们的认识是非常不一样的。加入一些稀疏性,即对代价函数添加一个L!正则化项(x∗=x∗−ηλsgn(x∗)−ηδ1x∗=x∗−ηλsgn(x∗)−ηδ1),情况大为好转,隐隐约约可以看到数字的模样。
相关文章推荐
- 七分钟带你读懂深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 机器学习笔记:形象的解释神经网络激活函数的作用是什么?
- 深度学习之一---什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 【神经网络与深度学习】什么是HDF
- 七分钟带你读懂深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 什么是神经网络 (深度学习第一章)?
- 七分钟带你读懂深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 七分钟带你读懂深度学习之什么是神经网络
- 吴恩达(Andrew Ng)深度学习工程师笔记 - 第一门课-神经网络和深度学习-第一周深度学习概论-第二节:什么是神经网络
- 吴恩达深度学习课程笔记 1.2什么是神经网络?
- 七分钟带你读懂深度学习之什么是神经网络