网络模型

个性化推荐

丶灬走出姿态 提交于 2019-12-02 23:38:16
个性化推荐 本教程源代码目录在 book/recommender_system ,初次使用请您参考 Book文档使用说明 。 # 说明: 硬件环境要求: 本文可支持在CPU、GPU下运行 Docker镜像支持的CUDA/cuDNN版本: 如果使用了Docker运行Book,请注意:这里所提供的默认镜像的GPU环境为 CUDA 8/cuDNN 5,对于NVIDIA Tesla V100等要求CUDA 9的 GPU,使用该镜像可能会运行失败。 文档和脚本中代码的一致性问题: 请注意:为使本文更加易读易用,我们拆分、调整了train.py的代码并放入本文。本文中代码与train.py的运行结果一致,可直接运行 train.py 进行验证。 # 背景介绍 在网络技术不断发展和电子商务规模不断扩大的背景下,商品数量和种类快速增长,用户需要花费大量时间才能找到自己想买的商品,这就是信息超载问题。为了解决这个难题,个性化推荐系统(Recommender System)应运而生。 个性化推荐系统是信息过滤系统(Information Filtering System)的子集,它可以用在很多领域,如电影、音乐、电商和 Feed 流推荐等。个性化推荐系统通过分析、挖掘用户行为,发现用户的个性化需求与兴趣特点,将用户可能感兴趣的信息或商品推荐给用户。与搜索引擎不同

深度学习网络调参技巧

匿名 (未验证) 提交于 2019-12-02 23:36:01
1.好的实验环境是成功的一半 (b)可以输出模型的损失函数值以及训练集验证集上的准确率 (c)可以考虑设计一个子程序,可以根据给定的参数,启动训练并监调和周期性保存评估结果。再由一个主程序,分配参数以及并行启动一系列子程序。 2.画图 (b)如果训练到最后,训练集、验证集的准确率都很低,那么说明模型有可能欠拟合。需要增强模型拟合能力:1.增加网络的层数,增加节点数、减少dropout的值、减少l2正则值等等。 (c)如果训练集的准确率很高,但是测试集的准确率很低,那么模型有可能过拟合,这个时候需要提高模型的泛化能力,调节参数。 3.从粗到细分阶段调参 (a)建议参考论文,以论文中给出的参数作为初始参数 (b)如果找不到参考,只能自己尝试了,先从比较重要,对实验结果影响比较大的参数开始,同时固定其他的参数,得到一个差不多的结果之后,在这个结果的基础上,在调其他的参数。例如:学习速率一般比正则值、dropout值重要 (c)如果实在找不到一组参数可以让模型收敛,那么需要检查,是不是其他地方出问题。例如模型的实现、数据等等 4.提高速度 调参是为了寻找合适的参数,而不是产出最终模型,一般在小的数据集上合适的参数,在大的数据集上的效果也不会太差,因此可以尝试对数据进行精简,以提高速度,在有限的时间内尝试更多的参数。 (a)对训练数据集进行采样 (b)减少训练类别,例如:首先数字识别任务

数据挖掘与数据仓库――分类

匿名 (未验证) 提交于 2019-12-02 23:34:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/budding0828/article/details/90311845 分类算法 什么是分类 一些常见的概念: 训练集(Training data):用于训练模型(的参数,如神经网络的各层权重和偏置,线性回归分析的系数); 验证集(Validation data):用于调整超参数(Hyper-Parameters,如神经网络的宽度和深度、学习率等); 测试集(Test data):用于评价模型本身的有效性(准确率等) 训练误差(Training error):分类器在训练集上的误差。 泛化误差(Generalization error,out-of-sample error):分类器在未见样本(不在训练集中的样本)上的误差。 对于数据集的划分 划分法: 训练集与测试集 把样本划分成2个独立的数据集合, 如, 训练集 (2/3), 测试集(1/3)。 适用于大规模的数据样本。 交叉验证(Cross-validation) 把数据集合划分成k 个子样本; 使用k - 1 个子样本作为训练集,另一个作为测试样本―k-折交叉验证。 适用于中等规模的数据。 留一测试(Leave One Out, k = n) 适用于小规模数据。 泛化误差的偏差/方差分解、过拟合、欠拟合 以回归为例

图像分类

流过昼夜 提交于 2019-12-02 23:28:31
图像分类 本教程源代码目录在 book/image_classification ,初次使用请您参考 Book文档使用说明 。 # 说明: 1.硬件环境要求: 本文可支持在CPU、GPU下运行 2.Docker镜像支持的CUDA/cuDNN版本: 如果使用了Docker运行Book,请注意:这里所提供的默认镜像的GPU环境为 CUDA 8/cuDNN 5,对于NVIDIA Tesla V100等要求CUDA 9的 GPU,使用该镜像可能会运行失败。 3.文档和脚本中代码的一致性问题: 请注意:为使本文更加易读易用,我们拆分、调整了train.py的代码并放入本文。本文中代码与train.py的运行结果一致,可直接运行 train.py 进行验证。 # 背景介绍 图像相比文字能够提供更加生动、容易理解及更具艺术感的信息,是人们转递与交换信息的重要来源。在本教程中,我们专注于图像识别领域的一个重要问题,即图像分类。 图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。图像分类在很多领域有广泛应用,包括安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。 一般来说

R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3

夙愿已清 提交于 2019-12-02 17:05:59
1 引言 深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理。本文着重与分析目标检测领域的深度学习方法,对其中的经典模型框架进行深入分析。 目标检测可以理解为是物体识别和物体定位的综合,不仅仅要识别出物体属于哪个分类,更重要的是得到物体在图片中的具体位置。 为了完成这两个任务,目标检测模型分为两类。一类是two-stage,将物体识别和物体定位分为两个步骤,分别完成,这一类的典型代表是R-CNN, fast R-CNN, faster-RCNN家族。他们识别错误率低,漏识别率也较低,但速度较慢,不能满足实时检测场景。为了解决这一问题,另一类方式出现了,称为one-stage, 典型代表是Yolo, SSD, YoloV2, YoloV3等。他们识别速度很快,可以达到实时性要求,而且准确率也基本能达到faster R-CNN的水平。下面针对这几种模型进行详细的分析。 2 R-CNN 2014年R-CNN算法被提出,基本奠定了two-stage方式在目标检测领域的应用。它的算法结构如下图 算法步骤如下 获取输入的原始图片 使用选择性搜索算法(selective search)评估相邻图像之间的相似度,把相似度高的进行合并,并对合并后的区块打分,选出感兴趣区域的候选框,也就是子图。这一步大约需要选出2000个子图。 分别对子图使用卷积神经网络

机器学习中用来防止过拟合的方法有哪些?

房东的猫 提交于 2019-12-02 12:27:14
是什么 过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。 具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。 为什么 为什么要解决过拟合现象?这是因为我们拟合的模型一般是用来预测未知的结果(不在训练集内),过拟合虽然在训练集上效果好,但是在实际使用时(测试集)效果差。同时,在很多问题上,我们无法穷尽所有状态,不可能将所有情况都包含在训练集上。所以,必须要解决过拟合问题。 为什么在机器学习中比较常见?这是因为机器学习算法为了满足尽可能复杂的任务,其模型的拟合能力一般远远高于问题复杂度,也就是说,机器学习算法有「拟合出正确规则的前提下,进一步拟合噪声」的能力。 而传统的函数拟合问题(如机器人系统辨识),一般都是通过经验、物理、数学等推导出一个含参模型,模型复杂度确定了,只需要调整个别参数即可。模型「无多余能力」拟合噪声。 怎么样 既然过拟合这么讨厌,我们应该怎么防止过拟合呢?最近深度学习比较火,我就以神经网络为例吧: 获取更多数据 这是解决过拟合最有效的方法,只要给足够多的数据,让模型「看见」尽可能多的「例外情况」,它就会不断修正自己,从而得到更好的结果: 如何获取更多数据,可以有以下几个方法: 从数据源头获取更多数据:这个是容易想到的,例如物体分类

六种Socket I/O模型幽默讲解

江枫思渺然 提交于 2019-12-02 10:23:00
六种Socket I/O模型幽默讲解 https://www.cnblogs.com/jikebiancheng/p/6225009.html 原贴已经找不到了.. 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面就以此为例讲解Socket I/O模型。 零:阻塞模型 老陈非常想看女儿的信,以至于他什么都不做,就站在门口等。直到接到邮递员给他的信件才开心的看信回信。 这就是阻塞模型,进程阻塞在socket的接收函数上。 一:select模型 但是不吃不喝一直站门口等着总不行吧。所以他每隔10分钟就下楼检查信箱,看是否有女儿的信 。 在这种情况下,“下楼检查信箱“ 然后回到楼上耽误了老陈太多的时间,以至于老陈无法做其他工作。 select模型和老陈的这种情况非常相似:周而复始地去检查…… 如果有数据……接收/发送 ……. 服务器的几个主要动作如下: 创建监听套接字,绑定,监听; 创建工作者线程; 创建一个套接字数组,用来存放当前所有活动的客户端套接字,每accept一个连接就更新一次数组; 接受客户端的连接。 二:WSAAsyncSelect 异步选择模型 后来,老陈使用了微软公司的新式信箱。这种信箱非常先进,一旦信箱里有新的信件,盖茨就会给老陈打电话:喂,大爷,你有新的信件了!从此

retinanet网络模型结构

試著忘記壹切 提交于 2019-12-02 06:22:25
ps:现在忙了好多,没时间更新博客了.现在我就简单直观得讲下retinanet网络模型结构. 网上超多的博客的retinanet的结构只是放了如下: 这里面的(a)和(b)之间的结构还是比较直观的也能理解(最多实际过程中FPN的输出层数变化会有偏差),但是(b)和(c),(d)之间看起来比较明确,但是对于最开始作为初学者的我存在这样的想法如果一个FPN输出的一个层后面会有W*H*KA和W*H*4A两个输出,那么如图上3个层,那不是要分别有三个W*H*KA和W*H*4A共6个输出,之后求loss要写六个么? 后来一步步调试了代码再看时发现,其实只有两个输出如图中FPN的输出层数是三层时是 和 也就是将多维矩阵的结果resize到2维然后拼接起来. 来源: https://blog.csdn.net/qq_36401512/article/details/102729172

【YOLO学习笔记】之YOLO v1 论文笔记1(超详细:翻译+理解)

纵饮孤独 提交于 2019-12-02 05:54:32
目录 前言 一、Abstract(概括) 二、Introduction(介绍) 三、Unified Detection(统一检测) 1、Network Design(网络设计) 2、Training(训练) 3、Inference(推论) 4、Limitations of YOLO(YOLO的局限性) 前言 看过很多的YOLO中文版学习笔记,干货比较多,但是,有点干,对于很多想要入门的童鞋来说,看着很难理解,一些概念晦涩难懂,一些英文表述不知为何意。所以从这一篇博客开始,我尽量用比较简单的语言来讲述YOLO v1,把我个人的理解分享给大家,希望大家能够学懂YOLO,会用YOLO。 我会讲的很细,所以一篇博客来说一篇论文,内容有点多,我会分成两个博客来讲述YOLO论文还会有一部分博客作为补充,希望大家能认真学习,文中的如果哪里写的不好或者有错误,还希望大家能够不吝赐教。 先分享一波YOLO相关的文章,帮助大家更好的学习YOLO。 1.YOLO v1 论文笔记1: https://blog.csdn.net/shuiyixin/article/details/82533849 2.YOLO v1 论文笔记2: https://blog.csdn.net/shuiyixin/article/details/82560920 3.YOLO v1 代码实战 : https://blog