转载自:http://blog.csdn.net/jj12345jj198999/article/details/9024037

公开课地址:https://class.coursera.org/ml-003/class/index

授课老师:Andrew Ng

1、cost function(代价函数)

上一讲的最后引入了多分类问题,多分类问题与二元分类问题的区别就在于输出单元是多个,用图总结如下:

同时在前面我们也已经知道逻辑回归的代价函数如下:

前半部分代表真实值与假设值的差值,后半部分代表对系数进行规格化的偏差项。与此类似的,我们可以定义神经网络的代价函数:

真实值与假设值之间的距离定义为统计所有的样本和输出类别之间的和值,后面再加上权重的规格化偏差项。

2、backpropagation algorithm(反向传播算法)

既然我们已经给出了代价函数的形式,按照老思路就是将其最小化求出参数:

为了进行梯度下降,我们需要列出神经网络每一层的输入和输出分别是什么,表示方法和之前的一样:

在这里我们需要定义一个误差变量δ,用来表示该节点对最终误差的出现产生了多少影响。对于最后一层,我们能直接定义误差值是多少,对于前面的隐藏层,只能够通过反向推导来求解,这也是反向传播算法的由来。

具体的推导过程可以参看维基百科:

http://en.wikipedia.org/wiki/Backpropagation

梯度下降的算法可以描述如下:

用Δ表示全局误差,每一层都对应一个Δ(l)。再引入D作为代价函数对参数的求导结果。左边j是否等于0影响的是是否有最后的偏差项。

3、backpropagation intuition(反向传播举例)

这一小节举了一个利用BP算法求解神经网络权重的例子,首先我们要定义网络的结构和一些输入输出表示:

同时我们在这里对代价函数进行简化,无须考虑最后的规格化偏差项:

对于第i个样本,cost(i)如上图那样定义,如果熟悉δ的推导过程,能发现:

同时对于每一层来说,δ分量都等于后面一层所有的δ加权和,其中权值就是参数Θ:

4、gradient checking(梯度检查)

在求解过程中,通过check梯度判断我们的code有没有问题。对于下面这个图,取Θ点左右各一点(Θ+ε),(Θ-ε),则有点Θ的导数(梯度)近似等于(J(Θ+ε)-J(Θ-ε))/(2ε):

对于每个参数的求导公式如下:

由于在BP算法中我们一直能得到J(Θ)的导数D(derivative),那么就可以将这个近似值与D进行比较,如果这两个结果相近就说明code正确,否则错误。

不过要注意以下几点:

5、random initialization(随机初始化)

对于参数theta初始化问题,最简单的想法都是先赋值为0:

不过由于这种赋值导致了一开始计算时隐藏节点没什么区别,就像上图那样a1,a2计算过程和结果都是一样的,等于是一个节点,存在浪费情况。为了打破这种局面,可以对theta进行随机初始化:

6、putting it together(总论)

为了训练一个神经网络我们需要做哪些工作呢?

首先是选择网络的结构:

然后就是训练权重了,包括初始化和BP算法:

最后是检查训练得到的参数是否正确,采用上面提到的梯度检查方法:

这样就完成了一个神经网络的训练过程。

----------------------------------------------------弱弱的分割线----------------------------------------------

这一节的重点是BP算法,不过由于视频中没有过多的推导细节,光看结论印象不深,必须要亲自推导一下才行。加入该算法后,神经网络也就拥有了自学习的过程,只需要定义神经网络的结构和初始值即可。

斯坦福机器学习公开课笔记--神经网络的学习相关推荐

  1. 斯坦福机器学习公开课学习笔记(1)—机器学习的动机与应用

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景         斯坦福机器学习公开课差不多是网上能找到的最好的机器学习入门课程了.现在一共有20节课放 ...

  2. 生成学习、高斯判别、朴素贝叶斯—斯坦福ML公开课笔记5

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9285001 该系列笔记1-5pdf下载请猛击这里. 本篇博客为斯坦福ML公开 ...

  3. 精讲CS231N斯坦福计算机视觉公开课笔记

    [子豪兄]精讲CS231N斯坦福计算机视觉公开课 计算机视觉发展历史与课程概述 大概讲了一些计算机视觉的运用范围(机器学习.生物.无人机.光学等).Hubel和Wiesel在1959年发现猫对图像的边 ...

  4. 局部加权回归、逻辑斯蒂回归、感知器算法—斯坦福ML公开课笔记3

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...

  5. 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2

    转载请注明链接:http://blog.csdn.net/xinzhangyanxiang/article/details/9101621 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了 ...

  6. 牛顿方法、指数分布族、广义线性模型—斯坦福ML公开课笔记4

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9207047 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...

  7. 机器学习公开课笔记(1):机器学习简介及一元线性回归

    初步介绍 监督式学习: 给定数据集并且知道其正确的输出应该是怎么样的,即有反馈(feedback),分为 回归 (Regressioin): map输入到连续的输出值. 分类 (Classificat ...

  8. 机器学习公开课笔记(8):k-means聚类和PCA降维

    K-Means算法 非监督式学习对一组无标签的数据试图发现其内在的结构,主要用途包括: 市场划分(Market Segmentation) 社交网络分析(Social Network Analysis ...

  9. Andrew Ng机器学习公开课笔记 -- Logistic Regression

    网易公开课,第3,4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面讨论了线性回归问题, 符合高斯分布,使用最小二乘来作为损失函数 ...

最新文章

  1. JS打印指定区域内容
  2. MySQL性能突发事件问题排查技巧
  3. 电气期刊论文实现:考虑排放目标和输电损耗的经济调度【有代码】
  4. window环境安装composer
  5. iOS 使用Touch ID 校验[新增 iOS9 三种错误]
  6. centos 下安装配置nfs服务器
  7. 哈希表的大小为何最好是素数
  8. html鼠标变成小手_HTML 点击的链接,也叫超链接
  9. 解决vue+axios post参数后端无法接收的问题
  10. 分布式 java 应用:基础与实践_单集群数据超1000亿,微服务架构下分布式数据库应用实践...
  11. oracle杅擂踱阀葩,Oracle常用傻瓜问题1000问
  12. 一个简单的基于 DirectShow 的播放器 1(封装类)
  13. java中判斷主鍵重複
  14. java json 变量所有的属性
  15. live2d sdk java_在iOS新项目中集成Live2D SDK
  16. Mentor Xpedtion partsymbolcell
  17. 命令行ssh连接服务器
  18. BOS EAS 实体增加字段,关联核算项目
  19. 易语言 获取TeamViewerID密码 部分代码
  20. 香港windows云服务器下编译webrtc

热门文章

  1. Android 模拟机键盘不可用的问题 !!
  2. html 模板 引用,模板引用说明
  3. Linux/Android之sar查看IO/CPU占用率
  4. Win10 WSL adb使用
  5. Clojure 学习入门(6)- 函数定义
  6. Vue项目中使用浏览器同步测试工具 browersync
  7. python穷举法_python 穷举指定长度的密码例子
  8. java兵临城下_再谈java事件监听机制
  9. cesium 球体半倾斜角度
  10. paypal中授权返回_微信开放平台授权登录流程详解