吴恩达机器学习 6.神经网络学习

一.非线性假设
学习了线性回归和逻辑回归,二者都有的缺点有:当特征太多时,计算的负荷会非常大。
假如:
在这里插入图片描述
当使用 x 1 , x 2 x_1,x_2 x1,x2的多项式进行预测时,我们可以应用的很好。
之前有了解到使用非线性的多项式项,能够帮助我们建立更好的分类模型。但是当我们有非常多的特征时,例如大于100个变量,我们希望用这100个特征来构建一个非线性的多项式模型,结果将是数量非常惊人的特征组合
即便我们只采用两两特征的组合( x 1 x 2 + x 1 x 3 + . . . + x 2 x 3 + x 2 x 4 + . . . + x 9 9 x 1 00 x_1x_2+x_1x_3+...+x_2x_3+x_2x_4+...+x_99x_100 x1x2+x1x3+...+x2x3+x2x4+...+x99x100),我们也会有接近5000个组合而成的特征。这对于一般的逻辑回归来说需要计算的特征太多了。
实例:
若希望训练一个模型来识别视觉对象(例如识别一张图片上是否是一辆汽车),我们怎样才能这么做呢?
答:
一种方法是我们利用很多汽车的图片和很多非汽车的图片,然后利用这些图片上一个个像素的值(饱和度或亮度)来作为特征
解释:
如我们只选用灰度图片,每个像素则只有一个值(而非 RGB值),我们可以选取图片上的两个不同位置上的两个像素,然后训练一个逻辑回归算法利用这两个像素的值来判断图片上是否是汽车
在这里插入图片描述假使我们采用的都是50x50像素的小图片,并且我们将所有的像素视为特征,则会有 2500个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有接近3百万个的特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络
二.神经元和大脑
1.神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器
2.神经网络是计算量有些偏大的算法。大概由于近些年计算机的运行速度变快,才足以真正运行起大规模的神经网络使得神经网络东山再起。正是由于这个原因和其他一些我们后面会讨论到的技术因素,如今的神经网络对于许多应用来说是最先进的技术。
3.当你想模拟大脑时,是指想制造出与人类大脑作用效果相同的机器。大脑可以学会去以看而不是听的方式处理图像,学会处理我们的触觉
4.模拟大脑,并不需要用上千个不同的程序去实现。相反的,大脑处理的方法,只需要一个单一的学习算法就可以了
举例1:
在这里插入图片描述
大脑的这一部分这一小片红色区域是你的听觉皮层,你现在正在理解我的话,这靠的是耳朵。耳朵接收到声音信号,并把声音信号传递给你的听觉皮层,正因如此,人们才能听懂说话。
神经系统科学家做实验:
把耳朵到听觉皮层的神经切断。在这种情况下,将其重新接到一个动物的大脑上,这样从眼睛到视神经的信号最终将传到听觉皮层
这样做的结果是:
听觉皮层将会学会“看”
总结:
从这个意义上说,如果人体有同一块脑组织可以处理光、声或触觉信号,那么也许存在一种学习算法,可以同时处理视觉、听觉和触觉,而不是需要运行上千个不同的程序,或者上千个不同的算法来做这些大脑所完成的成千上万的美好事情。也许我们需要做的就是找出一些近似的或实际的大脑学习算法,然后实现它大脑通过自学掌握如何处理这些不同类型的数据。在很大的程度上,可以猜想如果我们把几乎任何一种传感器接入到大脑的几乎任何一个部位的话,大脑就会学会处理它。
再举实例:
1)用舌头学会“看”
原理:
这实际上是一个名为BrainPort的系统,它现在正在FDA (美国食品和药物管理局)的临床试验阶段,它能帮助失明人士看见事物。它的原理是,你在前额上带一个灰度摄像头,面朝前,它就能获取你面前事物的低分辨率的灰度图像。你连一根线到舌头上安装的电极阵列上,那么每个像素都被映射到你舌头的某个位置上,可能电压值高的点对应一个暗像素电压值低的点。对应于亮像素,即使依靠它现在的功能,使用这种系统就能让你我在几十分钟里就学会用我们的舌头“看”东西。
2)人体回声定位
原理:
有两种方法可以实现:你可以弹响指,或者咂舌头。
现在有失明人士,确实在学校里接受这样的培训,并学会解读从环境反弹回来的声波模式—这就是声纳。如果你搜索YouTube之后,就会发现有些视频讲述了一个令人称奇的孩子,他因为癌症眼球惨遭移除,虽然失去了眼球,但是通过打响指,他可以四处走动而不撞到任何东西,他能滑滑板,他可以将篮球投入篮框中。注意这是一个没有眼球的孩子。
三.模型表示1
1.大脑中的神经网络是怎样的?
每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。
在这里插入图片描述
神经元利用微弱的电流/动作电位进行沟通。如果神经元想要传递一个消息,它就会就通过它的轴突,发送一段微弱电流给其他神经元,这就是轴突。
这是一条连接到输入神经,或者连接另一个神经元树突的神经,这个神经元接收消息,做一些计算,然后可能会反过来将在轴突上的自己的消息传给其他神经元。这就是所有人类思考的模型:我们的神经元把自己的收到的消息进行计算,并向其他神经元传递消息。这也是我们的感觉和肌肉运转的原理。
神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。
示例:(神经网络中,参数又可被称为权重)
一个以逻辑回归模型作为自身学习模型的神经元。
我们设计出类似于神经元的神经网络,如下
在这里插入图片描述
其中
x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3是输入单元,我们将原始数据输入给他们
a 1 , a 2 , a 3 a_1,a_2,a_3 a1,a2,a3是中间单元,它们负责将数据进行处理,然后呈递到下一层
最后一层是输入单元,负责计算 h θ ( x ) h_\theta(x) hθ(x)

神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量

下图为一个3层的神经网络,第一层成为输入层(Input Layer),中间一层成为隐藏层(Hidden Layers),最后一层称为输出层(Output Layer)。我们为每一层都增加一个偏差单位(bias unit)(即 x 0 , a 0 x_0,a_0 x0,a0等)
在这里插入图片描述
在这里插入图片描述
上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。
我们知道:每一个a都是由上一层所有的x和每一个x所对应的决定的(我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION ))
四.模型表示2
我们将计算式子向量化,使得计算更为简便,以上述神经网络为例,计算第二层的值
在这里插入图片描述
在这里插入图片描述
进一步理解神经网络工作原理
遮挡左部分
在这里插入图片描述
可近似看作逻辑回归算法,以a0,a1,a2,a3为特征值进行计算
在这里插入图片描述
五.特征和直观理解1
1.普通的逻辑回归中,我们被限制为使用数据中的原始特征 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,我们虽然可以使用一些二项式项来组合这些特征,但是我们仍然受到这些原始特征的限制
2.本质上讲,神经网络能够通过学习得出其自身的一系列特征。在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。
3.神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。
举例and函数:
在这里插入图片描述
在这里插入图片描述
因此在这里插入图片描述
(or函数与之方法类似,只是运算不同)

六.样本和直观理解2
在这里插入图片描述
七.多类分类
如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车多类别分类时,我们的输出层则该有4个值,例如,第一个值为1或0用于预测是否是行人,第二个值用于判断是否为汽车。
输入向量x有三个维度,;两个中间层,输出层4个神经元分别用来表示4类,也就是每一个数据在输出层都会出现 [ a b c d ] T [a b c d]^T [abcd]T,且a,b,c,d中仅有一个为1,表示当前类。下面是神经网络的可能结构示例:
在这里插入图片描述输出结果可能是以下四种情形之一:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值