机器学习day10-神经网络

普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

模型表示

神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)。
在这里插入图片描述
我们设计出了类似于神经元的神经网络,效果如下:
在这里插入图片描述
其中x_1, x_2, x_3是输入单元(input units),我们将原始数据输入给它们。
a_1, a_2, a_3是中间单元,它们负责将数据进行处理,然后呈递到下一层。
最后是输出单元,它负责计算h_θ (x)。
神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。下图为一个3层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit):
在这里插入图片描述
a_i^((j) ) 代表第j 层的第 i 个激活单元。θ^((j) )代表从第 j 层映射到第j+1 层时的权重的矩阵,例如θ^((1) )代表从第一层映射到第二层的权重的矩阵。其尺寸为:以第 j+1层的激活单元数量为行数,以第 j 层的激活单元数加一为列数的矩阵。例如:上图所示的神经网络中θ^((1) )的尺寸为 3*4。
对于上图所示的模型,激活单元和输出分别表达为:
在这里插入图片描述
上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。
我们可以知道:每一个a都是由上一层所有的x和每一个x所对应的决定的。
(我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION ))
把x, θ, a 分别用矩阵表示,我们可以得到θ⋅X=a :
在这里插入图片描述
为了更好了了解Neuron Networks的工作原理,我们先把左半部分遮住:
在这里插入图片描述

右半部分其实就是以a_0,a_1,a_2,a_3, 按照Logistic Regression的方式输出h_θ (x):
在这里插入图片描述

其实神经网络就像是logistic regression,只不过我们把logistic regression中的输入向量[x_1∼x_3 ] 变成了中间层的[a_1((2))∼a_3((2)) ], 即:
h_θ (x)=g(θ_0^((2) ) a_0^((2) )+θ_1^((2) ) a_1^((2) )+θ_2^((2) ) a_2^((2) )+θ_3^((2) ) a_3^((2) ) )
我们可以把a_0,a_1,a_2,a_3看成更为高级的特征值,也就是x_0,x_1,x_2,x_3的进化体,并且它们是由 x与决定的,因为是梯度下降的,所以a是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将 x次方厉害,也能更好的预测新数据。
这就是神经网络相比于逻辑回归和线性回归的优势。

特征和直观理解

我们可以用这样的一个神经网络表示AND 函数:
在这里插入图片描述

其中θ_0=-30,θ_1=20,θ_2=20 我们的输出函数h_θ (x)即为:h_Θ (x)=g(-30+20x_1+20x_2 )
在这里插入图片描述
接下来再介绍一个OR函数:
在这里插入图片描述

OR与AND整体一样,区别只在于的取值不同。
我们可以利用神经元来组合成更为复杂的神经网络以实现更复杂的运算。例如我们要实现XNOR 功能(输入的两个值必须一样,均为1或均为0),即:
XNOR=(x_1 AND x_2) OR((NOT x_1 )AND(NOT x_2 ))
首先构造一个能表达(NOT x_1 )AND(NOT x_2 )部分的神经元:
在这里插入图片描述
然后将表示 AND 的神经元和表示(NOT x_1 )AND(NOT x_2 )的神经元以及表示 OR 的神经元进行组合:
在这里插入图片描述

我们就得到了一个能实现 XNOR 运算符功能的神经网络。
按这种方法我们可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。
这就是神经网络的厉害之处。

多分类

当我们有不止两种分类时(也就是y=1,2,3….),比如以下这种情况,该怎么办?如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。例如,第一个值为1或0用于预测是否是行人,第二个值用于判断是否为汽车。
输入向量x有三个维度,两个中间层,输出层4个神经元分别用来表示4类,也就是每一个数据在输出层都会出现[a b c d]^T,且a,b,c,d中仅有一个为1,表示当前类。下面是该神经网络的可能结构示例:

在这里插入图片描述
在这里插入图片描述

神经网络算法的输出结果为四种可能情形之一:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值