梯度下降

百度飞浆架构师手把手带你零基础实践深度学习——打卡计划(PaddlePaddle)

荒凉一梦 提交于 2020-08-20 04:32:10
百度飞浆架构师手把手带你零基础实践深度学习——打卡计划 预习 机器学习和深度学习综述 机器学习 机器学习的实现 深度学习 区别 神经网络 使用Python语言和Numpy库来构建神经网络模型 波士顿房价预测任务 数据处理 模型设计 训练配置 训练过程 **训练过程代码修改** 下面给出课程链接,欢迎各位小伙来来报考!本帖将持续更新。 话不多说,这么良心的课程赶快扫码上车! https://aistudio.baidu.com/aistudio/education/group/info/1297?activityId=5&directly=1&shared=1 预习 预习作业嘛,很简单,本地装下环境,然后python基础语法熟悉下,比如打印一下乘法口诀? for i in range ( 10 ) : for j in range ( 1 , i + 1 ) : print ( '{}*{}={:-2}' . format ( j , i , j * i ) , end = ' ' ) if i == j : print ( ) 大家不用担心,这次的课程难度将会由浅入深慢慢深入,相比上一次的课程,这一次讲更加合理,难度将更加适合新手!坚持下去哦 除了python语法的熟悉,建议熟悉下ai studio平台的环境哦,然后有时间可以阅读下官方文档,下面给出链接 https://www

谷歌用算力爆了一篇论文,解答有关无限宽度网络的一切

谁说我不能喝 提交于 2020-08-19 13:30:50
  选自arXiv    作者:Jaehoon Lee等    编辑:Panda    无限宽度神经网络是近来一个重要的研究课题,但要通过实证实验来探索它们的性质,必需大规模的计算能力才行。近日,谷歌大脑公布的一篇论文介绍了他们在有限和无限神经网络方面的系统性探索成果。该研究通过大规模对比实验得到了 12 条重要的实验结论并在此过程中找到了一些新的改进方法。该文作者之一 Jascha Sohl-Dickstein 表示:「这篇论文包含你想知道的但没有足够的计算能力探求的有关无限宽度网络的一切!」      近日,谷歌大脑的研究者通过大规模实证研究探讨了 宽神经网络与核(kernel)方法之间的对应关系 。在此过程中,研究者解决了一系列与无限宽度神经网络研究相关的问题,并总结得到了 12 项实验结果。   此外,实验还额外为权重衰减找到了一种改进版逐层扩展方法,可以提升有限宽度网络的泛化能力。   最后,他们还为使用 NNGP(神经网络高斯过程)和 NT(神经正切)核的预测任务找到了一种改进版的最佳实践,其中包括一种全新的集成(ensembling)技术。这些最佳实践技术让实验中每种架构对应的核在 CIFAR-10 分类任务上均取得了当前最佳的成绩。      论文链接:https://arxiv.org/pdf/2007.15801v1.pdf  

一文总结词向量的计算、评估与优化

穿精又带淫゛_ 提交于 2020-08-19 05:36:10
作者:芙蕖, Datawhale优秀学习者 ,东北石油大学 为了处理语言,需要将文本信息用向量的形式表达。词向量(Word Vector)或称为词嵌入(Word Embedding)就是将词语向量化。常见的生成词向量的神经网络模型有NNLM模型,C&W模型,CBOW模型和Skip-gram模型。 本文目录: 1. 词向量计算方法 1.1 Word2Vec的计算 1.2 Word2Vec中计算方法详解 1.3 高频词(the)引起的问题 2. 优化基础 2.1 梯度下降 2.2 随机梯度下降 3. Word Vector优化过程 3.1 SGD引起的稀疏数据 3.2 两种词向量建模方案 3.3 训练效率提升方案 4. 基于统计的单词向量表示 4.1 共现矩阵 4.2 改进思路 5. GloVe模型 5.1 原理 5.2 与Skip-Gram、CBOW模型比较 5.3 步骤 5.4 如何评估词向量的质量 一、词向量计算方法 1.1 word2vec的计算 对一个中心词,与窗口内的context词出现的概率: 通过极大似然方法最大化整个文本出现的概率: 损失函数: 1.2 word2vec中计算方法详解 假设vocabulary包含m个词,每个词向量长度为n, 对于每一个词,作为中心词(center)和非中心词(outside)时分别使用v和u两个向量表示

图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix)

泄露秘密 提交于 2020-08-18 04:53:02
图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 图Lasso方法的基本理论 2. 坐标下降算法 3. 图Lasso算法 4. MATLAB程序 数据见参考文献 [2] 4.1 方法一 demo.m load SP500 data = normlization(data); S = cov(data); %样本协方差 [X, W] = glasso_1(double(S), 0.5); %X:sigma^(-1), W:sigma [~, idx] = sort(info(:,3)); colormap gray imagesc(X(idx, idx) == 0) axis off %% Data Normalization function data = normlization(data) data = bsxfun(@minus, data, mean(data)); data = bsxfun(@rdivide, data, std(data)); end glasso_1.m function [X, W] = glasso_1(S, lambda) %% Graphical Lasso -

优化学习率相关算法

这一生的挚爱 提交于 2020-08-17 16:21:18
优化学习率的相关算法 在使用优化算法的时候,常常会涉及到一些学习率的优化,那么我们应该怎么优化学习率呢? 调整学习率的策略: 1.在斜率(方向导数)大的地方,使用小的学习率 2.在斜率(方向导数)小的地方,使用大的学习率 下面我们通过梯度下降算法进行学习率的优化分析 在梯度下降中,设x[k]=a,那么沿着负梯度方向,移动到x[k+1]=b,则有: 那么,从x[0]出发,每次沿着当前函数梯度反方向移动一定的距离ak,将得到下面的序列: 则对应的个点的函数值序列的关系为: 当n迭代到一定值的时候,这函数f(x)将收敛到局部的最小值。 我们将当前点记为x[k],当前的搜索方向为dk(如:负梯度方向),我们将学习率a看成自变量,因此,我们将函数f(x[k] + adk)看做是关于a的函数h(a),如下所示: 对于上述函数,当a=0时,h(0)=f(x[k]),对于函数h(a),其导数为: 在梯度下降中,梯度下降是为了寻找f(x)的最小值,那么,在x[k]和dk给定的前提下,即寻找函数f(x[k]+adk)的最小值, 即: 如果函数h(a)可导,那么对于局部最小值处的a满足: 下面我们就来计算最优学习率: 1.当a=0时,我们带入得到: 2.对于下降方向,选择负梯度方向(或者选择与负梯度方向夹角小于90度的方向),即: 可以得到h‘(a) < 0 3.由此,我们总是能够选择足够大的a,使得h

Python数据预处理:彻底理解标准化和归一化

旧城冷巷雨未停 提交于 2020-08-17 05:01:01
数据预处理 数据中不同特征的量纲可能不一致,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,因此,需要对数据按照一定比例进行缩放,使之落在一个特定的区域,便于进行综合分析。 常用的方法有两种: 最大 - 最小规范化:对原始数据进行线性变换,将数据映射到[0,1]区间 Z-Score标准化:将原始数据映射到均值为0、标准差为1的分布上 为什么要标准化/归一化? 提升模型精度:标准化/归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。 加速模型收敛:标准化/归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。 如下图所示: 哪些机器学习算法需要标准化和归一化 1)需要使用梯度下降和计算距离的模型要做归一化,因为不做归一化会使收敛的路径程z字型下降,导致收敛路径太慢,而且不容易找到最优解,归一化之后加快了梯度下降求最优解的速度,并有可能提高精度。比如说线性回归、逻辑回归、adaboost、xgboost、GBDT、SVM、NeuralNetwork等。需要计算距离的模型需要做归一化,比如说KNN、KMeans等。 2)概率模型、树形结构模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林。 彻底理解标准化和归一化 示例数据集包含一个自变量(已购买)和三个因变量(国家,年龄和薪水)

2.基于梯度的攻击——FGSM

半世苍凉 提交于 2020-08-16 06:19:03
  FGSM原论文地址: https://arxiv.org/abs/1412.6572    1.FGSM的原理      FGSM的全称是Fast Gradient Sign Method(快速梯度下降法),在白盒环境下,通过求出模型对输入的导数,然后用符号函数得到其具体的梯度方向,接着乘以一个步长,得到的“扰动”加在原来的输入 上就得到了在FGSM攻击下的样本。     FGSM的攻击表达如下:       那么为什么这样做有攻击效果呢? 就结果而言,攻击成功就是模型分类错误,就模型而言,就是加了扰动的样本使得模型的loss增大。而 所有基于梯度的攻击方法都是基于让loss增大这一点来做的。 可以仔细回忆一下,在神经网络的反向传播当中,我们在训练过程时就是沿着梯度方向来更新更新w,b的值。这样做可以使得网络往loss减小的方向收敛。 那么现在我们既然是要使得loss增大,而模型的网络系数又固定不变,唯一可以改变的就是输入,因此我们就利用loss对输入求导从而“更新”这个输入。(当然,肯定有人问,神经网络在训练的时候是多次更新参数,这个为什么仅仅更新一次呢?主要因为我们希望产生对抗样本的速度更快,毕竟名字里就有“fast”,当然了,多次迭代的攻击也有,后来的PGD(又叫I-FGSM)以及MIM都是更新很多次,虽然攻击的效果很好,但是速度就慢很多了)     

python实现感知机模型

家住魔仙堡 提交于 2020-08-15 21:50:08
这篇文章通过对花鸢尾属植物进行分类,来学习如何利用实际数据构建一个感知机模型,(文末附GD和SGD参数更新手推公式)。 目录 一、数据集 二、需要导入的库 三、读取数据集 四、数据散点图可视化 五、利用感知机模型进行线性分类 六、不同学习率损失可视化对比 七、归一化后分类 八、随机梯度下降 九、完整的代码 十、公式推导: 一、数据集 Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。 iris以鸢尾花的特征作为数据来源,常用在分类操作中。该数据集由3种不同类型的鸢尾花的各50个样本数据构成。其中的一个种类与另外两个种类是线性可分离的,后两个种类是非线性可分离的。 该数据集包含了4个属性: & Sepal.Length(花萼长度),单位是cm; & Sepal.Width(花萼宽度),单位是cm; & Petal.Length(花瓣长度),单位是cm; & Petal.Width(花瓣宽度),单位是cm; 种类:Iris Setosa(山鸢尾)、Iris Versicolour

Word2Vec简明教程:入门、原理及代码实现

核能气质少年 提交于 2020-08-15 17:20:07
Word2Vec简明教程 1. 特征向量 2. 词向量 2.1 例1:King- Man + Woman = Queen 2.2 例2:跨语言同义词共现 3. NNLM 4. Word2Vec 4.1 SkipGram (1)基本概念 (2)数据模型 4.2 CBoW 4.3 Negative Sampling 4.4 Hierarchical Softmax 5. 使用gensim 1. 特征向量 近年来,研究者通过词汇学方法,发现约有五种特质可以涵盖人格描述的所有方面,提出了人格的 大五模式(Big Five) ,俗称人格的海洋(OCEAN),包括以下五个维度: 开放性(Openness):具有想象、审美、情感丰富、求异、创造、智能等特质。 责任心(Conscientiousness):显示胜任、公正、条理、尽职、成就、自律、谨慎、克制等特点。 外倾性(Extroversion):表现出热情、社交、果断、活跃、冒险、乐观等特质。 宜人性(Agreeableness):具有信任、利他、直率、依从、谦虚、移情等特质。 神经质性(Neuroticism):难以平衡焦虑、敌对、压抑、自我意识、冲动、脆弱等情绪的特质,即不具有保持情绪稳定的能力。 通过NEO-PI-R测试可以得出每个维度的打分(1-100),然后将其缩放到 [ − 1 , 1 ] [-1,1] [ − 1 , 1 ]

逻辑回归与梯度下降法全部详细推导

我与影子孤独终老i 提交于 2020-08-15 15:39:28
第三章 使用sklearn 实现机学习的分类算法 分类算法 分类器的性能与计算能力和预测性能很大程度上取决于用于模型训练的数据 训练机器学习算法的五个步骤: 特征的选择 确定评价性能的标准 选择分类器及其优化算法 对模型性能的评估 算法的调优 sklearn初步使用 3.1 sklearn中包括的processing 模块中的标准化类,StandardScaler对特征进行标准化处理 from sklearn.processing import StandardSacler sc = StandardScaler() #实例化 sc.fit(X_train) sc.transform(X_train) # - 以上两句可以并写成一句sc.fit_transform(X_trian) # - 我们使用相同的放缩参数分别对训练和测试数据集以保证他们的值是彼此相当的。**但是在使用fit_transform 只能对训练集使用,而测试机则只使用fit即可。** # - sklearn中的metrics类中包含了很多的评估参数,其中accuracy_score, # - 中accuracy_score(y_test,y_pred),也就是那y_test与预测值相比较,得出正确率 y_pred = model.predict(X_test-std) 过拟合现象 过拟合现象出现有两个原因: