训练神经网络的过程,就是在求未知参数(权重)。让网络搭建起来,得到理想的结果。

分类-监督学习。

反向传播求权重:每一层在算偏导数。局部梯度,链式法则。

激活函数:

sigmoid仅中间段趋势良好

对复杂的神经网络(累计),会出现梯度消失、梯度爆炸

训练网络是为了求权重;

反向传播方法,更新权重;

使用的是梯度来更新,如果梯度趋近于0,

sigmoid梯度最大才0.25。

Batch Normalization

BN解决了梯度消失同时保留非线性。

ICS现象(internel  shift)输入数据在每一层上分布发生了改变

神经网络初始输入要初始化,是为了落在梯度大的区间

随着网络的深入,数据落在

解决方法:移回去

一个神经网络可以解决问题最大的优势:非线性

sigmoid中,把shift移回去。中间部分类似线性了,和非线性初衷相悖。线性的网络表达能力特别差。
BN的高明之处,除了限定在一定标准差之内。拓展一下,还是以0为中心,拓宽。避免落在线性空间。
正态分布(均值影响中心位置,标准差sigma),通过控制参数来改变函数形状。

训练中直接训练BN的两个参数。

BN解决梯度消失,从而在深层网络中仍可以训练。

BN在网络中的位置:

但是层数深了还是无法避免梯度消失。

深度残差网络(Deep Residual Network )

Residual Network通过引入Skip Connection到CNN网络结构中,使得网络深度达到了千层的规模,并且其对于CNN的性能有明显的提升

参考:Skip Connection为何有效及其它 - 张俊林的博客 https://blog.csdn.net/malefactor/article/details/67637785

神经网络Batch Normalization——学习笔记的更多相关文章

  1. 深度学习(二十九)Batch Normalization 学习笔记

    Batch Normalization 学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50866313 作者:hjimce 一.背景意义 ...

  2. Batch Normalization 学习笔记

    原文:http://blog.csdn.net/happynear/article/details/44238541 今年过年之前,MSRA和Google相继在ImagenNet图像识别数据集上报告他 ...

  3. batch normalization学习理解笔记

    batch normalization学习理解笔记 最近在Andrew Ng课程中学到了Batch Normalization相关内容,通过查阅资料和原始paper,基本上弄懂了一些算法的细节部分,现 ...

  4. 从零开始构建并编写神经网络---Keras【学习笔记】[1/2]

    Keras简介:   Keras是由纯python编写的基于theano/tensorflow的深度学习框架.   Keras是一个高层神经网络API,支持快速实验,能够把你的idea迅速转换为结果, ...

  5. 神经网络与深度学习笔记 Chapter 1.

    转载请注明出处:http://www.cnblogs.com/zhangcaiwang/p/6875533.html sigmoid neuron 微小的输入变化导致微小的输出变化,这种特性将会使得学 ...

  6. 神经网络与深度学习笔记 Chapter 6之卷积神经网络

    深度学习 Introducing convolutional networks:卷积神经网络介绍 卷积神经网络中有三个基本的概念:局部感受野(local receptive fields), 共享权重 ...

  7. 神经网络与深度学习笔记 Chapter 3.

    交叉熵 交叉熵是用于解决使用二次代价函数时当单个神经元接近饱和的时候对权重和bias权重学习的影响.这个公式可以看出,当神经元饱和的时候,sigma的偏导接近于0,w的学习也会变小.但是应用交叉熵作为 ...

  8. 神经网络与深度学习笔记 Chapter 2.

    转载请注明出处http://www.cnblogs.com/zhangcaiwang/p/6886037.html 以前都没有正儿八经地看过英文类文档,神经网络方面又没啥基础,结果第一章就花费了我将近 ...

  9. 神经网络系列学习笔记(四)——神经网络之RNN学习笔记

    不同于传统的FNNs(Feed-forward Neural Networks,前向反馈神经网络),RNNs引入了定向循环,能够处理那些输入之间前后关联的问题. RNNs的目的是用来处理序列数据. 具 ...

随机推荐

  1. windows bat启动多个应用程序

      windows bat启动多个应用程序 CreationTime--2018年7月26日11点02分 Author:Marydon 1.应用场景 每天开机后,都需要打开平常所需要的软件,又不想将程 ...

  2. Unity3D游戏开发之SQLite让数据库开发更简单

    各位朋友大家好.欢迎大家关注我的博客,我是秦元培,我是博客地址是http://blog.csdn.net/qinyuanpei.在经历了一段时间的忙碌后,博主最终有时间来研究新的东西啦,今天博客向和大 ...

  3. 剑指offer代码 vs2013执行

    方法: 代码文件夹名称为:CodingInterviewChinese2-master 1. 用vs2013加载解决方案 .sln文件 2. 一个解决方案下面有多个项目,通过右键解决方案->属性 ...

  4. resharper警告 :linq replace with single call to FirstOrDefault

    使用resharper时对linq使用的FirstOrDefault 一直产生一个警告,

  5. nodejs 的好基友:pm2

    安装:npm install pm2 -g #全局安装pm2 查看版本:pm2 -v 自动重启: pm2 start hello.js --watch 查看列表:pm2 list 查看日志: pm2 ...

  6. vue组件调用(用npm安装)

    vue用webpack打包方式新建项目,注意刚开始可以先关闭路由和代码错误检测功能 1.建立了一个Hi.vue的组件 <template> <div>Hi~~{{msg}}-- ...

  7. ecshop报错”Deprecated: Assigning the return value of…”解决办法

    ECSHOP生成站点地图提示”Deprecated: Assigning the return value of new by reference is deprecated in…”. 我的问题在批 ...

  8. laravel模型中打印sql语句

    模型中有个 ->toSql() 可以打印sql语句

  9. java后台分页实例一

    后台框架:jfinal + velocity.前台框架:jquery  页面 <!DOCTYPE html> <html> <head> <meta char ...

  10. 为什么在c语言中使用gets函数是危险的

      If you have code like this: char s[10]; gets( s ); and you type in more than 10 characters when th ...