过拟合

pytorch学习笔记(三十八):Image-Augmentation

£可爱£侵袭症+ 提交于 2020-08-14 16:07:48
文章目录 图像增广 1. 常用的图像增广方法 1.1 翻转和裁剪 1.2 变化颜色 1.3 叠加多个图像增广方法 2. 使用图像增广训练模型 2.1 使用图像增广训练模型 小结 图像增广 图像增广(image augmentation) 技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。例如,我们可以对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。我们也可以调整亮度、色彩等因素来降低模型对色彩的敏感度。可以说,在当年AlexNet的成功中,图像增广技术功不可没。本节我们将讨论这个在计算机视觉里被广泛使用的技术。 首先,导入实验所需的包或模块。 % matplotlib inline import time import torch from torch import nn , optim from torch . utils . data import Dataset , DataLoader import torchvision from PIL import Image import sys sys . path . append ( ".." ) import d2lzh_pytorch as

数据集分布是指什么【转载】

ぐ巨炮叔叔 提交于 2020-08-14 06:59:22
转自: http://sofasofa.io/forum_main_post.php?postid=1002963 1.对于supervised learning,分布是指关于特征 X 和结果 Y 的联合分布 F ( X , Y ) 或者条件 F ( Y | X ) 。 我们说训练集和测试集服从同分布的意思是训练集和测试集都是由服从同一个分布的随机样本组成的,也就是 对于unsupervised learning,分布是指特征 X 的分布 F ( X ),也就是 但是现实中比较难做到这点,特别是当训练集是过去的数据,测试集是当下的数据,由于时间的因素,它们很可能不是完全同分布的,这就增加了预测难度。 这也是为什么一般交叉验证的误差往往小于实际的测试误差。因为交叉验证中每折数据都是来自训练集,它们肯定是同分布的。 如果训练集和测试集的分布风马牛不相及,那么根据训练集学习得到的模型在测试集上就几乎没有什么用了。所以我们训练模型和应用模型时一个重要的前提假设就是训练集和测试集是同分布的。 另外一个方面是牵涉到过拟合问题,即使训练集和测试集是同分布的,由于数据量的问题,训练集的分布可能无法完整体现真实分布,当我们过分去学习训练集分布的时候,我们反而会远离真实分布(以及测试集的分布),造成预测不准确,这就造成过拟合。 来源: oschina 链接: https://my.oschina

决策树——从原理走向实战

放肆的年华 提交于 2020-08-14 04:01:20
决策树——既能分类又能回归的模型 在现实生活中,我们会遇到各种选择,不论是选择男女朋友,还是挑选水果,都是基于以往的经验来做判断。如果把判断背后的逻辑整理成一个结构图,你会发现它实际上是一个树状图,这就是我们今天要讲的决策树。 决策树学习的目的是为了生成一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单而直观的 分而治之 (Divide and Conquer) 策略,如下图所示: 决策树的生成是一个自根结点一直到叶结点的递归生成过程。 在递归生成的伪代码表述中,可以看到,有三个地方导致递归返回: (行 3) 当前结点包含的样本全部属于同一个类别,无需划分; (行 6) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。在这种情况下,把当前结点标记为叶结点,并且将其类别设定为该结点所含样本最多的类别; (行 12) 当前结点包含的样本集和为空,不能划分,把当前结点标记为叶结点,但是将其类别设定为其父结点所含样本最多的类别,周志华老师的《机器学习》中在该条件下执行了 return,但是按照我的理解由于这里处于 for 循环中,虽然属性中的一个取值样本集合为空,但是其它取值情况下还有有可能有样本集合的,如果这里执行了 return,那么就跳过了其它取值判断的可能。 另外,其中第 14 行 A{a∗} A{a∗} 表示从 AA 中去除 a∗a∗ 属性。

GPT-3诞生,Finetune也不再必要了!NLP领域又一核弹!

徘徊边缘 提交于 2020-08-13 16:04:24
一只小狐狸带你解锁 炼丹术& NLP 秘籍 2018年10月推出的BERT一直有着划NLP时代的意义,然而还有一个让人不能忽略的全程陪跑模型——OpenAI GPT(Generative Pre-Training)在以它的方式坚持着,向更通用的终极目标进发。 最初的GPT只是一个12层单向的Transformer,通过预训练+精调的方式进行训练,BERT一出来就被比下去了。之后2019年初的GPT-2提出了meta-learning,把所有NLP任务的输入输出进行了整合,全部用文字来表示,比如对于翻译任务的输入是“英翻法:This is life”,输出是“C'est la vie”。直接把任务要做什么以自然语言的形式放到了输入中。通过这种方式进行了大规模的训练,并用了15亿参数的大模型,一举成为当时最强的生成模型。 遗憾的是,GPT-2在NLU领域仍并不如BERT,且随着19年其他大模型的推出占据了下风,年初微软推出的Turing-NLG已经到达了170亿参数,而GPT-2只有15亿。这些模型的尺寸已经远远超出了大部分公司的预算和调参侠们的想象。。。已经到极限了吗? 不,“极限挑战”才刚刚开始,OpenAI在十几个小时前悄然放出了GPT第三季——《 Language Models are Few-Shot Learners 》。 paper链接:https://arxiv.org

数据集分布是指什么【转载】

不想你离开。 提交于 2020-08-13 09:07:27
转自: http://sofasofa.io/forum_main_post.php?postid=1002963 1.对于supervised learning,分布是指关于特征 X 和结果 Y 的联合分布 F ( X , Y ) 或者条件 F ( Y | X ) 。 我们说训练集和测试集服从同分布的意思是训练集和测试集都是由服从同一个分布的随机样本组成的,也就是 对于unsupervised learning,分布是指特征 X 的分布 F ( X ),也就是 但是现实中比较难做到这点,特别是当训练集是过去的数据,测试集是当下的数据,由于时间的因素,它们很可能不是完全同分布的,这就增加了预测难度。 这也是为什么一般交叉验证的误差往往小于实际的测试误差。因为交叉验证中每折数据都是来自训练集,它们肯定是同分布的。 如果训练集和测试集的分布风马牛不相及,那么根据训练集学习得到的模型在测试集上就几乎没有什么用了。所以我们训练模型和应用模型时一个重要的前提假设就是训练集和测试集是同分布的。 另外一个方面是牵涉到过拟合问题,即使训练集和测试集是同分布的,由于数据量的问题,训练集的分布可能无法完整体现真实分布,当我们过分去学习训练集分布的时候,我们反而会远离真实分布(以及测试集的分布),造成预测不准确,这就造成过拟合。 来源: oschina 链接: https://my.oschina

【2万字干货】利用深度学习最新前沿预测股价走势

∥☆過路亽.° 提交于 2020-08-13 06:45:07
https://zhuanlan.zhihu.com/p/56509499 正文 在本篇文章中,我们将创建一个完整的程序来预测股票价格的变动。为此,我们将使用生成对抗性网络(GAN),其中LSTM是一种递归神经网络,它是生成器,而卷积神经网络CNN是鉴别器。我们使用LSTM的原因很明显,我们试图预测时间序列数据。为什么我们使用GAN,特别是CNN作为鉴别器?这是一个好问题,后面会有专门的部分介绍。 当然,我们将对每个步骤会进行详细的介绍,但最难的部分是GAN:成功训练GAN非常棘手的部分是获得正确的超参数集。因此,我们将使用贝叶斯优化(以及高斯过程)和深度强化学习(DRL)来决定何时以及如何改变GAN的超参数(探索与开发的两难境地)。在创建强化学习时,我们将使用该领域的最新进展,如Rainbow和PPO。 我们将使用许多不同类型的输入数据。随着股票的历史交易数据和技术指标,我们将使用NLP最新的进展(使用Bidirectional Embedding Representations from Transformers,BERT,一种传输学习NLP)创建情绪分析(作为基本分析的来源),傅里叶变换提取总体趋势方向,stacked autoencoders识别其他高级特征,寻找相关资产的特征组合,ARIMA用于股票函数的近似度等等,以便尽可能多地获取关于股票的信息、模式、相关性等

初始TextCNN及keras实现

馋奶兔 提交于 2020-08-13 03:04:31
1、初始TextCNN CNN可参考之前的文章: https://www. zhihu.com/people/xianya ng94 最近在做寿命预测问题的研究中,拿到的数据为一维的数据,传统的数据预处理方法主要有PCA、LDA、LLE等,考虑到应用CNN进行特征的提取,从而提高预测的精度。但之前了解到的CNN多应用于图像处理,其输入数据为二维或者多维的数据,因此进一步了解学习应用于文本分类的TextCNN。下一篇文章会通过期刊论文来介绍几篇CNN的具体应用实例,主要介绍模型的网络结构。 TextCNN模型是Yoon Kim在2014年 《Convolutional Neural Networks for Sentence Classification》中提出的,利用卷积神经网络(CNN)来对处理文本分类问题(NLP)。该算法利用多个不同大小的kernel来提取句子中的关键信息,从而能更加高效的提取重要特征,实现较好的分类效果。 2、TextCNN结构 该模型的结构如下图:(下图引用于原文) TextCNN的详细过程见下:(以一句话为例) (1)输入:自然语言输入为一句话,例如【wait for the video and don't rent it】。 (2)数据预处理:首先将一句话拆分为多个词,例如将该句话分为9个词语,分别为【wait, for, the, video,

傻瓜式无限P图,MIT朱俊彦团队“重写”深度生成模型

99封情书 提交于 2020-08-12 14:27:26
     作者 | 陈大鑫   编辑 | 丛末   复制一位老人的胡子,把胡子粘贴到全部孩子的眉毛上。该如何实现这样的操作呢?   让我们从塔尖生树的问题说起。   如何在教堂的塔尖上生成一棵树?——当然是使用P图软件啦!      但是P图软件一次只能修改一张图片,难道就没有那种能一键无限张P图的软件吗?   近日,来自MIT朱俊彦团队的一篇论文《Rewriting a Deep Generative Model》就很巧妙地 解决了这个问题,目前该论文已被接收为ECCV 2020 Oral,且代码已开源。   在这篇《重写深度生成模型》论文中,作者不是单独地对一张张图片进行编辑,而是很大胆地提出直接对深度网络的内部生成模型动刀编辑:      在这个规则编辑器中,深度生成模型G(z,w_0) 作为输入,这时模型的初始权重是 w_0,预训练模型G映射一个随机输入向量z到一个真实图像,将权重w_0改成w_1即可产生新的模型作为输出。   利用现有的模型能产生无限数量的图像,那么改变生成模型的规则就能让我们创造新规则下的无限张可改变图像。如下图所示,通过把塔尖的生成模型重写为“树”,一次操作即可在所有教堂的塔尖上都生成一棵树:       1    傻瓜式操作   那这么神奇的重写模型操作起来容易吗,够傻瓜式吗?   为了让读者更好地亲自编辑模型,作者特意创建了一个用户交互界面

Dropout的Bagging思想以及使用要点

試著忘記壹切 提交于 2020-08-12 08:46:05
一:Dropout的原理及bagging思想 1:Dropout原理 Dropout是深度学习中应对过拟合问题简单且有效的一种正则化方法。原理很简单:在训练阶段,在每一个Epoch中都以一定比例随机的丢弃网络中的一些神经元,如图一所示,使得每次训练的模型包含的神经元都不同。这种方式使得网络权重在更新过程中不依赖隐藏节点之间的固定关系(隐藏层节点的固定关系可能会影响参数更新过程),同时使得网络不会对某一个特定的神经元过分敏感,从而提高了网络的泛化能力。 图一:Dropout原理图 2:Dropout的Bagging思想 从《百面深度学习》这本书中的相关内容介绍领悟到,Dropout这种以一定比例随机丢弃神经元的方式是一种Bagging的思想:神经网络通过Dropout层以一定比例随即的丢弃神经元,使得每次训练的网络模型都不相同,多个Epoch下来相当于训练了多个模型, 同时每一个模型都参与了对最终结果的投票, 从而提高了模型的泛化能力。在此注意,Dropout与Bagging有一点不同是:Bagging的各个模型之间是相互独立的,而Dropout各个模型之间是共享权重的。 bagging是利用相同数据训练多个模型,然后将各个模型的结果投票或者加权取平均等。 二:Dropout使用要点 1:Dropout参数设置介绍 首先说一下Dropout的参数:官方文档中是这样介绍的: p:

统计学-统计学方法三要素:策略

試著忘記壹切 提交于 2020-08-12 07:12:56
1、损失函数 :度量预测错误的程度,评估模型单次预测的好坏。   a: 0-1损失函数 : $L(Y,f(X))=\begin{cases}0 & \text{ if } Y=f(X) \\ 1 & \text{ if } Y\neq f(X) \end{cases}$    b: 平方损失函数 : $L(Y,f(X))=(Y-f(X))^2$    c: 绝对损失函数 : $L(Y,f(X))=\left | Y-f(X) \right |$   d: 对数损失函数 : $L(Y,p(Y|X))=-log(p(Y|X))$ 2、风险函数 :损失函数的期望,评估模型平均预测好坏。 $R_{exp}(L(Y,f(X)))=\int_{x*y}L(Y,f(X))p(X,Y)dxdy$   经验风险:关于训练集的平均损失。 $R_{emp}(L(Y,f(X)))=\frac{1}{n}\sum L(Y,f(X))$    经验风险最小化: $\underset{F \epsilon f}{min}\frac{1}{n}\sum L(Y,f(X))$ eg:当模型是条件概率,损失函数是对数损失函数时,经验风险最小化等价于极大似然估计。   结构风险:是为了防止过拟合。 $R_{srm}(L(Y,f(X)))=\frac{1}{n}\sum L(Y,f(X))+\lambda J(f)$