神经网络

模型表示


如上图,x123作为输入单元(input units),传入原始数据

a123是中间单元,处理数据并传递到下一层

最后为输出单元,负责计算hθ(x)

神经网络模型由许多逻辑单元按照不同层级组织起来的网络,每一层都是下一层的输入变量如图第一层为输入层

最后一层是输出层,中间的为隐藏层,为每一层增加一个偏差单位(bias unit)

以上,ai(j)是第j层的第i个激活单元。θ(j) 表示从j层到j+1层的权重的矩阵,例如θ(1)代表1到2层的权重的矩阵,尺寸为:以j+1层的激活单元数量为行数j层的激活单元为列数的矩阵,上图中的第1层的权重的矩阵就为3*4(输入层还包含x0未显示)

又如图,激活单元和输出的表达分别如下

α1(2)=g(θ10(1)x0+θ11(1)x1+θ12(1)x2+θ13(1)x3)

α2(2)=g(θ20(1)x0+θ21(1)x1+θ22(1)x2+θ23(1)x3)

α3(2)=g(θ30(1)x0+θ31(1)x1+θ32(1)x2+θ33(1)x3)

hθ(x)=g(θ10(2)a0(2)+θ11(2)a1(2)+θ12(2)a2(2)+θ13(2)a3(2))

上述表达只是将一个训练实例送入神经网络中, 我们要做的是将整个训练集都送入神经网络算法来训练模型

实际展开来看就是

x=[x0x1x2x3] z(2)=[z1(2)z2(2)z3(2)]

z(2)=θ(1)xa(2)=g(z(2))

z(2)=θ(1)x 即第二层的神经元数据为a(2)=g(z(2)) ,得到第二层向量之后,添加偏移量a0(2)=1,输入到下一层中,不妨假设下一层即为输出层,得到的就是

使z(3)=θ(2)a(2)hθ(x)=a(3)=g(z(3))

相对于逻辑回归和线性回归,神经网络经过了输入层和隐藏层的多此进化,可以简单的将中间的隐藏层看作原始输入数据的进化体,因为是由初始的x向量决定的,所以是梯度下降的,相比起来也下降的更加快速,所以中间的隐藏层特征值的效果也比x次方更加高效。

特征和直观理解

神经网络中单层神经元(无中间层)的计算可以用来表示逻辑运算例如逻辑与/或

举例说明

对于上图,我们首先需要在x12的基础上添加一个偏执单元,并为其分配一定的权重,例如-30,20,20,意味着x012的权重依次为上述三个值,我们可以得到hθ(x)=g(30+20x1+20x2)

对于sigmoid函数 是一个x轴上从-∞到+∞,y值从0->1的激活函数图像,所以,对于h(x)有image-20220320010417254

即说明hθ(x)=x1ANDx2

样本和直观理解

我们尝试使用神经元来组件神经网络实现运算功能,以下以异或功能为例

XNOR = (x1 and x2) or ((not x1) and (not x2))

所以第一步我们需要构建表达(not x1) and (not x2)的神经元g(101+20x1+20x2)

再表示出(x1 and x2) g(30+20x1+20x2)

将以上两个神经元并列后得到第二层神经元(hidden layer),并得到最后的输出假设函数h(x)

由数据表示可以设计为

其中 a1(2)a2(2)(not x1) and (not x2)运算

x1 x2 a1(2) a2(2) hθ(x)
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1

由上可得一个由一层输入一层隐藏层的神经网络,实现异或的功能

这样的方式可以构造出非常复杂的神经网络,可以挖掘到更加细致的特征值,这就是神经网络的优势所在

多类分类

通常情况下,我们会遇到不止两种分类的问题,例如我们使用神经网络算法来识别四类图片,并输出一个四维向量来实现,例如[a,b,c,d],abcd中的任意一个为1,其余三个为0,表示图片为值为1的那类。对于神经网络的结构,可能如下图

posted @   crazy18  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示