数学之美-隐含马尔可夫模型-笔记

强化学习-马尔可夫模型 前文提到了强化学习源自马尔可夫决策过程,本文从马尔可夫概念入手,讲解和马尔可夫有关的模型和概念。在马尔科夫决策过程中,我们有一个智能体,它在一个马尔科夫过程中进行决策,每次决策都会导致状态的转移和获得即时奖励。智能体的目标是通过选择动作来最大化未来奖励的期望值。通常马尔科夫决策过程是个五元组:SAPRγSAPRγS 表示状态集合,代表智能体可能处于的所有状态。A 表示动作集合,代表智能体可以采取的所有动作。 阅读详情

《数学之美》吴军 著 第二版 ——读书笔记

原理


通信模型:

Created with Raphaël 2.1.2 信息、上下文 信息、上下文 传递的信息 传递的信息 接收的信息 接收的信息 (s1,s2...)编码 发送者 (o1,o1,...)解码 信道 接收者

…
几乎所有的自然语言处理问题等可以等价成通信的编码问题。


在通信中,如何根据接收端的观测信号 o1,o2,... o 1 , o 2 , . . . 来推测信号源发送的信息 s1,s2,... s 1 , s 2 , . . . 呢?只需要从所有的源信息中找到最可能产生出观测信息的那一个信息。即求
P(s1,s2,...|o1,o2,...) P ( s 1 , s 2 , . . . | o 1 , o 2 , . . . ) 达到最大值的那个信息串s1,s2,…
利用贝叶斯变换成:

P(o1,o2,...|s1,s2,...)⋅P(s1,s2,...)P(o1,o2,...) P ( o 1 , o 2 , . . . | s 1 , s 2 , . . . ) · P ( s 1 , s 2 , . . . ) P ( o 1 , o 2 , . . . )

因为一旦信息 o1,o2,... o 1 , o 2 , . . . 产生, P(o1,o2,...) P ( o 1 , o 2 , . . . ) 就是一个可以忽略的常数。因此上面公式等价为

P(o1,o2,...|s1,s2,...)⋅P(s1,s2,...)    ...1 P ( o 1 , o 2 , . . . | s 1 , s 2 , . . . ) · P ( s 1 , s 2 , . . . )         . . .1

这个公式可以由隐含马尔科夫模型来估计。


隐含马尔科夫模型(Hidden Markov Model)其实并不是19世纪俄罗斯数学家马尔科夫发明的,而是美国数学家鲍姆等人六七十年代发表的一系列论文中提出的。

马尔科夫链。到了19世纪,概率论的发展从对随机变量的研究发展到对随机变量的时间序列 s1,s2,... s 1 , s 2 , . . . ,即随机过程的研究。举一个例子,我们可以把 s1,s2,...,st,... s 1 , s 2 , . . . , s t , . . . 看成北京每天的最高气温,这里面每个状态st都是随机的。第二,任一状态st的取值都可能和周围其它状态相关。这样随机过程就有了两个维度的不确定性。马尔科夫为了简化问题,提出了一种简化的假设,即随机过程中各个状态 st s t 的概率分布,只与它的前一个状态 st−1 s t − 1 有关,
即

P(st|s1,s2,...,st−1)=P(st|st−1). P ( s t | s 1 , s 2 , . . . , s t − 1 ) = P ( s t | s t − 1 ) .

这个假设后来被命名为马尔科夫假设,而符合这个假设的随机过程称为马尔科夫过程,也称马尔科夫链。

马尔科夫链:

1

隐含马尔科夫模型是上述马尔科夫链的一个扩展:任一时刻t的状态 st s t 是不可见的。
隐含马尔科夫模型在每个时刻t会输出一个符号 ot o t ,而且 ot o t 跟 st s t 相关且仅跟 st s t 相关。这个被称为独立输出假设。
隐含马尔科夫模型(y代表s,x代表o):
2

基于马尔科夫假设和独立输出假设,我们可以计算出某个特定的状态序列 s1,s2,... s 1 , s 2 , . . . 产生出输出符号 o1,o2,... o 1 , o 2 , . . . 的概率。

P(s1,s2,...,o1,o2,...)=∏tP(st|st−1)⋅P(ot|st)     ...2 P ( s 1 , s 2 , . . . , o 1 , o 2 , . . . ) = ∏ t P ( s t | s t − 1 ) · P ( o t | s t )           . . .2

公式2与公式1形态上相似,它是由下面两个公式带入公式1得到:

P(o1,o2,...|s1,s2,...)=∏tP(ot|st)P(s1,s2,...)=∏tP(st|st−1) P ( o 1 , o 2 , . . . | s 1 , s 2 , . . . ) = ∏ t P ( o t | s t ) P ( s 1 , s 2 , . . . ) = ∏ t P ( s t | s t − 1 )


应用

语音识别 机器翻译 图像处理 基因序列分析 拼写纠错等


其它资源

知乎理解-如何用简单易懂的例子解释隐马尔可夫模型
优快云-马尔科夫模型学习
【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)

数学之美笔录(3):隐含马尔可夫模型(详解) **隐含马尔可夫模型**HMM(Hidden Markov Model)是一个数学模型,到目前为之,它一直被认为是实现快速精确语音识别系统的最为快速有效的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决。   自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 – 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端 阅读详情

相关推荐

《数学之美》——第五章 个人笔记

                                           数学之美最近在读《数学之美》这本书,做一下个人笔记。看的是PDF,看完后会买一本的哦!版权意识还是有的。ps:图片文字都是这本书中的内容,侵权立删。会有点自己的理解。第五章     隐含马尔可夫模型1 通信模型通信的本质是一个编解码和传输的过程。典型的通信系统:包含雅格布森通信的六个要素:发送者(信息源),信道,...

qq_41010142的博客 958

用简单易懂的例子解释隐马尔可夫模型

隐马尔可夫(HMM)好讲,简单易懂不好讲。我认为 @者也的回答没什么错误,不过我想说个更通俗易懂的例子。我希望我的读者不是专家,而是对这个问题感兴趣的入门者,所以我会多阐述数学思想,少写公式。霍金曾经说过,你多写一个公式,就会少一半的读者。所以时间简史这本关于物理的书和麦当娜关于性的书卖的一样好。我会效仿这一做法,写最通俗易懂的答案。 还是用最经典的例子,掷骰子。假设我手里有三个不同的骰子。

sy_mira1111的博客 4638

Google 黑板报 -- 数学之美 系列

Google 黑板报 -- 数学之美 系列Google 黑板报 -- 数学之美 系列一 -- 统计语言模型 Google 黑板报 -- 数学之美 系列二 -- 谈谈中文分词 Google 黑板报 -- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用 Google 黑板报 -- 数学之美 系列四 -- 怎样度量信息 Google 黑板报 -- 数学之美 系列五 -

tattarrattat的专栏 5717

人工智能-马尔可夫模型

(马尔可夫与马尔科夫都可以,所以也别纠结) 马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的统计工具。          -----------百度 对于马尔科夫实际上是根据根据历史数据和其中的规律,总结出变化的规律,使用概率转移图的形式来推断...

iamsongyu的博客 2万+

马尔科夫模型 详解

可以理解为从 �+1 到 � 时刻的部分观测序列并不存在(不必考虑),因此规定 ��(�) 的值为1。其中,���为隐状态转移矩阵,��(��+1)为隐状态-显状态发散概率,��+1(�)为�后面序列对应的后向概率。此时为初始分布,即�0=(�0(1),�0(2),�0(3))=(0.3,0.4,0.3),其中��(�)=�(��=�),�=1,2,3,则有�1=�0∗�,��=�0∗��。其中 ∑�=1���(�)��� 表示上层所有节点到当前层节点的连接, ��(��+1) 为隐状态-显状态发散概率。

具身机器人和通用AI 4790

备战2025数学建模美赛——马尔可夫模型

马尔可夫过程是指满足“无记忆性”假设的随机过程,即系统的未来状态只与当前状态相关,与过去的状态无关。形式化地,马尔可夫过程可以定义为一组随机变量{Xₙ},其中每个随机变量表示在时间点n的系统状态。对于任意的n,系统的状态转移满足:即,未来的状态只依赖于当前状态,而与过去的状态无关。

YOLO 642

什么是马尔可夫模型

马尔可夫模型(Markov Model)是一种基于马尔可夫性假设的随机过程模型,用于描述系统在一系列状态间的转移行为。本文描述了马尔可夫性假设、马尔可夫模型的基本要素、马尔可夫模型的类型、性质与推导和马尔可夫模型的应用。

彬彬侠的博客 4700

《数学之美》读书笔记和知识点总结

文字和数字的起源 很久以前人类以不同的叫声表示不同的信息,达到彼此交流的目的,当所要表达的信息太多时,叫声已经不够用了,于是文字产生了。   文字:知道“罗塞塔”石碑的典故。 信息冗余的重要性:当石碑经历风吹日晒,一部分文字被腐蚀掉时,还有另一部分重复的文字作为备份,可以还原石碑的信息。类似的还有人体的DNA,在人体当中,有99%的DNA是无效的,正是这99%保证了人类的正常繁衍,当遇人类

wenyusuran的专栏 3871

数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用

导读:   发表者:吴军,Google 研究员   前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决,让我不由由衷地感叹数学模型之妙。   自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 -- 一个人根据接收到的信息,去猜测发话人要表达

xu的blog 1323

(超详细)互补格雷码+相移码求解包裹相位(Python实现)

记录实现“互补格雷码+相移码”求解包裹相位的编码过程。也可以叫它“5+4”法,5代表五幅格雷码图像,4代表四步相移法的四张正弦条纹图。

暴雨梨花博客 3万+

DPABI安装教程

DPABI是是中科院心理研究所严超赣老师团队开发的一款磁共振脑影像数据分析工具包。基于SPM,在安装DPABI之前需要安装好SPM,才能正常使用。SPM的安装方法见文matlab2021a版本条件下安装spm_kidllll的博客-优快云博客 1、下载安装包 下载地址:DPABI: a toolbox for Data Processing & Analysis for Brain Imaging | The R-fMRI Network 2、将下载好的dpabi文件夹移动到matl..

qq_42356925的博客 1万+

隐含马尔可夫模型

语言和通信之间存在天然的联系。两个人对话的时候说话的一方就相当于是信息源,而声带、空气等就相当于是传输的通道,听的一方相当于信息的接收方。 那么现在要做的就是根据接收端的观测信号o1, o2, o3...推测信号源发送的信息s1,s2,s3...。其实这就需要从所有的源信息中找到最可能产生出观测信号的哪一个信息即 P(s1,s2,s3...|o1,o2,o3...)需达到最大值。根据贝

Edward yam的博客 2465

基于STM32的PID恒温恒湿控制系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了基于双路PID算法的恒温恒湿闭环控制系统,覆盖高精度温湿度采集、双模式控制、参数在线配置、异常安全保护、掉电记忆等全功能,全程采用无跳步保姆式教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 346

数学之美系列之三:隐含马尔可夫模型在语言处理中的应用

 前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决,让我不由由衷地感叹数学模型之妙。自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 -- 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端收到的信号去分析、理解、

G.T@优快云程序志 823

YOLOv8损失函数升级:从CIoU到Wise-IoU v3的实战调优与避坑指南

本文详细介绍了如何将YOLOv8的损失函数从CIoU升级到Wise-IoU v3,以提升目标检测性能,特别是在小目标检测和样本不均衡场景下的表现。通过实战调优步骤和避坑指南,帮助开发者有效应用Wise-IoU v3的动态聚焦机制和单调性控制,显著提升模型精度和训练稳定性。

weixin_33737774的博客 590

把慢点掰开看:在 SAP HANA 中启用 SQL 优化耗时跟踪 SqlOptTime 的实战指南

摘要:SAP HANA 性能排查中,常出现SQL查询时快时慢的现象,表面看似执行问题,实则是编译阶段耗时过长。通过SQL优化跟踪工具SqlOptStep和SqlOptTime,可精准区分编译与执行时间。SqlOptStep展示优化树变化过程,而SqlOptTime则记录各阶段耗时,帮助定位问题根源。启用SqlOptTime需配置traceprofile,建议限定特定用户以减少系统负载。实际案例显示,报表响应慢常由计算视图编译(CeQo)导致,而非执行阶段问题。解决方案包括调整计算视图展开方式或优化基础视图结

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1009

《数学之美》读书记录【思维导图记录】:第五章,隐含马尔可夫模型

隐含马尔可夫模型: 补充资料: 状态转移矩阵: 状态转移矩阵是俄国数学家马尔科夫提出的,他在20世纪初发现:一个系统的某些因素在转移过程中,第n次结果只受第n-1的结果影响,即只与当前所处状态有关,而与过去状态无关。 在马尔科夫分析中,引入状态转移这个概念。所谓状态是指客观事物可能出现或存在的状态;状态转移是指客观事物由一种状...

dianchougao5936的博客 522

【ARM Trace32(劳特巴赫) 高级篇 20 -- SNOOPer 使用介绍】

在 Lauterbach TRACE32 调试系统中,Snooper是一种特殊的监视工具,它能够在不中断处理器执行的情况下监视和记录特定内存地址的数据变化。这对于系统级调试、性能分析、数据流监视以及实时系统的问题追踪特别有用,尤其是在无法使用中断的情况下。当你设置了一个或多个Snooper时,TRACE32 硬件将不断地监视指定的内存地址,一旦发生了读写操作,就会将相关信息记录下来。这样你就可以看到某个地址的数据是什么时候以及如何被修改的,而不会影响目标系统的运行。

CodingCos的博客 2765

隐含马尔可夫模型在语言处理中的应用

2006年4月17日 上午 08:01:00 发表者:吴军,Google 研究员 前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决,让我不由由衷地感叹数学模型之妙。 自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 -- 一个人

日新为道的专栏 750

【PCIe 总线及设备入门学习专栏 6.2 -- PCIe VDM (Vendor Defined Messages)】

在PCIe协议中,Vendor Defined Messages (VDMs) 是一种允许厂商定义和传输特定功能的消息类型。这种机制扩展了标准 PCIe 消息的功能,可以用于实现供应商自定义的功能,例如固件更新、设备配置和诊断信息传输。PCIe VDM 是通过实现的,它遵循 PCIe 协议栈的结构,包括事务层、数据链路层和物理层。

CodingCos的博客 1898

在 SAP GUI 里开发与调用 Adobe PDF 表单:SFP 建模 + Driver Program 调用的全流程实战

本文介绍了在SAP系统中使用Adobe PDF表单的完整流程。重点阐述了SAP Interactive Forms相比传统表单工具的优势,特别是在处理复杂排版、条码和交互式字段时的适用性。文章详细说明了开发流程:从安装设计工具Adobe LiveCycle Designer开始,到在SFP事务码中创建Interface和Form的数据模型,再到编写驱动程序的ABAP代码实现PDF输出。特别强调了Interface作为数据契约的重要性,以及如何通过分层设计实现前后端分离开发。最后提供了标准调用链的示例代码,展

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 277

数学之美 读书心得与笔记

数学之美 读书心得与笔记 文章目录数学之美 读书心得与笔记读书心得读书笔记第一章:文字和语言 vs 数字和信息第二章 自然语言处理——从规则到统计第三章 统计语言模型第四章 分词第五章 隐含马尔可夫模型第六章 信息的度量和作用第七章 贾里尼克和现代语言处理第八章 简单之美——布尔代数和搜索引擎第九章 图论和网络爬虫第十章 Page Rank——Google的民主表决式网页排名技术第十一章 如何确定网页和查询的相关性第十二章 有限状态机和动态规划——地图与本地搜索的核心技术第十三章 Google AK-47

关心粮食和蔬菜 1268

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

MATLAB 实现基于灰色隐含马尔可夫过程(HMMP)进行时间序列预测模型的项目详细实例

本项目通过引入灰色隐含马尔可夫过程(HMMP)来解决时间序列预测问题,展示了在复杂、非线性、噪声较大的数据环境中,如何有效结合灰色系统理论与隐含马尔可夫模型,以获得较高精度的预测结果。在未来的发展中,项目将在深度学习、自动化模型优化、实时预测等方向不断扩展,进一步提升时间序列预测的能力,并促进各类行业的智能化决策。如何优化模型参数,改进灰色系统与隐含马尔可夫模型的结合方式,如何提高模型在复杂场景中的稳定性和泛化能力,都是当前亟待解决的重要问题。在部署过程中,模型会定期加载并通过新的数据进行再训练与优化。

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 1180

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

一文读懂《数学之美》

《数学之美》揭示了数学作为改变世界的秘密语言。吴军博士通过生动的案例展示了数学如何塑造现代科技:从Google的PageRank算法到自然语言处理的统计模型,从数据压缩的信息论原理到推荐系统的矩阵分解,再到垃圾邮件过滤的贝叶斯方法。这些技术突破都源于对数学本质的深刻理解——用简单优雅的公式捕捉复杂现象的核心规律。书中特别强调,最有效的算法往往基于最基础的数学原理,如概率统计、矩阵运算和信息论。这些数学工具不仅推动了技术进步,更展现了数学作为描述世界的通用语言的独特美感。

心一信息 1004

《数学之美》之悟——学懂数学为何如此重要?

2013.9.15 在这周里,我逐渐养成了自己的良好习惯,每天至少看一小时文献,观看机器学习公开课视频,每晚离开实验室之前记录好一天的工作内容及进度。我相信,在良好规划的指引下,进步会越来越明显。现在主要精力还是放在论文阅读和写作上,那天导师问我有个小项目做不做,我没有回答,大概他从我的眼神里看到了我的拒绝,他也没问下文了。我想如果项目超过了五十万,那么我会帮忙做下,如果没...

weixin_30407099的博客 112

读书分享:《数学之美》中的一些关键名词

最近两周在拜读吴军的《数学之美》,对NLP中的一些“道”了解了一下,感受到了数学的强大,其中有一些名词很有代表性,特此记录,以免遗忘。 一、 ...

Cyber的博客 1465
上一篇: python数据可视化-matplotlib之散点图sactter函数详解
下一篇: 人类赋予人工智能伦理,生物进化方向的突破是关键【刘锋博士南科大发言】
lingpy
博客等级 码龄9年 198粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lingpy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值