神经网络
模型表示
如上图,x123作为输入单元(input units),传入原始数据
a123是中间单元,处理数据并传递到下一层
最后为输出单元,负责计算
神经网络模型由许多逻辑单元按照不同层级组织起来的网络,每一层都是下一层的输入变量如图第一层为输入层
最后一层是输出层,中间的为隐藏层,为每一层增加一个偏差单位(bias unit)
以上,是第j层的第i个激活单元。 表示从j层到j+1层的权重的矩阵,例如代表1到2层的权重的矩阵,尺寸为:以j+1层的激活单元数量为行数,j层的激活单元为列数的矩阵,上图中的第1层的权重的矩阵就为3*4(输入层还包含x0未显示)
又如图,激活单元和输出的表达分别如下
上述表达只是将一个训练实例送入神经网络中, 我们要做的是将整个训练集都送入神经网络算法来训练模型
实际展开来看就是
即第二层的神经元数据为 ,得到第二层向量之后,添加偏移量,输入到下一层中,不妨假设下一层即为输出层,得到的就是
使
相对于逻辑回归和线性回归,神经网络经过了输入层和隐藏层的多此进化,可以简单的将中间的隐藏层看作原始输入数据的进化体,因为是由初始的x向量决定的,所以是梯度下降的,相比起来也下降的更加快速,所以中间的隐藏层特征值的效果也比x次方更加高效。
特征和直观理解
神经网络中单层神经元(无中间层)的计算可以用来表示逻辑运算例如逻辑与/或
举例说明
对于上图,我们首先需要在x12的基础上添加一个偏执单元,并为其分配一定的权重,例如-30,20,20,意味着x012的权重依次为上述三个值,我们可以得到
对于sigmoid函数 是一个x轴上从-∞到+∞,y值从0->1的激活函数图像,所以,对于h(x)有
即说明
样本和直观理解
我们尝试使用神经元来组件神经网络实现运算功能,以下以异或功能为例
XNOR =
所以第一步我们需要构建表达的神经元
再表示出
将以上两个神经元并列后得到第二层神经元(hidden layer),并得到最后的输出假设函数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的那类。对于神经网络的结构,可能如下图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏