当前位置: 首页 > news >正文

网站开发一般过程手机大全及价格

网站开发一般过程,手机大全及价格,海外网站代理,小程序制作模板网站一、神经网络 1、神经网络 人工神经网络#xff08;Artificial Neural Network#xff0c;即ANN#xff09;也简称为神经网络#xff08;NN#xff09;是一种模仿生物神经网络结构 和功能的计算模型。 2、基本部分 输入层#xff1a;输入 x 输出层#xff1a;输出 y 隐…一、神经网络 1、神经网络 人工神经网络Artificial Neural Network即ANN也简称为神经网络NN是一种模仿生物神经网络结构 和功能的计算模型。 2、基本部分 输入层输入 x 输出层输出 y 隐藏层输入与输出之间所有层 3、特点 同一层的神经元之间没有连接 第 N 层的每个神经元和第 N-1层 的所有神经元相连full connected)即全连接神经网络 第 N-1层神经元的输出就是第 N 层神经元的输入 每个连接都有一个权重值w系数和b系数 二、激活函数 用于对每层的输出数据进行变换进而为整个网络注入了非线性因素。此时, 神经网络就可以拟合各种曲线 1、sigmoid 激活函数 公式 求导公式 绘制函数图像 import torch import matplotlib.pyplot as plt# 函数图像 x torch.linspace(-20,20,1000) # 输入值x 通过 sigmoid函数 转换成 激活值y y torch.sigmoid(x)# 创建画布、坐标轴 plt.plot(x,y) plt.grid() plt.show()# 导数图像 x torch.linspace(-20,20,1000,requires_gradTrue) # 自动微分 torch.sigmoid(x).sum().backward()plt.plot(x.detach(),x.grad) plt.grid() plt.show() sigmoid 函数可以将任意的输入映射到 (0, 1) 之间当输入的值大致在 -6 或者 6 时意味着输入任何值 得到的激活值都是差不多的这样会丢失部分信息。比如输入 100 和输出 10000 经过 sigmoid 的激活值几乎都是等于 1 的但是输入的数据之间相差 100 倍的信息就丢失了。 对于 sigmoid 函数而言输入值在 [-6, 6] 之间输出值才会有明显差异输入值在 [-3, 3] 之间才会有比较好的效果。 通过上述导数图像我们发现 导数 数值范围是 (0, 0.25) 当输入 -6 或者 6 时 sigmoid 激活函数图像的 导数接近为 0 此时网络参数 将 更新 极其 缓慢 或者 无法更新 。 一般来说 sigmoid 网络在 5 层之内  就会产生 梯度消失 现象。而且该激活函数并不是以 0 为中心的所以在实践中这种激活函数使用的很少。sigmoid 函数一般只用于 二分类 的 输出层。 2、tanh 激活函数 公式 求导公式 函数图像 Tanh 函数将 输入 映射到 (-1, 1) 之间 图像以 0 为中心在 0 点对称当输入 大概-3 或者 3 时将被映射为 -1 或者 1。 其 导数值 范围 (0, 1) 当输入的值大概 -3 或者 3 时其导数 近似 0。 与 Sigmoid 相比它是 以 0 为中心 的且梯度相对于sigmoid大使得其收敛速度要比 Sigmoid 快 减少迭代次数。然而从图中可以看出Tanh 两侧的导数也为 0同样会造成 梯度消失。 若使用时可在 隐藏层 使用 tanh函数 在 输出层使用sigmoid函数 。 3、ReLU 激活函数 公式                f (x) max (0x) 求导公式         f (x) 0 或 1 函数图像 ReLU 激活函数将小于 0 的值映射为 0而大于 0 的值则保持不变它更加重视正信号而忽略负信号这种激活函数运算更为简单能够提高模型的训练效率 当x0时ReLU导数为0而当x0时则不存在饱和问题。所以ReLU 能够在x0时保持梯度不衰减从而缓解梯度消失问题。然而随着训练的推进部分输入会落入小于0区域导致对应权重无法更新。这种现象被称为“神经元死亡” ReLU是目前最常用的激活函数。与sigmoid相比ReLU的优势是采用sigmoid函数计算量大指数运算反向传播求误差梯度时计算量相对大而采用Relu激活函数整个过程的计算量节省很多。 sigmoid函数反向传播时很容易就会出现梯度消失的情况从而无法完成深层网络的训练。 Relu会使一部分神经元的输出为0这样就造成了网络的稀疏性并且减少了参数的相互依存关系缓解了过拟合问题的发生。 4、SoftMax 激活函数 softmax用于多分类过程中它是二分类函数sigmoid在多分类上的推广目的是将多分类的结果以概率的形式展现出来公式如下 Softmax 就是将网络输出的 logits 通过 softmax 函数就映射成为(0,1)的值而这些值的累和 为1满足概率的性质那么我们将它理解成概率选取概率最大也就是值对应最大的节点作为我们的预测目标类别。 scores torch.tensor([0.2, 0.02, 0.15, 0.15, 1.3, 0.5, 0.06, 1.1, 0.05, 3.75]) probabilities torch.softmax(scores,dim0) print(probabilities) 输出结果  5、其他激活函数 6、选择方法 对于 隐藏层 1. 优先选择 ReLU激活函数 2. 如果ReLu效果不好那么尝试其他激活如Leaky ReLu等。 3. 如果使用了ReLU 需要注意Dead ReLU问题 避免出现大的梯度从而导致过多的神经元死亡。 4. 少用sigmoid激活函数可以尝试使用tanh激活函数 对于 输出层 1. 二分类 问题选择 sigmoid激活函数 2. 多分类 问题选择 softmax激活函数 3. 回归 问题选择 identity 激活函数 三、参数初始化 1、均匀分布 初始化 权重参数初始化从区间均匀随机取值即在均匀分布中生成当前神经元的权重d为每个神经元的输入数量 import torch import torch.nn.functional as F import torch.nn as nn # 均匀分布 随机初始化 def test01():linear nn.Linear(5, 3)# 从 0 ~ 1 均匀分布产生参数nn.init.uniform_(linear.weight)print(linear.weight.data) 2、正态分布 初始化 随机初始化从均值为0标准差为1的高斯分布中取样使用一些很小的值对参数W进行初始化 # 正态分布随机初始化 def test05():linear nn.Linear(5, 3)nn.init.normal_(linear.weight, mean0, std1)print(linear.weight.data) 3、全0 初始化 将神经网络中的所有权重参数初始化为 0 # 全0初始化 def test03():linear nn.Linear(5, 3)nn.init.zeros_(linear.weight)print(linear.weight.data) 4、全1 初始化 将神经网络中的所有权重参数初始化为 1 # 全1初始化 def test04():linear nn.Linear(5, 3)nn.init.ones_(linear.weight)print(linear.weight.data) 5、固定值初始化 将神经网络中的所有权重参数初始化为 某个固定值 # 固定初始化 def test02():linear nn.Linear(5, 3)nn.init.constant_(linear.weight, 5)print(linear.weight.data) 6、kaiming 初始化 正态化的HE初始化均值为0stddev方差   均匀分布的HE初始化从 [ -limitlimit ] 的均匀分布中抽取样本limit    input输入神经元的个数 # kaiming 初始化 def test06():# kaiming 正态分布初始化linear nn.Linear(5, 3)nn.init.kaiming_normal_(linear.weight)print(linear.weight.data)# kaiming 均匀分布初始化linear nn.Linear(5, 3)nn.init.kaiming_uniform_(linear.weight)print(linear.weight.data) 7、xavier 初始化 正态化的Xavier初始化均值为0stddev方差   均匀分布的Xavier初始化从 [ -limitlimit ] 的均匀分布中抽取样本limit    input输入神经元的个数output输出神经元的个数 # xavier 初始化 def test07():# xavier 正态分布初始化linear nn.Linear(5, 3)nn.init.xavier_normal_(linear.weight)print(linear.weight.data)# xavier 均匀分布初始化linear nn.Linear(5, 3)nn.init.xavier_uniform_(linear.weight)print(linear.weight.data) 一般我们在使用 PyTorch 构建网络模型时每个网络层的参数都有默认的初始化方法优先选择 kaming的初始化、xavier初始化方式。 四、网络搭建 和 参数计算 在pytorch中定义深度神经网络其实就是层堆叠的过程继承自nn.Module实现两个方法         1. __init__方法中定义网络中的层结构主要是全连接层并进行初始化         2. forward方法在实例化模型的时候底层会自动调用该函数。该函数中可以定义学习率            及数据传输方式。 构建如下图所示的神经网络模型  编码设计如下         1. 第1个隐藏层权重采用标准化的 xavier初始化激活函数 使用 sigmoid         2. 第2个隐藏层权重采用标准化的 HE初始化激活函数 用 relu         3. out 输出层采用 softmax 做数据归一化 import torch import torch.nn as nn from torchsummary import summary # 计算模型参数,查看模型结构# 构建神经网络 class model(nn.Module):# 初始化属性值def __init__(self):# 调用父类的初始化属性值super(model,self).__init__()# 创建第一个隐藏层模型, 3个输入特征,3个输出特征self.layer1 nn.Linear(3,3)# 初始化权重nn.init.xavier_normal_(self.layer1.weight)# 创建第二个隐藏层模型self.layer2 nn.Linear(3,2)# 初始化权重nn.init.kaiming_normal_(self.layer2.weight)# 创建输出层模型self.out nn.Linear(2,2)# 创建前向传播方法,自动执行forward()方法def forward(self,x):# 数据经过第一个线性层h1 self.layer1(x)# 使用sigmoid激活函数h1 torch.sigmoid(h1)# 数据经过第二个线性层h2 self.layer2(h1)# 使用relu激活函数h2 torch.relu(h2)# 数据经过输出层out self.out(h2)# 使用softmax激活函数out torch.softmax(out,dim-1)return outif __name__ __main__:# 实例化model对象my_model model()# 随机产生数据my_data torch.randn(5,3)print(mydata shape,my_data.shape)# 数据经过 神经网络模型训练output my_model(my_data)print(output shape,output.shape)# 计算模型参数# 计算每层每个神经元的w和b个数总和summary(my_model,input_size(3,),batch_size5)# 查看模型参数for name,parameter in my_model.named_parameters():print(name,parameter) 输出结果  神经网络的优缺点  优点     1. 精确度高、性能好、效果好     2. 拟合任意非线性的关系     3. 框架多无需自己造轮子  缺点     1. 黑箱可解释性差     2. 网络结构复杂超参数多超参数需要人工设置     3. 需要大量的数据进行训练训练时间长对算力有较高要求     4. 小数据集容易过拟合
http://www.w-s-a.com/news/294275/

相关文章:

  • 做推文封面图网站南宁高端网站建设
  • 天津网站搜索排名做电影免费ppt模板下载网站
  • 襄樊最好网站建设价格网站建设与设计 毕业设计
  • 网站推广广告词大全集网站建设相对路径
  • 甘肃省铁路投资建设集团有限公司网站域名怎么实名认证
  • 企业网站建设的层次返利网站建设
  • 竞价单页网站制作中小企业网站建设问题
  • 响应式网站源码学校网站制作多少钱
  • 营销型网站建设需要懂什么网站建站四件套是什么
  • 廊坊哪里有制作手机网站的区块链开发语言
  • 找建设项目的网站装企工长网站开发
  • 戴尔网站建设成功方正网站制作
  • 怎么买网站域名wordpress 视频站模版
  • 厦门官网建设公司杨和关键词优化
  • 怎么做网约车seo自动优化软件下载
  • 遵义市住房和城乡建设局官方网站网站备案 自己的服务器
  • 分销系统价格多少北京网站优化平台
  • 怎样做旅游公司的网站泉州网站建设方案优化
  • 手机网站页面范例个人网站做淘宝客违规
  • 做一套网站开发多少钱SEO做得最好的网站
  • 咸宁做网站的公司那家便宜福建建设注册管理中心网站
  • 网站建设工作汇报黑科技广告推广神器
  • 淘宝做首页热点的什么网站徐州建设安全监督网站
  • 正规的镇江网站建设广州有什么好玩的东西
  • 丹阳网站设计公司网站开发 0755
  • 百度网页版浏览器网址找文网优化的技术团队
  • 信息网站怎么做做儿童网站赚钱吗
  • 帝国cms 网站迁移个人网站备案备注
  • 青岛做网站推广怎样做网站才不能被攻破
  • 使用网站模板快速建站教案杂志wordpress主题 无限加载