当前位置:   article > 正文

机器学习算法 - 神经网络_神经网络模型和神经网络算法

神经网络模型和神经网络算法

一、非线性假设

我们之前已经学习过线性回归和逻辑回归算法了,为什么还要研究神经网络? 我们先看一个例子。下面是一个监督学习分类问题的训练集。
在这里插入图片描述
当我们使用x1,x2的多次项式进行预测时,我们可以应用的很好。 使用非线性的多项式项,能够建立更好的分类模型。假设有非常多的特征,例如大于100个变量,希望用这100个特征来构建一个非线性的多项式模型,结果将是数量非常惊人的特征组合,即便只采用两两特征的组合,也会有接近5000个组合而成的特征。这对于一般的逻辑回归来说需要计算的特征太多了。

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

二、感知机与多层网络

神经网络模型建立在很多神经元之上,每个神经元是一个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输入,并且根据本身的模型提供一个输出。

神经元接收来自其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过”激活函数“处理以产生神经元的输出。实际常用Sigmoid函数作为激活函数。(引用西瓜书上的原话)

2.1感知机

感知机(Perceptron)由两层神经元组成。输入层接收外界输入信号后传递给输出层,输出层是M-P神经元(亦称”阈值逻辑单元“(threshold logic unit))。

注意:
感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,学习能力有限。
感知机只能解决线性可分问题

2.2多层网络

要解决非线性可分问题,需要多层感知机,就是多层网络。
输入层和输出层之间的层称为”隐层“或”隐含层“,隐含层和输出层都是拥有激活函数的功能神经元。
在神经网络中,只需包含隐层,即可称为多层网络。

在这里插入图片描述
其中: x 1 , x 2 , x 3 \small x_{1},x_{2},x_{3} x1,x2,x3 是输入单元,将原始数据输入给它们,处于输入层; a 1 , a 2 , a 3 \small a_{1},a_{2},a_{3} a1,a2,a3是中间单元,负责将数据进行处理,然后呈递到下一层;最后是输出单元,它负责计算 h θ ( x ) \small h_{\theta}(x) hθ(x)

标记
L L L:表示神经网络层数
S L S_L SL:表示第L层的单元数(不包括偏置单元)
a i ( j ) a_i^{(j)} ai(j):第 j \small j j层的第 i \small i i个单元的激活值
θ ( j ) \theta^{(j)} θ(j):从第 j \small j j层映射到第 j + 1 \small j+1 j+1层的权重矩阵
k k k:表示输出的类别数,相当于输出单元数

说明:
当类别k=2时,则直接用一个输出单元
当类别k>=3时,就有k个输出单元。 S L = k S_L=k SL=k

三、前向传播算法

下图为一个3层的神经网络,第一层为输入层(Input Layer),最后一层为输出层(Output Layer),中间一层为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit)。
在这里插入图片描述
标记

a i ( j ) \small a_i^{(j)} ai(j):第 j \small j j层的第 i \small i i个单元的激活值

θ ( j ) \small \theta^{(j)} θ(j):从第 j \small j j层映射到第 j + 1 \small j+1 j+1层的权重矩阵;例如 θ ( 1 ) \small \theta^{(1)} θ(1)代表从第1层映射到第2层的权重矩阵,其大小为:第 j + 1 \small j+1 j+1层的激活单元数量为行数,以第 j \small j j层的激活单元数加1为列数的矩阵。

对上述模型,激活单元输出分别表达为:
在这里插入图片描述
x , θ , a x,\theta,a x,θ,a 分别用矩阵表示:
在这里插入图片描述
可得 Θ ⋅ x = a \Theta \cdot x=a Θx=a

把这样从左到右的算法称为前向传播算法( Forward Propagation )

说明:
此处 θ ( 1 ) ∈ R 3 × 4 \theta^{(1)}\in R^{3\times4} θ(1)R3×4 ,属于 3 × 4 3\times4 3×4的向量
更一般的,如果一个网络在第 j j j层有 S j S_j Sj个单元,那么矩阵 θ ( j ) \theta^{(j)} θ(j)的维度为 S j + 1 × ( S j + 1 ) S_{j+1} \times (S_j+1) Sj+1×(Sj+1),这里包含了偏置单元

四、神经网络模型展示

介绍神经网络模型的展示,实现不同的功能。此处假设 h Θ ( x ) = 1 1 + e − θ T X \small h_\Theta(x)=\frac{1}{1+e^{-\theta^TX}} hΘ(x)=1+eθTX1

4.1单层神经网络模拟逻辑与、或

单层神经网络可以解决线性可分问题,比如逻辑与、或、非等。
举例说明:逻辑与(AND)
在这里插入图片描述
θ 0 = − 30 , θ 1 = 20 , θ 2 = 20 \theta_0=-30,\theta_1=20,\theta_2=20 θ0=30,θ1=20,θ2=20,此时 h Θ ( x ) = g ( − 30 + 20 x 1 + 20 x 2 ) h_\Theta(x)=g(-30+20x_1+20x_2) hΘ(x)=g(30+20x1+20x2)
在这里插入图片描述
在这里插入图片描述
从图中可以看出 h Θ ( x ) ≈ x 1 A N D x 2 \small h_{\Theta}(x) \approx x_{1} AND \small x_{2} hΘ(x)x1ANDx2

举例说明:逻辑或(OR)
在这里插入图片描述

4.2多层神经网络模拟同或(异或非)

多层功能神经元,解决非线性可分问题
举例说明:逻辑同或(XNOR)
XNOR = (x and y) or ((NOT x) and (NOT y))
x,y也可表示为下图中的 x 1 , x 2 x_1,x_2 x1,x2
在这里插入图片描述
这种方法可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。

五、神经网络的代价函数

逻辑回归代价函数作为一般形式有
L o g i s t i c    r e g r e s s i o n Logistic \ \ regression Logistic  regression:
J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta)=-\frac{1}{m}\Biggl [\sum_{i=1}^my^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))\Biggl ]+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2 J(θ)=m1[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2
可以这样理解,上述式子代表神经网络中一个输出单元的代价函数。

在逻辑回归中,我们只有一个输出变量,又称标量(scalar),也只有一个因变量

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/352099
推荐阅读
相关标签