运维开发网

干货|吴恩达Coursera课程教你学习神经网络<二>!

运维开发网 https://www.qedev.com 2020-11-25 09:17 出处:51CTO 作者:机器学习AI
吴恩达机器学习课程系列笔记课程笔记|吴恩达Coursera机器学习Week1笔记-机器学习基础干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归干货|机器学习零基础?不要怕,吴恩达课程笔记第三周!逻辑回归与正则干货|吴恩达Coursera课程教你学习神经网络!NeuralNetwork:Learning上一周的课程中讲了神经网络的结构以及正向传播(feedforward)过程,了

吴恩达机器学习课程系列笔记

课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础

干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归

干货|机器学习零基础?不要怕,吴恩达课程笔记第三周!逻辑回归与正则

干货|吴恩达Coursera课程教你学习神经网络!

Neural Network: Learning

上一周的课程中讲了神经网络的结构以及正向传播(feed forward)过程,了解了神经网络是如何进行预测的,但是预测的结果怎么和真是结果进行比较以及发现了错误如何修改还没有提及。

这一周的课程中,介绍了cost function作为结果比较的标准以及backpropagation方法作为错误修改的方式。

1

Cost Function

Linear regression使用平方差来表示结果之间的差距:

干货|吴恩达Coursera课程教你学习神经网络<二>!

Logistic regression使用negative log来表示结果之间的差距:

干货|吴恩达Coursera课程教你学习神经网络<二>!

Neural network实际上就是k个Logistic regression的一个集合,所以其cost function也是negative log的一个集合。整个网络产生的error其实就是每一个Logistic regression产生的error的和。

干货|吴恩达Coursera课程教你学习神经网络<二>!

2

Backpropagation

在Logistic regression中,模型是向着error的负梯度方向更新的,所以需要计算cost function的梯度,这在Neural Networks中也是如此,只不过这次的权值θ多了一些,需要一层一层慢慢求解了。

假设神经网络有4层:

干货|吴恩达Coursera课程教你学习神经网络<二>!

先来回顾一下,一条训练数据的正向传播的情况,这次我们不把bias直接加到矩阵中去了,把它拿出来,令为b(i),是一个列向量:

干货|吴恩达Coursera课程教你学习神经网络<二>!

干货|吴恩达Coursera课程教你学习神经网络<二>!

干货|吴恩达Coursera课程教你学习神经网络<二>!

干货|吴恩达Coursera课程教你学习神经网络<二>!

干货|吴恩达Coursera课程教你学习神经网络<二>!

干货|吴恩达Coursera课程教你学习神经网络<二>!

干货|吴恩达Coursera课程教你学习神经网络<二>!

至此,所有的偏导都求完了,总结一下:

干货|吴恩达Coursera课程教你学习神经网络<二>!

3

Gradient Checking

如果梯度计算不正确,那整个模型都错了。最惨的是,在训练了几个小时之后发现梯度算错了。所以梯度计算完之后,需要验算一下对不对。

梯度可以如下约等于:

干货|吴恩达Coursera课程教你学习神经网络<二>!

验算过程如下:

干货|吴恩达Coursera课程教你学习神经网络<二>!

4

Random Initialization

模型中权重和偏置的初始值可以随便设成任何数字,但是设置成什么样直接决定了模型收敛的快慢和程度,进而影响模型的performance。

把权重和偏置初始化为0非常不好。因为在前向传播过程中,全部初始化成0,则结果就是0,在得到残差之后,反向传播过程中,残差根据权重进行分配,因为权重全部为0,所以隐藏层的残差为0,即权重不更新,所以不能全部初始化成0,权重为0的神经元是死掉的,是不会更新的。

另外全部初始化成同样的数字也是不好的,模型将一直以同样的方式更新这些神经元。反向传播过程中,残差根据权重进行分配,因为权重都相同,所以权重的更新也是相同的,所以网络中的每一个神经元都是一样的。

一般从均匀分布中随机初始化权重和偏置,比如:

干货|吴恩达Coursera课程教你学习神经网络<二>!

推荐阅读:

精选干货|近半年干货目录汇总

干货|十分钟带你看遍词向量模型

干货|一文搞懂Hungarian Algorithm匈牙利算法

      欢迎关注公众号学习交流~         

干货|吴恩达Coursera课程教你学习神经网络<二>!

欢迎加入交流群交流学习

干货|吴恩达Coursera课程教你学习神经网络<二>!

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号