NLP基础 : HMM 隐马尔可夫模型

隐马尔科夫模型HMM(一)HMM模型 什么样的问题需要HMM模型 首先我们来看看什么样的问题解决可以用HMM模型。使用HMM模型时我们的问题一般有这两个特征:1)我们的问题是基于序列的,比如时间序列,或者状态序列。2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。 有了这两个特征,那么这个问题一般可以用HMM模型来尝试解决。这样的问题在实际生活中是很多的。比如... 阅读详情

Hidden Markov Model, HMM 隐马尔可夫模型,是一种描述隐性变量(状态)和显性变量(观测状态)之间关系的模型。该模型遵循两个假设,隐性状态i只取决于前一个隐性状态i-1,而与其他先前的隐形状态无关。观测状态也只取决于当前的隐形状态。因此我们常常将隐马尔科夫模型表现为一种如下图所示链式的模型。
显性状态链与隐性状态链图示
其中, x t x_t xt​代表某一时刻的隐形状态链,其N个状态取值集合为 { s 1 , s 2 , s 3 , . . . , N } \{s_1,s_2,s_3,...,_N\} { s1​,s2​,s3​,...,N​}。 y t y_t yt​表示为对应的该时刻的显性状态(观测状态),其M个状态取值集合为 { o 1 , o 2 , o 3 , . . . , o k , . . . , o M } \{o_1,o_2,o_3,...,o_k,...,o_M\} { o1​,o2​,o3​,...,ok​,...,oM​}。隐马尔科夫模型 θ \theta θ可以由三个矩阵来进行描述 θ = ( A , B , Π ) \theta = (A,B,\Pi) θ=(A,B,Π)。

1. 大小为 N*N (N代表N种隐性的状态)的过渡矩阵 A:

A = { a i j } = { P ( x t + 1 = s j ∣ x t = s i ) } = { P ( s j ∣ s i ) } A = \{a_{ij}\} = \{P(x_{t+1}=s_j|x_t=s_i)\} = \{P(s_j|s_i)\} A={ aij​}={ P(xt+1​=sj​∣xt​=si​)}={ P(sj​∣si​)}
过渡矩阵A中的每一个元素表示由上一个隐性状态 s i s_i si​变为下一个隐性状态的条件概率。

2. 大小为 1*N 的初始概率向量 Π \Pi Π :

Π = π i = P ( x 1 = s i ) = P ( s i ) \Pi ={\pi_i} = {P(x_1 = s_i)} = {P(s_i)} Π=πi​=P(x1​=si​)=P(si​)
初始概率向量 Π \Pi Π中的每一个元素,表示初始隐性状态为 s i s_i si​的概率,该向量的长度N与隐性状态的可能取值个数相同。

3. 大小为 M*N 的观测矩阵 B :

B = { b k i } = { P ( y t = o k ∣ x t = s i ) } = { P ( o k ∣ s i ) } B = \{b_{ki}\} = \{P(y_t=o_k|x_t=s_i)\} = \{P(o_k|s_i)\} B={ bki​}={ P(yt​=ok​∣xt​=si​)}={ P(ok​∣si​)}

观测矩阵B中的每个元素,是用来描述N个隐形状态对应M个观测状态的概率。即在隐形状态为 s i s_i si​ 的条件下,观测状态为 o k o_k ok​的概率。

上述三个矩阵构成了一个完整的隐马尔可夫模型。

掷骰子问题可以帮助我们更好地理解显性状态链和隐性状态链。例如我们有三个面数不一样的骰子可供选择投掷,三个骰子一个面数为4,一个面数为6,一个面数为8。每次选择的骰子是随机的且满足继续选到同一个骰子的概率是选到其他骰子概率的两倍。此时,隐性状态链 x t x_t xt​就是我们每次选择的骰子,取值集合就是骰子1,骰子2,骰子3。显性状态链就是我们掷出的一系列数值,取值集合为 { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } \{1,2,3,4,5,6,7,8\} { 1,2,3,4,5,6,7,8}。
根据上述的信息,我们不难整理出这个骰子问题HMM模型的三个核心矩阵 :

过渡矩阵A

previous state \ current state D4 D6 D8
D4 2 3 \frac{2}{3} 32​ 1 6 \frac{1}{6} 61​ 1 6 \frac{1}{6} 61​
D6 1 6 \frac{1}{6} 61​ 2 3 \frac{2}{3} 32​ 1 6 \frac{1}{6} 61​
D8 1 6 \frac{1}{6} 61​ 1 6 \frac{1}{6} 61​ 2 3 \frac{2}{3} 32​

初始概率向量 Π \Pi Π
由于一开始是随机选取骰子,因此初始抽到三个骰子的概率是相同的 1 3 \frac{1}{3} 31​。

D4 D6 D8
1 3 \frac{1}{3} 31​ 1 3 \frac{1}{3} 31​ 1 3 \frac{1}{3} 31​

观测矩阵B :
观测矩阵存放了每种隐性状态下各观测状态的条件概率

observed state \ hidden state D4 D6 D8
1 1 4 \frac{1}{4} 41​ 1 6 \frac{1}{6} 61​ 1 8 \frac{1}{8} 81​
2 1 4 \frac{1}{4} 41​ 1 6 \frac{1}{6} 61​ 1 8 \frac{1}{8} 81​
3 1 4 \frac{1}{4} 41​ 1 6 \frac{1}{6} 61​ 1 8 \frac{1}{8} 81​
4 1 4 \frac{1}{4} 41​ 1 6 \frac{1}{6} 61​ 1 8 \frac{1}{8} 8
隐马尔科夫模型(HMM) 目录 1.隐马尔科夫模型求解步骤(其它大部分模型也均遵循如下路径) 2. HMM定义 2.1 HMM的两个基本性质 2.2 HMM的确定​ 3.HMM的三个基本问题 3.1 概率计算问题 3.1.1直接计算(暴力算法) 3.1.2前向算法和后向算法 3.2 参数估计/学习 3.2.1若训练数据包括观测序列和状态序列,则HMM的学习非常简单,是监督学习 3.2.2若训练数据只有观测序列,则HMM的学习需要使用EM算法,是非监督学习 3.3 模型的预测 3.3.1预测的近似算... 阅读详情

相关推荐

机器学习(三十三) 概率图模型与隐马尔可夫模型

33.1 概率模型:概率图模型 33.2 隐马尔可夫模型: 33.2.1 状态变量、观测变量、联合概率分布 33.2.2 三组参数、模型的三个基本问题

FluxMelodySun的博客 462

隐马尔科夫模型没你想的那么难!用天气预报例子轻松理解HMM三大问题

本文通过天气预报的生活场景,深入浅出地解析隐马尔科夫模型(HMM)的三大核心问题:评估问题、解码问题和学习问题。结合具体案例和代码示例,帮助读者轻松理解HMM的基础架构及其在股票分析、自然语言处理等领域的实际应用。

weixin_29168393的博客 224

python 隐马尔可夫模型的中文分词和词性分类实验 hmm

一、研究背景及意义 1.1 研究背景和研究意义 在中文里面,词是最小的能够独立活动的有意义的语言成分,分词和词性标注都是中文自然语言处理的基础工作,能够后续如句法分析带来很大的便利性。 1.2 研究内容简要介绍 第一章是中文分词实验,先讲了中文分词是什么、中文分词的常用方法、中文分词的难点,再介绍隐马尔可夫模型并描述隐马尔可夫模型运用到中文分词的原理,接下来是实际操作与遇到的问题 第二章是词性标注实验,先介绍词性标注与词性标注的难点,然后介绍隐马尔可夫模型如何应用到词性标注,最后是实际操作。 第

weixin_45529837的博客 1万+

HMM隐马尔可夫模型详解

目录 关于什么是隐马尔可夫模型我想你看到的解释应该是酱紫的: 或者是这样子的: 一、什么是隐马尔可夫模型 二、隐马尔可夫模型要解决的问题 三、问题解决 1.概率计算问题: 2.学习问题: 3.预测问题: 关于什么是隐马尔可夫模型我想你看到的解释应该是酱紫的: 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程...

weixin_41911765的博客 3082

NLP自然语言处理

自然语言处理( NLP)是计算机科学、人工智能和语言学的一个分支,旨在使计算机能够理解、解释和生成人类的自然语言。

qq_56246012的博客 1836

隐马尔可夫模型HMM算法详解与实践

隐马尔可夫模型是一种强大的序列数据建模工具,通过解决评估、解码和学习三个基本问题,HMMHMMHMM能够应用于多种领域。本文详细介绍了HMMHMMHMM的原理、算法以及实现方法,希望对读者理解和应用HMMHMMHMM有所帮助。通过以上内容,读者可以全面了解隐马尔可夫模型的基本概念、数学原理以及如何实现一个简单的HMMHMMHMM模型。希望这篇博客教程能够帮助读者更好地理解和应用HMMHMMHMM算法。

帅小柏的博客 1175

机器学习-概率图模型:隐马尔可夫模型(HMM)【解决序列问题】【前提假设:隐层状态序列符合马尔可夫性、观测序列的各观测值相互独立】【被RNN等神经网络模型取代】【生成模型:对联合概率建模】

一、马尔科夫链 1、 马尔可夫性 马尔可夫性:当一个随机过程在给定当前状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的随机过程通常称之为马尔可夫过程。 2、 马尔科夫链 马尔科夫链:即为状态空间中从一个状态到另一个状态转换的随机过程。 该过程要求具备“无记忆”的性质: 下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型

u013250861的博客 1593

【数学建模技术】隐马尔可夫模型在序列标注中的应用研究

本文系统研究了隐马尔可夫模型(HMM)在序列标注中的应用,阐述了其基本原理和核心算法(前向、后向、维特比和Baum-Welch算法)。通过分析HMM的三个基本问题(评估、解码和学习)及其在词性标注、命名实体识别等领域的应用,验证了HMM在序列建模中的有效性。研究表明,HMM具有计算效率高、支持概率推理等优势,但也存在状态数量影响复杂度等问题。未来可探索与深度学习的融合及在线HMM等方向。

一键难忘的博客 740

自然语言处理之语音识别:Hidden Markov Model (HMM):HMM在其他NLP任务中的应用

语音识别(Speech Recognition)是将人类的语音转换为文本的过程。它在电话服务、语音助手、会议记录等领域有着广泛的应用。语音识别系统通常包括声学模型和语言模型两部分,其中声学模型负责将音频信号转换为音素或词的概率,而语言模型则用于预测词序列的概率。状态集合Ss1s2sNSs1​s2​...sN​,其中NNN是状态的总数。观测集合Vv1v2vMVv1​v2​...vM​,其中MMM是观测的总数。初始状态概率向量π。

zhubeibei168的博客 1205

【NLP】再看隐马尔可夫模型(HMM)原理

背景 隐马尔可夫模型在NLP领域算是举足轻重的存在。当然,在这个深度学习大行其道的背景下,这些经典的机器学习算法可能逐渐被人们忽视。隐马尔可夫模型是一个非常好的数学模型,虽然NLP领域中经常使用,但是根据这个模型的特征将其应用到其他相关问题也未尝不可。 遇到一些问题了,也不一定总是想着有没有现成的深度学习解决方案,在实际工程中语料标注,模型落地等等都是一种考验。或许一些传统的机器学习算法也能够解决一些问题。 以前想着把自己所学内容整理成册以便有时间再回看,于是就用LaTeX将隐马尔可夫模型生成了PDF文档,

让算法融入生活,改变生活! 1861

HMM隐马尔科夫模型

隐马尔科夫模型用Python写的,程序中实现了前向算法、后向算法、维特比算法、前向后向算法,前面的算法比较简单,后面的前向后向算法是用于训练模型的,稍微复杂一点。从测试的结果来看,模型训练有可能收敛于局部最优,当然收敛的局部最优总限于某几个。还有个问题,最终收敛后的参数中,总偏爱1,可能有几处的参数是1,这个有人能解释吗?呵呵,我倒是没分析出原因,可能是我的测试数据太过简单

[仿真实战]FDTD Solutions 8.0:从零搭建薄膜光谱分析模型

本文提供了一份基于FDTD Solutions 8.0的薄膜光谱分析模型从零搭建实战指南。通过详细步骤,手把手教你创建玻璃基底与硅薄膜的几何结构、设置仿真区域与边界条件、配置光源与监视器,并最终计算反射率与透射率光谱。内容涵盖参数扫描与优化,旨在帮助用户快速掌握FDTD仿真在纳米光子学与薄膜光学设计中的核心应用。

defi6farmer的博客 502

LabVIEW调用.so文件的方法

LabVIEW调用.so文件的方法

m0_37878912的博客 3025

k3s快速搭建k8s集群环境

k8s 搭建方式有多种,如果你是内网环境,希望占用服务器资源少或是边缘系统(如ARM系统),强烈推荐您使用 k3s进行安装 目录k3s 简介k3s架构中文官方文档三台服务器快速搭建k8s集群安装说明步骤1 修改主机名,保持唯一步骤2 安装docker步骤3 安装master节点步骤4 安装worker节点加入集群步骤5 查看集群步骤6 部署 k8s仪表盘 dashboard k3s 简介 轻量级 Kubernetes。安装简单,内存只有一半,所有的二进制都不到 100MB K3s 是一个完全符合 Ku.

gzt19881123的专栏 2445

从零玩转显示屏:手把手教你用Arduino驱动SPI屏幕(附引脚定义图)

本文提供了一份详尽的Arduino驱动SPI屏幕的入门指南。从SPI接口的核心引脚定义(如DC、RESET)与RGB接口的区别讲起,手把手指导硬件连接与软件库配置,并最终通过一个天气显示器实战项目,帮助读者掌握驱动SPI屏幕、显示RGB色彩内容的核心技能。

weixin_29189987的博客 132

基于STM32、HAL库的TLV320AIC3204IRHBR音频接口芯片驱动程序设计

* 开启所有数字部分 */#define TLV320AIC3204_REG_LEFT_HEADPHONE_OUT_VOLUME 0x0C /* 左声道耳机输出音量 */#define TLV320AIC3204_REG_DIGITAL_AUDIO_PATH_CONTROL 0x05 /* 数字音频路径控制 */#define TLV320AIC3204_REG_ANALOG_HP_FILTER_CONTROL 0x34 /* 模拟耳机滤波器控制 *//* 最大音量 */

corlin6688的博客 522

使用conda环境python3.13和python3.12下安装vllm过程记录

使用conda环境python3.13和python3.12下安装vllm过程记录

没刮胡子的程序员专栏 885

详解舵机的基本原理以及控制方法

文章目录什么是舵机?伺服控制硬件连接舵机规格SG90MG90SMG996R总结 什么是舵机? 舵机是伺服电机的一种,伺服电机就是带有反馈环节的电机,我们可以通过伺服电机进行精确的位置控制或者输出较高的扭矩; 舵机也叫也叫 RC 伺服器,通常用于机器人项目,也可以在遥控汽车,飞机等航模中找到它们。 类似舵机这样的伺服系统通常由小型电动机,电位计,嵌入式控制系统和变速箱组成。 电机输出轴的位置由内部电位计不断采样测量,并与微控制器(例如STM32,Arduino)设置的目标位置进行比较; 根据相应的偏差,控制

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

哨兵1号回波数据(L0级)提取与SAR成像(全网首发)

本文先展示提取出的回波结果,然后使用RD算法进行成像,展示成像结果,最后附上哨兵1号回波提取的MATLAB代码。

3798

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

深度学习工具包 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")

上一篇: 机器学习理论梳理1: PCA主成分分析
下一篇: RUNOOB python练习题1
Cy_coding
博客等级 码龄7年 49粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值