精华内容
下载资源
问答
  • Linux是实时系统还是分时操作系统?

    千次阅读 2021-06-18 00:12:05
     分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分给各联机作业使用。 分时操作系统:是一种联机的用户交互式的操作系统。一般采用时间片轮转的方式使一台计算机为个终端服务。对每个...

    关注+星标公众,不错过精彩内容

    编排 | strongerHuang

    微信公众号 | 嵌入式专栏

    我们平时分享的µC/OS、FreeRTOS、RT-Thread、ThreadX这些都是实时操作系统(RTOS),那么有读者问:什么是分时操作系统,Linux属于实时操作系统吗?

    实时操作系统(RTOS)

    RTOS,英文全称Real Time Operating System,即实时操作系统。

    1.实时操作系统定义
    实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。

    因而,提供及时响应和高可靠性是其主要特点。

    实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的。

    软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。

    实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。

    在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。

    一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。

    2.实时操作系统的特征
    1)多任务;
    2)有线程优先级
    3)多种中断级别

    小的嵌入式操作系统经常需要实时操作系统,内核要满足实时操作系统的要求。

    3.实时操作系统的相关概念
    (1)基本概念
    代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入;

    资源:任何为任务所占用的实体;

    共享资源:可以被一个以上任务使用的资源;

    任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;


    任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行;

    内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核于可剥夺型内核;

    调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法;

    (2)关于优先级的问题
    任务优先级:分为优先级不可改变的静态优先级和优先级可改变的动态优先级;

    优先级反转:优先级反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先级低的任务先运行,优先级高的任务后运行。解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。

    (3)互斥
    虽然共享数据区简化了任务之间的信息交换,但是必须保证每个任务在处理共享共享数据时的排他性。使之满足互斥条件的一般方法有:关中断,使用测试并置位指令(TAS),禁止做任务切换,利用信号量。


    因为采用实时操作系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,因而衡量嵌入式实时操作系统的最主要、最具有代表性的性能指标参数无疑应该是中断响应时间了。中断响应时间通常被定义为:

    中断响应时间=中断延迟时间+保存CPU状态的时间+该内核的ISR进入函数的执行时间。


    中断延迟时间=MAX(关中断的最长时间,最长指令时间) + 开始执行ISR的第一条指令的时间。

    分时操作系统(TSOS)

    TSOS,英文全称Time-sharing Operating System,即分时操作系统。

    使一台计算机同时为几个、几十个甚至几百个用户服务的一种操作系统叫分时操作系统。把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。

    由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率。例如UNIX系统就采用剥夺式动态优先的CPU调度,有力地支持分时操作。

    产生分时系统是为了满足用户需求所形成的一种新型 OS 。它与多道批处理系统之间,有着截然不同的性能差别。用户的需求具体表现在以下几个方面: 人—机交互 共享主机 便于用户上机 

    1.分时系统的基本思想
    时间片:是把计算机的系统资源(尤其是 CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。 

    分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分给各联机作业使用。 

    分时操作系统:是一种联机的多用户交互式的操作系统。一般采用时间片轮转的方式使一台计算机为多个终端服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。 

    设计目标:对用户的请求及时响应,并在可能条件下尽量提高系统资源的利用率。 

    适合办公自动化、教学及事务处理等要求人机会话的场合。 

    2.工作方式
    一台主机连接了若干个终端;每个终端有一个用户在使用;交互式地向系统提出命令请求;系统接受每个用户的命令;采用时间片轮转方式处理服务请求;并通过交互方式在终端上向用户显示结果;用户根据上步结果发出下道命令 

    分时系统实现中的关键问题:及时接收。及时处理。 

    3.特征 
    交互性:用户与系统进行人机对话。 
    多路性:多用户同时在各自终端上使用同一CPU。 
    独立性:用户可彼此独立操作,互不干扰,互不混淆。 
    及时性:用户在短时间内可得到系统的及时回答。 
    影响响应时间的因素:终端数目多少、时间片的大小、信息交换量、信息交换速度。

    区别

    RTOS和TSOS各有各的特点,RTOS一般用于相对低速的MCU,比如运动控制类、按键输入等动作要求实时处理的系统,一般要求ms级,甚至us级响应。

    分时:现在流行的PC,服务器都是采用这种运行模式,即把CPU的运行分成若干时间片分别处理不同的运算请求。


    实时:一般用于单片机上,比如电梯的上下控制中,对于按键等动作要求进行实时处理。

    最后

    分通过以上分析,可以明确linux是分时系统,不过可以改成实时的如:UCOS就是linux修改而来的实时系统,至于他们的区别,可以引用百度中的类似回答:

    分时系统是一个系统可以同时为两个或两个以上的账户服务!


    实时系统是能立即对指令做出反应的操作系统!微软的常见系统不能吧!而且还死机!战斗机中的操作系统就是实时的系统,想想如果别人打仗时战斗机中的电脑反应的是飞行员上一条指令或死机了,谁还敢开这架飞机呢?

    参考来源:

    https://www.cnblogs.com/xiawen/p/3317302.html

    免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

    ------------ END ------------

    后台回复『Linux』『RTOS』阅读更多相关文章。

    欢迎关注我的公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

    欢迎关注我的视频号:

    点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

    展开全文
  • 常见10自然语言处理技术

    千次阅读 2021-09-02 08:57:33
    自然语言处理(NLP)是一种艺术与科学的结合,旨在从文本数据中提取信息。在的帮助下,我们从文本中提炼出适用于计算机算法的信息。从自动翻译、文本分类到情绪分析,自然语言处理成为所有数据科学家的必备技能之...

    原文

    该作者也是翻译的外文,英文原文链接

    引言

    自然语言处理(NLP)是一种艺术与科学的结合,旨在从文本数据中提取信息。在它的帮助下,我们从文本中提炼出适用于计算机算法的信息。从自动翻译、文本分类到情绪分析,自然语言处理成为所有数据科学家的必备技能之一。

    常见的10个NLP任务如下:

    1. 词干提取
    2. 词形还原
    3. 词向量化
    4. 词性标注
    5. 命名实体消岐
    6. 命名实体识别
    7. 情感分析
    8. 文本语义相似分析
    9. 语种辨识
    10. 文本总结

    以下将详细展开:

    1.词干提取

    什么是词干提取?词干提取是将词语去除变化或衍生形式,转换为词干或原型形式的过程。词干提取的目标是将相关词语还原为同样的词干,哪怕词干并非词典的词目。例如,英文中:

    1. beautiful和beautifully的词干同为beauti
    2. Good,better和best 的词干分别为good,better和best。

    相关论文:Martin Porter的波特词干算法原文

    相关算法:Porter2词干算法的Python实现

    程序实现:Porter2算法做词干提取的代码:

    #!pip install stemming
    from stemming.porter2 import stem
    stem("casually")
    

    2. 词形还原

    什么是词形还原? 词形还原是将一组词语还原为词源或词典的词目形式的过程。还原过程考虑到了POS问题,即词语在句中的语义,词语对相邻语句的语义等。例如,英语中:

    1. beautiful和beautifully被分别还原为beautiful和beautifully。
    2. good, better和best被分别还原为good, good和good

    相关论文1: 这篇文章详细讨论了词形还原的不同方法。想要了解传统词形还原的工作原理必读。

    相关论文2: 这篇论文非常出色,讨论了运用深度学习对变化丰富的语种做词形还原时会遇到的问题。

    数据集: 这里是Treebank-3数据集的链接,你可以使用它创建一个自己的词形还原工具。

    程序实现:下面给出了在spacy上的英语词形还原代码

    #!pip install spacy
    #python -m spacy download en
    import spacy
    nlp=spacy.load("en")
    doc="good better best"
    for token in nlp(doc):
        print(token,token.lemma_)
    

    3. 词向量化

    什么是词向量化?词向量化是用一组实数构成的向量代表自然语言的叫法。这种技术非常实用,因为电脑无法处理自然语言。词向量化可以捕捉到自然语言和实数间的本质关系。通过词向量化,一个词语或者一段短语可以用一个定维的向量表示,例如向量的长度可以为100。

    例如:Man这个词语可以用一个五维向量表示。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-brz0VdBI-1630544238308)(https://github.com/smilelight/images/raw/master/%E5%B8%B8%E8%A7%8110%E7%A7%8D%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF/word-vector.png)]

    这里的每个数字代表了词语在某个特定方向上的量级。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kNpXM4ch-1630544238311)(https://github.com/smilelight/images/raw/master/%E5%B8%B8%E8%A7%8110%E7%A7%8D%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF/Word-Vectors.png)]

    相关博文:这篇文章详细解释了词向量化

    相关论文:这篇论文解释了词向量化的细节。深入理解词向量化必读。

    相关工具:这是个基于浏览器的词向量可视化工具。

    预训练词向量:这里有一份facebook的预训练词向量列表,包含294种语言。

    这里可以下载google news的预训练词向量。

    #!pip install gensim
    from gensim.models.keyedvectors import KeyedVectors
    word_vectors=KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin',binary=True)
    word_vectors['human']
    

    程序实现:这段代码可以用gensim训练你自己的词向量

    sentence=[['first','sentence'],['second','sentence']]
    model = gensim.models.Word2Vec(sentence, min_count=1,size=300,workers=4)
    

    4.词性标注

    什么事词性标注?简单来说,词性标注是对句子中的词语标注为名字、动词、形容词、副词等的过程。例如,对句子“Ashok killed the snake with a stick”,词性标注会识别:

    • Ashok 代词
    • killed 动词
    • the 限定词
    • snake 名词
    • with 连词
    • a 限定词
    • stick 名词
    • . 标点

    论文1:choi aptly的这篇《The Last Gist to theState-of-the-Art 》介绍了一种叫动态特征归纳的新方法。这是目前词性标注最先进的方法。

    论文2:这篇文章介绍了通过隐马尔科夫模型做无监督词性标注学习的方法。

    程序实现:这段代码可以在spacy上做词性标注

    #!pip install spacy
    #!python -m spacy download en 
    nlp=spacy.load('en')
    sentence="Ashok killed the snake with a stick"
    for token in nlp(sentence):
       print(token,token.pos_)
    

    5. 命名实体消歧

    什么是命名实体消岐?命名实体消岐是对句子中的提到的实体识别的过程。例如,对句子“Apple earned a revenue of 200 Billion USD in 2016”,命名实体消岐会推断出句子中的Apple是苹果公司而不是指一种水果。一般来说,命名实体要求有一个实体知识库,能够将句子中提到的实体和知识库联系起来。

    论文1:Huang的这篇论文运用了基于深度神经网络和知识库的深层语义关联模型,在命名实体消岐上达到了领先水平。

    论文2:Ganea and Hofmann的这篇文章运用了局部神经关注模型和词向量化,没有人为设置特征。

    6. 命名实体识别

    体识别是识别一个句子中有特定意义的实体并将其区分为人名,机构名,日期,地名,时间等类别的任务。例如,一个NER会将一个这样的句子:

    “Ram of Apple Inc. travelled to Sydney on 5th October 2017”

    返回如下的结果:

    Ram
    of
    Apple ORG
    Inc. ORG
    travelled
    to
    Sydney GPE
    on
    5th DATE
    October DATE
    2017 DATE

    这里,ORG代表机构组织名,GPE代表地名。

    然而,当NER被用在不同于该NER被训练的数据领域时,即使是最先进的NER也往往表现不佳。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IGZYUxW2-1630544238314)(https://github.com/smilelight/images/raw/master/%E5%B8%B8%E8%A7%8110%E7%A7%8D%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF/ner.png)]

    论文:这篇优秀的论文使用双向LSTM(长短期记忆网络)神经网络结合监督学习和非监督学习方法,在4种语言领域实现了命名实体识别的最新成果。

    程序实现:以下使用spacy执行命名实体识别。

    import spacy
    nlp=spacy.load('en')sentence="Ram of Apple Inc. travelled to Sydney on 5th October 2017"
    for token in nlp(sentence):
       print(token, token.ent_type_)
    

    7. 情感分析

    什么是情感分析?情感分析是一种广泛的主观分析,它使用自然语言处理技术来识别客户评论的语义情感,语句表达的情绪正负面以及通过语音分析或书面文字判断其表达的情感等等。例如:

    “我不喜欢巧克力冰淇淋”—是对该冰淇淋的负面评价。

    “我并不讨厌巧克力冰激凌”—可以被认为是一种中性的评价。

    从使用LSTMs和Word嵌入来计算一个句子中的正负词数开始,有很多方法都可以用来进行情感分析。

    博文1:本文重点对电影推文进行情感分析。

    博文2:本文重点对印度金奈洪水期间的推文进行情感分析。

    论文1:本文采用朴素贝叶斯的监督学习方法对IMDB评论进行分类。

    论文2:本文利用LDA的无监督学习方法来识别用户生成评论的观点和情感。本文在解决注释评论短缺的问题上表现突出。

    资料库:这是一个很好的包含相关研究论文和各种语言情感分析程序实现的资料库。

    数据集1:多域情感数据集版本2.0

    数据集2:Twitter情感分析数据集

    竞赛:一个非常好的比赛,你可以检查你的模型在烂番茄电影评论的情感分析任务中的表现。

    8. 语义文本相似度

    什么是语义文本相似度分析?语义文本相似度分析是对两段文本的意义和本质之间的相似度进行分析的过程。注意,相似性与相关性是不同的。

    例如:

    汽车和公共汽车是相似的,但是汽车和燃料是相关的。

    论文1:本文详细介绍了文本相似度测量的不同方法。是一篇可以一站式了解目前所有方法的必读文章。

    论文2:本文介绍了用CNN神经网络去比对两个短文本。

    论文3:本文利用Tree-LSTMs方法得到了文本的语义相关和语义分类的最新成果。

    9. 语言识别

    什么是语言识别?语言识别指的是将不同语言的文本区分出来。其利用语言的统计和语法属性来执行此任务。语言识别也可以被认为是文本分类的特殊情况。

    博文:在这篇由fastText撰写的博文中介绍了一种新的工具,其可以在1MB的内存使用情况下识别170种语言。

    论文1:本文讨论了285种语言的7种语言识别方法。

    论文2:本文描述了如何使用深度神经网络来实现自动语言识别的最新成果。

    10. 文本摘要

    什么是文本摘要?文本摘要是通过识别文本的重点并使用这些要点创建摘要来缩短文本的过程。文本摘要的目的是在不改变文本含义的前提下最大限度地缩短文本。

    论文1:本文描述了基于神经注意模型的抽象语句梗概方法。

    论文2:本文描述了使用序列到序列的RNN在文本摘要中达到的最新结果。

    资料库:Google Brain团队的这个资料库拥有使用为文本摘要定制的序列到序列模型的代码。该模型在Gigaword数据集上进行训练。

    应用程序:Reddit的autotldr机器人使用文本摘要来梗概从文章到帖子的各种评论。这个功能在Reddit用户中非常有名。

    程序实现:以下是如何用gensim包快速实现文本摘要。

    from gensim.summarization import summarize
    sentence = "Automatic summarization is the process of shortening a text document with software, in order to create a summary with the major points of the original document. Technologies that can make a coherent summary take into account variables such as length, writing style and syntax.Automatic data summarization is part of machine learning and data mining. The main idea of summarization is to find a subset of data which contains the information of the entire set. Such techniques are widely used in industry today. Search engines are an example; others include summarization of documents, image collections and videos. Document summarization tries to create a representative summary or abstract of the entire document, by finding the most informative sentences, while in image summarization the system finds the most representative and important (i.e. salient) images. For surveillance videos, one might want to extract the important events from the uneventful context.There are two general approaches to automatic summarization: extraction and abstraction. Extractive methods work by selecting a subset of existing words, phrases, or sentences in the original text to form the summary. In contrast, abstractive methods build an internal semantic representation and then use natural language generation techniques to create a summary that is closer to what a human might express. Such a summary might include verbal innovations. Research to date has focused primarily on extractive methods, which are appropriate for image collection summarization and video summarization."
    summarize(sentence)
    

    结束语

    以上所有是最流行的NLP任务以及相关的博客、研究论文、资料库、应用等资源。

    展开全文
  • 深度学习中的多任务学习介绍

    千次阅读 2021-03-27 15:11:22
    在2017年有篇关于在深度神经网络中多任务学习概述的论文:《An Overview of Multi-Task Learning in Deep Neural Networks》,论文链接为:https://arxiv.org/pdf/1706.05098.pdf,介绍了在深度学习中多任务学习...

    在2017年有一篇关于在深度神经网络中多任务学习概述的论文:《An Overview of Multi-Task Learning in Deep Neural Networks》,论文链接为:https://arxiv.org/pdf/1706.05098.pdf,它介绍了在深度学习中多任务学习(Multi-task Learning, MTL)的两种最常用的方法。以下截图均来自此论文。

    传统的机器学习方法主要是基于单任务的学习(Single-task Learning)模式进行学习,对于复杂的学习任务也可将其分解为多个独立的单任务进行学习,然后对学习得到的解决进行组合,得到最终的结果。

    多任务学习的关键就在于寻找任务之间的关系,如果任务之间的关系衡量恰当,那么不同任务之间就能相互提供额外的有用信息,利用这些额外信息,可以训练出表现更好、更鲁棒的模型。反之,如果关系衡量不恰当,不仅不会引入额外的信息,反而会给任务本身引来噪声,模型学习效果不升反降。当单个任务的训练数据集不充分的时候,此时多任务学习的效果能够有比较明显的提升,这主要是因为单个任务无法通过自身的训练数据集得到关于数据分布的足够信息。如果有多个任务联合学习,那么这些任务将能从相关联的任务中得到额外的信息,因此学习效果将有显著的提升。目前,多任务学习已经在多个领域得到广泛的应用,比如人脸属性的相关研究、人类疾病的研究、无人驾驶的研究等。

    多任务学习是机器学习的一个重要组成部分,是迁移学习的一种。多任务学习作为迁移学习的一个分支有着其自己独特的学习背景和应用。在给定几个相关联任务的输入数据和输出数据的情况下,多任务学习能够发挥任务之问的关系,同时学习多个模型。与单任务学习相比,主要有以下几个方面的优势:A.多任务学习通过挖掘任务之间的关系,能够得到额外的有用信息,大部分情况下都要比单任务学习的效果要好。在有标签样本比较少的情况下,单任务学习模型往往不能够学习得到足够的信息,表现较差,多任务学习能克服当前任务样本较少的缺点,从其他任务里获取有用信息,学习得到效果更好、更鲁棒的机器学习模型。B.多任务学习有更好的模型泛化能力,通过同时学习多个相关的任务,得到的共享模型能够直接应用到将来的某个相关联的任务上。相比于单任务学习,上面的优点使得多任务学习在很多情况下都是更好的选择。现实生活中有很多适合多任务学习的场景,以下举例说明(1).自然语言处理相关的研究,比如把词性标注、句子句法成分划分、命名实体识别、语义角色标注等任务放在一起研究。(2).人脸识别中,人脸的属性的研究、人脸识别、人脸年龄预测等任务也可以通过多任务学习进行解决。(3).图像分类,不同光照下、拍摄角度、拍摄背景下等分类任务的研究,也可以在多任务研究的框架下完成。除了上述举例的三种不同应用之外,现实生活中还有很多类似的多任务学习的例子。

    深度学习中的两种MTL方法:

    (1).基于硬约束的多任务学习方法,如下图所示:表示的是不同任务通过分享一些底部的层学习一些共有的低层次的特征,为了保证任务的独特性,每个任务在顶部拥有自己独特的层学习高层次的特征。这种方法底层共享的参数是完全相同的。

    多个任务之间共享网络的同几层隐藏层,只不过在网络的靠近输出层的网络开始分叉去做不同的任务。不同任务通过共享网络底部的几层隐藏层来学习一些共有的抽象层次低的特征,这种方法的底层共享的参数是完全相同的。同时针对各个任务的特点,各个任务都设计各自的任务特有层来学习抽象层次更高的特征。所有任务在保留任务特有的输出层的同时可以共享一些相关的隐藏层。这种多任务学习的方法通过平均噪声能有效地降低过拟合的风险。而且相关的任务越多,目标任务的过拟合风险越小。

    (2).基于软约束的多任务学习方法,如下图所示:该方法不要求底部的参数完全一样,而是对不同任务底部的参数进行正则化。相对于硬参数约束的多任务深度学习模型,软约束的多任务学习模型的约束更加宽松,当任务关系不是特别紧密的时候,有可能学习得到更好的结果。多任务深度学习模型需要同时学习一个适合多个任务的网络构架,一般来说模型具有更好的鲁棒性,不容易过拟合。

    软约束的多任务学习方法是隐藏层参数软共享,不同的任务使用不同的网络,但是不同任务的网络参数,采用正则化作为约束,与硬约束的多任务学习不同的是,底层的参数不一定完全一致,而是鼓励参数相似化。

    为什么多任务学习有效:假定有两个相关的任务A和B,它们依赖共享隐藏层。

    (1).隐式数据扩充(Implicit data augmentation):MTL有效地增加了我们用于训练模型的样本量。由于所有任务或多或少存在一些噪音,因此在针对某个任务A训练模型时,我们的目标是得到任务A的一个好的表示,忽略与数据相关的噪声。由于不同的任务具有不同的噪声模式,因此同时学习两个任务的模型可以得到一个更为泛化的表示。如果仅学习任务A要承担对任务A过拟合的风险,然而同时学习任务A和任务B则可以对噪声模式进行平均,可以使模型获得更好的表示。

    (2).注意力机制(Attention focusing):如果一个任务非常嘈杂或数据量有限且维数很高,则模型很难区分相关和不相关特征。MTL可以帮助模型将注意力集中在重要的特征上,因为其他任务将为这些特征的相关性或不相关性提供更多证据。

    (3).窃听(Eavesdropping):一些特征G很容易被任务B学习,但是对于其他任务A则很难学习。这可能是因为A以更复杂的方式与特征进行交互,或者是因为其他特征阻碍了模型学习G的能力。通过MTL,我们可以允许模型进行”窃听”,即通过任务B学习G。最简单的方法是通过”提示”,即直接训练模型来预测最重要的特征。

    (4).表征偏置(Representation bias):MTL biases the model to prefer representations that other tasks also prefer。这也将有助于该模型将来泛化到新任务,因为在足够多的训练任务上表现良好的假设空间,只要它们来自相同环境,对于学习新任务也将表现良好。

    (5).正则化(Regularization):MTL通过引入归纳偏置(inductive bias)作为正则化项。因此,它降低了过拟合的风险以及模型的Rademacher复杂度,即拟合随机噪声的能力。

    深度学习中的MTL

    (1). Deep Relation Networks:如下图所示:计算机视觉中,MTL通常共享卷积层,同时用全连接层学习特定的任务。通过对任务层设定先验,使模型学习任务间的关系。

    (2). Fully-Adaptive Feature Sharing:如下图所示:一种自下而上的方法,从瘦网络开始,贪心地动态加宽网络。贪心方法可能无法做到全局最优。

    (3). Cross-stitch Networks:如下图所示:用软约束的方式将两个独立的网络连接起来,然后使用”cross-stitch units”允许模型通过线性组合学习前一层的输出。

    (4). Low supervision:主要应用在自然语言处理(Natural Language Processing, NLP)中,如词性标注、命名体识别等。

    (5). A Joint Many-Task Model:如下图所示:由多个NLP任务组成分层结构,然后将其作为多任务学习的联合模型。

    (6). Weighting losses with uncertainty:如下图所示:不考虑学习共享结构,采用正交方法考虑每个任务的不确定性。通过基于具有任务相关不确定性的高斯似然性最大化得出多任务损失函数(loss function),来调整成本函数(cost function)中每个任务的相对权重。

    (7). Tensor factorisation for MTL:对模型中的每层参数使用张量分解分为共享参数和特定于任务的参数。

    (8). Sluice Networks:如下图所示:该模型概况了基于深度学习的MTL方法:hard parameter sharing + cross-stitch networks + block-sparse regularization + task hierarchy(NLP)

    在迁移学习中,你的步骤是串行的,你从任务A中学到的,然后迁移到任务B。在多任务学习中,你是开始学习试图让一个神经网络同时做几件事情,然后希望这里的每个任务都能帮到其它所有任务。例如,在研发无人驾驶车辆,如下图,那么你的无人驾驶车可能需要同时检测不同的物体,比如检测行人、车辆、停车标志、交通灯等其它物体,输入图像x,输出将不是一个标签,而是四个标签,因为四个物体可能同时出现在一张图里。那么你现在可以做的是训练一个神经网络来预测这些y值。另外你也可以训练四个不同的神经网络,而不是训练一个神经网络做四件事,但神经网络一些早期特征在识别不同物体时都会用到,你会发现,训练一个神经网络做四件事会比训练四个完全独立的神经网络分别做四件事性能会更好,这就是多任务学习的力量。

    多任务学习什么时候有意义:第一,如果你训练的一组任务,可以共用低层次特征;第二,每个任务的数据量很接近;第三,可以训练一个足够大的神经网络同时可以做好所有的工作。多任务学习的替代方法是为每个任务训练一个单独的神经网络。多任务学习会降低性能的唯一情况就是你的神经网络还不够大。

    注:以上所有的内容的整理均来自网络,主要参考:

    1. https://arxiv.org/pdf/1706.05098.pdf

    2. 《多任务学习的研究》,2018,博论,中国科学技术大学

    GitHubhttps://github.com/fengbingchun/NN_Test

    展开全文
  • 点上方人工智能算法与Python大数据获取更干货在右上方···设为星标★,第时间获取资源仅做学术分享,如有侵权,联系删除转载于:知乎Anticoderhttps://zhuanl...

    点上方人工智能算法与Python大数据获取更多干货

    在右上方 ··· 设为星标 ★,第一时间获取资源

    仅做学术分享,如有侵权,联系删除

    转载于:知乎Anticoder

    https://zhuanlan.zhihu.com/p/59413549

    背景:只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜在信息,通过进行一定程度的共享不同任务之间的参数,可能会使原任务泛化更好。广义的讲,只要loss有多个就算MTL,一些别名(joint learning,learning to learn,learning with auxiliary task)

    目标:通过权衡主任务与辅助的相关任务中的训练信息来提升模型的泛化性与表现。从机器学习的视角来看,MTL可以看作一种inductive transfer(先验知识),通过提供inductive bias(某种对模型的先验假设)来提升模型效果。比如,使用L1正则,我们对模型的假设模型偏向于sparse solution(参数要少)。在MTL中,这种先验是通过auxiliary task来提供,更灵活,告诉模型偏向一些其他任务,最终导致模型会泛化得更好。

    MTL Methods for DNN

    • hard parameter sharing (此方法已经有26岁了<1993>)

    在所有任务中共享一些参数(一般底层),在特定任务层(顶层)使用自己独有参数。这种情况,共享参数得过拟合几率比较低(相对非共享参数),过拟合的几率是O(#tasks). [1]

    • soft parameter sharing

    每个任务有自己的参数,最后通过对不同任务的参数之间的差异加约束,表达相似性。比如可以使用L2, trace norm等。

    优点及使用场景

    1. implicit data augmentation: 每个任务多少都有样本噪声,不同的任务可能噪声不同,最终多个任务学习会抵消一部分噪声(类似bagging的思想,不同任务噪声存在于各个方向,最终平均就会趋于零)

    2. 一些噪声很大的任务,或者训练样本不足维度高,模型可能无法有效学习,甚至无法无法学习到相关特征

    3. 某些特征可能在主任务不好学习(比如只存在很高阶的相关性,或被其他因素抑制),但在辅助任务上好学习。可以通过辅助任务来学习这些特征,方法比如hints(预测重要特征)[2]

    4. 通过学习足够大的假设空间,在未来某些新任务中可以有较好的表现(解决冷启动),前提是这些任务都是同源的。

    5. 作为一种正则方式,约束模型。所谓的inductive bias。缓解过拟合,降低模型的Rademacher complexity(拟合噪声的能力,用于衡量模型的能力)

    传统方法中的MTL (linear model, kernel methods, Bayesian algo),其主要关注两点:

    1. 通过norm regularization使模型在任务之间具有稀疏性

    2. 对多任务之间关系进行建模

    1.1 Block-sparse regularization (mixed l1/lq norm)

    目标:强制模型只考虑部分特征,前提为不同任务之间必须相关。

    假设K个任务有相同的特征,和相同数量的模型参数。形成一个矩阵A(DxK),D为参数维度,K为任务数,目标为这些任务只使用一些特征,也就是A的某些行也0。(最简单的想法就是使其变为一个low rank的矩阵;或者使用L1正则,因为L1可以约束某些特征到0,如果我们想使某些行为0,则只要先对行聚合操作,再对聚合后的结果使用L1即可,具体可以参考文章 [3]。通常,使用lq norm 先对行(每个特征)进行约束,之后使用L1 norm再约束,就是mixer l1/lq norm

    发展:

    1. group lasso [4] : l1/l2 norm,通过trace norm 解决l1/l2 norm非凸;之后有人对此提出了upper bound for using group lasso in MTL [5]

    2. 当多个任务公共特征不多时,l1/lq norm可能没有elment-wise norm效果好。有人提出了结合这两种方法,分解参数矩阵为A = S + B,对S使用lassso,对B使用l1/l_infinite。[6]

    3. distributed version of group-sparse reguarization [7]

    2.1 regularization way for learning task relationship

    当任务之间相关性较弱,使用上述方法可能导致negative transfer(也就是负向效果)。在此情景下,我们希望增加的先验知识是,某些任务之间是相关的,但是某些任务之间是相关性较差。可以通过引入任务clustering来约束模型。可以通过penalize 不同任务的parameter vectors 和他们的方差。限制不同模型趋向于不同的各自 cluster mean vector。

    类似的,比如SVM中引入bayesian方法,事先指定一些cluster,目标在最大化margin的同时使不同任务趋向于各自的cluster中心;[8]

    指定了cluster,可以通过聚类方法(类内,类间,自己的复杂度)对模型进行约束

    有些场景下,任务可能不会出现在同一个cluster,但存在潜在的相似结构,比如group-lasso在树结构和图结构的任务。

    2.2 other methods for learning task relationship

    1. KNN methods for task clustering. [9]

    2. semi-supervised learning for learning common structures of some related tasks. [10]

    3. 多任务BNN,通过先验控制多任务的相似,模型复杂度大,可以使用sparse approximation贪心选择样本 [11];高斯过程中通过不同任务之间使用相同的covariance matrix和相同的先验(进而也降低复杂度)[12]

    4. 对每个task-specific layers 使用高斯先验,可以使用一个cluster的混合分布(事先定好)来促使不同任务的相似 [13]

    5. 进而,通过一个dirichlet process采样分布,使模型任务之间的相似性和cluster的数目。相同cluster的任务使用同一个模型 [14]

    6. hierarchical Bayesian model,学习一个潜在的任务结构 [15]

    7. MTL extension of the regularized Perceptron,encodes task relatedness in a matrix. 之后可以通过不同正则对其限制(比如rank)[16]

    8. 不同tasks属于不同的独立cluster,每个cluster存在于一个低维空间,每个cluster的任务共用同一个模型。通过交替迭代学习不同cluster的分配权重和每个cluster的模型权重。假定任务之间的绝对独立可能不太好 [17]

    9. 假设两个不同cluster的两个任务之间存在重叠,存在一部分的latent basis tasks。令每个任务的模型参数是latent basis tasks的线性组合,对latent basis tasks限制为稀疏的。重叠部分控制共享程度 [18]

    10. 学习一小撮shared hypotheses,之后map each task to a single hypothesis [19]

    DNN中的MTL

    Deep Relation Network [20]

    计算机视觉中,一般共享卷积层,之后是任务特定的DNN层。通过对任务层设定先验,使模型学习任务之间的关系。

    Fully-Adaptive Feature Sharing [21]

    从一个简单结构开始,贪心地动态地加宽模型,使相似的模型聚簇。贪心方法可能无法学到全局最优结构;每个分支一个任务无法学习任务之间的复杂关系。

    Cross-stitch Networks [22]

    soft parameter sharing,通过线性组合学习前一层的输出,允许模型决定不同任务之间的分享程度

    Low supervision [23]

    寻找更好的多任务结构复杂任务的底层应该被低级任务目标来监督(比如NLP前几层学习一个NER或POS辅助任务)

    A Joint Many-task Model [24]

    对多个NLP任务预先设定层级结构,之后joint learning

    Weighting losses with uncertainty [25]

    不考虑学习共享的结构,考虑每个任务的不确定性。通过优化loss(Gaussian likelihood with task-dependant uncertainty),调节不同tasks之间的相似性。

    Tensor factorisation for MTL [26]

    对每层参数进行分解,为shared和task-specific

    Sluice Networks [27]

    大杂烩(hard parameter sharing + cross stitch networks + block-sparse regularization + task hierarchy(NLP) ),使得模型自己学习哪些层,哪些子空间来共享,在哪层模型找到了inputs的最优表达。

    当不同的任务相关性大,近似服从相同的分布,共享参数是有益的,如果相关性不大或者不相关的任务呢?

    早期工作是预先为每对任务指定哪些层来分享,这种方法扩展性差且模型结构严重有偏;当任务相关性下降或需要不同level推理时,hard parameter sharing就不行了。

    目前比较火的是learning what to share(outperform hard parameter sharing);还有就是对任务层级进行学习在任务具有多粒度因素时也是有用的。

    Auxiliary task

    我们只关注主任务目标,但是希望从其他有效的辅助任务中获利!

    目前选择一些辅助任务方法

    1. Related task:常规思路(自动驾驶+路标识别;query classification+web search;坐标预测+物体识别;duration+frequency)

    2. Adversarial:在domain adaption,相关的任务可能无法获取,可以使用对抗任务作为negative task(最大化training error),比如辅助任务为预测输入的domain,则导致主任务模型学习的表征不能区分不同的domain。

    3. Hints:前面提到的某些特征在某些任务不好学,选择辅助任务为predicting features(NLP中主任务为情感预测,辅助任务为inputs是否包含积极或消极的词;主任务name error detection,辅助任务为句子中是否有name)

    4. Focusing attention:使模型注意到那些在任务中可能不容易被注意到的部分(自动驾驶+路标检测;面部识别+头部位置识别)

    5. Quantization smoothing:某些任务中,训练目标是高度离散化的(人为打分,情感打分,疾病风险等级),使用离散程度较小的辅助任务可能是有帮助的,因为目标更平滑使任务更好学

    6. prediting inputs:有些场景下,可能不会选择某些特征,由于其不利于预估目标,但是这可能这些特征对模型的训练有一定的帮助,这种场景下,这些特征可以作为outputs而不是inputs

    7. Using the future to predict the presnet有些特征只有在决策之后才会有,比如自动驾驶时,当车路过一些物体才得到这些物体的数据;医疗中只有使用过药物才知此药物的效果。这些特征不能作为inputs,但是可以用作辅助任务,来给主任务在训练过程中透露信息。

    8. representation learning:auxiliary task大多都是潜在地学习一些特征表达,且一定程度上都利于主任务。也可以显示地对此学习(使用一个学习迁移特征表达的辅助任务,比如AE)

    那么,哪些auxiliary task是有用的呢?

    auxiliary task背后的假设是辅助任务应该在一定程度上与主任务相关,利于主任务的学习。

    那么如何衡量两个任务是否相关呢?

    一些理论研究:

    1. 使用相同的特征做决策

    2. 相关的任务共享同一个最优假设空间(having the same inductive bias)

    3. F-related: 如果两个任务的数据是通过一个固定分布经过一些变换得到 [28]

    4. 分类边界(parameter vectors)接近

    任务是否相似不是非0即1的,越相似的任务,收益越大。learning what to share允许我们暂时忽略理论上的不足,即使相关性不好的任务之间也能有所收益。但是发展任务之间的相似性对我们在选择辅助任务上也是有绝对的帮助的。

    MTL learning Tips

    1. 紧凑分布均匀的label的辅助任务更好(from POS in NLP)[29]

    2. 主任务训练曲线更快平稳,辅助任务平稳慢(还未平稳)[30]

    3. 不同任务尺度不一样,任务最优学习率可能不同

    4. 某个任务的输出可以作为某些任务的输入

    5. 某些任务的迭代周期不同,可能需要异步训练(后验信息;特征选择,特征衍生任务等)

    6. 整体loss可能被某些任务主导,需要整个周期对参数进行动态调整通过引入一些不确定性,每个任务学习一个噪声参数,统一所有损失 [31]

    7. 某些估计作为特征(交替训练

    总结

    20多岁的hard parameter shareing还是很流行,目前热点learning what to learn也很有价值,我们对tasks的理解(similarity, relationship, hierrarchy, benefit for MTL) 还是很有限的,希望以后有重大发展吧。

    可研究方向

    1. learning what to share

    2. measurement for similarity of tasks

    3. using task uncertainty

    4. 引入异步任务(特征学习任务),采用交替迭代训练

    5. 学习抽象子任务;学习任务结构(类似强化里面的hierarchy learning)

    6. 参数学习辅助任务

    7. More...

    备注:本文学习资料主要来自 _An Overview of Multi-Task Learning in Deep Neural Networks,https://arxiv.org/abs/1706.05098

    Reference

    [1] A Bayesian/information theoretic model of learning to learn via multiple task sampling. http://link.springer.com/article/10.1023/A:1007327622663

    [2] Learning from hints in neural networks. Journal of Complexity https://doi.org/10.1016/0885-064X(90)90006-Y

    [3] Multi-Task Feature Learning http://doi.org/10.1007/s10994-007-5040-8

    [4] Model selection and estimation in regression with grouped variables

    [5] Taking Advantage of Sparsity in Multi-Task Learninghttp://arxiv.org/pdf/0903.1468

    [6] A Dirty Model for Multi-task Learning. Advances in Neural Information Processing Systems https://papers.nips.cc/paper/4125-a-dirty-model-for-multi-task-learning.pdf

    [7] Distributed Multi-task Relationship Learning http://arxiv.org/abs/1612.04022

    [8] Regularized multi-task learning https://doi.org/10.1145/1014052.1014067

    [9] Discovering Structure in Multiple Learning Tasks: The TC Algorithm http://scholar.google.com/scholar?cluster=956054018507723832&hl=en

    [10] A Framework for Learning Predictive Structures from Multiple Tasks and Unlabeled Data

    [11] Empirical Bayes for Learning to Learn

    [12] Learning to learn with the informative vector machine https://doi.org/10.1145/1015330.1015382

    [13] Task Clustering and Gating for Bayesian Multitask Learning https://doi.org/10.1162/153244304322765658

    [14] Multi-Task Learning for Classification with Dirichlet Process Priors

    [15] Bayesian multitask learning with latent hierarchies http://dl.acm.org.sci-hub.io/citation.cfm?id=1795131

    [16] Linear Algorithms for Online Multitask Classification

    [17] Learning with whom to share in multi-task feature learning

    [18] Learning Task Grouping and Overlap in Multi-task Learning

    [19] Learning Multiple Tasks Using Shared Hypotheses

    [20] Learning Multiple Tasks with Deep Relationship Networks http://arxiv.org/abs/1506.02117

    [21] Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification http://arxiv.org/abs/1611.05377

    [22] Cross-stitch Networks for Multi-task Learning https://doi.org/10.1109/CVPR.2016.433

    [23] Deep multi-task learning with low level tasks supervised at lower layers

    [24] A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks http://arxiv.org/abs/1611.01587

    [25] Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics http://arxiv.org/abs/1705.07115

    [26] Deep Multi-task Representation Learning: A Tensor Factorisation Approach https://doi.org/10.1002/joe.20070

    [27] Sluice networks: Learning what to share between loosely related tasks http://arxiv.org/abs/1705.08142

    [28] Exploiting task relatedness for multiple task learning. Learning Theory and Kernel Machines https://doi.org/10.1007/978-3-540-45167-9_41

    [29] When is multitask learning effective? Multitask learning for semantic sequence prediction under varying data conditions http://arxiv.org/abs/1612.02251

    [30] Identifying beneficial task relations for multi-task learning in deep neural networks http://arxiv.org/abs/1702.08303

    [31] Multitask learning using uncertainty to weigh losses for scene geometry and senantics

    ---------♥---------

    声明:本内容来源网络,版权属于原作者

    图片来源网络,不代表本公众号立场。如有侵权,联系删除

    AI博士私人微信,还有少量空位

    如何画出漂亮的深度学习模型图?

    如何画出漂亮的神经网络图?

    一文读懂深度学习中的各种卷积

    点个在看支持一下吧

    展开全文
  • 一种处理亿级聚合数据的方法

    千次阅读 2021-03-03 14:58:11
    我们可以直接获取到商品ID,但是,由于个最低聚合维度相关的商品数据也有很,为了提升商品数据获取性能,我们需要继续对数据进行片,将一个小任务拆分成更的小任务,充分利用集群分布式处理的能力。...
  • 原理SVM被提出于1964年,在二十世纪90年代后得到快速发展并衍生出系列改进和扩展算法,在人像识别、文本分类等模式识别(pattern recognition)问题中有得到应用。支持向量机(Support Vector Machine, SVM)是类按...
  • 基于AI的图像视觉处理技术

    千次阅读 2021-11-15 13:22:35
    计算机视觉是一门研究如何使机器”看“的科学,作为个学科,试图建立能够从图像或多维数据中获取”信息“的人工智能系统...本项目的技术亮点就是使用了级联卷积的思想,复杂问题简单化,化整为零,逐一攻破.
  • C#异步线程Task的介绍和使用,从相关关键字到使用示例,详细解析Task和TaskCompletionSource的使用方法。
  • 你知道程序都是怎么处理时区问题的么?

    万次阅读 多人点赞 2021-01-20 21:59:25
    夏令 夏令介绍 夏令(Daylight Saving Time:DST):又称"日光节约制",是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。 一般在天亮早的夏季人为时间...
  • 【其它】已知info=[1,2,3,4,5],请通过两编程方法,列表变成info=[5,4,3,2,1] (6.0)【其它】阅读下面的程序,分析代码是否可以编译通过,如果能编译通过,请列出运行的结果,否则说明编译失败的原因。 list_demo = ...
  • 操作系统——实时操作系统和分时操作系统分时操作系统1.1概念1.2特点实时操作系统1.1概念1.2特点 分时操作系统 1.1概念 分时操作系统: 个人同时连在计算机上,每个人看作是另外个I/O终端,每个用户拥有个...
  • spring schedule 配置多任务动态 cron 【增删启停】

    千次阅读 热门讨论 2021-03-13 21:47:38
    背景 之前公司经常会遇到配置定时任务,简单的任务可以直接依赖...Timer: jdk中自带的个定时调度类,可以简单的实现按某频度进行任务执行。提供的功能比较单一,无法实现复杂的调度任务。 ScheduledExecutorServi
  • 计算机操作系统的几分类方式

    千次阅读 2021-06-16 02:29:16
    描述操作系统是管理计算机硬件与软件的计算机程序,是计算机系统的核心,是...我们一起来看一下:、 根据操作系统的功能及作业处理方式可以分为:批处理操作系统、分时操作系统、实时操作系统和网络操作系统。(1...
  • (1)创建型模式(5):用于描述“怎样创建对象”,的主要特点是“对象的创建与使用分离”。GoF 中提供了单例模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式 5 创建型模式。 .
  • SENet实战详解:使用SE-ReSNet50实现对植物幼苗的分类

    千次阅读 多人点赞 2021-10-21 18:49:12
    ​ Squeeze-and-Excitation Networks(简称 SENet)是 Momenta 胡杰团队(WMW)提出的新的网络结构,利用SENet,一举取得最后届 ImageNet 2017 竞赛 Image Classification 任务的冠军,在ImageNet数据集上将top-5 ...
  • 在第二阶段我们主要进行优化过程,包括邮件消歧和结果优化,这里包括邮件火星文字“城人”“出兽”等,同时解决ByPass问题,这些火星文字实际上是一种对抗文本,可以尝试word2vec来识别,比如与共现的词组通常能...
  • 隐私的概念综述

    千次阅读 2021-02-27 11:07:57
    讲差隐私前,我想说一下什么是隐私 其实隐私这个定义,各家有各家的说法,而且各人有各人不同的考量。目前普遍比较接受的是:“单个用户的某一些属性” 可以被看做是隐私。这个说法里所强调的是:单个用户。也就是...
  • 无人驾驶 | 自动驾驶技术和机器人技术的对比

    千次阅读 多人点赞 2021-01-09 13:06:36
    机器人技术的核心是运动控制,包括定位、导航、感知、决策、跟踪等,可广泛应用在家庭服务机器人、工业自动化机器人等领域。自动驾驶是人工智能领域最炙手可热的方向,互联网巨擎(谷歌、Uber、百度等)、传统汽车大...
  • 篇文章讲清python开发必懂的8数据结构

    千次阅读 多人点赞 2021-08-05 09:08:57
    在解决现实世界的编码问题,雇主和招聘人员都在寻找运行和资源效率。 知道哪个数据结构最适合当前的解决方案提高程序的性能,并减少开发所需的时间。出于这个原因,大多数顶级公司都要求对数据结构有很深的...
  • 文章目录明确分布式定义、应用和架构发展过程1. 20世纪70年代末到80年代初的 原始分布式时代 (分布式计算)2. vray (分布式渲染)3. 1994年提出,2006年崛起的 SOA时代 (分布式网络架构)4. 2005年提出,2014年崛起的...
  • 但是,使用离线强化学习(RL)(智能体使用以前收集的数据开展训练,在试验和错误中学习的一种方法)来训练,即使是一个单一任务(例如抓取),也可能需要花费成千上万个机器人小时,此外还需要大量的工程来大规模实现...
  • 1. 如何预防死锁? 首先需要死锁发生的是个必要条件讲出来: 互斥条件 同一时间只能有个...个进程不能获得所需要的全部资源便处于等待状态,等待期间他占有的资源被隐式的释放重新加入到系统的资源列表中
  • (2)数据库应用系统(DataBase Application System,DBAS)不仅为用户提供数据管理功能,还根据具体应用领域业务规则,通过数据库应用程序,实现了更为复杂的数据处理功能。 考点2 数据库应用系统设计与开发的...
  • 2020 年前端技术发展盘点

    万次阅读 多人点赞 2021-03-30 08:36:09
    2020 年已经结束,这一年里面因为疫情,...了解这些新的技术和趋势,有效让我们成为更好的开发者,同时在我们日常工作中,这些知识有效帮助我们去解决工作中的技术问题,或者在个问题中看到更的解决办法和可能性。
  • 超硬核!操作系统学霸笔记,考试复习面试全靠

    万次阅读 多人点赞 2021-03-22 18:43:49
    进程的创建 进程的层次结构 进程图 引起进程创建的事件 1)用户登录:在分时系统中,用户成功登录,系统为该用户分配新的进程 2)作业调度:在道批处理系统中,作业调度程序某些作业调度内存,并且为他们创建...
  • 现行的深度传感镜头作为智能手机的大创新,已在目前主流智能手机上广泛应用。因苹果在最新版iPad Pro上搭载了D-ToF(直接飞行时间法)深度传感镜头引起了极大的关注,推动了3D视觉在消...
  • 图像分类,一文入魂(上)

    千次阅读 热门讨论 2021-08-23 13:00:56
    卷积神经网络(CNN)是一种识别率很高的深度学习模型,能够提取具有平移、缩放、旋转等不变性的结构特征。这一篇文章是对常用的图像分类模型做总结,包括LeNet-5、AlexNet、VGGNet、GoogLeNet、Resent、ResNeXt、Dense...
  • 语音识别 从入门到进阶 文末附项目/源码

    万次阅读 多人点赞 2021-07-11 20:35:37
    这两家企业在中国语音领域占用80+市场,所以他们做得很优秀,不过由于高精技术无法开源,其他企业只得花费大量的金钱去购买其API,而无法研究语音识别等应用,导致民间语音识别发展较慢,今天我们来一饱眼福吧!...
  • PostgreSQL 实现定时任务的 4 方法

    千次阅读 多人点赞 2021-01-31 22:26:54
    数据库定时任务可以用于实现定期的备份、统计信息采集、数据汇总、...本文介绍了在 PostgreSQL 数据库中实现定时任务的 4 方法,包括操作系统定时任务(cron)、pgAgent 代理、pg_cron 插件以及 pg_timetable 工具。
  • 一文读懂增强现实(AR)技术

    千次阅读 2021-04-17 00:22:45
    随着信息技术的高速发展,虚拟现实、增强现实等逐渐火热。虚拟现实是一种完全建立虚拟环境,让人类脱离现有环境进入新的世界,的广泛应用可能还要经过一段时间的积淀,目前虚拟现实主要在科研仿真、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 600,936
精华内容 240,374
关键字:

多任务是一种分时处理技术它将