Machine Learning week 5 Neural Networks Learning
来源:互联网 发布:杭州行知小学划区 编辑:程序博客网 时间:2024/06/06 18:58
Neural Networks Learning
Cost Function
这里定义一些新的符号
L表示总共的layer数量,如下图,L=4
s带下标l,表示第l层的units个数,比如layer2有5个unit, 不包含bias unit
下面以binary classification和multi class classification为例子:
binary classification: 最终只有一个output,记作h(x),也就是说h(x)是实数空间的一个数字
multi classification:结果会有若干个output,整体作为一个向量,那么这里的h(x)就是k维空间向量中的一个向量。
理解上面lambda注意s是不包含bias unit的,每一层的bias unit都要排除
Back propagation Algorithm
我们的目标是让J取得最小值,如果使用octave系统自带的优化的求解方法的话,要计算下面2个东西,J 和 Gradient
从最后一层开始一次向前分别定义每一层的“error”,第一层除外,因为作为input layer是没有error的,其实这里的“error”和我们真正要计算的偏导数有一个对应的关系,如下:
下面的Δ要给每个layer都计算一次,而且要把1-m个trainning example计算到的Δ累加起来。Δ和对应layer的Θ矩阵是一样大小的
Backpropagation intuition
从x input前向计算到z,然后使用sigmoid函数得到第一层的activation value,依次计算到后面的a,可以看得出来下面图中最下面的公式对应图片中的关系。这里先有个图像化的感知。
看一下下面,后向计算delta,画线的方式,然后看一下右边的手写公式,现在有些理解后向传播了吧。
Unrolling parameters
octave内置的优化的方法,如fminunc,要求的输入的gradient,theta,都是vector类型的,而我们这里的theta,每一层都是一个矩阵,如何把神经网络中的theta fit到内置的优化方法中呢?
我们下面看一下如何处置这样的问题
看一下,下面计算顺序,这就是我们将来计算的一个顺序啦,当然还有一块内容没包含进来
Gradient Checking
如果真的要计算的话,如下
循环计算出来估计值,然后和Dvec比较,如果很接近的话,我们就可以很有信心的认为我们的计算是正确的
但是计算估计值的时候要计算改变单个theta后J的value,相当于一次完全的前向计算过程,很有很大的计算量
那么现在我们更新一下我们整个计算过程
Random Initialization
会发生下面的事情,首先是a1 = a2, 然后反向计算δ也都相等,相应的偏导数都相等,然后更新的θ也都相等,那么最终计算的每层hidden layer的hidden unit也都相等,那么其实最终hidden unit只得到一个feature,而并非是神经网络的本意。
那么我们这里初始化采用随即初始化的方法,实际上这里的ξ是有一个经验取法的,参考后面的programming excercise部分,下面是给每个theta进行初始化的过程。
Put it together
下面我们总结如何训练一个神经网络
注意实际上神经网络的cost function并不是一个凹函数,所以很有可能我们只得到局部最优解,不过一般局部最优解也会是一个比较优秀的结果。
可以看得出来,选取不同的theta有可能最终带来不同的结果
Autonomous Driving
- Machine Learning week 5 Neural Networks Learning
- Machine Learning - IX. Neural Networks Learning神经网络 (Week 5)
- Machine Learning week 5 quiz: Neural Networks: Learning
- Machine Learning week 4 Neural Networks Presentation
- Coursera Machine Learning Week 4 - Neural Networks
- Machine Learning week 4 quiz: Neural Networks: Representation
- Machine Learning week 5 programming exercise Neural Network Learning
- Machine Learning week 5 programming exercise Neural Network Learning
- Machine Learning week 5 programming exercise Neural Network Learning
- Neural Networks for Machine Learning
- [ML of Andrew Ng]Week 5 Neural Networks:Learning
- Machine Learning - VIII. Neural Networks Representation神经网络的表示 (Week 4)
- Machine Learning week 4 quiz: programming assignment-Multi-class Classification and Neural Networks
- #“Machine Learning”(Andrew Ng)#Week 4_1:Neural Networks(神经网络)
- Neural Networks for Machine Learning by Geoffrey Hinton (5)
- Neural Networks for Machine Learning 课程笔记
- Machine Learning - Neural Networks Representation Part I
- Machine Learning - Neural Networks Representation Part II
- Android之ListView的用法(ListActivity)——系列(7)
- 各排序的稳定性分析(原文章标题:各种排序方法总结 )
- asp.net利用Ajax和Jquery在前台向后台传参数并返回值
- IOS 5中的strong和weak关键字
- 快速排序quicksort
- Machine Learning week 5 Neural Networks Learning
- chrome 快捷键
- OpenCV中如何只对IplImage图像的数据进行处理
- erlang杂记六 --- 写了个小函数(2):最长子序列
- 希尔排序 shell sort
- zedGraph拖动打开文件
- 第十一次课后作业
- Session同步
- Android五个进程等级