Andrew Ng Machine Learning - Week 4 & 5- Neural Networks

此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。力求简洁,仅代表本人观点,不足之处希望大家探讨。

课程网址:https://www.coursera.org/learn/machine-learning/home/welcome

Week 1: Introduction 笔记:http://blog.csdn.net/ironyoung/article/details/46845233

Week 2:Linear Regression with Multiple Variables笔记:http://blog.csdn.net/ironyoung/article/details/47129523

Week 3:Logistic Regression & Regularization笔记:http://blog.csdn.net/ironyoung/article/details/47398843

Week 4 & 5:Neural Network

  1. 由XOR Problem想到

    1. 有一种经典的非线性问题:XOR,也就是异或。真值表如下:

      0 0 | 0

      1 0 | 1

      1 1 | 0

      0 1 | 1,| 左侧是输入x,y,|
      右侧是输出 z

      如果在二维坐标系上绘图,可以看出来仅利用一条直线是无法对这个问题分类的,也就是线性不可分问题。

    2. 如果利用逻辑回归的方法,可以枚举各种特征的出现可能,即z=g(θ0+θ1x+θ2y+θ3xy+θ4x2y+...)
    3. 继续想下去,如果基础特征量更多的话?x1,x2,...,x100就会出现过拟合的问题,同时带来极大的计算量。

      例如,计算机视觉中处理一张照片,每个像素都需要一个数值表示。对于100*100像素值的图片,仅仅考虑二次项等级,就有特征数量为(10000)2/2个(xy与yx相同,故除以2)。

      于是,这章介绍的非线性分类器,神经网络(Neural Network,NN)就发挥了作用。

  2. 人工神经网络
    1. 神经网络最初提出的初衷,是因为要模拟人类大脑的结构(很初级的模拟,因为人类对于自己大脑究竟是怎样都没有弄清楚)。通过多个感知机之间的输入输出,从而完成整体的智能行为。在人工神经网络中,“感知机”就是一个有着输入与输出功能的小单元,接收上一层的输入,将输出传给下一层。
    2. 人工神经网络是层级结构,某一层上的单元之间互相不会有输入输出关系,只和上一层或者下一层的单元产生数据传输关系。至少会有两层:输入层(input layer)与输出层(output layer),但是两层的神经网络可以解决的问题很少,一般都是三层或者三层以上,中间的这些层就称为“隐藏层(hidden layer)”,我们来看一个最简单的例子:

      解释一下这张图,a(i)表示的是第
      i
      层上所有单元中的数值,a(i)j表示的是第
      i
      层上第 j
      个单元中的数值。

      为什么不直接用 x
      来代替 a(1)
      呢?因为 a(1)
      中增加了 a(1)0=1,在乘以权值后产生了
      bias,也就是为下一层每个单元内数值增加一个常数偏移量。

      θ是单元之间的传递权值,θ(i)表示的是第
      i
      层到 (i+1)
      层上所有单元之间的权值。如果第 i
      层上的单元个数为 Si
      个,所以得到 θ(i)
      的矩阵元素个数为 Si+1?(Si+1),+1是因为第
      i
      层上增加的元素 ai0。

      g(x)
      就是 Week 3 笔记中提到的 sigmoid 函数。

      输出层得到:hθ(x)=a(3)=g(θ(2)a(2))=g(θ(2)?g(θ(1)a(1)))

    3. 由输入层,到隐藏层,最终到输出层。这是一次 forward propogation 过程。类似于逻辑回归,但是神经网络的输入是某个样本的所有基础特征,不需要考虑
      x1x2,x2x3
      这一类新加入的特征。
  3. 回到XOR Problem
    1. 先讲几个基础的利用神经网络进行二进制运算分类的问题:

      • 二进制 AND

        即为hθ(x)=g(?30+20x1+20x2),只有(x1,x2)=(1,1)
        时返回值才为1,符合 AND 的操作结果。

      • 二进制 OR

        即为hθ(x)=g(?10+20x1+20x2),只有(x1,x2)=(0,0)
        时返回值才为0,符合 OR 的操作结果。

      • 二进制 NOT

    2. XOR 问题复杂一些,但是如果我们做了如下转换:

      x1
      XNOR x2
      = NOT(x1
      XOR x2)
      = (x1
      AND x2)
      OR ((NOT
      x1)
      AND (NOT
      x2))

      变换的正确性,很容易通过真值表来验证。大家可以分别计算各个括号中的内容,然后通过 OR 连接起来。

      我们将 (x1
      AND x2)
      的内容视为 a(2)1,((NOT
      x1)
      AND (NOT
      x2))
      的内容视为 a(2)2

  4. 神经网络多类分类
    1. 神经网络处理多类的分类问题是很方便的。举个例子,区分手写数字时,有10个类别:0,1,2,……,9。对于某一个训练样本来说,有着特征组合x(i)=(x(i)0,x(i)1,...),输出是y(i)=5,将其改为y(i)=(0000010000)T,因此这个神经网络的输出层有10个单元。当输出层的10个单元全部取
      0,意味着输入不是任何一种数字。
    2. 对于手写数字的识别,一直是业界的研究重点之一。视频中举了一篇经典的利用神经网络处理该问题的Paper,有兴趣的同学可以访问作者的个人主页查看Demo与Paper:Yann LeCun


Week 4 的内容到此为止,Week 5的内容等从帝都回来再说啦~

编程作业答案:https://github.com/cnauroth/machine-learning-classd

版权声明:本文为博主原创文章,转载请联系我的新浪微博 @iamironyoung

时间: 2024-08-25 06:31:39

Andrew Ng Machine Learning - Week 4 & 5- Neural Networks的相关文章

Andrew Ng Machine Learning - Week 3:Logistic Regression & Regularization

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记.力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 1: Introduction 笔记:http://blog.csdn.net/ironyoung/article/details/46845233 We

Andrew Ng Machine Learning 专题【Linear Regression】

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记. 力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 3: Logistic Regression & Regularization 笔记:http://blog.csdn.net/ironyoung/ar

Andrew Ng Machine Learning - Week 1: Introduction

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记.力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 1: Introduction Environment Setup Instructions 这一章介绍课程一般使用的工具.octave或者matlab即

Andrew Ng Machine Learning - Week 2

此文是斯坦福大学,机器学习界 superstar - Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记.力求简洁,仅代表本人观点,不足之处希望大家探讨. 课程网址:https://www.coursera.org/learn/machine-learning/home/welcome Week 2 Multivariate Linear Regression Week 1 讨论仅一个特征,即仅有一个未知量x影响了目标y的取值.如果现在有很多特征?

andrew ng machine learning week8 非监督学习

聚类——无监督学习的一种算法 K-means算法 最为广泛使用的聚类算法 选择两个聚类中心 簇分配:根据每个样本更接近哪个聚类中心进行样本的分配 簇中心移动:计算出所有的红点类的均值点,移动原始聚类中心到这个点,蓝点类同理 进行不断地迭代直到收敛 输入:K个簇类和训练集样本数据 注意:不需要X0项,为n维向量 算法的描述: 如果最终有个簇中心没有任何点分配给他那么直接移除就可以 K-means常常适用于右侧这种看不出来结构的混乱的数据的聚类的,所以并不是都是左图如此理想的环境 最优化的目标函数

andrew ng machine learning week9 异常检测和推荐系统

异常检测 概率分布的角度:通过判断某个样本的概率分部值和阈值的关系判断是不是异常样本 异常检测的应用: 1. 在线购物网站如何识别异常用户(欺诈行为或者被盗号) 2. 制造业 3. 检测计算机的运行情况 高斯分布 高斯分布开发异常检测算法 步骤 1. 选择一些异常的特征 2. 计算均值和方差,对于每一个特征来进行计算 在这个三维立体图中,越高的地方是正常的地方,异常区则是接近平面0的这些点 如何开发一个关于异常检测的应用 实数评价法的重要性: 不建议把交叉集和测试集混在一起使用 算法的评估过程

Learning How To Code Neural Networks

原文:https://medium.com/learning-new-stuff/how-to-learn-neural-networks-758b78f2736e#.ly5wpz44d This is the second post in a series of me trying to learn something new over a short period of time. The first time consisted of learning how to do machine

Andrew Ng 的 Machine Learning 课程学习 (week5) Neural Network Learning

这学期一直在跟进 Coursera上的 Machina Learning 公开课, 老师Andrew Ng是coursera的创始人之一,Machine Learning方面的大牛.这门课程对想要了解和初步掌握机器学习的人来说是不二的选择.这门课程涵盖了机器学习的一些基本概念和方法,同时这门课程的编程作业对于掌握这些概念和方法起到了巨大的作用. 课程地址 https://www.coursera.org/learn/machine-learning 笔记主要是简要记录下课程内容,以及MATLAB

Ng Machine learning

Machine learning Preface Definition T: Task E: Experience P: Performance Sequence: T -> E -> P Supervised learning Definition Give the right answer to each example of the data set(called training data). Type Regression: get the continuous values Cla