吴恩达机器学习day5(神经网络:表述)

神经网络学习:表述

    • 一.非线性假设
      • 【1】前提引入
      • 【2】实例体验
    • 二.神经元和大脑
    • 三.模型表示1
      • 【1】了解实际神经系统
      • 【2】模型思考:
    • 三.模型表示2
    • 四.特征和直观解释1

一.非线性假设

【1】前提引入

我们之前学的,无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大。
下面是一个例子:
吴恩达机器学习day5(神经网络:表述)_第1张图片
使用非线性的多项式项,能够帮助我们建立更好的分类模型。
【1】假设我们有非常多的特征,例如大于100个变量,我们希望用这100个特征来构建一个非线性的多项式模型,结果将是数量非常多的特征组合
【2】我们只采用两两特征的组合,在这里插入图片描述
我们也会有接近5000个组合而成的特征。这对于一般的逻辑回归来说需要计算的特征太多了。

【2】实例体验

假设我们希望训练一个模型来识别视觉对象,比如我们想要识别一张图片上是否是一辆汽车,
一种方法是我们可以利用很多汽车的图片和很多非汽车的图片,然后利用这些图片上的像素的值(饱和度和亮度)作为特征
假如我们只选用灰度图片,每个像素则只有一个值(而非 RGB值),我们可以选取图片上的两个不同位置上的两个像素,然后训练一个逻辑回归算法利用这两个像素的值来判断图片上是否是汽车:
假使我们采用的都是50x50像素的小图片,并且我们将所有的像素视为特征,则会有 2500个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有接近3百万个特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

二.神经元和大脑

神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器。想模拟大脑时,是指想制造出与人类大脑作用效果相同的机器。大脑可以学会去以看而不是听的方式处理图像,学会处理我们的触觉。如果我们能找出大脑的学习算法,然后在计算机上执行大脑学习算法或与之相似的算法,也许这将是我们向人工智能迈进做出的最好的尝试。人工智能的梦想就是:有一天能制造出真正的智能机器。

三.模型表示1

【1】了解实际神经系统

每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。
吴恩达机器学习day5(神经网络:表述)_第2张图片
神经元利用微弱的电流进行沟通。这些弱电流也称作动作电位,其实就是一些微弱的电流。所以如果神经元想要传递一个消息,它就会就通过它的轴突,发送一段微弱电流给其他神经元,这就是轴突。

这里是一条连接到输入神经,或者连接另一个神经元树突的神经,接下来这个神经元接收这条消息,做一些计算,它有可能会反过来将在轴突上的自己的消息传给其他神经元。

【2】模型思考:

我们的神经元把自己的收到的消息进行计算,并向其他神经元传递消息。这也是我们的感觉和肌肉运转的原理。如果你想活动一块肌肉,就会触发一个神经元给你的肌肉发送脉冲,并引起你的肌肉收缩。如果一些感官:比如说眼睛想要给大脑传递一个消息,那么它就像这样发送电脉冲给大脑的。
神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)。
我们设计出了类似于神经元的神经网络,效果如下:
吴恩达机器学习day5(神经网络:表述)_第3张图片
其中x1,x2 x3, 是输入单元(input units),我们将原始数据输入给它们。a1 a2,a3 , 是中间单元,它们负责将数据进行处理,然后呈递到下一层。 最后是输出单元,它负责计算hθ(x)。
神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。下图为一个3层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit):
吴恩达机器学习day5(神经网络:表述)_第4张图片

下面引入一些标记法来帮助描述模型: ai(j) 代表第 j层的第 i 个激活单元。θ(j)代表从第j 层映射到第j+1 层时的权重的矩阵,例如θ(1)代表从第一层映射到第二层的权重的矩阵。其尺寸为:以第j+1 层的激活单元数量为行数,以第j层的激活单元数加一为列数的矩阵。例如:上图所示的神经网络中θ(1)的尺寸为 3*4。
吴恩达机器学习day5(神经网络:表述)_第5张图片
上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。

我们可以知道:每一个a都是由上一层所有的x和每一个x所对应的决定的。
(我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION ))把x,θ , a分别用矩阵表示:
吴恩达机器学习day5(神经网络:表述)_第6张图片
我们可以得到X*θ=a 。

三.模型表示2

相对于使用循环来编码,利用向量化的方法会使得计算更为简便。以上面的神经网络为例,试着计算第二层的值:

吴恩达机器学习day5(神经网络:表述)_第7张图片

四.特征和直观解释1

从本质上讲,神经网络能够通过学习得出其自身的一系列特征。在普通的逻辑回归中,我们被限制为使用数据中的原始特征x1,x2,x3,……xn,我们虽然可以使用一些二项式项来组合这些特征,但是我们仍然受到这些原始特征的限制。在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。

神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。
吴恩达机器学习day5(神经网络:表述)_第8张图片
吴恩达机器学习day5(神经网络:表述)_第9张图片

你可能感兴趣的:(吴恩达机器学习笔记,神经网络,机器学习)