码迷,mamicode.com
首页 > 其他好文 > 详细

《数学之美((第二版)》(六)

时间:2015-08-13 12:15:44      阅读:635      评论:0      收藏:0      [点我收藏+]

标签:数学   数学之美   

二十六、维特比和他的维特比算法

           维特比算法是现代数字通信中最常用的算法,同时也是很多自然语言处理采用的解码算法。

       首先谈了维特比算法。 他和雅各布共同创办了高通公司,提出了CDMA标准。维特比算法是针对篱笆网络的有向图最短路径提出的,是一个特殊但应用最广的动态规划算法,凡是使用隐含马尔可夫模型描述的问题都可以用它来解码。之后便详细介绍了维特比算法,指出它的复杂度是O(N·D^2),其中N是网格长度,D是网格宽度。

       之后又介绍了CDMA技术—3G移动通信的基础。对CDMA(码分多址)技术发明和普及贡献最大的两个人是拉玛尔和维特比。在CDMA以前,移动通信使用过两种技术:频分多址(FDMA)和时分多址(TDMA)。扩频传输是在一个较宽的扩展频带上进行的,它由三点好处:抗干扰能力极强、信号很难被截获、利用带宽更充分。

二十七、上帝的算法:期望最大化算法

       首先谈到了文本的自收敛分类。前面介绍的利用事先设定好的类别对新的文本进行分类的问题需要有事先设定好的类别和文本中心,而自底向上将文本两两比较进行聚类的方法计算时间较长。自收敛的分类是随机地挑出一些类别的中心,然后来优化这些中心,使它们和真实的聚类中心尽可能的一致。具体过程是:

       1)随机挑选K(类别数)个点,作为起始的中心c1(0),....,ck(0)。

       2)计算所有点到这些聚类中心的距离,将这些点归到最近的一类中。

       3)重新计算每一类的中心。

       4)重复上述过程,直到每次新的中心和旧的中心之间的偏移非常小,即过程收敛。

       最后是延伸阅读:期望最大化和收敛的必然性。在一般性的问题中,如果有非常多的观测数据(点),类似上面的方法,让计算机不断迭代来学习一个模型。首先,根据现有的模型,计算各个观测数据输入到模型的计算结果,这个过程称为期望值计算过程,或E过程;接下来,重新计算模型参数,以最大化期望值,这个过程称为最大化的过程,或M过程。这一类算法都称为EM算法。如果优化的目标函数时一个凸函数,那么一定能保证得到全局最优解。

二十八、逻辑回归和搜索广告

       首先谈了搜索广告的发展。经历了三个阶段:第一阶段是竞价排名广告;第二个阶段是综合出价和点击率(Click Through Rate,CTR)等因素决定广告的投放,关键技术就是预测用户可能点击候选广告的概率,或称为点击率预估;第三阶段是进一步的全局优化。预估点击率最好的办法是根据以往的经验值来预测,但是这种方法存在很多不足,于是后来工业界普遍采用了逻辑回归模型(Logistic Regression 或 Logistic Model)。

       然后就谈到了逻辑回归模型。它是指将一个事件出现的概率逐渐适应到一条逻辑曲线上(S型曲线,开始变化快,逐渐减慢,最后饱和),变量范围是无穷而值域在[0,1]之间。一个简单的逻辑回归函数形式是:f(z) = 1 / (1+e^-z)。之后以一个简单的例子来解释了逻辑回归模型,这里面有两点技巧:一是与广告点击相关的信息,二是参数值的训练。逻辑回归模型是一种将影响概率的不同因素结合在一起的指数模型,和很多指数模型的训练方法相似,可采用GIS和IIS来实现。

二十九、各个击破算法和Google云计算的基础

       云计算的关键之一是如何把一个非常大的计算问题,自动分解到许多计算能力不是很强大的计算机上共同完成。Google给出了一个叫MapReduce的程序,其根本原理就是分治算法(Divide-and-Conquer),本书中称为“各个击破”法。

       首先谈了分治算法的原理。即将一个复杂的问题分成若干个简单的子问题进行解决,然后对子问题的结果进行合并,得到原有问题的解。

       然后谈了从分治算法到MapReduce。先以一个大矩阵相乘的例子进行了解释,引出了MapReduce的根本原理。将一个大任务拆分成小的子任务,并且完成子任务的计算,这个过程叫做Map;将中间结果合并成最终结果,这个过程叫Reduce。如何保证各个服务器负载均衡,如何合并返回值就是MapReduce在工程上所做的事情。

三十、Google大脑和人工神经网络

       首先谈了人工神经网络。它是一个特殊的有向图,特殊性在于:

       1)所有节点都是分层的,每一层节点可以通过有向弧指向上一层节点,但是同一层节点之间没有弧相连接,而且每一个节点不能越过一层连接到上上层的节点上。

       2)每一条弧上有一个值,根据这些值可以用一个非常简单的公式算出它们所指节点的值。

       最下面一层叫输入层,最上面一层叫输出层,中间的叫中间层,由于对外不可见所以也叫隐含层。接下来用一个语音识别的例子进行了介绍。人工神经网络的基本原理是:来自输入节点的数值(x1,...,xn)按照它们输出的弧的权重(w1,...,wn),根据公式G=w0+x1·w1+...+xn·wn进行线性加权得到G,然后再做一次(只能做一次)函数变换f(G)赋给第二层的节点Y;第二层的节点照此将数值向后面传递,直到最后一层即输出层。在模式分类时,一个模式的特征值从输入层开始一层层向后传递,最后在输出层哪个节点的数值最大,输入的模式就被分在了哪一类。

       在人工神经网络中,需要设计的部分只有两个:一个是它的结构,即网络分几层、每层几个节点、节点间如何连接等;另一个是非线性函数f(·)的设计,常用的函数时指数函数。如果把不同输出节点上得到的值看成是一种概率分布,那么便等价于一个概率模型了。

       然后谈了训练人工神经网络。分为有监督的训练和无监督的训练两种。对于有监督的训练,根据训练数据要找到一组参数w,使得模型给出的输出值和训练数据中设计好的输出值尽可能一致。可以引入成本函数将其转化成一个最优化问题,解决方法最常用的是梯度下降法。对于无监督的训练,需要定义一种新的成本函数,要使分完类后同一类样本应该相互比较靠近,不同类的样本尽可能远离,之后可以再用梯度下降法进行训练了。

       还谈到了人工神经网络与贝叶斯网络的关系。相同之处是:

       1)都是有向图,都遵循马尔可夫假设(每一个节点的取值只取决于前一级的节点)。

       2)训练方法相似。

       3)对于很多模式分类问题,效果上相似。

       4)训练计算量都特别大。

       不同之处是:

       1)人工神经网络在结构上是完全标准化的;而贝叶斯网络更灵活。

       2)人工神经网络只能先进行线性变换再进行非线性变换,所以实现起来比较容易;而贝叶斯网络无限制,更加复杂。

       3)人工神经网络输出相对独立,很难处理一个序列,所以常用于估计一个概率模型的参数,不用作解码器;而贝叶斯网络更容易考虑前后相关性,所以可以解码一个输入的序列。

        最后是延伸阅读:“Google大脑”。早期人工神经网络受限,因为如果规模小干不了事情,如果规模大计算量又跟不上。2010年后云计算的兴起使得训练人工神经网络的方法必须改变。Google大脑的创新之处就是利用了云计算的并行处理技术。Google大脑采用人工神经网络的原因是:

        1)理论上可以画出各种形状的模式分类边界,有很好的通用性。

        2)算法非常稳定,没怎么变过。

        3)容易并行实现。

        Google大脑并行训练人工神经网络的参数,在减少计算量方面做了两个改进:一是采用随机梯度下降法,只随机抽取少量的数据来计算成本函数,大大降低计算量;二是采用L-BFGS方法,减少训练的迭代次数。对于其存储问题,输入端的训练数据存储在输入端的服务器本地,每个服务器的模型参数由另一组服务器单独存储。

三十一、大数据的威力:谈谈数据的重要性

       首先谈了数据的重要性。举了三个例子说明数据不仅在科学研究中,而且在生活的方方面面都很重要。

       然后谈了数据的统计和信息技术。介绍了切比雪夫不等式,说明了在信息处理中,凡是涉及到概率问题,都需要非常多的数据支持。除了要求数据量必须足够多,统计还要求采样的数据具有代表性。接着就以预测美国总统大选的例子来说明了这一点。现在数据已经成为决定搜索引擎好坏的第一要素,算法倒在其次了。在搜索用到的诸多数据中,最重要的有两类,即网页本身的数据和用户点击的数据,所以在搜索行业形成了一种马太效应。但是后进入搜索市场的公司也在采取其他方法来快速获得数据:一是收购流量,二是通过搜索条、浏览器甚至是输入法来手机用户的点击行为。于是搜索质量的竞争就转换成了浏览器或者其他客户端软件市场占有率的竞争。之后用Google机器翻译系统的快速发展来说明了用数据驱动的统计模型的翻译系统更好,用语音识别的例子说明了该领域的明显提高得益于大量的数据。

       最后谈到了为什么需要大数据。大数据不仅需要数据量大,更重要的是它的多维度和完备性。然后用了好多基因和疾病的例子来说明大数据对医疗行业的重要性。最后作者做了一个总结:

       1)只有当一些随机事件的组合一同出现了很多次以后,才能得到有意义的统计规律。

       2)大数据的采集过程是一个自然的过程,有利于消除主观性的偏差。

       3)只有多维度的大数据才能发现新的规律。

       4)大数据可以解决IT行业之外的一些难题。

附录、计算复杂度

       如果一个问题存在一个多项式复杂度的算法,这个问题称为P问题(Polynomial),这类问题被认为是计算机可以“有效”解决的。如果一个算法的计算量比N的多项式函数还高,虽然理论上有足够的时间可以计算,但实际是做不到的,这些称为非多项式(Non-polynomial)问题。在非多项式问题中,有一类问题即非确定的多项式(Nondeterministic Polynomial,简称NP)问题受到了极大关注。对于计算复杂度至少是NP-Complete甚至更大的问题,称为NP-Hard问题。

       至此,这本书便完结了。总的来看,这是一本科普性质的大众书籍,里面将一些前沿性的高深技术用很通俗的语言做了讲解,无论是普通读者还是技术大牛,都能从这本书里受益匪浅。我个人觉得这本书写的非常好,以后也会经常翻阅回顾。

版权声明:本文为博主原创文章,未经博主允许不得转载。

《数学之美((第二版)》(六)

标签:数学   数学之美   

原文地址:http://blog.csdn.net/u012421846/article/details/47439501

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!