网络模型

深度学习常用方法

吃可爱长大的小学妹 提交于 2020-03-31 05:18:56
Deep Learning的常用模型或者方法   1、AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重。自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征。自动编码器就是一种尽可能复现输入信号的神经网络。为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表原信息的主要成分。 具体过程简单的说明如下:   1)给定无标签数据,用非监督学习学习特征:            在我们之前的神经网络中,如第一个图,我们输入的样本是有标签的,即(input, target),这样我们根据当前输出和target(label)之间的差去改变前面各层的参数,直到收敛。但现在我们只有无标签数据,也就是右边的图。那么这个误差怎么得到呢?          如上图,我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,那么我们怎么知道这个code表示的就是input呢?我们加一个decoder解码器,这时候decoder就会输出一个信息

Very Deep Convolutional Networks for Large-Scale Image Recognition—VGG论文翻译

僤鯓⒐⒋嵵緔 提交于 2020-03-30 09:08:28
Very Deep Convolutional Networks for Large-Scale Image Recognition Karen Simonyan∗ & Andrew Zisserman+ Visual Geometry Group, Department of Engineering Science, University of Oxford {karen,az}@robots.ox.ac.uk 摘要 在这项工作中,我们研究了在大规模的图像识别环境下卷积网络的深度对识别的准确率的影响。我们的主要贡献是使用非常小的(3×3)卷积滤波器架构对网络深度的不断增加并进行全面评估,这表明通过将深度增加到16-19层可以实现对现有技术配置的显著改进。这些发现是我们ImageNet Challenge 2014提交的基础,我们的团队在定位和分类过程中分别获得了第一名和第二名。我们还证明了我们的研究可以很好的推广到其他数据集上,从而在其它数据集上取得了最好的结果。我们已公开了两个性能最好的ConvNet模型,以便促进对于计算机视觉中深度视觉表示的进一步研究。 1 引言 卷积网络(ConvNets)近来在大规模图像和视频识别方面取得了巨大成功(Krizhevsky等,2012;Zeiler&Fergus,2013;Sermanet等,2014;Simonyan&Zisserman

GoogLeNet 之 Inception v1 v2 v3 v4

主宰稳场 提交于 2020-03-29 15:15:30
论文地址 Inception V1 : Going Deeper with Convolutions Inception-v2 : Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Inception-v3 : Rethinking the Inception Architecture for Computer Vision Inception-v4 : Inception-ResNet and the Impact of Residual Connections on Learning GitHub源码 Inception-v4 最原始的Google-net结构图 Inception V1 上图是论文中提出的最原始的版本,所有的卷积核都在上一层的所有输出上来做,那5×5的卷积核所需的计算量就太大了,造成了特征图厚度很大。为了避免这一现象提出的inception具有如下结构,在3x3前,5x5前,max pooling后分别加上了1x1的卷积核起到了降低特征图厚度的作用,也就是Inception v1的网络结构。 Google Inception Net首次出现在ILSVRC 2014的比赛中(和VGGNet同年),就以较大优势取得了第一名

写给大忙人看的计算机网络参考模型

孤街醉人 提交于 2020-03-26 19:31:28
3 月,跳不动了?>>> @ TOC 前言 冷月最近在学习谢仁希老师的《计算机网络》,为此将自己所学的知识点总结出来和大家分享。 计算机网络这门课的知识点非常的杂乱,每一层都有很多经典的协议,这些协议处处在平时的工作中会使用。所以一定要先把计算机网络的体系结构和参考模型搞清楚,才能够使用的过程中游刃有余,在面试中也会让面试官对你基础扎实的表现加分。 计算机网络的体系结构 在具体学习参考模型每一层的功能的时候,首先要搞清楚层次设计的典范,和每一层设计的原则。 体系结构的含义 简单来说,体系结构的含义就是各层及其协议的集合。比如OSI参考模型分为七层的设计,从数据链路层到应用层中,每一层都包含大量的协议。简单来说,计算机网络的体系结构就是包括这7层和这7层中所有的协议。 计算机网络中的协议 协议就是指规则的集合。控制两个(及两个以上)对等实体进行通讯的规则的集合。我们知道计算机网络最重要的两个功能就是数据通讯和资源共享,那么现在的网络设备多种多样,怎么样才能统一他们的通讯标准呢?这就诞生了协议的制定,所以协议就是规则的集合。 计算机网络中的接口 接口是指相邻两层间交换信息的连接点。 计算机网络中的服务 在一个层次参考模型中,下层为紧邻的上层提供的功能调用。 注意:一定是下层为上层提供服务;上次为下层提供接口。 服务可以分为三类: 面向连接服务/无面向连接服务 (例如TCP和UDP)

分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析

我是研究僧i 提交于 2020-03-26 18:01:15
分层条件关系网络在视频问答 VideoQA中的应用: CVPR2020论文解析 Hierarchical Conditional Relation Networks for Video Question Answering 论文链接: https://arxiv.org/pdf/2002.10698.pdf 摘要 视频问答( VideoQA)具有挑战性,因为它需要建模能力来提取动态视觉伪影和远距离关系,并将它们与语言概念相关联。本文介绍了一种通用的可重复使用的神经单元,称为条件关系网络( CRN),它作为构建块来构建更复杂的视频表示和推理结构。 CRN以一个张量对象数组和一个条件特征作为输入,并计算一个编码输出对象数组。模型构建成为这些可重用单元的复制、重新排列和堆叠的简单练习,用于不同的模式和上下文信息。因此,该设计支持高阶关系和多步推理。 VideoQA的最终架构是一个 CRN层次结构,其分支表示子视频或剪辑,所有分支都与上下文条件共享相同的问题。本文对知名数据集的评估取得了新的 SoTA结果,展示了在复杂领域(如 VideoQA)上构建通用推理单元的影响。 1. Introduction 回答关于视频的自然问题是认知能力的有力证明。该任务涉及在语言线索的合成语义指导下获取和操作时空视觉表征 [7, 17, 20, 30, 33, 36]。由于问题可能不受约束,

Linux网络IO模型

别来无恙 提交于 2020-03-24 13:53:25
同步和异步,阻塞和非阻塞 同步和异步 关注的是结果消息的通信机制 同步 : 同步的意思就是调用方需要主动等待结果的返回 异步 : 异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知,回调函数等。 阻塞和非阻塞 主要关注的是等待结果返回调用方的状态 阻塞 : 是指结果返回之前,当前线程被挂起,不做任何事 非阻塞 : 是指结果在返回之前,线程可以做一些其他事,不会被挂起。 两者的组合 1. 同步阻塞 : 同步阻塞基本也是编程中最常见的模型,打个比方你去商店买衣服,你去了之后发现衣服卖完了,那你就在店里面一直等,期间不做任何事 ( 包括看手机 ) ,等着商家进货,直到有货为止,这个效率很低。 2. 同步非阻塞 : 同步非阻塞在编程中可以抽象为一个轮询模式,你去了商店之后,发现衣服卖完了,这个时候不需要傻傻的等着,你可以去其他地方比如奶茶店,买杯水,但是你还是需要时不时的去商店问老板新衣服到了吗。 3. 异步阻塞 : 异步阻塞这个编程里面用的较少,有点类似你写了个线程池 ,submit 然后马上 future.get () ,这样线程其实还是挂起的。有点像你去商店买衣服,这个时候发现衣服没有了,这个时候你就给老板留给电话,说衣服到了就给我打电话,然后你就守着这个电话,一直等着他响什么事也不做。这样感觉的确有点傻,所以这个模式用得比较少。 4. 异步非阻塞 : 异步非阻塞

Linux五大网络IO模型

爷,独闯天下 提交于 2020-03-22 18:25:08
对于一个应用程序即一个操作系统进程来说,它既有内核空间(与其他进程共享),也有用户空间(进程私有),它们都是处于虚拟地址空间中。 用户进程是无法访问内核空间的,它只能访问用户空间,通过用户空间去内核空间复制数据,然后进行处理 。 1、阻塞io(同步io):   发起请求就一直等待,直到数据返回。好比你去商场试衣间,里面有人,那你就一直在门外等着。(全程阻塞)    2、非阻塞io(同步io):    不管有没有数据都返回,没有就隔一段时间再来请求,如此循环。好比你要喝水,水还没烧开,你就隔段时间去看一下饮水机,直到水烧开为止。 (复制数据时阻塞)      当用户进程发出read操作时,如果kernel(内核空间)中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲 ,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道数据还没有准备好,于是它可以再次发送read操作。一旦kernel中的数据准备好了,并且又再次收到了用户进程的system call,那么它马上就将数据拷贝到了用户内存( 此时占用CPU阻塞 ),然后返回。 3、 多路复用 io(同步io):     I/O是指网络I/O, 多路指多个TCP连接(即socket或者channel),复用指复用一个或几个线程

几种网络I/O模型

这一生的挚爱 提交于 2020-03-19 02:53:24
网络I/O模型有几种? window 下的套接字以来两种方式执行I/O操作,阻塞IO 非阻塞IO,一般默认使用的是阻塞IO 即线程会等待不会把控制权利立刻返回给程序,这就意为一个线程在某一个时候只能够去执行一个IO操作。 如果服务端想和多个客户端同时进行通信的话就要使用多线程编程,但是会增加开销,如果采用非阻塞IO程序不会等待,会立刻返回结果但是在大部分情况下返回的结果是错误的,并返回一个 WSAEWOULDBLOCK 的错误,所以程序员要不断的检测函数返回的代码以判断一个套接字何时可供读写。 为了避免麻烦 winsock 提供了不同的套接字模型对IO进行管理 select (),WSAAsyncSelect(),WSAEventSelect(),Overlapped( )。 Windows 操作系统提供了选择模型、异步选择模型、事件选择模型、重叠 I/O 模型和完成端口 共五种 I/O 模型。每一种模型均适用于一种特定的应用场景。编程人员应综合考虑到程序的扩展性和可移植性等因素,做出自己的选择 。 (1)选择模式(Select) 选择模型是 Winsock 中最常见的 I/O 模型。之所以称其为 “select 模型 ” ,是由于它的 “ 中心思想 ” 便是利用 select 函数,实现对 I/O 的管理!最初设计该模型时,主要面向的是某些使用 Unix 操作系统的计算机

三.Windows I/O模型之事件选择(WSAEventSelect )模型

隐身守侯 提交于 2020-03-19 02:52:28
1.事件选择模型:和异步选择模型类似的是,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。对于异步选择模型采用的网络事件来说,它们均可原封不动地移植到事件选择模型。事件选择模型和异步选择模型最主要的差别在于网络事件会投递至一个事件对象句柄,而非投递至一个窗口例程。 2.创建事件对象:事件选择模型要求应用程序针对打算使用事件选择模型的每一个套接字,首先创建一个事件对象。创建方法是调用WSACreateEvent函数,它的定义如下:WSAEVENT WSACreateEvent(void); 3.绑定事件对象与套接字: int WSAEventSelect( SOCKET s, WSAEvent hEventObject, long lNetworkEvents//网络事件,就是异步选择中的网络事件,用法完全相同 ); 对于事件来说,他有两种类型,自动事件和人工事件。有两种状态,未触发状态和触发状态。使用WSACreateEvent函数创建的事件默认为人工事件且处于未触发状态。随着网络事件触发了与一个套接字关联在一起的事件对象,工作状态便会从未触发状态转变成触发状态。由于事件对象是在一种人工重设模式中创建的,所以在完成了一个I/O请求的处理之后,我们的应用程序需要负责将工作 状态触发状态更改未触发状态。 4.重置事件为未触发状态: BOOL

Focal Loss for Dense Object Detection - 1 - 论文学习

偶尔善良 提交于 2020-03-17 13:04:18
Abstract 迄今为止,精确度最高的目标探测器是基于R-CNN推广的两阶段方法,其中分类器应用于稀疏的候选对象位置集合。相比之下,对可能的目标位置进行常规、密集采样的单级探测器有可能更快、更简单,但迄今仍落后于两阶段探测器的精度。在这篇文章中,我们研究为什么会这样。我们发现,在高密度探测器的训练过程中所遇到的极度前、后级不平衡是其主要原因。我们建议通过重塑标准的交叉熵损失来解决这类不平衡,这样它就可以降低分类良好的例子的损失。我们的新Focal loss损失集中在一组稀疏的困难例子的训练,并防止训练期间大量的容易检测的负样本压倒探测器。为了评估损失的有效性,我们设计并训练了一个简单的高密度探测器,我们称之为RetinaNet。我们的结果表明,当使用Focal loss训练时,RetinaNet能够达到以前单阶段探测器的速度,同时超过所有现有的最先进的两阶段探测器的精度。代码是:https://github.com/facebookresearch/Detectron. 1. Introduction 目前最先进的目标探测器是基于一个两阶段,proposal驱动的机制。正如R-CNN框架[11]所推广的那样,第一阶段生成一组稀疏的候选对象位置,第二阶段使用卷积神经网络将每个候选位置分类为前景类或背景类。通过一系列的改进[10,28,20,14]