python人工智能深度学习算法优化
目录
- 1.SGD
- 2.SGDM
- 3.Adam
- 4.Adagrad
- 5.RMSProp
- 6.NAG
1.SGD
随机梯度下降
随机梯度下降和其他的梯度下降主要区别,在于SGD每次只使用一个数据样本,去计算损失函数,求梯度,更新参数。这种方法的计算速度快,但是下降的速度慢,可能会在最低处两边震荡,停留在局部最优。
2.SGDM
SGM with Momentum:动量梯度下降
动量梯度下降,在进行参数更新之前,会对之前的梯度信息,进行指数加权平均,然后使用加权平均之后的梯度,来代替原梯度,进行参数的更新。如此,更新的时候,都会包含之前的梯度信息。
计算的时候,会在加权平均的梯度上加上一个beta参数,原梯度加上1-beta,二者之和就是用于进行参数更新的动量梯度。
由于有之前的梯度信息,因此该方法相当于对梯度下降加入了一个惯性。如果前面的是下降,那么此处会下降更快,如果突然接触到了最低点,也会因为有动量,而再往前走走。也就是说当前的方向,由此前积累的方向,和现在的梯度方向共同决定。因此,训练过程的震荡幅度会变小,速度变快。
SGDM速度没Adam快,但泛化能力好。
3.Adam
Adam是一种在深度学习模型中用来替代随机梯度下降的优化算法
它是SGDM和RMSProp算法的结合,训练速度快,泛化能力不太行。
4.Adagrad
Adaptive Gradient自适应步长
该方法为现在的梯度*步长添加了一个系数:1/(历史梯度的平方和,再开根号)
在数据分布稀疏的时候,能更好地利用稀疏梯度的信息,比标准的SGD更有效地收敛。
5.RMSProp
梯度平方根root mean square prop
该方法和Adagrad的区别就是分母不一样,使得系数不会因为前几步的梯度太大而导致分母太大,从而导致系数变得太小而走不动了。类似于Momentum的计算方式。
6.NAG
Nesterov Accelerated Gradient,是在SGD和SGDM的基础上的改进,在SGDM中,采用的梯度方向,是由当前的梯度方向,以及前面累积的梯度方向共同决定,但在NAG中,是先使用累积的动量计算一次,得到下一次的梯度方向,再把下一个点的梯度方向,与历史累积动量相结合,计算现在这个时刻的累计动量。
以上就是python人工智能深度学习算法优化的详细内容,更多关于python人工智能算法优化的资料请关注我们其它相关文章!
相关推荐
-
浅谈机器学习需要的了解的十大算法
毫无疑问,近些年机器学习和人工智能领域受到了越来越多的关注.随着大数据成为当下工业界最火爆的技术趋势,机器学习也借助大数据在预测和推荐方面取得了惊人的成绩.比较有名的机器学习案例包括Netflix根据用户历史浏览行为给用户推荐电影,亚马逊基于用户的历史购买行为来推荐图书. 那么,如果你想要学习机器学习的算法,该如何入门呢?就我而言,我的入门课程是在哥本哈根留学时选修的人工智能课程.老师是丹麦科技大学应用数学和计算机专业的全职教授,他的研究方向是逻辑学和人工智能,主要是用逻辑学的方法来建模.课程包
-
python人工智能深度学习入门逻辑回归限制
目录 1.逻辑回归的限制 2.深度学习的引入 3.深度学习的计算方式 4.神经网络的损失函数 1.逻辑回归的限制 逻辑回归分类的时候,是把线性的函数输入进sigmoid函数进行转换,后进行分类,会在图上画出一条分类的直线,但像下图这种情况,无论怎么画,一条直线都不可能将其完全分开. 但假如我们可以对输入的特征进行一个转换,便有可能完美分类.比如: 创造一个新的特征x1:到(0,0)的距离,另一个x2:到(1,1)的距离.这样可以计算出四个点所对应的新特征,画到坐标系上如以下右图所示.这样转换之后
-
Python人工智能深度学习模型训练经验总结
目录 一.假如训练集表现不好 1.尝试新的激活函数 2.自适应学习率 ①Adagrad ②RMSProp ③ Momentum ④Adam 二.在测试集上效果不好 1.提前停止 2.正则化 3.Dropout 一.假如训练集表现不好 1.尝试新的激活函数 ReLU:Rectified Linear Unit 图像如下图所示:当z<0时,a = 0, 当z>0时,a = z,也就是说这个激活函数是对输入进行线性转换.使用这个激活函数,由于有0的存在,计算之后会删除掉一些神经元,使得神经网络变窄.
-
python深度学习人工智能BackPropagation链式法则
目录 1.链式法则 2.前向传播 3.后向传播 4.计算方式整理 5.总结 1.链式法则 根据以前的知识,如果我们需要寻找到目标参数的值的话,我们需要先给定一个初值,然后通过梯度下降,不断对其更新,直到最终的损失值最小即可.而其中最关键的一环,就是梯度下降的时候,需要的梯度,也就是需要求最终的损失函数对参数的导数. 如下图,假设有一个神经元,是输入层,有2个数据,参数分别是w1和w2,偏置项为b,那么我们需要把这些参数组合成一个函数z,然后将其输入到sigmoid函数中,便可得到该神经元的输出结
-
人工智能机器学习常用算法总结及各个常用算法精确率对比
本文讲解了机器学习常用算法总结和各个常用分类算法精确率对比.收集了现在比较热门的TensorFlow.Sklearn,借鉴了Github和一些国内外的文章. 机器学习的知识树,这个图片是Github上的,有兴趣的可以自己去看一下: 地址:https://github.com/trekhleb/homemade-machine-learning 简单的翻译一下这个树: 英文 中文 Machine Learning 机器学习 Supervised Learning 监督学习 Unsupervised
-
Python人工智能深度学习CNN
目录 1.CNN概述 2.卷积层 3.池化层 4.全连层 1.CNN概述 CNN的整体思想,就是对图片进行下采样,让一个函数只学一个图的一部分,这样便得到少但是更有效的特征,最后通过全连接神经网络对结果进行输出. 整体架构如下: 输入图片 →卷积:得到特征图(激活图) →ReLU:去除负值 →池化:缩小数据量同时保留最有效特征 (以上步骤可多次进行) →输入全连接神经网络 2.卷积层 CNN-Convolution 卷积核(或者被称为kernel, filter, neuron)是要被学出来的,
-
python人工智能深度学习算法优化
目录 1.SGD 2.SGDM 3.Adam 4.Adagrad 5.RMSProp 6.NAG 1.SGD 随机梯度下降 随机梯度下降和其他的梯度下降主要区别,在于SGD每次只使用一个数据样本,去计算损失函数,求梯度,更新参数.这种方法的计算速度快,但是下降的速度慢,可能会在最低处两边震荡,停留在局部最优. 2.SGDM SGM with Momentum:动量梯度下降 动量梯度下降,在进行参数更新之前,会对之前的梯度信息,进行指数加权平均,然后使用加权平均之后的梯度,来代替原梯度,进行参数的
-
Python人工智能深度学习RNN模型结构流程
目录 1.RNN基础模型 2.LSTM 3.流程结构 1.RNN基础模型 RNN主要特点是,在DNN隐藏层的输出内容会被存储,并且可以作为输入给到下一个神经元. 如下图所示,当"台北"这个词被输入的时候,前面的词有可能是"离开",有可能是"到达",如果把上一次输入的"离开",所得的隐藏层内容,输入给下一层,这样就有可能区分开是"离开台北",还是"到达台北". 如果隐藏层存储的内容并给下次
-
Python 人工智能老照片修复算法学习
目录 前言 项目环境搭建 conda虚拟环境创建 激活环境 Pytorch安装 Synchronized-BatchNorm-PyTorch repository安装 Global目录Synchronized-BatchNorm-PyTorch项目部署 检测预处理模型下载 下载脸部增强模型文件 下载依赖 完整部署后项目结构 项目使用 验证一下 总结 前言 老旧或者破损的照片如何修复呢?本文主要分享一个博主使用后非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-to-L
-
Python编程深度学习计算库之numpy
NumPy是python下的计算库,被非常广泛地应用,尤其是近来的深度学习的推广.在这篇文章中,将会介绍使用numpy进行一些最为基础的计算. NumPy vs SciPy NumPy和SciPy都可以进行运算,主要区别如下 最近比较热门的深度学习,比如在神经网络的算法,多维数组的使用是一个极为重要的场景.如果你熟悉tensorflow中的tensor的概念,你会非常清晰numpy的作用.所以熟悉Numpy可以说是使用python进行深度学习入门的一个基础知识. 安装 liumiaocn:tmp
-
人工智能深度学习OpenAI baselines的使用方法
OpenAI,由诸多硅谷大亨联合建立的人工智能非营利组织.2015年马斯克与其他硅谷科技大亨进行连续对话后,决定共同创建OpenAI,希望能够预防人工智能的灾难性影响,推动人工智能发挥积极作用 OpenAI.DeepMind,伯克利三个可以说是强化学习的推动者,其中OpenAI 为很多算法都写了baselines.本文讲开始运行例子,以A2C算法为例子(具体a2c算法原理后续讲解): 首先就是安装gym环境,具体直接参考OpenAI的github: https://github.com/open
-
Docker容器搭建运行python的深度学习环境的方法
任务管理器中查看虚拟化,已启用 若禁用,重启电脑,到Bios中开启 安装Docker Desktop及开启WSL功能. 打开 powershell 创建镜像 docker run --rm -it quay.io/azavea/raster-vision:pytorch-latest /bin/bash docker images 依据镜像id创建容器 docker create -it --name [name] [镜像id] docker start [name] 进入容器 docker e
-
Python编程深度学习绘图库之matplotlib
matplotlib是python的一个开源的2D绘图库,它的原作者是John D. Hunter,因为在设计上借鉴了matlab,所以成为matplotlib.和Pillow一样是被广泛使用的绘图功能,而在深度学习相关的部分,matplotlib得宠的多.这篇文章将简单介绍一下如何安装以及使用它来画一些非常常见的统计图形. 概要信息 注意事项:由于Python2支持到2020年,很多python库都开始主要支持python3了,matplotlib的主分支也已经是python3了.而这篇文章中
随机推荐
- 不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
- vue基于Vue2.0和高德地图的地图组件实例
- Oracle数据表中的死锁情况解决方法
- 程序迁移到swift 3.0的一些实用技巧
- 总结Javascript中的隐式类型转换
- Three.js利用Detector.js插件如何实现兼容性检测详解
- bootstrap模态框远程示例代码分享
- 一个PHP模板,主要想体现一下思路
- PHP开发的微信现金红包功能示例
- Android中的windowSoftInputMode属性详解
- MYSQL代码 定期备份Mysql数据库
- [分享]一个非常漂亮的进度滚动条
- .Net下二进制形式的文件(图片)的存储与读取详细解析
- Oracle与Mysql自动增长列(id)的区别
- JQUERY1.6 使用方法四 检测浏览器
- jquery mobile 实现自定义confirm确认框效果的简单实例
- 一个支持任意尺寸的图片上下左右滑动效果
- JavaScript For Beginners(转载)
- java string 转date方法如何实现
- PHP设计模式之适配器模式代码实例