机器学习入门(6)——神经网络:表述(Neural Networks: Representation)

非线性假设(Non-linear Hypotheses)

无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大。
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第1张图片
普通的逻辑回归模型,不能有效地处理巨多的特征,这时候我们需要神经网络。

神经元与大脑(Neurons and the Brain)

如果你能把几乎任何传感器接入到大脑中,大脑的学习算法就能找出学习数据的方法,并处理这些数据。从某种意义上来说,如果我们能找出大脑的学习算法,然后在计算机上执行大脑学习算法或与之相似的算法,也许这将是我们向人工智能迈进做出的最好的尝试。
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第2张图片

模型展示1(Model Representation I )

每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第3张图片
神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)。
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第4张图片
神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。下图为一个3层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit):
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第5张图片
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第6张图片
上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。
我们可以知道:每一个都是由上一层所有的和每一个所对应的决定的。我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION )
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第7张图片

模型展示2(Model Representation II)

( FORWARD PROPAGATION ) 相对于使用循环来编码,利用向量化的方法会使得计算更为简便。以上面的神经网络为例,试着计算第二层的值:
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第8张图片

例子与直觉理解1(Examples and Intuitions I)

从本质上讲,神经网络能够通过学习得出其自身的一系列特征。在普通的逻辑回归中,我们被限制为使用数据中的原始特征 x 1 , x 2 , … , x n x_{1}, x_{2}, \ldots, x_{n} x1,x2,,xn,我们虽然可以使用一些二项式项来组合这些特征,但是我们仍然受到这些原始特征的限制。在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。
神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。

例子与直觉理解(Examples and Intuitions II)

二元逻辑运算符(BINARY LOGICAL OPERATORS)当输入特征为布尔值(0或1)时,我们可以用一个单一的激活层可以作为二元逻辑运算符,为了表示不同的运算符,我们只需要选择不同的权重即可。
我们可以利用神经元来组合成更为复杂的神经网络以实现更复杂的运算。如下图所示:
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第9张图片
按这种方法我们可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。这就是神经网络的厉害之处。

多元分类(Multiclass Classification)

我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。例如,第一个值为1或0用于预测是否是行人,第二个值用于判断是否为汽车。下面是该神经网络的可能结构示例:
机器学习入门(6)——神经网络:表述(Neural Networks: Representation)_第10张图片

你可能感兴趣的:(机器学习入门(6)——神经网络:表述(Neural Networks: Representation))