过拟合

上海交大:我们做了一个医疗版MNIST数据集,发现常见AutoML算法没那么好用

|▌冷眼眸甩不掉的悲伤 提交于 2020-11-04 19:56:53
上海交大研究人员创建新型开放医疗图像数据集 MedMNIST,并设计「MedMNIST 分类十项全能」,旨在促进 AutoML 算法在医疗图像分析领域的研究。 机器之心报道,作者:魔王、张倩。 项目地址: https:// medmnist.github.io/ 论文地址: https:// arxiv.org/pdf/2010.1492 5v1.pdf GitHub 地址: https:// github.com/MedMNIST/Med MNIST 数据集下载地址: https://www. dropbox.com/sh/upxrsyb5 v8jxbso/AADOV0_6pC9Tb3cIACro1uUPa?dl=0 在 AI 技术的发展中,数据集发挥了重要的作用。然而,医疗数据集的创建面临着很多难题,如数据获取、数据标注等。 近期,上海交通大学的研究人员创建了医疗图像数据集 MedMNIST,共 包含 10 个预处理开放医疗图像数据集 (其数据来自多个不同的数据源,并经过预处理)。和 MNIST 数据集一样,MedMNIST 数据集 在轻量级 28 × 28 图像上执行分类任务,所含任务覆盖主要的医疗图像模态和多样化的数据规模 。根据研究人员的设计,MedMNIST 数据集具备以下特性: 教育性:该数据集中的多模态数据来自多个具备知识共享许可证的开放医疗图像数据集

Keras深度学习应用1——基于卷积神经网络(CNN)的人脸识别(上)

僤鯓⒐⒋嵵緔 提交于 2020-10-31 17:41:25
基于CNN的人脸识别(上) 代码下载 一、 CNN概述 1.1 CNN发展历程 1.2 CNN基本结构 二、 CNN算法原理 2.1 CNN基本网络结构 2.1.1输入层 2.1.2卷积层 2.1.3池化层 2.1.4全连接层 2.1.5 激励层 具体代码实现可参看 Keras深度学习应用1——基于卷积神经网络(CNN)的人脸识别(下) 代码下载 Github源码下载地址: https://github.com/Kyrie-leon/CNN-FaceRec-keras 一、 CNN概述 1.1 CNN发展历程 卷积神经网络由生物学自然视觉认知机制启发而来。1962年,诺贝尔奖得主D.H.Hubel和T.N.Wiesel,这两位学者通过对猫脑部皮层中特定的神经元进行研究时,发现了其独特的网络结构。根据这个启发有学者提出了新识别机(recognition)的概念,这也是深度学习中第一个在真正意义上实现的卷积神经网络。自此以后,科学家们开始对CNN进行了深入的研究和改进。 卷积神经网络是属于前馈神经网络下多层神经网络的一种深度机器学习方法,如下图所示,可以看出神经网络的大致分布。 图1-1 神经网络分布图 与传统的图像处理算法相比,CNN的优点为它能够有效避免在前期准备中,需要对图像进行大量的、繁琐的人工提取特征工作。这也说明,CNN能够直接从图像原始像素出发,只需通过一些预处理过程

Cs231n-assignment 2作业笔记

岁酱吖の 提交于 2020-10-31 03:18:05
assignment 2 assignment2讲解参见: https://blog.csdn.net/BigDataDigest/article/details/79286510 http://www.cnblogs.com/daihengchen/p/5765142.html 最后一个作业Q5基于Tensorflow和Pytorch,将会需要在GPU上运行。 1. softmax_loss: log_probs[range(N), y]:从log_probs中取出纵值为yi,即正确标签,横值图像数,即从log_probs中取出y所指向的正确类的概率值,得到是一个[N,]数组,加和后除以N,即为softmax_loss。 2.关于batch normalization: 参见:https://www.cnblogs.com/guoyaohua/p/8724433.html 参见:https://www.cnblogs.com/skyfsm/p/8453498.html 反向传播参见:https://zhuanlan.zhihu.com/p/26138673 https://blog.csdn.net/kevin_hee/article/details/80783698 基本流程:减去均值(mini-batch mean)、除以方差(normalize)、scale and

基于深度学习的小目标检测算法文献综述阅读

╄→尐↘猪︶ㄣ 提交于 2020-10-30 17:02:04
基于深度学习的小目标检测算法文献综述阅读 目标检测简要介绍 传统目标检测 基于深度学习的目标检测 基于候选区域的目标检测 基于回归的目标检测 小目标检测背景介绍及难点 小目标检测算法介绍 多尺度预测 反卷积和上采样 对抗网络GAN 总结与展望 最近做了一个对于小目标检测算法的文献的阅读,在搜查文献的时候,了解了目标检测的发展过程以及其中比较典型的算法,以下根据汇报的PPT从四个方法介绍小目标检测算法文献综述,分别是: 目标检测的简要介绍、小目标检测背景介绍及难点、小目标检测算法介绍、总结与展望 ,此篇博客也可作为汇报的讲稿。 目标检测简要介绍 目标检测过程简单的可以分为两个过程:定位和识别,定位是对于某一个目标位于哪一个位置而言,识别是指所定位的目标是什么,是一个分类问题。目标检测的发展也可以分为两个过程,其一是传统的目标检测,另一个是基于深度学习的目标检测。 传统目标检测 传统目标检测可以分为三个过程:获取检测窗口、手工设计感兴趣目标的特征、训练分类器。 1998年Papageorgiou发表一篇关于A general framework for object detection,提出Harr分类器,这是一个用于检测人脸的目标检测分类器,计算获取的每个检测窗口的像素总和,然后取它们的差值,利用差值作为特征进行目标分类,该方法的优点是速度快。2004年,David

深度学习调参有哪些技巧?

旧巷老猫 提交于 2020-10-29 01:28:41
点击上方 “ 小白学视觉 ”,选择加" 星标 "或“ 置顶 ” 重磅干货,第一时间送达 编辑:Amusi | 来源:知乎 https://www.zhihu.com/question/25097993 本文仅作为学术分享,如果侵权,会删文处理 深度学习调参有哪些技巧? 深度学习的效果很大程度上取决于参数调节的好坏,那么怎么才能最快最好的调到合适的参数呢?求解 作者:Jarvix https://www.zhihu.com/question/25097993/answer/153674495 只想说一句:初始化 一次惨痛的教训是用normal初始化cnn的参数,最后acc只能到70%多,仅仅改成xavier,acc可以到98%。 还有一次给word embedding初始化,最开始使用了TensorFlow中默认的initializer(即glorot_uniform_initializer,也就是大家经常说的无脑使用xavier),训练速度慢不说,结果也不好。改为uniform,训练速度飙升,结果也飙升。 所以,初始化就跟黑科技一样,用对了超参都不用调;没用对,跑出来的结果就跟模型有bug一样不忍直视。 作者:BBuf https://www.zhihu.com/question/25097993/answer/934100939 大概调了快一年CNN(2019年1月到今天)

推荐 :机器学习训练中常见的问题和挑战

守給你的承諾、 提交于 2020-10-28 13:19:38
(Datawhale干货 ; 作者:奥雷利安·杰龙) 由于我们的主要任务是选择一种学习算法,并对某些数据进行训练,所以最可能出现的两个问题不外乎是“坏算法”和“坏数据”,本文主要从坏数据出发,带大家了解目前机器学习面临的常见问题和挑战,从而更好地学习机器学习理论。 一、训练数据的数量不足 要教一个牙牙学语的小朋友什么是苹果,你只需要指着苹果说“苹果”(可能需要重复这个过程几次)就行了,然后孩子就能够识别各种颜色和形状的苹果了,简直是天才! 机器学习还没达到这一步,大部分机器学习算法需要大量的数据才能正常工作。即使是最简单的问题,很可能也需要成千上万个示例,而对于诸如图像或语音识别等复杂问题,则可能需要数百万个示例(除非你可以重用现有模型的某些部分)。 数据的不合理有效性 在2001年发表的一篇著名论文中,微软研究员Michele Banko和Eric Brill表明,给定足够的数据,截然不同的机器学习算法(包括相当简单的算法)在自然语言歧义消除这个复杂问题上注8,表现几乎完全一致(如下图所示)。 数据与算法的重要性注 正如作者所说:“这些结果表明,我们可能会重新思考如何在二者之间做权衡—将钱和时间花在算法的开发上,还是花在语料库的建设上。” 对复杂问题而言,数据比算法更重要,这一想法被Peter Norvig等人进一步推广,于2009年发表论文“The Unreasonable

【深度学习】L1正则化和L2正则化

放肆的年华 提交于 2020-10-28 09:32:42
在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况。正则化是机器学习中通过显式的控制模型复杂度来避免模型过拟合、确保泛化能力的一种有效方式。如果将模型原始的假设空间比作“天空”,那么天空飞翔的“鸟”就是模型可能收敛到的一个个最优解。在施加了模型正则化后,就好比将原假设空间(“天空”)缩小到一定的空间范围(“笼子”),这样一来,可能得到的最优解能搜索的假设空间也变得相对有限。有限空间自然对应复杂度不太高的模型,也自然对应了有限的模型表达能力。这就是“正则化有效防止模型过拟合的”一种直观解析。 L2正则化 在深度学习中,用的比较多的正则化技术是L2正则化,其形式是在原先的损失函数后边再加多一项:$\frac{1}{2}\lambda\theta_{i}^2$,那加上L2正则项的损失函数就可以表示为:$L(\theta)=L(\theta)+\lambda\sum_{i}^{n}\theta_{i}^2$,其中$\theta$就是网络层的待学习的参数,$\lambda$则控制正则项的大小,较大的取值将较大程度约束模型复杂度,反之亦然。 L2约束通常对稀疏的有尖峰的权重向量施加大的惩罚,而偏好于均匀的参数。这样的效果是鼓励神经单元利用上层的所有输入,而不是部分输入

机器学习的主要挑战

北慕城南 提交于 2020-10-28 07:29:54
简而言之,因为你的主要任务是选择一个学习算法并用一些数据进行训练,会导致错误的两件事就是“错误的算法”和“错误的数据”。我们从错误的数据开始。 训练数据量不足 要让一个蹒跚学步的孩子知道什么是苹果,需要做的就是指着一个苹果说“苹果”(可能需要重复这个过程几次)。现在这个孩子就能认识所有形状和颜色的苹果。真是个天才! 机器学习还达不到这个程度;需要大量数据,才能让多数机器学习算法正常工作。即便对于非常简单的问题,一般也需要数千的样本,对于复杂的问题,比如图像或语音识别,你可能需要数百万的样本(除非你能重复使用部分存在的模型)。 没有代表性的训练数据 为了更好地进行归纳推广,让训练数据对新数据具有代表性是非常重要的。无论你用的是基于实例学习或基于模型学习,这点都很重要。 例如,我们之前用来训练线性模型的国家集合不够具有代表性:缺少了一些国家。图 1 展示了添加这些缺失国家之后的数据。 如果你用添加部分国家数据训练线性模型,得到的是实线,旧模型(缺少一些国家)用虚线表示。可以看到,添加几个国家不仅可以显著地改变模型,它还说明如此简单的线性模型可能永远不会达到很好的性能。 使用具有代表性的训练集对于推广到新案例是非常重要的。但是做起来比说起来要难:如果样本太小,就会有样本噪声(即,会有一定概率包含没有代表性的数据),但是即使是非常大的样本也可能没有代表性,如果取样方法错误的话

写在大牛市来临之前

六眼飞鱼酱① 提交于 2020-10-27 17:57:23
很久以前想写这么一篇文章,并不是要预测所谓的牛市,而这是我投资策略的一种方法。恰好今天大A的暴涨激发了我写这篇文章的动力。大概从去年八月份开始,我的投资风格开始发生变化,到现在大概一年已经逐步成型,是时候总结一波了。 我去年八月份之前,科大讯飞50%的盈利和分众传媒50%的亏损让我感觉炒股是一件充满不确定,甚至很随机,不受自己控制的一件事情。后来受E大、螺丝钉、老罗等一些大V影响,开始投ETF。再后来,开始接受主动基金。至今一年的收益率在20%左右,算是超出预期了。下面简单说两点。 第一,设计合理的目标。目标这件事很重要,合理更重要。不同的资金量,不同的心理素质,不同的精力和时间,都应该对应不同的目标。于我而言,鉴于工作的原因,很少有精力和时间去研究和频繁操作。既然是这样,就不要奢望有太高的收益,否则就是投机。另外,鉴于个人不愿意接受太多波动,而是追求稳健增长。对比巴菲特平均年化收益率是20%,以及参考其他的指标,我设定个人的目标为年化10%。既然设定了个人的目标,就要坚定不要动摇,耐得住寂寞,不要看到别人赚大发了就心酸动摇。对于这点,我深有体验,比如同学今年买了只股票,直接翻倍了,不够半年收益100%,我偶有动摇,但是自己时间问题只能认命,不能设定太高目标。另外在15年,我有个同事买了乐视网涨了好几倍,几十万变上百万。见过了,就习惯了,这点很庆幸。 第二,我的投资策略。现在的策略

除了方文山,用TA你也能帮周杰伦写歌词了

萝らか妹 提交于 2020-10-27 11:47:57
周杰伦几乎陪伴了每个90后的青春,那如果AI写杰伦风格的歌词会写成怎样呢? 首先当然我们需要准备杰伦的歌词,这里一共收录了他的十几张专辑,近5000多行歌词。 原文档格式: 第一步数据预处理 def preprocess(data): """ 对文本中的字符进行替换,空格转换成逗号;换行变为句号。 """ data = data.replace(' ', ',') data = data.replace('\n', '。') words = jieba.lcut(data, cut_all=False) # 全模式切词 return words 处理后结果: 前10个词: ['想要', '有', '直升机', '。', '想要', '和', '你', '飞到', '宇宙', '去'] 将处理完的数据写入内存并将文本转换完数字 # 构造词典及映射 vocab = set(text) vocab_to_int = {w: idx for idx, w in enumerate(vocab)} int_to_vocab = {idx: w for idx, w in enumerate(vocab)} # 转换文本为整数 int_text = [vocab_to_int[w] for w in text] 构建神经网络 a. 构建输入层 def get_inputs(): inputs