【Coursera Machine Learning】 Week4 学习笔记
2017-03-26 22:37
1116 查看
七、神经网络:表述(Neural Networks:Representation)
7.1 模型表示 (Model Representation)
![](http://oltfslql1.bkt.clouddn.com/neuron.jpg)
1、每一个神经元都可以被认为是一个处理单元/神经核(Nucleus),它含有许多输入/树突(Dendrite),并且有一个输出/轴突(Axon)。
2、神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。
3、神经网络模型建立在许多神经元之上,每一个神经元又是一个学习模型,这些神经元(也叫激活单元,activation unit)采纳一些特征作为输入,并且根据本身的模型提供一个输出。
4、以逻辑回归模型作为自身学习模型的神经元示例
![](http://oltfslql1.bkt.clouddn.com/logistic.jpg)
我们设计出类似于神经元的神经网络
![](http://oltfslql1.bkt.clouddn.com/NeuralNetwork.jpg)
其中x1,x2,x3是输入单元,我们将原始数据输入给它们。
a1,a2,a3是中间单元,它们负责将数据进行处理,然后呈递到下一层。
最后是输出单元,它负责计算hθ(x)
5、神经网络模型
![](http://oltfslql1.bkt.clouddn.com/NeuralNetworkmodel.jpg)
Layer 1是输入层(Input Layer)
Layer 2是隐藏层(Hidden Layer)
Layer 3是输出层(Output Layer)
我们为每一层都增加率一个偏差单元(bias unit)
a(j)i代表第j层的第i个激活单元。
Θ(j)代表从第j层映射到第j+1层的权重矩阵
激活单元和输出表达式:
a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3)a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3)a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3)hΘ(x)=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)
用向量来表示
⎡⎣⎢⎢⎢a(2)1a(2)2a(2)3⎤⎦⎥⎥⎥=g(⎡⎣⎢⎢⎢Θ(1)10Θ(1)20Θ(1)30Θ(1)11Θ(1)21Θ(1)31Θ(1)12Θ(1)22Θ(1)32Θ(1)13Θ(1)23Θ(1)33⎤⎦⎥⎥⎥⎡⎣⎢⎢⎢x0x1x2x3⎤⎦⎥⎥⎥)hΘ(x)=g([Θ(2)10Θ(2)10Θ(2)10Θ(2)10]⎡⎣⎢⎢⎢⎢⎢⎢a(2)0a(2)1a(2)2a(2)3⎤⎦⎥⎥⎥⎥⎥⎥)
令
a(2)=⎡⎣⎢⎢⎢a(2)1a(2)2a(2)3⎤⎦⎥⎥⎥Θ(1)=⎡⎣⎢⎢⎢Θ(1)10Θ(1)20Θ(1)30Θ(1)11Θ(1)21Θ(1)31Θ(1)12Θ(1)22Θ(1)32Θ(1)13Θ(1)23Θ(1)33⎤⎦⎥⎥⎥x=⎡⎣⎢⎢⎢x0x1x2x3⎤⎦⎥⎥⎥Θ(2)=[Θ(2)10Θ(2)10Θ(2)10Θ(2)10]
则
z(2)=Θ(1)xa(2)=g(z(2))z(3)=Θ(2)a(2)hΘ(x)=a(3)=g(z(3))
如果我们要对整个训练集进行计算,我们需要将训练集特征矩阵进行转置,使得同一个实例的特征都在同一列里,即
z(2)=Θ(1)xTa(2)=g(z(2))
当我们遮住Layer 1时,剩下的其实就是逻辑回归(Logistic Regression)
![](http://oltfslql1.bkt.clouddn.com/neuralfeatures.jpg)
神经网络就像是逻辑回归,我们可以把a0,a1,a2,a3看成更为高级的特征值,也就是x0,x1,x2,x3的进化体,并且它们市由x决定的,因为是梯度下降的,所以a是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将x次方厉害,也能更好的预测新数据。
7.2 样本和直观理解(Examples and Intuitions)
1、从本质上讲,神经网络能够通过学习得出其自身的一系列特征。在普逻辑回归中,我们被限制为使用数据中的原始特征x1,x2,...,xn,我们虽然可以使用一些二项式来组合这些特征,但是我们仍然受到这原始的限制。在神经网络中只输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征市神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。2、神经网络如何计算关于输入复杂的非线性函数实例
![](http://oltfslql1.bkt.clouddn.com/xnor.jpg)
(1)AND
假设函数为hθ(x)=g(−30+20x1+20x2),则
当x1=0,x2=0,hθ(x)=g(−30)≈0
当x1=0,x2=1,hθ(x)=g(−10)≈0
当x1=1,x2=0,hθ(x)=g(−10)≈0
当x1=1,x2=1,hθ(x)=g(10)≈1
则hθ(x)实现了AND函数。
(2)(NOT x_1) AND (NOT x_2)
假设函数为hθ(x)=g(10−20x1−20x2),则
当x1=0,x2=0,hθ(x)=g(10)≈1
当x1=0,x2=1,hθ(x)=g(−10)≈0
当x1=1,x2=0,hθ(x)=g(−10)≈0
当x1=1,x2=1,hθ(x)=g(−30)≈0
则hθ(x)实现了(NOT x_1) AND (NOT x_2)函数
(3)OR
假设函数为hθ(x)=g(−10+20x1+20x2),则
当x1=0,x2=0,hθ(x)=g(−10)≈0
当x1=0,x2=1,hθ(x)=g(10)≈1
当x1=1,x2=0,hθ(x)=g(10)≈1
当x1=1,x2=1,hθ(x)=g(30)≈1
则hθ(x)实现了OR函数
(4)XNOR
x1 XNOR x2 = ( x1 AND x2) OR { (NOT x1) AND (NOT x2) }
我们将上面三个组合在一起
![](http://oltfslql1.bkt.clouddn.com/xnor3.png)
这就是一个神经网络。按照这种方法我们可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。
7.3 多元分类(Multiclass Classification)
下面是一个输入x有三个维度,输出y有四个维度的神经网络![](http://oltfslql1.bkt.clouddn.com/multiple.jpg)
输出层4个神经元分别用来表示4类,也就是最后在输出层会出现[a,b,c,d]T,且a,b,c,d中仅有一个为1,表示当前类。
实例展示:
![](http://oltfslql1.bkt.clouddn.com/onevs.jpg)
相关文章推荐
- coursera NLP学习笔记之week2 语言模型
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 4——神经网络(一)
- 【coursera 学习笔记】An Introduction to Interactive Programming in Python--week1
- 【Coursera Machine Learning】 Week3 学习笔记
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 8(一)——无监督学习
- 【coursera 学习笔记】An Introduction to Interactive Programming in Python--week0
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 3——逻辑回归、过拟合与正则化
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 7——支持向量机
- coursera Machine Learning Week3-2 学习笔记
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 5——神经网络(二)
- coursera NLP学习笔记之week1课程介绍&基础的文本处理
- coursera NLP学习笔记之week1最小编辑距离计算
- 【Coursera Machine Learning】 Week1 学习笔记
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 6(一)—— 机器学习诊断、偏差与方差
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 9(二)——推荐系统作业
- coursera Machine Learning Week3-1 学习笔记
- coursera Machine Learning Week 1学习笔记
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 1——简单的线性回归模型和梯度下降
- coursera NLP学习笔记之week3 文本分类和朴素贝叶斯
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 8(二)——降维