Origin of Ray

一起探索互联网的秘密

我们首先来了解下解深度学习、机器学习与人工智能的定义:

  • 深度学习是机器学习的子集,它基于人工神经网络。 学习过程之所以是深度性的,是因为人工神经网络的结构由多个输入、输出和隐藏层构成。 每个层包含的单元可将输入数据转换为信息,供下一层用于特定的预测任务。 得益于这种结构,机器可以通过自身的数据处理进行学习。深度学习的用例范围一直在不断扩展,但如今最流行的三大技术,当属计算机视觉、语音识别和自然语言处理

  • 机器学习是人工智能的子集,它采用可让机器凭借经验在任务中做出改善的技术(例如深度学习)。 学习过程基于以下步骤:

  1. 将数据馈送到算法中。 (在此步骤中,可向模型提供更多信息,例如,通过执行特征提取。)
  2. 使用此数据训练模型。
  3. 测试并部署模型。
  4. 使用部署的模型执行自动化预测任务。 (换言之,调用并使用部署的模型来接收模型返回的预测。)
  • 人工智能 (AI) 是使机器能够模拟人类智能的技术。 其中包括机器学习。
  • 神经网络是机器学习的一种算法,而监督学习,无监督学习,强化学习等属于机器学习的训练方法,都可以应用于神经网络的训练,不同的训练方法适用于不同的机器学习算法,比如监督学习就适用于回归和分类,不同的算法适合解决不同的问题,比如回归问题适合解决拟合出一条曲线的问题,聚类问题适合分类问题
阅读全文 »

搜索引擎的基础原理其实非常简单,建立一个搜索引擎大致需要这样几件事情:自动下载尽可能的网页,建立快速有效的索引,根据相关性对网页进行公平准确的排序。

阅读全文 »

我们常说信息有用,那么它的作用是如何直观,定量的体现出来呢?信息用途的背后是否有理论基础?

对于这个问题,香农在他著名的论文“通信的数学原理”中提出了信息熵的概念,才解决了信息的度量问题,并且量化出信息的作用。

阅读全文 »

隐马尔可夫模型是一个并不复杂的数学模型,到现在为止,他一直被认为是解决大多数自然语言处理问题最快速,有效的方法。它成功地解决了复杂地语音识别,机器翻译等问题。

阅读全文 »

上一篇关于如何计算一句话是否具有实际意义博客中的方法中,通过将一句话被拆分成不同的词,然后计算这个词的序列的可能性大小来实现的。

对于西方拼音语言来讲,词之间有明显的分界符,统计和使用语言模型非常直接。而对于一些亚洲语言,如中,日,韩,泰等,词之间没有明确的分界符,所以我们需要先对句子进行分词。

阅读全文 »

自然语言从诞生开始,逐渐演变成一种上下文相关的信息表达和传递方式(即要理解一个词汇的真实意思,需要结合它前后的内容一起看),因此让计算机处理自然语言,一个基本问题就是为自然语言中这种上下文相关的特性建立数学模型,这个数学模型就是在自然语言处理中常说的统计语言模型(Statistical Language Model),它是所有语言处理的基础,并且广泛应用于机器翻译,语音识别,手写字体识别等领域

阅读全文 »

简介

树状数组(Binary Indexed Tree,简称BIT),有时也被称作Fenwick树,是一种用于高效处理前缀和、区间求和、以及相应更新等问题的数据结构。它提供了比普通数组更好的方法来实现这些操作,特别是在需要频繁更新元素和查询前缀和的场景中。树状数组在时间复杂度和空间复杂度上都很优秀,实现也相对简单。

普通树状数组维护的信息及运算要满足 结合律 且 可差分,如加法(和)、乘法(积)、异或等。

  • 结合律:(xy)z=x(yz)(x \circ y) \circ z = x \circ (y \circ z),其中\circ 是一个二元运算符。

  • 可差分:具有逆运算的运算,即已知xyx \circ y 和 x 可以求出 y。

事实上,树状数组能解决的问题是线段树能解决的问题的子集:树状数组能做的,线段树一定能做;线段树能做的,树状数组不一定可以。然而,树状数组的代码要远比线段树短,时间效率常数也更小,因此仍有学习价值。

有时,在差分数组和辅助数组的帮助下,树状数组还可解决更强的 区间加单点值 和 区间加区间和 问题。

阅读全文 »

线段树简介

线段树(Segment Tree)是一种非常灵活的数据结构,它能够高效处理与区间相关的问题,如区间求和、区间最大值(或最小值)以及区间更新等操作。

线段树是一个二叉树,其中每个节点代表一个区间(或一个段),并且这个区间可以被分解成两个子区间,这些子区间分别由当前节点的两个子节点所表示。

线段树的思想源自于二叉搜索树,都有区间的概念,不过BST的节点是区间分割点,而线段树的节点本身就是区间的整体信息,这个整体信息可以是任何该区间的整体信息,只要该区间的整体信息可以由两个子区间的整体信息合并来即可,如区间和

阅读全文 »

最近在leetcode看到了一道题,很有意思,可以用动态规划解,也可以用Dijkstra算法来解,这道题最大的启发就是:

动态规划的每个节点就是图中的节点,状态转移方程其实就是两个节点之间的连线,我们可以用Dijkstra算法求解从开始节点到目标结点的最短路径。

阅读全文 »
0%