#Week7 Neural Networks : Learning
一、Cost Function and Backpropagation
神经网络的损失函数:
\]
这个cost function是在logistic regression基础上演变而来,只是神经网络有很多输出结点,而logistic regression只有一个输出结点,所以这个cost function只是把所有的K个输出结点的损失函数进行累加。
得到cost function后,为了寻找使得\(J(\theta)\)最小的那组参数\(\theta\),我们需要知道\(J(\theta)\)关于每个\(\theta\)的偏导数,而后向传播算法可以帮助我们计算偏导数:
对于每个训练样本,先利用forward propagation计算每一层的\(a\):
接着利用样本真实标签\(y^{(t)}\)计算最后一层的误差值;
之后从右向左计算每一层(输入层除外)的误差:
这样每个样本一次正向、一次反向来更新误差矩阵:
向量化表示:
最后,就可以得到偏导数:
二、Backpropagation in Pratice
为了使用fminunc
等高级的优化方法来求得cost function的最小值,所以将\(\theta\)这个矩阵展成向量传入fminunc
,完成后可以通过reshape
从向量中提取\(\theta^{(1)}、\theta^{(2)}\)等:
为了确保我们使用Backpropagation求得的偏导数的正确性,可以使用Gradient Checking(很慢)来检验:
根据偏导数定义:
\]
\]
通过将这种方式计算的偏导数与之前Backpropagation求得的偏导数比较,即可得知Backpropagation的正确性。
之前在Linear Regression和Logistic Regression,我们可以用全0来初始化\(\theta\),但在神经网络中,这样做会有问题,所以采用随机初始化:
最后,从整体捋一遍流程:
1、选择网络结构:
2、训练神经网络:
对每一个训练样本:
#Week7 Neural Networks : Learning的更多相关文章
- Machine Learning - 第5周(Neural Networks: Learning)
The Neural Network is one of the most powerful learning algorithms (when a linear classifier doesn't ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 5) Neural Networks Learning
本栏目内容来自Andrew NG老师的公开课:https://class.coursera.org/ml/class/index 一般而言, 人工神经网络与经典计算方法相比并非优越, 只有当常规方法解 ...
- Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning
原文 http://blog.csdn.net/abcjennifer/article/details/7758797 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- Andrew Ng机器学习 四:Neural Networks Learning
背景:跟上一讲一样,识别手写数字,给一组数据集ex4data1.mat,,每个样例都为灰度化为20*20像素,也就是每个样例的维度为400,加载这组数据后,我们会有5000*400的矩阵X(5000个 ...
- Ng第九课:神经网络的学习(Neural Networks: Learning)
9.1 代价函数 9.2 反向传播算法 9.3 反向传播算法的直观理解 9.4 实现注意:展开参数 9.5 梯度检验 9.6 随机初始化 9.7 综合起来 9.8 自主驾驶 9.1 ...
- 斯坦福大学公开课机器学习: neural networks learning - autonomous driving example(通过神经网络实现自动驾驶实例)
使用神经网络来实现自动驾驶,也就是说使汽车通过学习来自己驾驶. 下图是通过神经网络学习实现自动驾驶的图例讲解: 左下角是汽车所看到的前方的路况图像.左上图,可以看到一条水平的菜单栏(数字4所指示方向) ...
- MachineLearning Exercise 4 :Neural Networks Learning
nnCostFunction 消耗公式: a1 = [ones(m,) X]; z2 = a1*Theta1'; pre = sigmoid(a1*Theta1'); a2 = [ones(m,) p ...
- 【原】Coursera—Andrew Ng机器学习—Week 5 习题—Neural Networks learning
课上习题 [1]代价函数 [2]代价函数计算 [3] [4]矩阵的向量化 [5]梯度校验 Answer:(1.013 -0.993) / 0.02 = 3.001 [6]梯度校验 Answer:学习的 ...
- Coursera 机器学习 第5章 Neural Networks: Learning 学习笔记
5.1节 Cost Function神经网络的代价函数. 上图回顾神经网络中的一些概念: L 神经网络的总层数. sl 第l层的单元数量(不包括偏差单元). 2类分类问题:二元分类和多元分类. 上 ...
随机推荐
- Python Requests-学习笔记(5)-响应状态码
我们可以检测响应状态码: r = requests.get('http://httpbin.org/get') r.status_code 为方便引用,Requests还附带了一个内置的状态码查询对象 ...
- Python中关于字符串你应该知道这些...
# Python中字符串的常见用法### 定义:带有双引号/单引号/三引号### 双引号:适用于所写的字符串里没有双引号的.例如:"凡是“辛苦”必是礼物"报错### 单引号:适用 ...
- web.page.regexp用法(全网唯一)
前言 因为这个东西“web.page.regexp”,差点把自己杀了.一点都不夸张,这将近30度的天气,办公室不开空调,又要闷,还要带着口罩,躁动的很.加上这个鬼东西“web.page.regexp” ...
- Spring Cloud和eureka启动报错 解决版本依赖关系
导读 An attempt was made to call a method that does not exist. The attempt was made from the following ...
- 多线程设置flag标志位实现同步
信号灯解决同步问题 我尽量注释了代码,可以很容易理解了. package Thread; /** * 信号灯 * 借助标志位 */ public class FlagThread { public s ...
- 解决click与hover(mouseover)的冲突问题
主要应用到一个知识点:$(selector).data('name','value'); <!DOCTYPE HTML> <html> <head> <met ...
- 玩转SVG线条动画
在上一节的<SVG线条动画实现原理>一文中,了解了SVG中线动画是怎么做的.在这篇文章中,了解了怎么借助Sketch这样的制作软件绘制SVG的路径,然后借助于SVG的stroke-dash ...
- cool-yogurt小组采访感想
“对于这个小组项目的选题,其实最初的那个版本我还是被“感动”到的,因为我自己以前确实有这样的类似体验和需求,以前非常喜欢一个球星,因此想知道关于他所有的事情,想知道他每一场比赛的数据,新闻有哪些报道, ...
- vs 类型定义及语句,随机数
1 类型定义: 1)小数: 类型 变量名 赋值 decimal d : d=1.2m float ...
- Go gRPC进阶-proto数据验证(九)
前言 上篇介绍了go-grpc-middleware的grpc_zap.grpc_auth和grpc_recovery使用,本篇将介绍grpc_validator,它可以对gRPC数据的输入和输出进行 ...