提交 f47652c2 编写于 作者: LSayhi's avatar LSayhi

modified some errors

上级 929fbe1a
......@@ -10,25 +10,44 @@
"## 提高深度神经网络性能之--合理初始化\n",
"\n",
"\n",
"** 在深度学习的训练中,权重的初始化起着重要的作用,如何选择合适的初始化方式,影响着网络的学习能力**\n",
"** 在深度学习的训练中,权重的初始化起着重要的作用,如何选择合适的初始化方式,影响着网络的学习能力,今天我们就来看一下各种初始化方式有什么样的异同吧~**\n",
"\n",
"- $W$和$b$都初始化为零(矩阵、向量,下同)\n",
"**1.零初始化:**\n",
"\n",
" 这种方式由于导致前馈过程具有对称性,反向传播也产生对称性,导致权重值一样,相当于降低了隐藏层神经元的个数,从而无法进行有效的学习。\n",
" - $W$和$b$都初始化为零(矩阵、向量,下同),这种方式由于导致前馈过程具有对称性,反向传播也产生对称性,导致权重值一样,相当于降低了隐藏层神经元的个数,从而无法进行有效的学习。\n",
"\n",
"- $W$初始化为随机值,b初始化为0\n",
"**2.随机初始化:**\n",
"\n",
" 这种方式尽管b都为0,但由于W值不同,打破了对称性,可以有效学习,但是若网络深度很深,可能会产生梯度消失或梯度爆炸的问题,需要更好的方式\n",
" - W初始化为随机值,b初始化为0,这种方式尽管b都为0,但由于W值不同,打破了对称性,可以有效学习,但是若网络深度很深,可能会产生梯度消失或梯度爆炸的问题,需要更好的方式。\n",
"\n",
"- $W$初始化为随机值后,再除以$\\sqrt{\\frac{2}{\\text{dimension of the previous layer}}}$,b初始化为0\n",
" - 梯度消失:通常神经网络所用的激活函数是sigmoid函数,这个函数将负无穷到正无穷的输入映射到0和1之间,这个函数求导的结果是f′(x)=f(x)(1−f(x)),两个0到1之间的数相乘,得到的结果就会变得很小了。由于神经网络的反向传播是逐层对函数偏导相乘,因此当神经网络层数非常深的时候,最后一层产生的偏差就因为乘了很多的小于1的数而越来越小,非常接近0,从而导致层数比较浅的权重没有得到更新。\n",
"\n",
" 这种方式称为\"he initialization\",可以很好地控制每一层权重,使得其不会太大,从而有效降低梯度爆炸发生的概率,尤其对relu激活函数有效。\n",
" 注:\"Xavier initialization\" $\\sqrt{\\frac{1}{\\text{dimension of the previous layer}}}$\n",
" - 那么什么是梯度爆炸呢?梯度爆炸就是由于初始化权值过大,前面层会比后面层变化的更快,就会导致权值越来越大,这就是梯度爆炸。\n",
" - 以一个三层网络为例:如下结构:\n",
" \n",
" <img src=\"images/1.png\" >\n",
" \n",
" - 那么表达式就如下图所示:\n",
" \n",
" <img src=\"images/2.png\" >\n",
" \n",
" - 从上式可以看出,如果每个权重都一样,那么在多层网络中,从第二层开始,每一层的输入值都是相同的了也就是a1=a2=a3=....,那么就相当于一个输入了,那么反向传播算法最后得到的W和b也都相同,即对称的,就不能拟合任意输入到输出的映射了。\n",
" \n",
"**3.He initialization:**\n",
"\n",
" - $W$初始化为随机值后,再除以$\\sqrt{\\frac{2}{\\text{dimension of the previous layer}}}$,b初始化为0,这种方式称为\"he initialization\",可以很好地控制每一层权重,使得其不会太大,从而有效降低梯度爆炸发生的概率,尤其对relu激活函数有效。\n",
" \n",
"**4.Xavier initialization:** \n",
"\n",
" - 注:\"Xavier initialization\" $\\sqrt{\\frac{1}{\\text{dimension of the previous layer}}}$\n",
" \n",
"## 申明\n",
"本文原理解释和公式推导均由LSayhi完成,供学习参考,可传播;代码实现的框架由Coursera提供,由LSayhi完成,详细数据和代码可在github中查询,\n",
"请勿用于Coursera刷分。\n",
"https://github.com/LSayhi/Neural-network-and-Deep-learning\n"
"\n",
"https://github.com/LSayhi/DeepLearning\n",
"\n",
"微信公众号:AI有点可ai"
]
},
{
......
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
......@@ -45,7 +45,10 @@
"## 申明\n",
"本文原理解释和公式推导均由LSayhi完成,供学习参考,可传播;代码实现的框架由Coursera提供,由LSayhi完成,详细数据和代码可在github中查询,\n",
"请勿用于Coursera刷分。\n",
"https://github.com/LSayhi/Neural-network-and-Deep-learning"
"\n",
"https://github.com/LSayhi/DeepLearning\n",
"\n",
"微信公众号:AI有点可ai"
]
},
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册