Machine Learning week 4 Neural Networks Presentation

Non Liner Hypotheses

如下图,是只有2个feature的情况下,使用多项式的hypothesis得到的拟合decision boundary,可以看到拟合效果会很好。
但是如果有100个feature的话,如果使用2次多项式构造feature的话,就会有大约5000个feature出现(实际数量为100+99+98+...+1 = 5050),复杂度为O(n^2)
如果只使用单个项的平方作为新feature的话,有100个feature,但是不会拟合出很好的形状,大概会是一个类似椭圆的图形,右下部分有画图。
如果使用3次多项式作为feature的话,就会出现170,000个feature,复杂度为O(n^3)
可见,当feature的数量很大的时候,复杂度会变得非常大


比如我们要让计算机自动分类汽车,如果只取某2个点的亮度值作为feature的话,那么分类大概是下图坐标的情况。
但是如果我们分析一个50*50像素的图片的话,它一共有2500个像素点,每个作为一个feature的话,它们生成的2次多项式的feature数量将会是3M,如此巨大的数量,使用logistic regression就不是一个好办法了。

下面两页的内容,主要讲的是我们的大脑皮层虽然是负责某一项功能的,但是如果你把另外一种感知连接到这个区域,那么它依然会学会如何使用新的感知系统。
比如下面本来是听觉皮层,但是把视觉神经连到这里的话,它依然可以完成视觉皮层的功能。感觉就像是我们的大脑有一种学习算法,适用于所有的学习。


下面是一些大脑学习的例子,比如盲人可以根据舌头的刺激辨别前方的阻碍,或者盲人根据回声辨别阻碍,青蛙可以学习区控制第三只增加的眼睛。




Neural Networks Representation

下面是大脑中的神经元,包括轴突和树突,轴突(Axon)负责向外发送信号,树突(Dendrite)负责接收信号

我们从神经的角度来看,下图中间黄色的圈圈是表示一个神经元,左侧表示树突input,右侧是轴突output,我们令神经元的激活方法为sigmoid函数。
input这里X0代表常数1,这里叫做bias unit,可以画也可以不画。θ在神经网络中被称为weight或者parameter


神经网络,就是把多层神经元连接起来,左边一列叫做input layer,中间叫做hidden layer,然后是output layer,不要忘记bias unit

注意下面a和θ表示的含义,然后根据sigmoid函数使用x和θ计算a的时候,记得bias unit,观察下面会发现从j层到j+1层的θ,可以组成一个矩阵,这个矩阵的行数由j+1 layer的神经元个数决定,列数由input的个数+1决定,也就是最下面一句话。

这里主要熟悉神经网络中的layer之间计算的向量表示。
z表示sigmoid函数中h(x) = g(z),代表θ和x的乘积
这里注意上标对a,x, z的意义,究竟是上一层,还是当前层

Example and Intuition

说真的,我没看懂下面两幅图之间的关系,左图表示的就是下面的式子写的内容,y等于x1和x2的异或。这里之所以这么画,估计是ng老师希望告诉我们non liner classification可以从给定的example中学习到逻辑运算的逻辑吧。也可以说我们可以通过分类的方法进行逻辑运算

下面这幅图就好理解多了,使用logistic regression分类的方式,可以学习得出和逻辑中的且运算相同效果的式子。画出如右下角的真值表,然后根据给出的θ的值计算logistic regression的结果,会发现结果和真值表的结算结果完全对应。我们从这里可以获得逻辑与的回归计算方式。记得bias unit


下面是OR的例子,计算一下x1 x2取不同的值的时候,logistic regression的结果,可以发现和逻辑或的结果相同

学习过了and 和 or 下面看一下not。同样列出真值表,再计算logistic regression 的分类结果可以得知这种parameter可以使得计算结果相当于取非
,那么我们看一下not x1 and not x2, 首先我们列出真值表来看一看,获得直观印象,然后就知道应该如何设置parameter了

下面看一个复杂些的例子,我们已经有了下面三种逻辑运算的算法,现在来计算异或。
通过像左下角的组合方式,第一层输入,中间hidden layer分别使用 and 和 not x1 and not x2两种激活函数activate function来计算中间结果,注意线的颜色是和上面的方法对应的。最后通过 or方法计算第三层的值作为output。比较真值表,会发现这种结果就是异或计算过程。
通过简单的激活函数组合成神经网络,可以计算非常复杂的东西。


下面是一个例子,左边表示不同的layer的计算结果,显示了3层hidden layer的结果的视觉显示,后面的层的结果就不好直接看出来了,黑色的数字是手写的input,上面的answer 9是output


Multiclass Classification

上面识别数字的例子就是一个多分类的例子,要分别0-9一共10个数字
假设,我们要判别一个图片是否是下面的4中类型中的一种,并且采用如下的神经网络获得4个output,分别表示每种分类的分类结果。
我们的结果应该是如下图所示的,分别表示出每种分类的结果。



那么我们应该给的training example的输入应该是如下的,y并不是取1-4中的某个值,而应该把4中分类每种都给出明确的结果,这样可以同时让4个分支的神经网络进行学习。




到了这一节的结尾,我们还没搞清楚神经网络的复杂度相比logistic regression的差别,尤其是当有大量feature的时候?
这里先留个疑问吧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值