过拟合

ICLR2015_Explaining and Harnessing Adversarial Examples

巧了我就是萌 提交于 2021-01-21 04:00:31
Author 一作: Ian Goodfellow 三作: Christian Szegedy Abstract 之前认为对抗样本对模型的欺骗性是因为模型的高度非线性和过拟合,本文证明了模型的易损性主要是因为模型的线性本质。而且本文提供了一个简单且快速的方法产生对抗样本,将产生的样本用于对抗训练可以提升模型的测试性能。 Introduction 在高维空间的线性行为已经足够产生对抗样本,这种观点可以是我们设计一种简单且快速的方法用以生成对抗样本使得对抗训练实用化(FGSM, Fast Gradient Sign Method) 我们发现对抗训练可以提供额外的正则化。 非线性才能抵抗对抗干扰,长远来看,我们设计更加强大的优化方法用以训练更加非线性的模型来提高模型的对对抗样本的抗性 Related Work 现在已经有人开始设计抵抗模型,但是还没有任何一个模型保持在clean inputs上的高准确率的同时具有抵抗力 Linear explanation the precision of an individual input feature is limited. 输入的精度是有限的,比如说rgb图像,每个像素是8bit, 精度就是1/255 所以分类器不可能对输入x和 对抗样本 x+delta 做出不同的相应,如果delta比精度还小

英伟达提出全新GAN训练方式

一曲冷凌霜 提交于 2021-01-20 01:39:58
英伟达的研究人员创造了一种增强方法来训练生成对抗性网络(GAN),与先前的方法相比,这种方法需要的数据量相对更少。 英伟达的这种GAN网络,可用于风景画等艺术作品的创作,还可制作一些用于视频会议的作品。 (GAN是人工智能的一种形式,它将生成器网络与鉴别器网络相匹配,以创建图像或视频。) 训练GANs可能需要10万张以上的图像,但论文“利用有限数据训练生成对抗性网络”中提出了一种称为自适应鉴别器增强(ADA)的方法,利用这种方法训练GAN,可使需要的数据减少10到20倍。 “小型数据集的关键问题是:鉴别器会产生过拟合,训练开始发散,使得生成器的反馈变得毫无意义”论文中这样描述“通过在多个数据集上进行训练,结果证明,现在只使用几千张图片就可以取得好的结果,而 Style GAN2的训练结果则需要与更少的图像匹配。” 今年早些时候,来自Adobe Research、MIT和清华大学的研究人员详细介绍了GANS增强的另一种方法DiffAugment。 图学研究员David Luebke声称,做过实用数据科学的人都知道:大部分时间都用在收集和管理数据上,这通常称为ETL管道:提取、转换和加载。 他说:“仅这一项工作就需要大量实地数据科学人员,我们认为这种方法非常有用,因为你无需巨量的数据,也能获得有用的结果。 他说:“对于那些没有大量时间对数据进行标注的数据科学人员来说,这一点变得尤为重要

秋招面试经验分享

为君一笑 提交于 2021-01-13 02:19:18
微信公众号: 衣介书生 有任何问题或建议,欢迎在公众号留言。 欢迎关注该公众号。 如果你觉得文章对你有帮助,欢迎赞赏 [1] 我的秋招之路 以下内容主要是我对我参加过的面试的一些个人记录(可能不是那么全面,仅供参考),所有的岗位都是机器学习岗或者深度学习岗。拿到的 offer 从定级上来看基本都是 special offer 或者 super special offer。我会尽最大努力去分享一些专业知识相关的个人笔记供大家参考,如果发现笔记中有任何错误或者不明确的地方也请大家及时指正。 内容目录 美团算法专场(未通过) 美团金融 美团平台 阿里国际事业部(未通过) 作业帮提前批(通过) 京东广告部寻猎计划(通过) 迅雷人工智能研究员提前批(通过) 百度提前批(通过) 一点资讯提前批(通过) 爱奇艺提前批(通过) 搜狐算法专场(通过) 京东金融寻猎计划(通过) 依图(未通过) 宜信提前批(通过) 腾讯桌面安全事业部(流程中断) 猿辅导(通过) 美团算法专场(未通过) 经验教训:简历上的内容都没有准备好,自己做的比赛都没有讲清楚,算法相关的知识也没有做过梳理,面试之前还是要好好梳理一下自己做过的各个项目。毕竟面试时间有限,衡量你能力的硬性指标就是面试官提出的问题你回答得如何。 美团金融 自我介绍 介绍一下商铺定位这个赛题你怎么做的 GBDT的原理 GBDT是如何分裂节点的

面经 | 面试题目记录(美团)

*爱你&永不变心* 提交于 2021-01-12 09:10:23
以下内容带有部分提示性答案 无论是查找博客还是翻阅论文 大家还是要参照最全面的讲解哦~ 一、开发基础 TCP/IP C++虚函数 由两个部分组成的,虚函数指针与虚函数表 C++允许用户使用虚函数 (virtual function) 来完成“运行时决议 ” 这一操作,这与一般的“编译时决定 ” 有着本质的区别 “静态存储”和“动态存储” 静态存储:全局变量 动态存储:函数的形式参数 红黑树的原理 并发和并行的区别 https://www.jianshu.com/p/cbf9588b2afb 内存不够的情况下如何以最快速度进行排序 (海量数据类问题) 二、机器学习方向 讲一下LR (sigmoid) SVM介绍一下?为什么可以使用对偶来求解原始问题? 核函数了解吗?核函数解决什么问题? 为什么高斯核函数可以拟合无限维 (无穷泰勒展开) ID3缺点 (信息增益对可取值数目较多的属性有所偏好) 朴素贝叶斯公式 抽象一个分类问题[m个样本,n个特征,k种标签],问先验概率后验概率分别是什么 使用贝叶斯的前提条件 (贝叶斯公式没有前提条件) 使用朴素贝叶斯的前提条件 (所有特征相互独立的) GDBT和RF区别 三、深度学习方向 介绍熟悉的深度学习模型,并介绍优缺点 模型中方差,偏差怎么定义的 偏差,方差和过拟合,欠拟合的关系 怎么解决模型的方差偏大问题 降低模型的复杂度 减少数据维度:降噪

卷积神经网络

我们两清 提交于 2021-01-12 09:07:18
第一周    1,1 计算机视觉问题:   图片识别;目标检测:只需要检测出图片上物体的位置,做成一个盒子(不用辨别是什么物体);图片风格转移   在图片处理中,如果1000X1000的图片,进入全连接的神经网络中,x数据量太大达到3000000,太容易过拟合;所以就有了卷积神经网络    1.2 边缘检测    笔记:在前面说神经网络的前几层提取一些特征,检测出边缘,是因为输入的是一些向量,加权和之后就得到一些边缘特征;再往后把这些边缘再加权求和会得到一些人脸的部位;灰度图:用灰度表示的图,没有rgb,只有一个值表示灰度大小。   图片——过滤器(核)——另一张图片(tf.nn.conv2d;keras.conv2D)   垂直边缘检测原理:检测滤波器是左边是1右边是-1中间是0;这样如果原本的图片出现垂直边缘即图片有一部分的左边灰度值小右边灰度值大,这样再和滤波器作用之后就得到了一个比较大的值。(滤波器的作用就是滤除跟它不一样的,留下和它一样的部分这一部分值很大)         1.3 更多的边缘检测    边缘检测有很多种类:由暗到亮;由亮到暗可以都用上面的滤波器然后取绝对值。   边缘滤波器:sobel 可以用做垂直滤波器,中间的权重比较大,使得处于图像中央的权重比较大;scharr filter ;还可以任意设置9个数字当做参数,检测任意角度的边缘,在神经网络中慢慢学习

机器学习(十一)—常用机器学习算法优缺点对比、适用条件

你说的曾经没有我的故事 提交于 2021-01-12 07:00:55
1、决策树    适用条件: 数据不同类边界是非线性的,并且通过不断将特征空间切分为矩阵来模拟。特征之间有一定的相关性。特征取值的数目应该差不多,因为信息增益偏向于更多数值的特征。    优点: 1.直观的决策规则;2.可以处理非线性特征;3.考虑了变量之间的相互作用。    缺点: 1.容易过拟合(随机森林、剪枝);2.处理缺失数据时的困难;3、数据集中属性间的相关性。 2、SVM    适用条件: 特征空间大,可以处理非线性的特征。    优点: 1、可以处理小样本情况下的机器学习问题;2、可以处理高维特征;3、使用核函数应对非线性特征空间,解决非线性问题;4、分类面不依赖所有数据,只与几个支持向量有关    缺点: 1.对于大量的预测样本,效率会很低;2.需要找合适的核函数。3、对缺失数据敏感 3、LR    适用条件: 数据线性分布;    优点: 1.模型简单,训练速度快;2.逻辑回归广泛应用与工业问题上。    缺点: 1、形式简单,但准确率不是很高;2、依赖所有数据,很难处理数据不平衡问题;3、处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题;4、逻辑回归本身无法筛选特征。有时候, 我们会用gbdt来筛选特征,然后再上逻辑回归。 4、三者对比:   模型复杂度:SVM支持核函数,可处理线性非线性问题

机器学习入门线性回归 岭回归与Lasso回归(二)

陌路散爱 提交于 2021-01-10 10:11:17
一 线性回归(Linear Regression ) 1. 线性回归概述   回归的目的是预测数值型数据的目标值,最直接的方法就是根据输入写出一个求出目标值的计算公式,也就是所谓的回归方程,例如y = ax1+bx2,其中求回归系数的过程就是回归。那么回归是如何预测的呢?当有了这些回归系数,给定输入,具体的做法就是将回归系数与输入相乘,再将结果加起来就是最终的预测值。说到回归,一般指的都是线性回归,当然也存在非线性回归,在此不做讨论。   假定输入数据存在矩阵x中,而回归系数存放在向量w中。那么对于给定的数据x1,预测结果可以通过y1 = x1Tw给出,那么问题就是来寻找回归系数。一个最常用的方法就是寻找误差最小的w,误差可以用预测的y值和真实的y值的差值表示,由于正负差值的差异,可以选用平方误差,也就是对预测的y值和真实的y值的平方求和,用矩阵可表示为: $$ (y - xw)T(y - xw) $$ 现在问题就转换为寻找使得上述矩阵值最小的w,对w求导为:xT(y - xw),令其为0,解得: $$ w = (xTx)-1xTy $$ 这就是采用此方法估计出来的. 案例: 糖尿病回归分析 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib

决策树是如何选择特征和分裂点?

冷暖自知 提交于 2021-01-09 10:13:48
©PaperWeekly 原创 · 作者|贲忠奇 单位|便利蜂算法工程师 研究方向|推荐算法、反作弊 缘起 在解决回归和分类问题的时候,一般会使用 Random Forest、GBDT、XGBoost、LightGBM 等算法,这类算法因为性能好,被业界广泛采用。突然想到树类型的算法都需要明白一个基本问题,树是如何选择特征和分裂点的?其根本要追溯到决策树的种类,每种是如何划分特征和分裂点,以及如何剪枝的。 决策树分为三类:ID3、C4.5、CART。提出时间却是 1984 年提出 CART,1986年提出的 ID3,1993 年提出的 C4.5。在介绍决策树之前需要了解一些信息论的知识,信息、熵、条件熵、信息增益。决策树中的 ID3 和 C4.5 与信息论息息相关。 信息论基础 信息是杂乱无章数据的一种度量方式。在分类问题中,如果待分类的事物可以划分在多个分类中,那么某个分类 的信息定义为: 其中, 是某个分类的信息; 是选择该分类的概率。 熵是信息的期望,也就是计算所有分类包含信息的期望值: 其中,H(Y) 表示分类数据集的熵。 条件熵是在特征 X 给定条件下,类别 Y 的条件概率分布的熵对特征 X 的数学期望。 其中, 表示在特征 X 下的条件熵; 表示特征下 具体特征值的条件熵; 表示 x 和 y 的联合概率分布。 在划分数据集之前之后信息发生的变化叫做信息增益

推荐算法-基于模型的协同过滤

若如初见. 提交于 2021-01-09 01:51:27
模型的建立相当于从 行为数据 中提取 特征 ,给用户和物品同时打上“标签” 有显性特征时,我们可以直接匹配做出推荐 没有时,可以根据已有的偏好数据,去发掘出隐藏的特征,这需要用到 隐语义模型(LFM) 一、隐语义模型(LFM Latent Factor Mode) 基于样本的用户偏好信息,训练一个推荐模型,然后根据实时的用户喜好信息进行预测新物品的得分,计算推荐 目标:揭示隐藏特征【 使用偏好数据训练模型,找到内在规律,再用模型来做预测(类似回归) 】 方法:矩阵分解进行降维分析【 分解之后的矩阵代表了用户和物品的隐藏特征 】 1、LFM降维方法-矩阵因子分解 想要发现K个隐类,就是找到两个矩阵P和Q,使得两个矩阵的乘积近似等于R 找到影响用户打分的隐藏因子-》 预测评分矩阵 2、模型的求解-损失函数 目标:找到最好的分解方式,让分解之后的预测评分矩阵误差最小 选择平方损失函数,并且加入正则化项,以防止过拟合 3、最小化过程的求解: 随机梯度下降算法: 模型求解算法- 交替最小二乘法 (ALS Alternating Least Square) 思想:由于两个矩阵P和Q都是未知,且通过矩阵乘法耦合再一起,为了使它们解耦, 可以先固定Q,把P当作变量,通过损失函数最小化求出P,再反过来固定P,把Q当作变量,求解出Q,如此交替执行,直到误差满足阈值条件,或者到达迭代上限。 来源:

回归算法比较【线性回归,Ridge回归,Lasso回归】

爱⌒轻易说出口 提交于 2021-01-08 08:58:29
代码实现: 1 # -*- coding: utf-8 -*- 2 """ 3 Created on Mon Jul 16 09:08:09 2018 4 5 @author: zhen 6 """ 7 8 from sklearn.linear_model import LinearRegression, Ridge, Lasso 9 import mglearn 10 from sklearn.model_selection import train_test_split 11 import matplotlib.pyplot as plt 12 import numpy as np 13 # 线性回归 14 x, y = mglearn.datasets.load_extended_boston() 15 x_train, x_test, y_train, y_test = train_test_split(x, y, random_state= 0) 16 17 linear_reg = LinearRegression() 18 lr = linear_reg.fit(x_train, y_train) 19 20 print ( " lr.coef_:{} " .format(lr.coef_)) # 斜率 21 print ( " lr.intercept_:{} "