吴恩达机器学习笔记五_多元分类和神经网络

为什么要使用神经网络

在笔记三中,曾提到非线性拟合的问题。当时是通过构造特征向量,即由两个或以上的变量构造一个新的变量,增加\(\theta\)的维度,以拟合出更细腻的曲线。下面是课件中类似的例子:

005yAKGUgy1fwo0dp9wtfj30lw0br75g.jpg

可以看到,随着变量即数据集的维度增加,这种做法将会导致“维度灾难”,越来越不可行。就上述例子,以100维的数据集为例,二次项的构造复杂度是\(O(n^2)\),实际是5000;三次项复杂度是\(O(n^3)\),实际达到17000;当构造一百次项时,复杂度可能已经超出计算机所能处理的范围了。即使我们可以使用正则使假设函数简化,但正则化的过程也需要大量的数据集和大量的时间,同样不大可行。

NG的例子举到这里就戛然而止,后面就引入神经网络(Neuron Network)了。就我个人来说,把本章的视频看完后,隐约感觉到,神经网络的思想和之前提到的构造特征向量有相似之处,同时避免了维度灾难。如下:

005yAKGUgy1fwo13hqtxwj30l20bnq3r.jpg

上图是课件后面的部分。NG在这里根据各个层的特点进行分类:Layer1是输入层,Layer2是隐藏层,Layer3是输出层。对神经网络而言,输入层和输出层各只有一个,隐藏层根据实际情况可以有多个。看上去,每一个隐藏层都与上一层的输入量有关,同时根据各连接线的权值不同,实质上也是利用原有特征向量构造了新的特征向量。当然,这只是个人很主观的感觉。

神经网络组成

上面已经说到了,神经网络一般可以分成三个层次:输入层、隐藏层和输出层。对比着生物学上的神经系统,神经网络是由多个神经单元组成的。神经单元,即多个节点指向下一层的单节点这一结构,就是之前学过的多元对率回归所使用的结构。因而,我们可以把神经网络看成许多个神经单元的组合体。

005yAKGUgy1fwo357iz76j30ln0bh750.jpg

上图的神经单元中,我们发现在原有的特征值上添加了\(x_0\),这个值叫做“偏正量(bias unit)”。事实上神经网络的每一层都有这个偏正量。

前向传播算法

005yAKGUgy1fwo3w52wtrj30ms0bmq4q.jpg

005yAKGUgy1fwo3zdy210j30l70bnq3k.jpg

前向传播,直观上理解,就是从左向右赋权值,一层一层地构造隐藏层。对于每一层节点,它只能获取前一层节点的信息。

需要注意的是,最后构造出来的特征向量维度是这样的:\(S(\theta^{(j)})=s_{j+1}\times(s_j+1)\),其中j表示所在隐藏层的层数。最后得出的假设函数如下:

\[ h_\theta(x)=g(\theta^{(j)}a^{(j)}) \]
\[ a^{(j)}=g(\theta^{(j-1)}a^{(j-1)}) \]

神经网络的例子

逻辑运算

005yAKGUgy1fwo7934a7fj30lm0bc3ze.jpg

005yAKGUgy1fwo79l9wmrj30lj0bkwex.jpg

005yAKGUgy1fwo7az6argj30lb0bvaat.jpg

在本例中,使用sigmoid函数的特殊性质,构造了上面三个基本的逻辑门:与门、或门和非门。理论上,这三个逻辑门可以通过复杂组合表示所有数学逻辑。同样的,可以使用这些神经单元的组合来构造“或非门”的神经网络。

005yAKGUgy1fwo7uhd0g5j30np0bqwfz.jpg

多分类问题

先前提及的都是二元分类问题,现实中的分类问题往往是多元的。之前我们的做法是通过分割,将多元问题化解为多个二元问题.在神经网络中,我们可以通过多个节点的输出组合,来区分类型的不同。

005yAKGUgy1fwo7zbjd6qj30lg0bljsq.jpg

转载于:https://www.cnblogs.com/ChanWunsam/p/9867021.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值