大数据之道 HMM系列<二>(成长)

一:HMM解码问题

(1)编程深处无非就是算法和结构,以及各种架构和版本的管理(如Git管理),因此作为程序员算法这一关是绕不过去的;

(2)关于算法,个人比较崇尚的一本书是《算法导论》和ACM实战系类的算法培训;

(3)对于自然语言处理领域或者部分机械学习领域的算法,HMM模型是非常经典的算法之一,非常适合初学者学习和研究;

(4)HMM模型μ=(A,B,π),的状态是不可见的,我们看到的仅仅是状态表现出来的观察值和状态概率函数。

二:HMM简介(u = {N,M,A,B,pai} ---> u ={A,B,pai} )

(1)模型中的状态数N

(2)每一个状态可以输出的观测值M

(3)状态转移矩阵A={aij},其中aij满足aij = P(qt=sj|qt-1=si)
, 并且 关于j的aij求和为1

(4)发射矩阵
B = {bj(k)},即从状态sj观测到符号vk的概率分布矩阵

(5)初始状态概率分布pai

三:HMM的三个基本问题

(1)评估问题:给定一个观察序列O=O1O2...OT,和模型μ=(A,B,π),如何计算观察到的序列O=O1O2...OT的概率,即P(O|u)

--------->
前向后向算法 ForWard-BackWard Algorithm(前向向量和后向向量,一个从前算,一个从后算)

(2)解码问题:给定一个观察序列O=O1O2...OT,和模型μ=(A,B,π),如何快速有效地选择在一定意义下“最优”的状态序列Q=q1q2...qT,使该状态最好地解释观察序列。

--------->
维特比算法 Viterbi Algorithm

请看 大数据之道
HMM系列
<一>

(3)学习问题:给定一个观察序列O=O1O2...OT,如何调参数μ=(A,B,π),使得P(O|M)最大

---------> 前向后向算法
ForWard-BackWard Algorithm(前向向量和后向向量,一个从前算,一个从后算)

四:知识补充(部分转载的)

(1)作为一个优秀的程序员,需要掌握一个文本编辑器/
IDE,然后坚持不懈地掌握这个工具。如果你选择的是 VIM,那就要成为它的主人,让它往东就往东

(2)使用版本控制系统,我建议使用
Git。下面是我喜欢的资源:Pro git——免费的在线电子书,详细讲解了 git 的各个方面。

(3)将重构养成习惯,随着你不断添加更多的功能,代码库也会越来越复杂。为了保持代码库的可管理化,你需要重构。如果你不重构的话,你很快就会进入两难境地——即使是做很小的改动都很困难、bug
没法避免、没有人愿意处理这个凌乱的代码库。重构能让你的工作更加轻松。至于怎么重构代码,我之前的一篇博客:3000行代码可以重构成15行,下面这本好书能教你该怎么做: 《Refactoring: Improving the Design of Existing Code》by Martin Fowler

(4)学习软件架构,根据你上面选择的堆栈,再学习相关的架构。我推荐
Martin Fowler 写的《Patterns of Enterprise Application Architecture》一书

五:心灵鸡汤(部分转载的)

(1)浅析理科生思维和文科生思维 所想到的 ------>

(2)一元思维模式:美就是美,丑就是丑,这两者具有原则性的区别,就好像判断好人和坏人一样,一定是有标准的。他们喜欢制定各种“客观标准”,也相信有一个最好的解决问题的方式,如果自己不知道,就在别人那里。而且,这种思维模式的人喜欢追求“至高”“至美”“至大”的“境界”,会在一个方向上不断追求,直到无法继续为止。

(3)二元思维模式:美和丑是相对立而存在的,互相可以转化。就如同好人和坏人一样,相对立而存在,并在一定条件下相互转化。这种人生活,和性格都将变得比较和谐,容易理解别人一些。这种人更容易成为管理者。

(4)多元思维模式:世间本无美丑善恶,一切取决于人心的思维和判断角度,这种思维模式出神入化,具有极高的灵活性;这就是你们在[老子]

(5)数理逻辑思维是有缺陷的:它只是一种一元思维模式,缺乏灵活性。而且一元思维模式容易走极端,所谓的“钻牛角尖”,“一条道走到黑”的,就是这种人;“立场坚定,观点鲜明”。好处在于专注,专心一志。所以很多工程技术人员都显得比较呆板,生活了无情趣。中国一些退休的优秀工程技术人员,业余生活可以说很悲惨,很多人与子女家庭的关系都不好,非常孤独。但最优秀的科学家如爱因斯坦等不会这样,因为他们的思维方式已经跳出一元,进入多元世界。

只有文科能够提供多元思维方式的教育。如果接受过良好的文科教育,多数人有机会学会二元思维方式,就是所谓的“一分为二”,达到这个境界的人就不会偏激了。

总之,作为工科出身的我们,我们整天对着machine的程序猿们:建议多读文章,要读好的文章,而不是言情方面的书,多读一些带有逻辑性的文章,会有所帮助的;而且在读故事的文章过程中尽量推测一下下面文章的内容,这对揣摩事物很有帮助.还有就是在读文章时不要急于读懂,好的一篇文章往往是读的边数多理解的就越明白.还有就是多写文章,也有一定的帮助.我一般就是这么学习文学的.所以一般考试答分析和辩论等类型的题往往比别人高的多.文科是属于积累性学习不能急于求成.要慢慢培养.尤其在思考问题这方面.看的多就想的多,想的多了回答的就自然多了.

时间: 2024-08-02 08:18:32

大数据之道 HMM系列<二>(成长)的相关文章

大数据之道 HMM系列

一:HMM解码问题 (1)给定一个观察序列O=O1O2...OT,和模型μ=(A,B,π),如何快速有效地选择在一定意义下"最优"的状态序列Q=q1q2...qT,使该状态最好地解释观察序列. (2)最可能的隐藏状态序列(Finding most probable sequence of hidden states):对于一个特殊的隐马尔科夫模型(HMM)及一个相应的观察序列,我们常常希望能找到生成此序列最可能的隐藏状态序列. 二:实例篇 (1)假设连续观察3天的海藻湿度为(Dry,D

世界杯中的大数据之道

让世界球迷翘首以盼的世界杯,在热情的桑巴舞和全世界球迷的欢呼中如期而至.在此期间,无论是资深球迷还是伪球迷,甚至是压根不看球的普通人,对于世界杯,都必然提及一二,这俨然成为了世界的节日,一个万众期待的狂欢party.随着移动互联的高度普及和发展,“社交足球”似乎踢得比世界杯还火热,各种渠道,各种工具,让世界杯也不可避免的跨入了“大数据时代”. 数据与世界杯的关系,除了球员的射门次数.传球次数.球队全场控球率等技术统计,还能怎样体现呢?用数据来展示球队,回顾比赛历史,区别球员表现已习以为常,但这些

好程序员大数据教程分享Scala系列之Option_偏函数_String

好程序员大数据教程分享Scala系列之Option_偏函数_StringOption类型在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None).Some包装了某个值,None表示没有值. object OptionDemo {def main(args: Array[String]) {val map = Map("a" -> 1, "b" -> 2)val v = map.get("b

好程序员大数据教程分享Scala系列之模式匹配和样例类

好程序员大数据教程分享Scala系列之模式匹配和样例类1.样例类在Scala中样例类是一中特殊的类,样例类是不可变的,可以通过值进行比较,可用于模式匹配.定义一个样例类:1.构造器中每一个参数都是val,除非显示地声明为var 2.伴生对象提供apply ,让你不使用new关键字就能构造出相应的对象case class Point(x: Int, y: Int)创建样例类对象:val point = Point(1, 2)val anotherPoint = Point(1, 2)val yet

《大数据的“道”“术”“释”》----读书摘录+思考

大家不要忘记以道御术,只有明确什么是优秀的数据分析,才能使这些武器发挥出效力!                       -----题记 这本书是看到我老师(大数据营销课)的朋友圈推荐才买的,看了一下目录,比较喜欢.就认真的读了下去,这不是一本讲什么是大数据的书,而是一本为什么要用到大数据分析的书.这本书的好处是讲为什么,而不是讲是什么?是什么好讲,为什么难讲?同时,这本书符合我看书,买书的习惯.因为现代社会,知识碎片化,我们每天接收到的信息大量,如何甄别对于我们来说是尤其重要的,感觉也特别适

Java转职大数据人群常使用的二十多个大数据工具

最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具. 这是一个系列,主题为: 语言 web框架 应用服务器 SQL数据访问工具 SQL数据库 大数据 构建工具 云提供商 今天我们就要说说大数据.根据维基百科,大数据是数据集的一个广义的术语,并且该数据集是如此庞大和复杂,以致于传统的数据处理应用程序无法胜任. 在许多情况下,使用SQL数据库用于存储/检索数据就足够了.但在另一些情况下,要么SQL数据库规模不够,要么还有更好的工具.这一切都取决于使用情况. 现在让我们来讨论一

mysql大数据备份与还原(二)

mysql大数据备份和增量备份及还原 Xtrabackup实现是物理备份,而且是物理热备 目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup :ibbackup是需要授权价格昂贵,而xtrabackup功能比ibbackup强大而且是开源的 Xtrabackup提供了两种命令行工具: xtrabackup:专用于备份InnoDB和XtraDB引擎的数据: innobackupex:这是一个perl脚本,在执行过程中会调用xtrabackup命令可以实现备份InnoDB,

大数据架构和模式(二)——如何知道一个大数据解决方案是否适合您的组织

简介 在确定投资大数据解决方案之前,评估可用于分析的数据:通过分析这些数据而获得的洞察:以及可用于定义.设计.创建和部署大数据平台的资源.询问正确的问题是一个不错的起点.使用本文中的问题将指导您完成调查.答案将揭示该数据和您尝试解决的问题的更多特征. 尽管组织一般情况对需要分析的数据类型有一些模糊的理解,但具体的细节很可能并不清晰.毕竟,数据可能具有之前未发现的模式的关键,一旦识别了一种模式,对额外分析的需求就会变得很明显.要帮助揭示这些未知的未知信息,首先需要实现一些基本用例,在此过程中,可以

大数据架构和模式(二)如何知道一个大数据解决方案是否适合您的组织

本文收藏于http://kb.cnblogs.com/page/510979/ 作者: Divakar等  来源: DeveloperWorks  发布时间: 2015-01-29 18:20  阅读: 1542 次  推荐: 0   原文链接   [收藏] 摘要:本文介绍一种评估大数据解决方案的可行性的基于维度的方法.通过回答探索每个维度的问题,您可以通过自己对环境的了解来确定某个大数据解决方案对您是否适合.仔细考虑每个维度,就会发现有关是否到了改进您的大数据服务的时候的线索. 简介 在确定投