第八、神经网络:表述(Neural Networks: Representation)

8.1 非线性假设

线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大
举例:识别视觉对象(汽车),利用很多汽车的图片和很多非汽车的图片,然后利用这些图片上一个个像素的值(饱和度或亮度)来作为特征
假如我们只选用灰度图片,每个像素则只有一个值(而非 RGB值),我们可以选取图片上的两个不同位置上的两个像素,然后训练一个逻辑回归算法利用这两个像素的值来判断图片上是否是汽车;假使我们采用的都是50x50像素的小图片,并且我们将所有的像素视为特征,则会有 2500个特征,两两组合今300万个特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

8.2 神经元和大脑

神经网络是计算量有些偏大的算法。然而大概由于近些年计算机的运行速度变快,才足以真正运行起大规模的神经网络,如今的神经网络对于许多应用来说是最先进的技术
大脑的假设机制:存在一种学习算法,可以同时处理视觉、听觉和触觉
举例:耳朵到听觉皮层的神经切断,眼睛到视神经的信号最终将传到听觉皮层,最终学会看;躯体感觉皮层,用来处理触觉的,也能学会“看”;用舌头学会“看”;人体回声定位或者说人体声纳;触觉皮带以使人拥有方向感,用类似于鸟类感知方向的方式;青蛙身上插入第三只眼,青蛙也能学会使用那只眼睛

8.3 模型表示1

每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络
以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)第八、神经网络:表述(Neural Networks: Representation)第八、神经网络:表述(Neural Networks: Representation)
其中x是输入单元(input units),我们将原始数据输入给它们。 a是中间单元,它们负责将数据进行处理,然后呈递到下一层。 最后是输出单元,它负责计算h
神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量
对于3层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit)
第八、神经网络:表述(Neural Networks: Representation)
第八、神经网络:表述(Neural Networks: Representation)
上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。
我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION )第八、神经网络:表述(Neural Networks: Representation)

8.4 模型表示2

( FORWARD PROPAGATION ) 相对于使用循环来编码,利用向量化的方法会使得计算更为简便
个人理解:前向传播用矩阵表示及运算;就是分了多层,类似与多层逻辑回归(每一层的输出作为新的特征。上标表示的是第几层)
第八、神经网络:表述(Neural Networks: Representation)
第八、神经网络:表述(Neural Networks: Representation)

8.5 特征和直观理解1

从本质上讲,神经网络能够通过学习得出其自身的一系列特征;在普通的逻辑回归中,我们被限制为使用数据中的原始特征,我们虽然可以使用一些二项式项来组合这些特征,但是我们仍然受到这些原始特征的限制
在神经网络中,原始特征只是输入层,输出层做出的预测利用的是第二层的特征,第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。
神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)
是因为权重比较大,逻辑回归s型函数g(z)计算后结果为0或1
第八、神经网络:表述(Neural Networks: Representation)

8.6 样本和直观理解II

输入为0或1,单以的**层
第八、神经网络:表述(Neural Networks: Representation)
利用神经元来组合成更为复杂的神经网络以实现更复杂的运算。例如我们要实现XNOR 功能(输入的两个值必须一样,均为1或均为0)
第八、神经网络:表述(Neural Networks: Representation)

8.7 多类分类

当我们有不止两种分类时,我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。输入向量x有三个维度,两个中间层,输出层4个神经元分别用来表示4类,也就是每一个数据在输出层都会出现
第八、神经网络:表述(Neural Networks: Representation)
神经网络算法的输出结果为四种可能情形之一
第八、神经网络:表述(Neural Networks: Representation)