热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

深度学习之pytorch(三)

神经网络的结构最常见的神经网络是全连接神经网络,其中两个相邻层中每一个层的所有神经元和另外一个层的所有神经元都是相连的,每个层内部的神经元不相连。N层神

神经网络的结构
最常见的神经网络是全连接神经网络,其中两个相邻层中每一个层的所有神经元和另外一个层的所有神经元都是相连的,每个层内部的神经元不相连。
在这里插入图片描述
N层神经网络是不会把输入层算进去的,因此一个一层的神经网络是指没有隐藏层,只有输入和输出层的神经网络,就像logistic回归就是一个一层的神经网络。

模型的表示能力与容量
这里出现了一个名词叫做:过拟合:在忽略了潜在的数据关系的前提之下,将噪音的干扰放大了。

深度学习的基石:反向传播算法
它是一个有效地求解梯度的算法,本质上其实就是一个链式求导法则的应用。

链式法则:
对于一个简单的函数,除了可以直接求出这个函数的微分以外,还可以使用链式法则,对两个式子分别求微分,核心就是;对需求求导的元素进行求导的时候,可以一层一层求导,然后把结果乘起来。

在这里插入图片描述
对于一些优化算法的变式
1.梯度下降法:
在这里插入图片描述
1.1SGD
随机梯度下降法是梯度下降法的一个小变形。
1.2.Momentum
这就是增加动量,来自于物理的概念
1.3.Adagrad
是一种自适应学习率的方法
1.4RMSprop
是一种非常有效的自适应学习率的改进方法
1.5Adam
是一种综合型的学习方法,可以看成是RMSprop加上动量的学习方法,达到比RMSProp更好的效果。

处理数据和训练模型的技巧
1.数据预处理
1.1中心化
数据预处理中一个最常见的处理办法就是每个特征维度都减去相应的均值实现中心化,使得变成0均值。
1.2标准化
在使得数据都变成0均值之后,还需要使用标准化的做法让数据不同的特征维度都有着相同的规模,有两种比较常见的方法,第一种是除以标准差,也就是让新数据的分布接近标准高斯分布,还有一种做法是让每一个特征维度的最大值和最小值按比例缩放到-1和1之间
1.3PCA
pca是另外一种处理数据的方法,在这一步之前,会将数据中心化,在计算数据的协方差矩阵。
1.4白噪声
这也是一种处理数据的方式,首先会和PCA一样,将数据投影到一个特征空间当做,再对每一个维度 除以特征值来标准化这些数据,直观上就是一个多元高斯分布转换到一个0均值,协方差矩阵为1的多元高斯分布。

权重初始化
在对数据进行预处理之后,进入网络训练之前,需要对参数进行预处理,以下是对应的策略。
1.全0 初始化
这个是比较简单直接的一种,直接把参数全都初始化为0,但是这种方法不是一个很好的方法,因为把权重全都初始化为相同的值,每个神经元就都会计算出相同的结果,在反向传播的时候也会计算出相同的梯度,最后导致所有的权重都会有相同的更新,权重之间就失去了不对称性。
2.随机初始化
因为我们希望权重的初始化是尽量靠近0,但是不能全都等于0,所有可以将权重初始化为靠近0 的一些随机数,通过“随机初始化”就可以打破对称性。
一般有 高斯随机化,均匀随机化等
3.稀疏初始化
他将权重全都初始化为0,然后为了打破对称性,在里面随机挑选一些参数附上一些随机值,这这方法的好处就是参数占用的内存较少,因为里面有较多的0
4.初始化偏置
对于偏置来说,初始化为0,因为权重已经打破了对称性,所以使用0来初始化是最简单的
5.批标准化
他的核心想法就是标准化这个过程是可微的,减少很多不合理初始化的问题,所以我们可以将标准化过程应用到神经网络的每一层中做前向和反向传播。

以下是一些具体的防止过拟合的办法
1.正则化
他是比较常见的形式,想法就是对于权重过大的部分进行惩罚,也就是直接在损失函数中增加权重的二范数量级。
2.Dropout
这个是使用最广泛的一个,核心想法就是在训练网络的时候,依概率P保留每一个神经元,也就是说每一次训练的时候有些神经元会被设置成0
在这里插入图片描述


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 2017亚马逊人工智能奖公布:他们的AI有什么不同?
    事实上,在我们周围,“人工智能”让一切都变得更“智能”极具讽刺意味。随着人类与机器智能之间的界限变得模糊,我们的世界正在变成一个机器 ... [详细]
  • Two Sigma人均22万英镑~
    近期原创文章: ... [详细]
author-avatar
手机用户2502902843
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有