如何用creoview 轻量化模型 做模拟肌肉的模型怎么做

Creo&View&Lite(ProductView&Lite)
有效地分发数字化产品数据
Creo View(以前称为
ProductView)可让您立即获得
在行业中领先的可视化解决方案的经过验证的性能,同时帮助您利用 Creo
促使生产效率实现突破性的增长。
Creo View Lite
使所有用户都能轻松简单地访问 3D
模型、绘图和图像,消除了有效分发数字化产品数据的障碍。
Creo View Lite
无缝集成到
中,使每个人都能轻松进行可视的协作。现在,营销、管理、销售和所有其他非工程的用户只需单击就能立即访问丰富的数字化产品数据。
所有与产品利益相关的各方无需访问负责创建数据的应用程序即可进行审查和提供反馈。
Creo View Lite
作为浏览器插件会在初次需要时自动安装并自我管理。
利用其紧凑但准确的 3D
可视格式,可以快速访问复杂的信息,从而减少返工并改善决策。
Creo View Express
原来:ProductView Express
免费的 MCAD
可视化软件
Creo View Express
提供全面的功能,可以查看和查询机械 CAD
Creo View Adapters
原来:ProductView
快速一致地将 2D
数据转换为兼容 Creo View
利用 Creo View Adapters,企业可以快速将基本的工程设计数据转换为可操作的内容(供包括设计协作和验证在内的下游过程使用)和技术插图(用于产品支持)。
Creo View Adapters
支持主要的 MCAD
格式,例如 Creo
Elements/Direct、CADDS 5、CATIA V5*、SolidWorks、NX、Autodesk Inventor*、CATIA V4
和 I-deas。
Creo View Adapters
也支持主要的 ECAD
格式,例如 Cadence、Zuken
和 Mentor Graphics,以及其他格式,例如
Microsoft Office
文档、STEP、JT、DGN
和许多旧格式。
Creo View Adapters
可以安装在服务器上与 Windchill
一起运行;也可以安装在客户端上,以便满足企业的具体需求。
功能和优势
·自动将多种 CAD
的数据转换为极其紧凑的标准 Creo View
格式,以供整个 Creo
·控制将要发布的几何和非几何信息
·通过在协作环境中使用 Creo View
加快协作/设计周期
·直接通过 Creo View Adapters
利用原始的 3D CAD
数据,从而加快使用 Creo Illustrate
技术插图的速度
·无需原始创作软件,就能在整个可视化协作过程中维护高保真和复杂的 3D
·通过多个灵活的选项(例如选择细化的数据输出而不是分析数据)保护数据的 IP
·提供将 Creo View ECAD
标记反向标注到原始 EDA
工具的功能
·在 Creo View ECAD
和原始 EDA
工具之间交叉选择等效的设计数据
Creo View Toolkits
原来:ProductView
创建快速、交互式的可视化应用程序
产品开发组织具有独特的协作需求,这些需求有时要求以新的方式来使用可视化技术。某些组织希望使用 Internet
来共享信息(例如印刷电路板 (PCB)
设计),或者在供应商和设计合作伙伴中改善工程设计认识。另一些组织则宁愿为其内部产品设计团队部署自己专门研制的可视化应用程序。
的两个 Creo View Toolkit
之一,您可以实现这些目标,并通过重复使用 Creo View
软件技术,创建吸引人的高性能可视化应用程序和交互性很强的网页。
可从 PowerPoint
幻灯片中访问的熟悉的 Creo View Lite
用户界面。由 Creo View Office Toolkit
驱动的 PowerPoint
幻灯片。使用 Creo View Java Toolkit
嵌入到 Java
应用程序中的 Creo View
技术。使用 Creo View Web Toolkit
嵌入到网页中的 Creo View
功能和优势
·使扩展的产品开发团队能够通过前所未有的方式访问可查看的数据(例如 PCB
·通过使用高性能的体系结构和高度压缩的文件获得更高的生产效率
·通过支持灵活的开发方案满足您的独特需求
○将 Creo View
技术嵌入网页的 Creo View Web Toolkit
○将 Creo View
技术嵌入 Java
应用程序的 Creo View Java Toolkit
·为各种可视化协作的使用方案提供支持
·在现有的产品开发应用程序中加入高级的可视化交互性,以支持内部团队成员
·通过提供高度交互的网页让整个供应链都能够访问您的可视化内容
Creo View ECAD Compare
原来:ProductView ECAD
Creo View(以前称为
ProductView)可让您立即获得
在行业中领先的可视化解决方案的经过验证的性能,同时帮助您利用 Creo
促使生产效率实现突破性的增长。
在电子产品的设计逐渐完善时,越来越难以了解前后两次迭代之间有何变化。但是,利用 Creo View ECAD
Compare,电气工程师可以立即确定印刷电路板
示意图、PCB
布局或制造工艺图的两个版本之间的差异。通过分析基于属性和基于图形的比较结果,工程师可以评估 PCB
设计变更,以及查看哪些变更需要更深入的审查,从而减少空闲时间。
功能和优势
·显著地减少了用于确定 PCB
设计之间的差异的时间
·分析参数(设计、组件、基网表、高级网表、引脚)和几何差异
·提高了电气工程师验证布局变更的效率
·通过便利的基于 Web
差异报告提高了设计比较的准确性
·使工程师能更好地了解外部制造商所做的修改
·通过使用适用于所有设计比较的单一解决方案提高了易用性
Creo View Design Check
原来:用于验证模型设计的 ProductView Validate
验证和跟踪 3D
设计检查过程
Creo View(以前称为
ProductView)可让您立即获得
在行业中领先的可视化解决方案的经过验证的性能,同时帮助您利用 Creo
促使生产效率实现突破性的增长。
模型设计是一种产品开发方法,它从根本上改变了公司设计和制造产品的方式。通过减少或消除 2D
图纸,模型设计过程可以降低开发成本,缩短产品开发周期并改善产品质量。
Creo View Design Check
是一个可选的模块,它提供一种交互式工具,专为增强和改进“设计检查者”功能而设计,该功能是以模型为中心的产品开发过程中的一个关键步骤。
传统上,我们使用笔和纸来检查 2D
图纸,而 Creo View Design Check
用一个基于 3D
模型的可靠解决方案取代了这种难以管理的方法,因而在工程、制造和其他下游参与者之间提供了非常有效的沟通媒介。
结合 Creo View MCAD,此模块通过使用由一个或多个设计检查者实施的产品制造信息
标记,帮助快速验证在 3D
模型中捕捉的设计意图,包括帮助批准、拒绝或质疑特定设计元素 &
这一切全都通过使用实时的
模型作为产品的单一表示形式来进行。在整个过程中,利用生成设计检查报告来追踪和维护完整的标记历史记录。
Creo View Validate for Model-Based
模块帮助设计检查者确认所有关键的几何尺寸和公差标注 (GD&T)
均存在、一致且符合标准。
功能和优势
·利用业界唯一一个 3D
模型设计检查解决方案加快设计周期
·消除创建和验证 2D
图纸所需的时间和工作量
·确保存在关键的几何尺寸和公差标注 (GD&T)
·维护所有设计检查周期的电子标记历史记录
·减少采用模型设计方法所遇到的障碍
·减少因 2D
图纸中的错误而引起的不一致问题
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。您现在的位置:
→creo免费看图工具:Creo View Express 3.0使用说明教程
PTC Creo View Express 是一个免费的浏览器,可以轻松观察creo/proe的三维模型。==更多精彩,源自基本功能介绍:可以查看 Creo/ProE 2D 和 3D 等档案浏览轻量化的大型组件(文件大小是原始档案的1/10)通过转档的单个轻量化档案传输,提升传输数据效率,保护原始设计数据安全各种灵活的模型显示方式和视图方向测量距离、半径、直径和角度创建动态剖面观察模型添加注释、播放动画易于安装和使用==更多精彩,源自Creo View详细操作视频观看:更多Creo视频观看:
【下载PDF】
【下载模型】
【网友留言】:(只显示最新5条)
【您可能还对以下内容感兴趣】:
【同期内容】:
&&⊙-下一篇:
&&⊙-下一篇:
&&⊙-上一篇:
&&⊙-上一篇:
版权所有&无维工作室&&转载请保留完整信息和注明出处。
网站服务热线:&|&
Email:&|&
微博:@无维网粗略的看了一遍,觉得必须要说两句,之前几乎所有人答案都是在没有具体应用方法的背景下讲理论,在实际应用中反而会让人迷糊,HMM用途大多数情况下不会是求隐变量的场合,隐变量具体是什么在很多的学习、分类问题下都是无关紧要的!---------------以下正题----------------首先说马尔科夫,这是基础,没有这个一切都是胡闹,之前很多答案并没有过多的顾及马尔科夫模型的问题,答案只能说是个隐概率模型。马尔科夫模型描述的是当前状态只和前一状态相关的情况。【先打比方】打麻将坐庄,比如现在是东风庄,那么(理想情况下)下把有75%的概率是北风(被胡牌),25%还是东风(自己胡牌),而跟上一把是不是东风庄没有任何关系。这就是一个标准的马尔科夫过程,(考虑心里因素时也可能不是,这里不谈)【再说不恰当的案例】而最多举得天气的例子,就不是很合适,第一,明天下雨的概率现实中绝对不仅依赖于今天是不是晴天,这在建模时需要首先考虑模型的精度,注意,概率模型是以[你所认知的]世界为基础的,在某个问题下,你可以认为全人类得癌症的概率是多少多少,在其他问题下,你可能认为男性女性得癌症的概率分别是多少,这取决于模型的精度和你掌握的信息来定。绝大部分问题不是天生就是马尔科夫的,首先,夏天冬天不一样,梅雨季节更不一样,用术语说,这是时变的,当然你可以在你的模型中忽略这些,”假装”他是马尔科夫的。【再说具体点】作为马尔科夫的过程,就和HMM应用会扯上关系的问题来说,要注意,任何时候,当系统出于某一状态时(也可以是以某一概率处于某些状态),下周期处于状态的概率要是确定的(比如刚说的75%,和25%,数值可以不知道,但一定是不会变的某个值),而不依赖于之前的状态(前天)或系统的其他状态(冬季)。【如果数学一些】由于任何状态迁移到其他状态的概率是确定的,所以我们如果知道本周期的概率分布,就可以求出下周期的分布,方法用中学时代的描述就是分类讨论,而本科阶段开始就用矩阵乘简单处理,这个就不多说了。要注意,能够写成矩阵(也就说概率是确定的)很重要。如果不是,那么就是其他问题了,比如半隐马尔科夫,如果有时间我下面会说,没有的话先坑着。----------------开始HMM,之后讨论有什么用,因为你看完这段肯定不知道怎么用-----------------------HMM针对的问题,必须是一个上面规范定义的过程,为什么?因为数学的求解能力是非常有限的,或许看似简单的变化,导致的可能是不可接受的计算量,【先说定义】所谓的隐,就是看不见的意思。借用一句有切身感觉的话说”当看到方便面中油包变成固体的时候,宅男知道,冬天来了“。这里的季节(冬天)就是隐藏起来的变量,宅男(观察者)不出屋,所以看不到天气,他只可以看到方便面调料(这叫观测)。所谓的HMM,用来描述一个我们看不到系统状态,只能看到观测(但观测和状态之间有确定性的概率关系)的状态。【需要强调的】第一就是刚刚的最后一句,观测和系统的状态之间必须有确定的概率关系,这个关系和系统的运行时间,之前的观测,之前的状态等等都不能有任何关系。也就是任何时候我看到固体的调料包,就代表(90%冬天,10%刚刚春天)。第二就是刚说到的,HMM是用来描述这样一个系统使用的工具,就好像我们可以用矩阵代表一个线性方程组一样。我们可以用HMM模型来表示一个这样的系统,定义它的量包括:(1)每个观测下,系统处于某状态的概率,共计观测类型*系统状态类型 个,(由于概率总和为1,有效的量少观测类型个)。(2)本周期系统处于某状态时,下周期各状态的概率分布(就是刚刚马尔科夫中的那个矩阵),数量为 状态类型 * 状态类型 个(同上,有效的略少)。(3)系统的初始状态分布,就是第一周期时候系统是什么样子,这样我们就可以计算出每周期的概率了。这个值一共有 状态类型个(有效的少一个)----------------------------下面是怎么用HMM-----------------------------刚刚已经说过什么是HMM了,就和高斯分布一样,HMM是描述系统分布的一种手段,那我们怎么用呢?(这里我们只谈用法思路,计算办法网上很多,思路和模型本身关系不是那么密切,就是算了)【最常见的使用方法】我们说使用HMM时,一般时在解决这样的一个问题:当我有一个观测序列(样本)时,它和我所有已经知道的HMM模型哪个最匹配。我们通常会为每个我们预计要检测的东西训练一个HMM(用该类的大量样本)。【沿用刚刚的例子】刚在举例子的时候没想太周全,这里就将就看吧。如果说我们可以用一个HMM描述宅男看方便面的问题的话,那么我们最可能干的事情就是,通过观察方便面油包状态,估计宅男所处的城市。是不是有点意外?居然不是看季节?其实HMM使用时最容易犯的错误就是弄混隐变量和我们的分类结果的关系了,关系就是没有关系!我们首先选取了世界各地宅男看到的油包状态,比如北京的1万个宅男,深圳的1万个,北冰洋的1万个宅男各3年的观察,作为样本,这时,我们系统一共涉及到了这样几个信息:(1)我们预计有3个HMM模型,分别是北京,深圳,北冰洋(2)我们只有2个观测结果,即油包是固态还是液态(3)我们的隐变量通常并不明确,但本例中我们估计系统状态可能是4季,所以我们设定4个隐变量,注意:这4个就代表四季在实际应用中完全就是猜的,而且不见得训练的结果就是四季!【解决例子中的问题】为了完成这个工作,我们要干以下几步:(1)分别利用每个地区的1万个样本,各自训练一个HMM,方法可参考网上各种文章。(2)在实际判断一个宅男的地理位置时,拿到一个观察序列,然后分别计算北京、深圳、北冰洋的HMM能够得到这个观测序列的概率。概率最大的,就是该宅男的所在提。--------------------------------------最后多说几句------------------------------------HMM的求解是一个非常麻烦的事情,可以看成是一个EM迭代的过程,而且求解的变量非常多,这就直接导致了一些约束:(1)观测的种类不能很多,尤其不能是连续过程(2)系统隐状态也不宜太多(3)要检测的目标,也就是HMM的数量,倒不是大问题,因为这是线性增长的,多一倍求解时间只多一倍,一般都能接受
×××××11月22日已更新×××××&br&&br&隐马尔可夫(HMM)好讲,简单易懂不好讲。我认为 &a data-hash=&cd5aebd240bfd& href=&///people/cd5aebd240bfd& class=&member_mention& data-editable=&true& data-title=&@者也& data-tip=&p$b$cd5aebd240bfd&&@者也&/a&的回答没什么错误,不过我想说个更通俗易懂的例子。我希望我的读者不是专家,而是对这个问题感兴趣的入门者,所以我会多阐述数学思想,少写公式。霍金曾经说过,你多写一个公式,就会少一半的读者。所以时间简史这本关于物理的书和麦当娜关于性的书卖的一样好。我会效仿这一做法,写最通俗易懂的答案。&br&&br&还是用最经典的例子,掷骰子。假设我手里有三个不同的骰子。第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。&br&&br&&img src=&/435fb8d2d675dc0be95aedf27feb6b67_b.jpg& data-rawwidth=&1351& data-rawheight=&825& class=&origin_image zh-lightbox-thumb& width=&1351& data-original=&/435fb8d2d675dc0be95aedf27feb6b67_r.jpg&&&br&假设我们开始掷骰子,我们先从三个骰子里挑一个,挑到每一个骰子的概率都是1/3。然后我们掷骰子,得到一个数字,1,2,3,4,5,6,7,8中的一个。不停的重复上述过程,我们会得到一串数字,每个数字都是1,2,3,4,5,6,7,8中的一个。例如我们可能得到这么一串数字(掷骰子10次):1 6 3 5 2 7 3 5 2 4&br&&br&这串数字叫做可见状态链。但是在隐马尔可夫模型中,我们不仅仅有这么一串可见状态链,还有一串隐含状态链。在这个例子里,这串隐含状态链就是你用的骰子的序列。比如,隐含状态链有可能是:D6 D8 D8 D6 D4 D8 D6 D6 D4 D8&br&&br&一般来说,HMM中说到的马尔可夫链其实是指隐含状态链,因为隐含状态(骰子)之间存在转换概率(transition probability)。在我们这个例子里,D6的下一个状态是D4,D6,D8的概率都是1/3。D4,D8的下一个状态是D4,D6,D8的转换概率也都一样是1/3。这样设定是为了最开始容易说清楚,但是我们其实是可以随意设定转换概率的。比如,我们可以这样定义,D6后面不能接D4,D6后面是D6的概率是0.9,是D8的概率是0.1。这样就是一个新的HMM。&br&&br&同样的,尽管可见状态之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做输出概率(emission probability)。就我们的例子来说,六面骰(D6)产生1的输出概率是1/6。产生2,3,4,5,6的概率也都是1/6。我们同样可以对输出概率进行其他定义。比如,我有一个被赌场动过手脚的六面骰子,掷出来是1的概率更大,是1/2,掷出来是2,3,4,5,6的概率是1/10。&br&&br&&img src=&/95ba126e02e370c595000_b.jpg& data-rawwidth=&1508& data-rawheight=&781& class=&origin_image zh-lightbox-thumb& width=&1508& data-original=&/95ba126e02e370c595000_r.jpg&&&br&&img src=&/ae8a9d756089_b.jpg& data-rawwidth=&1384& data-rawheight=&731& class=&origin_image zh-lightbox-thumb& width=&1384& data-original=&/ae8a9d756089_r.jpg&&&br&其实对于HMM来说,如果提前知道所有隐含状态之间的转换概率和所有隐含状态到所有可见状态之间的输出概率,做模拟是相当容易的。但是应用HMM模型时候呢,往往是缺失了一部分信息的,有时候你知道骰子有几种,每种骰子是什么,但是不知道掷出来的骰子序列;有时候你只是看到了很多次掷骰子的结果,剩下的什么都不知道。如果应用算法去估计这些缺失的信息,就成了一个很重要的问题。这些算法我会在下面详细讲。&br&&br&×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××&br&如果你只想看一个简单易懂的例子,就不需要往下看了。&br&×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××&br&说两句废话,答主认为呢,要了解一个算法,要做到以下两点:会其意,知其形。答主回答的,其实主要是第一点。但是这一点呢,恰恰是最重要,而且很多书上不会讲的。正如你在追一个姑娘,姑娘对你说“你什么都没做错!”你要是只看姑娘的表达形式呢,认为自己什么都没做错,显然就理解错了。你要理会姑娘的意思,“你赶紧给我道歉!”这样当你看到对应的表达形式呢,赶紧认错,跪地求饶就对了。数学也是一样,你要是不理解意思,光看公式,往往一头雾水。不过呢,数学的表达顶多也就是晦涩了点,姑娘的表达呢,有的时候就完全和本意相反。所以答主一直认为理解姑娘比理解数学难多了。&br&&br&回到正题,和HMM模型相关的算法主要分为三类,分别解决三种问题:&br&&br&&b&1)知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),我想知道每次掷出来的都是哪种骰子(隐含状态链)。&/b&&br&这个问题呢,在语音识别领域呢,叫做解码问题。这个问题其实有两种解法,会给出两个不同的答案。每个答案都对,只不过这些答案的意义不一样。第一种解法求最大似然状态路径,说通俗点呢,就是我求一串骰子序列,这串骰子序列产生观测结果的概率最大。第二种解法呢,就不是求一组骰子序列了,而是求每次掷出的骰子分别是某种骰子的概率。比如说我看到结果后,我可以求得第一次掷骰子是D4的概率是0.5,D6的概率是0.3,D8的概率是0.2.第一种解法我会在下面说到,但是第二种解法我就不写在这里了,如果大家有兴趣,我们另开一个问题继续写吧。&br&&br&&b&2)还是知道骰子有几种&/b&&b&(隐含状态数量)&/b&&b&,每种骰子是什么&/b&&b&(转换概率)&/b&&b&,根据掷骰子掷出的结果&/b&&b&(可见状态链)&/b&&b&,我想知道掷出这个结果的概率。&/b&&br&看似这个问题意义不大,因为你掷出来的结果很多时候都对应了一个比较大的概率。问这个问题的目的呢,其实是检测观察到的结果和已知的模型是否吻合。如果很多次结果都对应了比较小的概率,那么就说明我们已知的模型很有可能是错的,有人偷偷把我们的骰子給换了。&br&&br&&b&3)知道骰子有几种&/b&&b&(隐含状态数量)&/b&&b&,不知道每种骰子是什么&/b&&b&(转换概率)&/b&&b&,观测到很多次掷骰子的结果&/b&&b&(可见状态链)&/b&&b&,我想反推出每种骰子是什么&/b&&b&(转换概率)&/b&&b&。&/b&&br&这个问题很重要,因为这是最常见的情况。很多时候我们只有可见结果,不知道HMM模型里的参数,我们需要从可见结果估计出这些参数,这是建模的一个必要步骤。&br&&br&问题阐述完了,下面就开始说解法。(0号问题在上面没有提,只是作为解决上述问题的一个辅助)&br&&br&0.一个简单问题&br&其实这个问题实用价值不高。由于对下面较难的问题有帮助,所以先在这里提一下。&br&&br&知道骰子有几种,每种骰子是什么,每次掷的都是什么骰子,根据掷骰子掷出的结果,求产生这个结果的概率。&br&&img src=&/2ca5e20b49d2ad91a9e0_b.jpg& data-rawwidth=&364& data-rawheight=&237& class=&content_image& width=&364&&解法无非就是概率相乘:&br&&img src=&///equation?tex=P%3DP%28D6%29%2AP%28D6%5Crightarrow+1%29%2AP%28D6%5Crightarrow+D8%29%2AP%28D8%5Crightarrow+6%29%2AP%28D8%5Crightarrow+D8%29%2AP%28D8%5Crightarrow+3%29& alt=&P=P(D6)*P(D6\rightarrow 1)*P(D6\rightarrow D8)*P(D8\rightarrow 6)*P(D8\rightarrow D8)*P(D8\rightarrow 3)& eeimg=&1&&&br&&img src=&///equation?tex=%3D%5Cfrac%7B1%7D%7B3%7D+%2A%5Cfrac%7B1%7D%7B6%7D+%2A%5Cfrac%7B1%7D%7B3%7D+%2A%5Cfrac%7B1%7D%7B8%7D+%2A%5Cfrac%7B1%7D%7B3%7D+%2A%5Cfrac%7B1%7D%7B8%7D+& alt=&=\frac{1}{3} *\frac{1}{6} *\frac{1}{3} *\frac{1}{8} *\frac{1}{3} *\frac{1}{8} & eeimg=&1&&&br&&br&&b&1.看见不可见的,破解骰子序列&/b&&br&这里我说的是第一种解法,解最大似然路径问题。&br&举例来说,我知道我有三个骰子,六面骰,四面骰,八面骰。我也知道我掷了十次的结果(1 6 3 5 2 7 3 5 2 4),我不知道每次用了那种骰子,我想知道最有可能的骰子序列。&br&&br&其实最简单而暴力的方法就是穷举所有可能的骰子序列,然后依照第零个问题的解法把每个序列对应的概率算出来。然后我们从里面把对应最大概率的序列挑出来就行了。如果马尔可夫链不长,当然可行。如果长的话,穷举的数量太大,就很难完成了。&br&&br&另外一种很有名的算法叫做Viterbi algorithm. 要理解这个算法,我们先看几个简单的列子。&br&&br&首先,如果我们只掷一次骰子:&br&&img src=&/cd4edec33cd3921ac64bfeb_b.jpg& data-rawwidth=&1477& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&/cd4edec33cd3921ac64bfeb_r.jpg&&&br&看到结果为1.对应的最大概率骰子序列就是D4,因为D4产生1的概率是1/4,高于1/6和1/8.&br&&br&把这个情况拓展,我们掷两次骰子:&br&&img src=&/549e1f2a8dae1abcde44_b.jpg& data-rawwidth=&1477& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&/549e1f2a8dae1abcde44_r.jpg&&&br&结果为1,6.这时问题变得复杂起来,我们要计算三个值,分别是第二个骰子是D6,D4,D8的最大概率。显然,要取到最大概率,第一个骰子必须为D4。这时,第二个骰子取到D6的最大概率是&br&&img src=&///equation?tex=P2%28D6%29%3DP%28D4%29%2AP%28D4%5Crightarrow+1%29%2AP%28D4%5Crightarrow+D6%29%2AP%28D6%5Crightarrow+6%29& alt=&P2(D6)=P(D4)*P(D4\rightarrow 1)*P(D4\rightarrow D6)*P(D6\rightarrow 6)& eeimg=&1&&&br&&img src=&///equation?tex=%3D%5Cfrac%7B1%7D%7B3%7D+%2A%5Cfrac%7B1%7D%7B4%7D+%2A%5Cfrac%7B1%7D%7B3%7D+%2A%5Cfrac%7B1%7D%7B6%7D& alt=&=\frac{1}{3} *\frac{1}{4} *\frac{1}{3} *\frac{1}{6}& eeimg=&1&&&br&同样的,我们可以计算第二个骰子是D4或D8时的最大概率。我们发现,第二个骰子取到D6的概率最大。而使这个概率最大时,第一个骰子为D4。所以最大概率骰子序列就是D4 D6。&br&&br&继续拓展,我们掷三次骰子:&br&&img src=&/ebb5f0bbca544063_b.jpg& data-rawwidth=&1477& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&/ebb5f0bbca544063_r.jpg&&&br&同样,我们计算第三个骰子分别是D6,D4,D8的最大概率。我们再次发现,要取到最大概率,第二个骰子必须为D6。这时,第三个骰子取到D4的最大概率是&img src=&///equation?tex=P3%28D4%29%3DP2%28D6%29%2AP%28D6%5Crightarrow+D4%29%2AP%28D4%5Crightarrow+3%29& alt=&P3(D4)=P2(D6)*P(D6\rightarrow D4)*P(D4\rightarrow 3)& eeimg=&1&&&br&&img src=&///equation?tex=%3D%5Cfrac%7B1%7D%7B216%7D+%2A%5Cfrac%7B1%7D%7B3%7D+%2A%5Cfrac%7B1%7D%7B4%7D& alt=&=\frac{1}{216} *\frac{1}{3} *\frac{1}{4}& eeimg=&1&&&br&同上,我们可以计算第三个骰子是D6或D8时的最大概率。我们发现,第三个骰子取到D4的概率最大。而使这个概率最大时,第二个骰子为D6,第一个骰子为D4。所以最大概率骰子序列就是D4 D6 D4。&br&&br&写到这里,大家应该看出点规律了。既然掷骰子一二三次可以算,掷多少次都可以以此类推。我们发现,我们要求最大概率骰子序列时要做这么几件事情。首先,不管序列多长,要从序列长度为1算起,算序列长度为1时取到每个骰子的最大概率。然后,逐渐增加长度,每增加一次长度,重新算一遍在这个长度下最后一个位置取到每个骰子的最大概率。因为上一个长度下的取到每个骰子的最大概率都算过了,重新计算的话其实不难。当我们算到最后一位时,就知道最后一位是哪个骰子的概率最大了。然后,我们要把对应这个最大概率的序列从后往前推出来。&br&&br&&b&2.谁动了我的骰子?&/b&&br&比如说你怀疑自己的六面骰被赌场动过手脚了,有可能被换成另一种六面骰,这种六面骰掷出来是1的概率更大,是1/2,掷出来是2,3,4,5,6的概率是1/10。你怎么办么?答案很简单,算一算正常的三个骰子掷出一段序列的概率,再算一算不正常的六面骰和另外两个正常骰子掷出这段序列的概率。如果前者比后者小,你就要小心了。&br&&br&比如说掷骰子的结果是:&br&&img src=&/ebb5f0bbca544063_b.jpg& data-rawwidth=&1477& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&/ebb5f0bbca544063_r.jpg&&&br&要算用正常的三个骰子掷出这个结果的概率,其实就是将所有可能情况的概率进行加和计算。同样,简单而暴力的方法就是把穷举所有的骰子序列,还是计算每个骰子序列对应的概率,但是这回,我们不挑最大值了,而是把所有算出来的概率相加,得到的总概率就是我们要求的结果。这个方法依然不能应用于太长的骰子序列(马尔可夫链)。&br&&br&我们会应用一个和前一个问题类似的解法,只不过前一个问题关心的是概率最大值,这个问题关心的是概率之和。解决这个问题的算法叫做前向算法(forward algorithm)。&br&&br&首先,如果我们只掷一次骰子:&br&&img src=&/cd4edec33cd3921ac64bfeb_b.jpg& data-rawwidth=&1477& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&/cd4edec33cd3921ac64bfeb_r.jpg&&&br&看到结果为1.产生这个结果的总概率可以按照如下计算,总概率为0.18:&br&&img src=&/9b76649fefc_b.jpg& data-rawwidth=&1496& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&1496& data-original=&/9b76649fefc_r.jpg&&&br&把这个情况拓展,我们掷两次骰子:&br&&img src=&/549e1f2a8dae1abcde44_b.jpg& data-rawwidth=&1477& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&/549e1f2a8dae1abcde44_r.jpg&&&br&看到结果为1,6.产生这个结果的总概率可以按照如下计算,总概率为0.05:&br&&img src=&/a6e932a53753acdf67085_b.jpg& data-rawwidth=&1496& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&1496& data-original=&/a6e932a53753acdf67085_r.jpg&&&br&&br&继续拓展,我们掷三次骰子:&br&&img src=&/ebb5f0bbca544063_b.jpg& data-rawwidth=&1477& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&1477& data-original=&/ebb5f0bbca544063_r.jpg&&&br&看到结果为1,6,3.产生这个结果的总概率可以按照如下计算,总概率为0.03:&br&&img src=&/ea53d42a8a_b.jpg& data-rawwidth=&1496& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&1496& data-original=&/ea53d42a8a_r.jpg&&&br&&br&同样的,我们一步一步的算,有多长算多长,再长的马尔可夫链总能算出来的。用同样的方法,也可以算出不正常的六面骰和另外两个正常骰子掷出这段序列的概率,然后我们比较一下这两个概率大小,就能知道你的骰子是不是被人换了。&br&&br&&b&3.掷一串骰子出来,让我猜猜你是谁&/b&&br&&b&(答主很懒,还没写,会写一下EM这个号称算法的方法)&br&&/b&&br&上述算法呢,其实用到了递归,逆向推导,循环这些方法,我只不过用很直白的语言写出来了。如果你们去看专业书籍呢,会发现更加严谨和专业的描述。毕竟,我只做了会其意,要知其形,还是要看书的。
×××××11月22日已更新×××××隐马尔可夫(HMM)好讲,简单易懂不好讲。我认为 的回答没什么错误,不过我想说个更通俗易懂的例子。我希望我的读者不是专家,而是对这个问题感兴趣的入门者,所以我会多阐述数学思想,少写公式。霍金曾经说过,你…
&p&摘自我的博客&a href=&http://blog.csdn.net/ppn029012& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&blog.csdn.net/ppn029012&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&p&&b&1. 赌场风云(背景介绍)&/b&&/p&&img src=&/240ab89afad8bff33e442a8d_b.jpg& data-rawwidth=&500& data-rawheight=&261& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/240ab89afad8bff33e442a8d_r.jpg&&&br&&p&最近一个赌场的老板发现生意不畅,于是派出手下去赌场张望。经探子回报,有位大叔在赌场中总能赢到钱,玩得一手好&strong&骰子&/strong&,几乎是战无不胜。而且每次玩骰子的时候周围都有几个保镖站在身边,让人不明就里,&u&只能看到每次开局,骰子飞出&/u&,沉稳落地。老板根据多年的经验,推测这位不善之客使用的正是江湖失传多年的&偷换骰子大法”(编者注:&strong&偷换骰子大法,用兜里自带的骰子偷偷换掉均匀的骰子&/strong&)。老板是个冷静的人,看这位大叔也不是善者,不想轻易得罪他,又不想让他坏了规矩。正愁上心头,这时候进来一位名叫HMM帅哥,告诉老板他有一个很好的解决方案。&/p&&br&&p&不用近其身,只要在远处装个摄像头,把每局的骰子的点数都记录下来。&/p&&p&然后HMM帅哥将会运用其强大的数学内力,用这些数据推导出&/p&&p&1. 该大叔是不是在出千?&/p&&p&2. 如果是在出千,那么他用了几个作弊的骰子? 还有当前是不是在用作弊的骰子。&/p&&p&3. 这几个作弊骰子出现各点的概率是多少?&/p&&br&&p&天呐,老板一听,这位叫HMM的甚至都不用近身,就能算出是不是在作弊,甚至都能算出别人作弊的骰子是什么样的。那么,只要再当他作弊时,派人围捕他,当场验证骰子就能让他哑口无言。&/p&&br&&b&&u&2. HMM是何许人也?&/u&&/b&&p&在让HMM开展调查活动之前,该赌场老板也对HMM作了一番调查。&/p&&p&HMM(Hidden Markov Model), 也称隐性马尔可夫模型,是一个概率模型,用来描述一个系统&strong&隐性状态&/strong&的转移和&strong&隐性状态&/strong&&u&的表现&/u&概率。&/p&&br&&p&&strong&系统的隐性状态&/strong&指的就是一些外界不便观察(或观察不到)的状态,
比如在当前的例子里面, 系统的状态指的是大叔使用骰子的状态,即&/p&&p&{正常骰子, 作弊骰子1, 作弊骰子2,...}&/p&&p&&strong&隐性状态的表现&/strong&也就是,
可以观察到的,由隐性状态产生的外在表现特点。这里就是说, 骰子掷出的点数. &/p&&p&{1,2,3,4,5,6}&/p&&p&HMM模型将会描述,系统&strong&隐性状态的转移概率&/strong&。也就是大叔切换骰子的概率,下图是一个例子,这时候大叔切换骰子的可能性被描述得淋漓尽致。&/p&&img src=&/de1e09aa9c09b1aba45d352_b.jpg& data-rawwidth=&500& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/de1e09aa9c09b1aba45d352_r.jpg&&&br&&br&&p&很幸运的,这么复杂的概率转移图,竟然能用简单的矩阵表达, 其中a_{ij}代表的是从i状态到j状态发生的概率&/p&&img src=&/0a28bf2d267ba6aa16ddebbc_b.jpg& data-rawwidth=&183& data-rawheight=&67& class=&content_image& width=&183&&&p&当然同时也会有,&strong&隐性状态表现转移&/strong&概率。也就是骰子出现各点的概率分布,
(e.g. 作弊骰子1能有90%的机会掷到六,作弊骰子2有85%的机会掷到'小’). 给个图如下,&/p&&img src=&/2f6e49ac23b9f99cc21cf_b.jpg& data-rawwidth=&500& data-rawheight=&245& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/2f6e49ac23b9f99cc21cf_r.jpg&&&br&&p&隐性状态的表现分布概率也可以用矩阵表示出来,&/p&&img src=&/ac_b.jpg& data-rawwidth=&325& data-rawheight=&66& class=&content_image& width=&325&&&br&&p&把这两个东西总结起来,就是整个HMM模型。&/p&&br&&p&这个模型描述了隐性状态的转换的概率,同时也描述了每个状态外在表现的概率的分布。总之,HMM模型就能够描述扔骰子大叔作弊的频率(骰子更换的概率),和大叔用的骰子的概率分布。有了大叔的HMM模型,就能把大叔看透,让他完全在阳光下现形。&/p&&br&&b&3. HMM能干什么!&/b&&p&总结起来HMM能处理三个问题,&/p&3.1 解码(Decoding)&p&解码就是需要从一连串的骰子中,看出来哪一些骰子是用了作弊的骰子,哪些是用的正常的骰子。&/p&&img src=&/4a40f1a93aa25adce92fcfb9_b.jpg& data-rawwidth=&500& data-rawheight=&200& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/4a40f1a93aa25adce92fcfb9_r.jpg&&&p&比如上图中,给出一串骰子序列(3,6,1,2..)和大叔的HMM模型, 我们想要计算哪一些骰子的结果(隐性状态表现)可能对是哪种骰子的结果(隐性状态).&/p&&br&3.2学习(Learning)&p&学习就是,从一连串的骰子中,学习到大叔切换骰子的概率,当然也有这些骰子的点数的分布概率。这是HMM最为&strong&恐怖&/strong&也最为&strong&复杂&/strong&的招数!!&/p&3.3 估计(Evaluation)&p&估计说的是,在我们&strong&&em&&u&已经知道&/u&&/em&&/strong&了该大叔的HMM模型的情况下,估测某串骰子出现的可能性概率。比如说,在我们已经知道大叔的HMM模型的情况下,我们就能直接估测到大叔扔到10个6或者8个1的概率。&/p&&br&&b&4. HMM是怎么做到的?&/b&&br&4.1 估计&p&估计是最容易的一招,在完全知道了大叔的HMM模型的情况下,我们很容易就能对其做出估计。&/p&&p&现在我们有了大叔的状态转移概率矩阵A,B就能够进行估计。比如我们想知道这位大叔下一局连续掷出10个6的概率是多少? 如下&/p&&img src=&/f893ed100b894616bffef0bae9f461da_b.jpg& data-rawwidth=&421& data-rawheight=&21& class=&origin_image zh-lightbox-thumb& width=&421& data-original=&/f893ed100b894616bffef0bae9f461da_r.jpg&&&br&&p&这表示的是,在一开始隐性状态(s0)为1,也就是一开始拿着的是&strong&正常的骰子&/strong&的情况下,这位大叔连续掷出10个6的概率。&/p&&p&现在问题难就难在,我们虽然知道了HMM的转换概率,和观察到的状态V{1:T}, 但是我们却不知道实际的隐性的状态变化。&/p&&p&好吧,我们不知道隐性状态的变化,那好吧,我们就先&strong&假设&/strong&一个&strong&&u&隐性状态序列&/u&&/strong&,
假设大叔前5个用的是正常骰子, 后5个用的是作弊骰子1. &/p&&img src=&/468da543ad107d845bc42_b.jpg& data-rawwidth=&316& data-rawheight=&21& class=&content_image& width=&316&&&br&&p&好了,那么我们可以计算,在这种隐性序列假设下掷出10个6的概率.&br&&/p&&img src=&/4f15b94f31eb9fbeb90e730_b.jpg& data-rawwidth=&236& data-rawheight=&54& class=&content_image& width=&236&&&br&这个概率其实就是,隐性状态表现概率B的乘积.&br&&img src=&/c1616bab1b90e3daa3b01c93a27f5c07_b.jpg& data-rawwidth=&339& data-rawheight=&54& class=&content_image& width=&339&&&br&&p&但是问题又出现了,刚才那个隐性状态序列是我假设的,而实际的序列我不知道,这该怎么办。好办,把&strong&所有可能出现&/strong&的隐状态序列组合全都试一遍就可以了。于是,&/p&&br&&img src=&/b007c2ede871bc5c52e24b6_b.jpg& data-rawwidth=&317& data-rawheight=&260& class=&content_image& width=&317&&&br&R就是所有可能的&u&隐性状态序列的集合。&/u&的嗯,现在问题好像解决了,我们已经能够通过尝试所有组合来获得出现的概率值,并且可以通过A,B矩阵来计算出现的总概率。&br&&br&但是问题又出现了,可能的集合太大了, 比如有三种骰子,有10次选择机会, 那么总共的组合会有3^10次...这个量级O(c^T)太大了,当问题再大一点时候,组合的数目就会大得超出了计算的可能。所以我们需要一种更有效的计算P(V(1:T)概率的方法。&br&比如说如下图的算法可以将计算P(V1:T)的计算复杂度降低至O(cT).&br&&img src=&/7a7efeb3e50a827cddde360f_b.jpg& data-rawwidth=&544& data-rawheight=&675& class=&origin_image zh-lightbox-thumb& width=&544& data-original=&/7a7efeb3e50a827cddde360f_r.jpg&&&br&&br&有了这个方程,我们就能从t=0的情况往前推导,一直推导出P(V1:T)的概率。下面让我们算一算,大叔掷出3,2,1这个骰子序列的可能性有多大(假设初始状态为1, 也就是大叔前一次拿着的是正常的骰子)?&br&&br&&b&4.2 解码(Decoding)&/b&&p&解码的过程就是在给出一串序列的情况下和已知HMM模型的情况下,找到最可能的隐性状态序列。&/p&&img src=&/4a40f1a93aa25adce92fcfb9_b.jpg& data-rawwidth=&500& data-rawheight=&200& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/4a40f1a93aa25adce92fcfb9_r.jpg&&&br&&p&用数学公式表示就是,
(V是Visible可见序列, w是隐性状态序列, A,B是HMM状态转移概率矩阵)&/p&(公式太多,请具体看我博客中的推导&a href=&http://blog.csdn.net/ppn029012/article/details/8923501& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习 --- 4. 大内密探HMM(隐马尔可夫)围捕赌场老千&i class=&icon-external&&&/i&&/a&)&br&&p&然后又可以使用&strong&估计(4.1)&/strong&中的&strong&前向推导法&/strong&,计算出最大的P(w(1:T),
V(1:T)).&/p&&p&在完成前向推导法之后,再使用&strong&后向追踪法&/strong&(Back
Tracking),对求解出能令这个P(w(1:T), V(1:T))最大的隐性序列.这个算法被称为维特比算法(Viterbi Algorithm).&/p&&br&&b&4.3 学习(Learning)&/b&&p&学习是在给出HMM的结构的情况下(比如说假设已经知道该大叔有3只骰子,每只骰子有6面),计算出最有可能的模型参数.&/p&(公式太多,请具体看我博客中的推导&a href=&http://blog.csdn.net/ppn029012/article/details/8923501& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习 --- 4. 大内密探HMM(隐马尔可夫)围捕赌场老千&i class=&icon-external&&&/i&&/a&)&br&&br&&b&5. HMM 的应用&/b&&p&以上举的例子是用HMM对掷骰子进行建模与分析。当然还有很多HMM经典的应用,能根据不同的应用需求,对问题进行建模。&/p&&br&&p&但是使用HMM进行建模的问题,必须满足以下条件,&/p&&p&1.&strong&隐性状态的转移&/strong&必须满足马尔可夫性。(状态转移的马尔可夫性:一个状态只与前一个状态有关)&/p&&p&2. 隐性状态必须能够大概被估计。&/p&&p&在满足条件的情况下,确定问题中的&strong&隐性状态是什么&/strong&,隐性状态的&strong&表现&/strong&可能又有哪些.&/p&&p&HMM适用于的问题在于,真正的状态(隐态)难以被估计,而状态与状态之间又存在联系。&/p&&br&&b&5.1 语音识别&/b&&p&语音识别问题就是将一段&strong&语音信号&/strong&转换为&strong&文字序列&/strong&的过程.
在个问题里面&/p&&p&隐性状态就是: 语音信号对应的文字序列&/p&&p&而显性的状态就是: 语音信号.&/p&&br&&img src=&/8ea5a05ed423c75e283dac52bc378604_b.jpg& data-rawwidth=&500& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/8ea5a05ed423c75e283dac52bc378604_r.jpg&&&br&&p&HMM模型的学习(Learning): 语音识别的模型学习和上文中通过观察骰子序列建立起一个最有可能的模型&strong&不同&/strong&. 语音识别的HMM模型学习有两个步骤:&/p&&p&1. 统计文字的发音概率,建立隐性表现概率矩阵B&/p&&p&2. 统计字词之间的转换概率(这个步骤并不需要考虑到语音,可以直接统计字词之间的转移概率即可)&/p&&br&&p&语音模型的估计(Evaluation): 计算&是十四”,&四十四&等等的概率,比较得出最有可能出现的文字序列.&/p&&br&&br&&p&&strong&5.2 手写识别&/strong&&/p&&p&这是一个和语音差不多,只不过手写识别的过程是将字的图像当成了显性序列.&/p&&br&&b&5.3 中文分词&/b&&p&“总所周知,在汉语中,词与词之间不存在分隔符(英文中,词与词之间用空格分隔,这是天然的分词标记),词本身也缺乏明显的形态标记,因此,中文信息处理的特有问题就是如何将汉语的字串分割为合理的词语序。例如,英文句子:you
should go to kindergarten now 天然的空格已然将词分好,只需要去除其中的介词“to”即可;而“你现在应该去幼儿园了”这句表达同样意思的话没有明显的分隔符,中文分词的目的是,得到“你/现在/应该/去/幼儿园/了”。那么如何进行分词呢?主流的方法有三种:第1类是基于语言学知识的规则方法,如:各种形态的最大匹配、最少切分方法;第2类是基于大规模语料库的机器学习方法,这是目前应用比较广泛、效果较好的解决方案.用到的统计模型有N元语言模型、信道—噪声模型、最大期望、HMM等。第3类也是实际的分词系统中用到的,即规则与统计等多类方法的综合。”[1]&a href=&/itenyh%E7%89%88-%E7%94%A8hmm%E5%81%9A%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E4%B8%80%EF%BC%9A%E5%BA%8F& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&使用HMM进行中文分词.&i class=&icon-external&&&/i&&/a&&/p&5.4 HMM实现拼音输入法&p&拼音输入法,是一个估测拼音字母对应想要输入的文字(隐性状态)的过程(比如, ‘pingyin’ -& 拼音)&/p&&p&&a href=&/archives/1008& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&使用HMM实现简单拼音输入法&i class=&icon-external&&&/i&&/a&&br&&/p&&br&&br&&p&参考:&/p&&p&&a href=&http://ai.stanford.edu/~serafim/CS262_2007/notes/lecture5.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&ai.stanford.edu/~serafi&/span&&span class=&invisible&&m/CS262_2007/notes/lecture5.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&
摘自我的博客1. 赌场风云(背景介绍)最近一个赌场的老板发现生意不畅,于是派出手下去赌场张望。经探子回报,有位大叔在赌场中总能赢到钱,玩得一手好骰子,几乎是战无不胜。而且每次玩骰子的时候周围都有几个保镖站在身边,让人不明就…
基督徒,研究机器人、模式识别

我要回帖

更多关于 模型轻量化 sp3d 的文章

 

随机推荐