精华内容
下载资源
问答
  • C++C有什么不同

    2016-06-24 00:12:53
    C是一个结构化语言,它的重点在于算法和数据结构。对语言本身而言,C是C++的子集。C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理,得到输出。对于 C++,首要考虑的是如何构造一个对象模型,让这个...
    C是一个结构化语言,它的重点在于算法和数据结构。对语言本身而言,C是C++的子集。C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理,得到输出。对于            C++,首要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信息得到输出或实现过程控制。
    因此,C与C++的最大区别在于,它们用于解决问题的思想方法不一样。
    C实现了C++中过程化控制及其他相关功能。而在C++中的C,相对于原来的C还有所加强,引入了重载、内联函数、异常处理等。C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等。
    在C++中,不仅需要考虑数据封装,还需要考虑对象粒度的选择、对象接口的设计和继承、组合与继承的使用等问题。

    相对于C,C++包含了更丰富的设计概念。


    作者贴心提示:说好的都是套路,大家对于这样的问题,先背下来,在实际编程中再细细品味,就能理解它概括得很好。


    展开全文
  • C/C++程序基础-C++C有什么不同 1:C和C++的联系和区别? 答:C是一个结构化语言,它的重点在于算法和数据结构。对于语言本身而言,C是C++的子集。C程序的设计首先要考虑的是如何通过一个过程,对输入进行运算...

    C/C++程序基础-C++与C有什么不同

    1:C和C++的联系和区别?

    答:C是一个结构化语言,它的重点在于算法和数据结构。对于语言本身而言,C是C++的子集。C程序的设计首先要考虑的是如何通过一个过程,对输入进行运算处理,得到输出。对于C++,首先要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信息得到输出或者实现过程控制。

        因此,C和C++的最大区别在于,它们用于解决问题的思想方法不一样。

        C实现了C++中过程比控制及其他相关功能。而在C++中的C,相对于原来的C还有所加强,引入了重载、内联函数、异常处理等。C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和容器类等。

        在C++中,不仅需要考虑数据封装,还需要考虑对象粒度的选择、对象接口的设计和继承、组合与继承的使用等问题。

        相对于C,C++包含了更丰富的设计概念。

    posted @ 2017-10-07 14:51 一串字符串 阅读(...) 评论(...) 编辑 收藏

    展开全文
  • 不同的神经网络模型在翻译过程中所起的作用有什么不同?相比通用的模型,为什么支持103种语言的Google的翻译算法,可以实现任意两种语言之间的翻译转换?它独特的LSTM-RNN结构在其中所起的作用又是什么?让我们从头...


    Google翻译、百度翻译、有道翻译……我们使用过各种各样的在线翻译服务,但你清楚机器翻译背后的原理吗?在线翻译为什么要用深度学习?不同的神经网络模型在翻译过程中所起的作用有什么不同?


    相比通用的模型,为什么支持103种语言的Google的翻译算法,可以实现任意两种语言之间的翻译转换?它独特的LSTM-RNN结构在其中所起的作用又是什么?让我们从头来学习一番。

    作者 | Daniil Korbut

    译者 | JeyZhang


                                           图片来源:谷歌机器翻译算法

    许多年前,想要对一种陌生的语言进行翻译是一件非常耗时的事情。采用简单的词匹配方法来进行翻译是很困难的,有两个原因:
    • 读者不了解文本中用到的语法;

    • 读者不可能为了翻译去学习所有的语言;

    现在,翻译这件事情变得很简单了,只需要将待翻译的词组、句子甚至大篇幅的文本放进谷歌翻译的翻译框就能轻易得到翻译结果。然而,大多数人实际上并不关心机器翻译背后的原理。如果你想了解机器翻译的原理,这篇博文就是为你而准备的。

    基于深度学习的机器翻译面临的问题

    如果谷歌的翻译模型是针对非常短的文本进行翻译,那这个模型将很难起作用,因为短文本对应的翻译可能性太多了。最理想的情况是能够教会计算机各种的语法规则并基于这些语法规则来进行翻译,这听上去容易但实际很难。

    如果你曾经尝试过学习一门外语,你就会知道其中有许多意想不到的语法规则。然而,当我们尝试在计算机程序中加入这些语法规则后,最终的翻译质量却会下降(翻译结果比较生硬)。

    现代的机器翻译系统采用了一种新的方法:通过分析大量的语料数据,让系统从中自动地学习出相应的语法规则。

    如果你能自己创建一个简单的机器翻译系统,这将成为你简历上的加分项目。

    接下来我们一起来探索机器翻译系统这个“黑盒”的背后原理。深度学习模型能够在很多复杂的任务(例如语音识别/物体识别)上取得不错的结果,然而,许多深度学习模型存在一个限制条件,就是模型的输入和输出通常要求固定的维数(这对许多任务而言并不适合)。先来了解一下这些模型:

    循环神经网络 (RNN)

    下面讲讲LSTM (Long Short-Term Memory networks) 模型,这个模型能够处理变长的输入序列。

    LSTM模型是一种特殊的循环神经网络 (RNN),能够捕捉和学习到长序列中的相关性。所有的RNN模型都是由相同的模型重复链式地组成的。


                                                被展开的循环神经网络模型                                                                                  http://colah.github.io/posts/2015-08-Understanding-LSTMs/

    因此,LSTM模型中数据是在模块和模块之间传输的。例如,为了生成最后的ht,我们不是只用到了Xt,而是用了X0,X1,X2,…,Xt等一系列作为输入。如果想要了解关于LSTM的模型结构和数学原理,可以去阅读《理解LSTM网络》这篇文章。
    原文地址:

    双向RNN模型

    接下来介绍双向循环神经网络模型 (BRNN)。BRNN模型由两个普通的RNN模型组成,只不过这两个RNN模型处理输入序列的方向是相反的,一个是处理正向的序列,一个是处理反向的序列。这两个序列的输出与相反方向的输入之间没有连接关系。


                                                    双向循环神经网络https://www.semanticscholar.org/paper/Hybrid-speech-recognition-with-Deep-Bidirectional-Graves-Jaitly/5807664af8e63d5207f59fb263c9e7bd3673be79

    为了理解BRNN模型为什么会优于单个RNN模型,这里举个例子,假设我们有一个包含了9个词的句子,我们希望预测句子中的第5个词是什么。一种情况是我们只知道了前4个词词,另一种情况既知道了前4个词也知道了后4个词,显然,后一种情况下能让我们的预测结果更加准确(因为我们得知了更多的信息)。

    Seq2Seq (Sequence to Sequence) 模型

    现在我们来看看seq2seq模型,基础的seq2seq模型由两个RNN模型组成:一个用于对输入序列进行编码,一个用于对输出序列进行解码。


                                                           Seq2Seq模型

                https://research.googleblog.com/2016/09/a-neural-network-for-machine.html

    这样我们也基于这个模型来实现一个翻译系统。

    然而,我们还需要考虑一个小问题。谷歌翻译系统目前支持103种语言,因此我们应该有103×102种模型来处理其中任意两种语言之间的翻译,而这些模型的效果取决于翻译文本的热门与否和训练语料的数量。最理想的情况是只训练一种模型,这个模型能够将任意一种语言翻译成任意的另一种语言。

    谷歌翻译算法

    这个很棒的算法是谷歌的工程师在2016年底时提出的,采用了seq2seq模型框架(就是上面提及的那样)。

    唯一的区别在于,模型的编码器和解码器之间有一个8层的LSTM-RNN结构,这种结构采用了部分连接(非全连接)的方式来改善模型的运行速度和效果。如果你想深入了解,可以阅读谷歌神经网络翻译系统这篇论文。

    论文地址:

    https://arxiv.org/abs/1609.08144

    这个方法的核心在于,目前的谷歌翻译算法采用了一个统一的翻译系统,取代了数以万计的翻译子系统。

    这个系统要求输入序列的开头是一个标志符,表示你希望翻译成的语言。

    一种称为“Zero-Shot翻译”的方法既能够提升翻译质量,同时也能实现任意两种语言之间的翻译(可以是系统没有见过的语言)。

     什么是更好的翻译?

    当我们在谈及现在的谷歌翻译算法取得了更好的结果,我们是怎么评估新的算法取得的翻译效果更好的呢?

    这件事情并不难做,因为对于一些比较常见的句子而言,我们已经有专业的翻译官给出的标准翻译答案。当然,对于同一个句子的翻译文本可能会有些差异。

    有许多方法可以在一定程度上评估翻译质量的好坏,其中最常用和最有效的指标是BLEU(BilinguaL Evaluation Understudy)。假设我们有两个翻译器给出的候选结果,如下:

    候选 1: Statsbot makes it easy for companies to closely monitor data from various analytical platforms via natural language.


    候选 2: Statsbot uses natural language to accurately analyze businesses’ metrics from different analytical platforms.

    上面的这两个候选结果的意思是一样的 ,但是所用到的语法结构和翻译质量存在不同。

    让我们看看翻译人员给出的参照翻译结果:

    参照结果1: Statsbot helps companies closely monitor their data from different analytical platforms via natural language.


    参照结果2: Statsbot allows companies to carefully monitor data from various analytics platforms by using natural language.

    很明显,以参照结果为标准,候选1的翻译质量更好,是因为相较于候选2,候选1从字面上和参照结果更为接近。BLEU指标的基本思想也是这样的,通过计算机器翻译的结果和参照结果的n-grams的匹配程度(忽略n-gram的相对位置信息)来衡量翻译质量(匹配的n-gram越多,翻译质量越好)。这里我们只考虑匹配的准确率,没有考虑召回率是因为参照结果比较多从而计算起来比较困难。

    现在开始你也可以对复杂的机器翻译系统进行评估了。通过阅读了本文,等你下一次使用谷歌翻译时,你就能想象到在这个系统的背后,是分析了数以百万计的文档后才最终得到这样一个最佳的翻译结果。

    原文链接:

    https://blog.statsbot.co/machine-learning-translation-96f0ed8f19e4


    展开全文
  • C/C++面试题:C++C有什么不同

    千次阅读 2013-11-03 20:17:58
    C/C++面试题:C++C有什么不同? 考点:C和C++的联系区别 出现频率:★★★★ 解析: C是一个结构化语言,它的重点在于算法和数据结构。对语言本身而言,C是C++的子集。 C程序的设计首要考虑的是如何通过一个过程...

    C/C++面试题:C++与C有什么不同?
    考点:C和C++的联系与区别
    出现频率:★★★★
    解析:
    C是一个结构化语言,它的重点在于算法和数据结构。对语言本身而言,C是C++的子集。
    C程序的设计首要考虑的是如何通过一个过程,对输入进行运算处理得到输出。
    对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够配合对应的问题,这样就可以通过获取对象的状态信息得到输出或实现过程控制。
    因此C与C++的最大区别在于它们的用于解决问题的思想方法不一样。
    C实现了C++中过程化控制及其它相关功能。而在C++中的C,相对于原来的C还有所加强,引入了重载、内联函数、异常处理等等,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。
    在C++中,不仅需要考虑数据封装,还需要考虑对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。
    相对于C,C++包含了更丰富的设计的概念.

     

    原文:http://genwoxuevc.blog.51cto.com/1852984/502621

    展开全文
  • 3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行...
  • 在学习方面,最重要的算法是神经网络,但由于模型过于强大,没有足够的数据支持,导致不是很成功。然而,在一些更具体的任务中,使用数据来适应函数的想法获得了巨大的成功,这也构成了机器学习的基础。在模仿方面,...
  • 定义问题分析问题 输入输出是什么 有什么限制条件关键点? 2.设计算法? 3.实现程序(coding? 4.运行调试通过? 5.完成文档维护程序相关知识回顾 算法设计基本原则 抽象 抽象出数学模型? 枚举 对输入数据列出不同情况...
  • em算法matlab代码空间模式识别 韦斯利·韦谦于03-09-17 更新 我已经在底层图形匹配算法和...建立模型后,您可以要求模型中正在汇总的模式,或者新的ARG是否具有给定样本ARG相似的模式,如果是,则该模式ARG是什么
  • 插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。 最小二乘法 最小二乘就是...
  • 参数非参的机器学习算法

    千次阅读 2017-05-26 18:34:07
    作者:Jason Brownlee 翻译:AI梦蝶 译者注:这篇文章中主要介绍了参数和非参的一些机器学习模型的区别。  一个参数机器学习算法是什么,非参的机器学习算法有什么不同呢?  在这篇文章中
  • 答:大多数学习算法都有些参数需要设定,参数配置不同,学得的模型的性能往往显著差别。因此,在进行模型评估选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的“参数调节”或...
  • KNN算法

    2017-05-23 19:58:22
    KNN是Machine Learning领域一个简单又实用的算法之前讨论过的算法主要存在两点不同: 1、它是一种非参方法。即不必像线性回归、逻辑回归等算法一样固定格式的模型,也不需要去拟合参数。 它既可用于分类,又...
  • 经常遇到Subword、BPE、Wordpiece这几个词,那么这几个词之间有什么联系区别呢? 在进行了解后,有了一些自己的理解: (1)**Subword:**是将词变为更小单位的算法的总称,其中就包括BPE和Wordpiece。 (2)BPE...
  • 我想了解一下度小满的信用评价模型...1. ACS模型的最主要算法什么? 1. 模型表现如何?(如:AUC>0.7、PSI>0.2) 谢谢大家 ![图片说明](https://img-ask.csdn.net/upload/202004/17/1587088917_705060.png)
  • 我想了解一下蚂蚁金服的信用评价模型...7. ACS模型的最主要算法什么? 8. 模型表现如何?(如:AUC>0.7、PSI>0.2) 谢谢大家 ![图片说明](https://img-ask.csdn.net/upload/202004/17/1587099671_769196.png)
  • 模型选择调优 在knn算法中,k的选择是一个重要的问题 那么没有一种办法能选择准确的K值 模型选择调优可以实现 什么是交叉验证 交叉验证:我们拿到的训练数据,分为训练集和验证集。将数据分为4份,其中一份...
  • 我想了解一下京东白条或小白信用的...7. ACS模型的最主要算法什么? 8. 模型表现如何?(如:AUC>0.7、PSI>0.2) 谢谢大家 ![图片说明](https://img-ask.csdn.net/upload/202004/17/1587099788_108764.png)
  • 感知机模型用来线性判别数据集,什么意思呢就是用一超平面来隔断两个不同的类别,超平面在二维的数据集中就是一条直线,在三维的数据集中就是一个平面,假设n维的数据,那么划分的超平面为(n-1)维度。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 570
精华内容 228
关键字:

模型与算法有什么不同