Coursera-MachineLearning Note-Week 5

MachineLearning Note-Week 5

Lecture 9-Neural Networks:Learning

1. Cost function (代价函数)

神经网络的基本结构
其中

  • 训练集是:
    (x(1),y(1)),...,(x(m),y(m))
  • L =神经网络的层数
  • sl=l()

对于一个分类问题有两种情况:
- Binary Classification : y = 0 or =1. Output Layer 有一个神经元
- Multi-Class Classificaiton:
神经网络的输出层上有K个输出单元

1.1 Cost function

Logistic Regression

J(θ)=1m[i=1my(i)log(hθ(x(i)))(1y(i))log(1hθ(x(i)))]+λ2mj=1nθ2j

向量化之后应为
Xn×(m+1)
yn×1
θ(m+1)×1

neural networks

神经网络中的输出层通常有多个输出,属于K维向量,cost function定义如下:

hΘ(x)Rk,hΘ(x)=ΘTX,(hΘ(x))i=ithoutput

J(Θ)=1m[i=1mk=1Ky(i)klog(hθ(x(i)))k(1y(i)k)log(1(hθ(x(i)))k)]+λ2ml=1L1i=1slj=1n(Θ(l)ji)2

向量化之后应为
Xn×(m+1)
yn×K
θL1sl+1×sl+1

J(θ)=1m(ylog(Xθ)+(1.y)log(1.Xθ))+λ2mθθ

神经网络中的输出层通常有多个输出,属于K维向量,cost function定义如下:
hΘ(x)Rk,hΘ(x)=ΘTX,(hΘ(x))i=ithoutput

J(Θ)=1m[i=1mk=1Ky(i)klog(hθ(x(i)))k(1y(i)k)log(1(hθ(x(i)))k)]+λ2ml=1L1i=1slj=1n(Θ(l)ji)2

向量化之后应为
Xn×(m+1)
yn×K
θL1sl+1×sl+1
J(Θ)=1m(ylog(......log(log(log(XΘ(1)))Θ(2)).....Θ(L2)))+λ2ml=1L1Θ(l)Θ(l)

目标是最小化 minΘJ(Θ)
通过下列偏导数计算梯度
J(Θ)
ΘlijJ(Θ)

2. Backpropagation algorithm(BP算法)

2.1 BP算法初探

  • BP算法全称为错误后向传递算法, J(Θ) 的梯度如何计算就需要请出大名鼎鼎的BP算法.

  • 定义如下网络,输出层采用逻辑回归:
    这里写图片描述
    首先,我们引入 符号 δ ,解释如下:
    这里写图片描述
    从上图可以看出,与激励值计算类似,误差的计算也是层层传递的

  • 以上面的网络模型为例,反向传播算法从后往前(或者说从右往左)计算,即从输出层开始计算,并反向逐层向前计算每一层的 δ 。反向传播法这个名字源于我们从输出层开始计算 δ 项,然后我们返回到上一层计算第 3 个隐藏层的 δ 项,接着我们再往前一步来计算 δ2 。所以说我们是类似于把输出层的误差反向传播给了第3层,然后是再传到第2层,这就是反向传播的意思。
     通过反向传播计算的这些 δ 项,可以非常快速的计算出所有参数的偏导数项( J(Θ) 关于 所有 Θ 的偏导数项)。

2.2 反向传播与前向传播对比

这里写图片描述

直观地看,这个 δ 项在某种程度上捕捉到了在神经节点上的激励值的误差。反过来理解,一个神经节点的残差也表明了该节点对最终输出值的残差产生了多少影响。 因此可以说, 反向传播算法就是在逐层计算每个神经节点的激励值误差。

其实 δ 本质上是代价函数 J 对加权和 z 的求导结果。

2.3 δ(l) 的计算方法

δ(l) 的计算有两种不同的格式,即

δ(4)=a(4)y

δ(4)=(a(4)y)×g(z(4))

不同形式的代价函数和输出层激励函数,会推导出不同的输出层误差计算公式

如下图
这里写图片描述

又如下图
这里写图片描述
这里写图片描述

2.4 梯度计算

J(Θ)Θ(l)ij=1mt=1ma(t)(l)jδ(t)(l+1)i

向量化表示如下
D(l)=J(Θ)Θ(l)=δ(l+1)(a(l))T

更为详细的证明过程参见 BP_Algorithm

2.5 BP总结

反向传播仅仅是计算过程的一个直观上的称呼罢了,更重要的是其背后的神经网络求导思想.
所以,无论说:反向传播是用来逐层计算(或称传递)误差的;又或者说:反向传播是用来计算梯度的。 其实所说所指的都是如何对神经网络的参数进行快速求导这个事情。

3 Gradient Checking(梯度检查)

3.1 为什么需要梯度检查

反向传播算法作为一个有很多细节的算法在实现的时候比较复杂,可能会遇到很多细小的错误。所以如果把BP算法和梯度下降法或者其他优化算法一起运行时,可能看起来运行正常,并且代价函数可能在每次梯度下降法迭代时都会减小,但是可能最后得到的计算结果误差较高,更要命的是很难判断这个错误结果是哪些小错误导致的。

3.2 怎样进行梯度检检查

梯度检查 (Gradient Checking)的思想就是通过数值近似(numerically approximately)的方式计算导数近似值,从而检查导数计算是否正确。虽然数值计算方法速度很慢,但实现起来很容易,并且易于理解,所以它可以用来验证例如BP算法等快速求导算法的正确性。

梯度检查 的核心是导数的数值计算
这里写图片描述

梯度检查算法实现

这里写图片描述

4. Random initialization(随机初始化)

4.1 为什么要随机初始化

Θ 初始化为全 0 向量在逻辑回归时是可行的的,但在训练神经网络时是不可行的,这会使得神经网络无法学习出有价值的信息。

以第一层参数矩阵(权重矩阵)为例,假定有K个隐藏单元,那么神经网络的参数矩阵 Θ1 实质上对应着特征的K个映射函数(映射关系),如果参数全为 0,那就意味着所有映射关系都是相同的,即所有的隐藏单元都在计算相同的激励值,那么这样一个具有很多隐藏单元的网络结构就是完全多余的表达,最终该网络只能学到一种特征。

4.2 随机初始化算法实现

这里写图片描述

5. Putting it together(组合到一起).

5.1设计网络结构

这里写图片描述

网络结构的选择规则:

一个默认的规则是只使用单个隐藏层,即PPT中最左边的结构,或者如果使用不止一个隐藏层的话,同样也有一个默认规则就是每一个隐藏层通常都应有相同的隐藏单元数。

输入层与输出层:

对于一个用于分类的神经网络,输入层即特征,输出层即类别。

隐藏单元的选择规则:

通常情况下隐藏单元越多越好,不过需要注意的是如果有大量隐藏单元,那么计算量一般会比较大。一般来说,每个隐藏层所包含的单元数量还应该和输入 x 的维度相匹配,也要和特征的数目匹配。一般来说,隐藏单元的数目取为稍大于输入特征数目都是可以接受的。

5.2 神经网络训练过程

这里写图片描述

本周笔记参考文献如下
1. http://neuralnetworksanddeeplearning.com/index.html
2. http://deeplearning.stanford.edu/wiki/index.php/Backpropagation_Algorithm
3. http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
4. http://blog.csdn.net/walilk/article/details/50504393

6. 实用小技巧介绍环节

6.1 机器学习该怎么入门–知乎热门回答

https://www.zhihu.com/question/20691338/answer/53910077?group_id=692140642196811776

6.2 GraphLab

raphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架,框架使用C++语言开发实现。该框架是面向机器学习(ML)的流处理并行计算框架,可以运行在多处理机的单机系统、集群或是亚马逊的EC2 等多种环境下。GraphLab 自成立以来就是一个发展很迅速的开源项目,其用户涉及的范围也相当广泛,全球有2 000 多个企业、机构使用GraphLab。
https://dato.com/
http://www.select.cs.cmu.edu/code/graphlab/

6.3 实验楼-大数据工程师学习路线图

实验楼是一个 以实验为核心的IT技术学习平台,所有实验均在Linux虚拟机上运行,实验内容干货较多。
https://www.shiyanlou.com/jobs/bigdata

6.4 如何在网上获得免费的论文资料

  1. 适合没有买数据库的用户使用
  2. 只要有论文DOI(数字对象唯一标识符)就可以下载论文
    http://www.sci-hub.io/

6.5 研究人员排行榜

通过论文数量、引用率、H引子等轻松了解行业内的学术大牛,通过他们的论文进入一个学术领域
https://aminer.org/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Coursera-ml-andrewng-notes-master.zip是一个包含Andrew Ng的机器学习课程笔记和代码的压缩包。这门课程是由斯坦福大学提供的计算机科学和人工智能实验室(CSAIL)的教授Andrew Ng教授开设的,旨在通过深入浅出的方式介绍机器学习的基础概念,包括监督学习、无监督学习、逻辑回归、神经网络等等。 这个压缩包中的笔记和代码可以帮助机器学习初学者更好地理解和应用所学的知识。笔记中包含了课程中涉及到的各种公式、算法和概念的详细解释,同时也包括了编程作业的指导和解答。而代码部分包含了课程中使用的MATLAB代码,以及Python代码的实现。 这个压缩包对机器学习爱好者和学生来说是一个非常有用的资源,能够让他们深入了解机器学习的基础,并掌握如何运用这些知识去解决实际问题。此外,这个压缩包还可以作为教师和讲师的教学资源,帮助他们更好地传授机器学习的知识和技能。 ### 回答2: coursera-ml-andrewng-notes-master.zip 是一个 Coursera Machine Learning 课程的笔记和教材的压缩包,由学生或者讲师编写。这个压缩包中包括了 Andrew Ng 教授在 Coursera 上发布的 Machine Learning 课程的全部讲义、练习题和答案等相关学习材料。 Machine Learning 课程是一个介绍机器学习的课程,它包括了许多重要的机器学习算法和理论,例如线性回归、神经网络、决策树、支持向量机等。这个课程的目标是让学生了解机器学习的方法,学习如何使用机器学习来解决实际问题,并最终构建自己的机器学习系统。 这个压缩包中包含的所有学习材料都是免费的,每个人都可以从 Coursera 的网站上免费获取。通过学习这个课程,你将学习到机器学习的基础知识和核心算法,掌握机器学习的实际应用技巧,以及学会如何处理不同种类的数据和问题。 总之,coursera-ml-andrewng-notes-master.zip 是一个非常有用的学习资源,它可以帮助人们更好地学习、理解和掌握机器学习的知识和技能。无论你是机器学习初学者还是资深的机器学习专家,它都将是一个重要的参考工具。 ### 回答3: coursera-ml-andrewng-notes-master.zip是一份具有高价的文件,其中包含了Andrew Ng在Coursera上开授的机器学习课程的笔记。这份课程笔记可以帮助学习者更好地理解掌握机器学习技术和方法,提高在机器学习领域的实践能力。通过这份文件,学习者可以学习到机器学习的算法、原理和应用,其中包括线性回归、逻辑回归、神经网络、支持向量机、聚类、降维等多个内容。同时,这份笔记还提供了很多代码实现和模板,学习者可以通过这些实例来理解、运用和进一步深入研究机器学习技术。 总的来说,coursera-ml-andrewng-notes-master.zip对于想要深入学习和掌握机器学习技术和方法的学习者来说是一份不可多得的资料,对于企业中从事机器学习相关工作的从业人员来说也是进行技能提升或者知识更新的重要资料。因此,对于机器学习领域的学习者和从业人员来说,学习并掌握coursera-ml-andrewng-notes-master.zip所提供的知识和技能是非常有价的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值