吴恩达机器学习笔记-反向传播算法练习

直观感受反向传播的概念

上篇文章讲述了神经网络的反向传播算法的基本概念,现在来详细的对此算法进行一些讲解。
回忆一下神经网络的代价函数:

如果我们只考虑一个简单的只有一个输出单元的情况,即k=1,那么代价函数则变成:

直观的说,\delta_j^(l)项表示在第l层中第j个单元的误差。更正式的说,\delta的值实际上是代价函数的导数。

\delta_j^(l) = \frac{\partial}{\partial z_j^(l)}cost(t)
由于函数的导数即是其切线的斜率,因此其切线越陡则说明计算的误差越大。每一个神经元的误差都与后面连接的神经元有关,如下图计算:

其中:
\delta_2^(2) = \Theta_{12}^(2)\delta_1^(3) + \Theta_{12}^(2)\delta_1^(3)
\delta_2^(3) = \Theta_{12}^(3)\delta_1^(4)

参数展开

使用神经网络时,我们处理的一组矩阵:\Theta^(1),\Theta^(2),\Theta^(3)...,为了使用最优化函数比如"fminuc()",我们需要将所有的元素展开将其放入一个长向量中:
thetaVector = [Theta1(:);Theta2(:),Theta(3);]
比如说如果Theta1的维度是1011,Theta2是1011,Theta3是1*11,那我们通过展开后的向量来得到原始的矩阵的话,需要如下的方法:
Theta1 = reshape(thetaVector(1:110),10*11) \\ Theta2 = reshape(thetaVector(111:220),10*11) \\ Theta3 = reshape(thetaVector(221:231),1*11) \\

总结的话就直接看吴恩达老师的笔记:

梯度校验

梯度校验是用来确保我们做的反向传播算法是否正确,这里假设代价函数的导数为:
\frac{\partial}{\partial \Theta}J(\Theta) \approx \frac{J(\Theta+\epsilon) - J(\Theta - \epsilon)}{2\epsilon}
那么在多个\theta的矩阵,则可以得到下面近似于关于\Theta的导数:
\frac{\partial}{\partial \Theta}J(\Theta) \approx \frac{J(\Theta_1,... \Theta_j+\epsilon,...,\Theta_n) - J(\Theta_1...,\Theta_j - \epsilon,... \Theta_n)}{2\epsilon}
一般取\epsilon = 10^{-4}比较合适,太小了会导致一些计算问题。因此我们只是在\Theta矩阵中加上或减去\epsilon,在octave中代码如下所示:

我们已经计算过deltaVector,因此计算出gradApprox后就可以判断是否gradApprox ≈ deltaVector。一旦计算出反向传播算法是准确的,就不需要再继续计算gradApprox了,因为计算gradApprox的过程是很缓慢的。

随机初始化参数

将所有的权重初始化为0不适用于神经网络,那样反向传播时,所有节点将重复更新为相同的值。因此,我们可以使用以下方法随机初始化我们的Θ矩阵的权重:

因此,这里初始化每个\Theta_{ij}^(l)[-\epsilon,\epsilon]之间的随机值,使用上述公式保证我们得到所需的界限,相同的程序使用于所有的\Theta。以下代码可以用来进行实验:(Theta1,Theta2,Theta3的维度同上面一样,这里的epsilon和上面梯度校验的无关):

Theta1 = rand(10,11) * (2*INIT_EPSILON) - INIT_EPSILON;
Theta2 = rand(10,11) * (2*INIT_EPSILON) - INIT_EPSILON;
Theta3 = rand(1,11) * (2*INIT_EPSILON) - INIT_EPSILON;

总结

这里就直接使用原课程的笔记,懒得写了,写了也只是把这个翻译一遍不如直接看原版笔记。这一周的内容的确有点难度了,需要一定时间消化。

以上,为吴恩达机器学习第五周后半部分内容。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容