自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 强化学习基础概念

强化学习基础入门

2023-02-18 17:06:05 749

原创 强化学习第一章学习笔记

强化学习笔记1:强化学习特点目录强化学习与监督学习的区别强化学习的特征总结目录强化学习与监督学习的区别1.强化学习处理的大多数是序列数据,其很难像监督学习的样本一样满足独立同分布2.学习器并没有告诉我们每一步正确的动作应该是什么,学习器需要自己去发现哪些动作可以带来的最多奖励,只能通过不停地尝试来发现最有利的动作。3.智能体获得自己能力的过程,其实是不停地试错探索的过程。探索和利用是强化学习中非常关心的问题,其中,探索指尝试一些新的动作,这些新的动作有可能会使我们得到更多的奖励,也有可能使我们一无

2022-05-13 16:50:11 528

原创 RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED【解决方法】

RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED【解决方法】在使用github上的开源框架pytorch-deeplab-xception在自己的数据集上进行语义分割时,遇到了这个错误。遇到坑debug了两天才解决。按这个错误提示的意思搜了搜解决办法,说应该重装CuDNN、pytorch、显卡使得版本匹配才行。于是照做,折腾好久好久,发现没用。因为这个错误出现在损失函数那里,于是又怀疑是不是输入维度的原因。于是把输入的label和Outpu

2021-09-23 16:18:31 13363 3

原创 CNN用于情感分析详解

一、原理简介除了RNN能用于时间序列的处理,CNN(Convolutional Neural Networks,卷积神经网络),也能够处理文本分类问题。卷积神经网络一般用于处理图像数据,从开始时最简单的卷积层,到后面加入了池化、BN、drop_out、padding等层后,网络变得更加精细。随着时间的发展,人们相继提出了Google net,Alex net,以及后来在图像识别领域最为著名的ResNet网络,这一网络的出现使得神经网络对图像的分类准确率超过了人类水平。可见,卷积神经网络具有优越的特征提取和

2021-04-22 21:48:10 3588 5

原创 一文看懂LSTM

一、写在前面本文在我的另一篇博文《一文看懂RNN》的基础上介绍RNN的改进版本——LSTM二、LSTM在RNN的实际运用中,我们发现,当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题。通常由于这个原因,循环神经网络在实际中较难捕捉时间序列中时间步距离较大的依赖关系。为了解决这一问题,学者们先后提出了GRU模型和LSTM模型。LSTM模型比GRU模型更为复杂,门控机制更多,所以一般来说相比之下效果也更好。2.1 输入门、遗忘

2021-04-21 15:29:49 543 2

原创 使用双向LSTM进行情感分析详解

一、原理简介RNN能够记忆上下文信息,因此常常用来处理时间序列数据。虽然理论上RNN能够记忆无限长度的历史信息,但是由于梯度的累计导致计算量过大无法实际操作,因此在应用中实际上RNN只能记录前面若干个单词的信息。由此就延申出了GRU和LSTM的网络结构,主要是增加门控机制来控制信息的流动,从而提高对历史信息的记忆能力,摈弃冗余的无关信息。本文将使用较为简单的双向LSTM来完成情感分析。二、数据处理本文使用aclImdb数据集,包含了50000条评论数据及其标签,标签包含积极和消极两个类别。按1:1的比

2021-04-16 10:53:54 1817 1

原创 一文看懂RNN

一、写在前面本文将介绍RNN的详细构造和实战,并将三种方法手写实现,再将其应用到歌词创作上。二、RNN考虑输入数据存在时间相关性的情况。假设Xt∈Rn×d\boldsymbol{X}t \in \mathbb{R}^{n \times d}Xt∈Rn×d是序列中时间步ttt的小批量输入,Ht∈Rn×h\boldsymbol{H}t \in \mathbb{R}^{n \times h}Ht∈Rn×h是该时间步的隐藏变量。我们保存上一时间步的隐藏变量Ht−1\boldsymbol{H}{t-1}Ht−1

2021-04-02 10:43:46 464

原创 Dive-into-DL-Pytorch 4.5节读写与保存 读书笔记

4.5 读取和存储到目前为止,我们介绍了如何处理数据以及如何构建、训练和测试深度学习模型。然而在实际中,我们有时需要把训练好的模型部署到很多不同的设备。在这种情况下,我们可以把内存中训练好的模型参数存储在硬盘上供后续读取使用。保存Tensor我们可以直接使用save函数和load函数分别存储和读取Tensor。save使用Python的pickle实用程序将对象进行序列化,然后将序列化的对象保存到disk,使用save可以保存各种对象,包括模型、张量和字典等。而load使用pickle unpickl

2021-03-23 00:00:11 117

原创 Dive-into-DL-Pytorch 4.2节权重初始化 读书笔记

4.2 模型参数的访问、初始化和共享在3.3节(线性回归的简洁实现)中,我们通过init模块来初始化模型的参数。我们也介绍了访问模型参数的简单方法。本节将深入讲解如何访问和初始化模型参数,以及如何在多个层之间共享同一份模型参数。我们先定义一个与上一节中相同的含单隐藏层的多层感知机。我们依然使用默认方式初始化它的参数,并做一次前向计算。与之前不同的是,在这里我们从nn中导入了init模块,它包含了多种模型初始化方法。import torchfrom torch import nnfrom torch

2021-03-22 18:21:27 119

原创 Dive-into-DL-Pytorch 4.1节模型构造实现 读书笔记

4.1 模型构造让我们回顾一下在3.10节(多层感知机的简洁实现)中含单隐藏层的多层感知机的实现方法。我们首先构造Sequential实例,然后依次添加两个全连接层。其中第一层的输出大小为256,即隐藏层单元个数是256;第二层的输出大小为10,即输出层单元个数是10。我们在上一章的其他节中也使用了Sequential类构造模型。这里我们介绍另外一种基于Module类的模型构造方法:它让模型构造更加灵活。4.1.1 继承Module类来构造模型Module类是nn模块里提供的一个模型构造类,是所有神经

2021-03-22 16:01:01 167

原创 Dive-into-DL-Pytorch 3.15节数值稳定性和模型初始化 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.15节数值稳定性和模型初始化读书笔记,仅作个人备忘与记录。二、衰减和爆炸当神经网络的层数较多时,模型的数值稳定性容易变差。假设一个层数为LLL的多层感知机的第lll层H(l)\boldsymbol{H}^{(l)}H(l)的权重参数为W(l)\boldsymbol{W}^{(l)}W(l),输出层H(L)\boldsymbol{H}^{(L)}H(L)的权重参数为W(L)\boldsymbol{W}^{

2021-03-22 10:51:32 93

原创 Dive-into-DL-Pytorch 3.13节drop_out实现 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.13节drop_out实现读书笔记仅作个人备忘与记录。二、理论介绍除了前一节介绍的权重衰减以外,深度学习模型常常使用丢弃法(dropout)来应对过拟合问题。丢弃法有一些不同的变体。本节中提到的丢弃法特指倒置丢弃法(inverted dropout)。方法:回忆一下,3.8节(多层感知机)描述了一个单隐藏层的多层感知机。其中输入个数为4,隐藏单元个数为5,且隐藏单元hih_ihi​(i=1,…,5i

2021-03-22 10:29:04 96

原创 Dive-into-DL-Pytorch 3.10节mlp-pytorch实现 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.10节mlp-pytorch实现。笔记仅作个人备忘与记录。二、手写实现下面我们使用PyTorch来实现上一节中的多层感知机。首先导入所需的包或模块。import torchfrom torch import nnfrom torch.nn import initimport numpy as npimport syssys.path.append("..") import d2lzh_py

2021-03-21 23:29:54 153

原创 Dive-into-DL-Pytorch 3.9节mlp手写实现 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.9节mlp手写实现读书笔记。笔记仅作个人备忘与记录。二、代码实现首先导入实现所需的包或模块。import torchimport numpy as npimport syssys.path.append("..")import d2lzh_pytorch as d2l这里继续使用Fashion-MNIST数据集。我们将使用多层感知机对图像进行分类。batch_size = 256tra

2021-03-21 22:42:19 127

原创 Dive-into-DL-Pytorch 3.7节softmax分类 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.7节softmax分类读书笔记。笔记仅作个人备忘与记录。代码实现下面,让我们再次使用Pytorch来实现一个softmax回归模型。首先导入所需的包或模块。import torchfrom torch import nnfrom torch.nn import initimport numpy as npimport syssys.path.append("..") import d2lz

2021-03-19 17:16:29 159

原创 Dive-into-DL-Pytorch 3.5节Fashion-MNIST 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.5节Fashion-MNIST读书笔记。本节主要讲解介绍该数据集的下载和可视化,在下一节中将具体讲解其运用。笔记仅作个人备忘与记录。二、数据获取与处理首先导入本节需要的包或模块。import torchimport torchvisionimport torchvision.transforms as transformsimport matplotlib.pyplot as pltimpor

2021-03-18 19:31:46 344

原创 Dive-into-DL-Pytorch 3.3节pytorch实现linreg 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.3节线性回归Pytorch实现读书笔记。笔记仅作个人备忘与记录。二、定义模型在上一节从零开始的实现中,我们需要定义模型参数,并使用它们一步步描述模型是怎样计算的。当模型结构变得更复杂时,这些步骤将变得更繁琐。其实,PyTorch提供了大量预定义的层,这使我们只需关注使用哪些层来构造模型。下面将介绍如何使用PyTorch更简洁地定义线性回归。首先,导入torch.nn模块。实际上,“nn”是neural

2021-03-18 18:56:23 508

原创 Dive-into-DL-Pytorch 3.2节线性回归实例 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的3.2节线性回归读书笔记。笔记仅作个人备忘与记录。二、 线性回归的从零开始实现在了解了线性回归的背景知识之后,现在我们可以动手实现它了。尽管强大的深度学习框架可以减少大量重复性工作,但若过于依赖它提供的便利,会导致我们很难深入理解深度学习是如何工作的。因此,本节将介绍如何只利用Tensor和autograd来实现一个线性回归的训练。首先,导入本节中实验所需的包或模块,其中的matplotlib包可用于作图

2021-03-18 18:12:44 199

原创 Dive-into-DL-Pytorch第二章——梯度 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的第一章,梯度。到目前为止的内容较为轻松,主要是对pytorch的一些基本操作和概念的熟悉过程。建议可以参阅《Pytorch官方文档》辅助学习。二、自动求梯度在深度学习中,我们经常需要对函数求梯度(gradient)。PyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图,并执行反向传播。本节将介绍如何使用autograd包来进行自动求梯度的有关操作。2.1 概念上一节介绍的Ten

2021-03-18 16:21:15 181

原创 Dive-into-DL-Pytorch第一章 预备知识 读书笔记

一、写在前面本文是《Dive-into-Deep-Learning》一书中文Pytorch版本的预备知识。前面填了机器学习和NLP入门的坑,即日起入门一下深度学习的坑。通过前段时间的学习和实习,深感人工智能的强大和自身存在的不足,因此决定下一番工夫在自己感兴趣的领域。毕竟,留给天灵盖上的头发的时间不多了,嘿嘿。二、数据操作在深度学习中,我们通常会频繁地对数据进行操作。作为动手学深度学习的基础,本节将介绍如何对内存中的数据进行操作。在PyTorch中,torch.Tensor是存储和变换数据的主要工具

2021-03-18 15:45:49 292

原创 《统计学习方法》第二十一章PageRank及python实现

一、写在前面本文是《统计学习方法》第二十一章PageRank读书笔记。《方法》从第十四章起开始涉及无监督学习,而个人发现无监督学习的作用和性能相比监督学习都很有限。拿众所周知的聚类来说,在业务或者数据处理的过程中,其作用还是较为有限的,笔者对其的应用能力尚不足。因此决定对这一部分无监督学习不再续更。然而PageRank不仅在搜索引擎中得到广泛应用,还在影响力分析、文本分析等领域大放异彩,因此有必要详细了解每一处细节。本文作个人备忘用,不保证质量和延续性。二、PageRank的定义2.1 基本想法历史

2021-03-18 10:15:20 412

原创 《统计学习方法》第十四章聚类算法

一、写在前面本文是《统计学习方法》第十四章聚类方法读书笔记。本书第十二章是监督学习总结,第十三章是无监督学习概述,主要是了解性知识和概述,因此本博客笔记跳过了这两章(主要没啥好写的,次要我偷懒了,嘿嘿)。本文作个人备忘用,不保证质量和延续性。聚类算法种类较多,如层次聚类,密度聚类,K-means聚类,均值漂移聚类等等。《方法》中仅简要介绍了其中两种:K-means算法和层次聚类算法。二、层次聚类算法层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。层次聚类又有自上而下的聚合聚类和自下而上的分

2021-03-17 14:42:17 368

原创 《统计学习方法》第十章隐马尔可夫模型与python实现

一、写在前面本文是《统计学习方法》第10章隐马尔可夫模型的读书笔记。用一段百余行的Python代码实现了隐马模型观测序列的生成、前向后向算法、Baum-Welch无监督训练、维特比算法。公式与代码相互对照,循序渐进。HMM算是个特别常见的模型,在自然语言处理中有很多的应用,比如基于字符序列标注的分词和词性标注了。但我的理解仅仅停留在“前向算法”“Viterbi”等层次。这次静下心来,从头到尾将这章认真看完,与自己原有的理解做一个对照,加深理解。二、隐马尔可夫模型基本概念隐马尔可夫模型是关于时序的概率

2021-03-16 17:25:40 1007 2

原创 《统计学习方法》第八章提升方法及python实现

一、写在前面本文是《统计学习方法》第8章提升方法的笔记,整合了《机器学习实战》中的提升树Python代码。《方法》重理论,但不易理解,《实战》重实践,但缺乏理论基础,特别是AdaBoost算法的解释、提升树与加法模型的关系等。两相结合,应该能获得较为全面的知识。本文是第八章,往后翻了翻,《方法》还有十四章。路漫漫其修远兮,年轻人骑猪仔不能放弃。二、提升方法提升方法是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。大多数的提升方法都是改变训练数

2021-03-15 23:53:59 356

原创 《统计学习方法》第七章支持向量机

一、写在前面本文是《统计学习方法》第七章支持向量机的读书笔记,前半部分是原书中内容加上自己的理解,后半部分是python实现支持向量机的代码及注释。本笔记服务于自己备忘,不做其他用途。也希望自己能坚持下来,完成整本书的学习与记录。二、支持向量机简介支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化

2021-03-12 17:24:58 1214

原创 深度学习与自然语言处理

写在前面本文是笔者学习《自然语言处理入门》(何晗著)的最后一篇学习笔记。在学习本书的过程中,我初步走进了NLP的世界,也尝试了不同的学习、笔记方法。最开始是采用手写笔记的形式,后来决定使用博客的方式做笔记。因此博客上的内容只涉及该数目的后面几章。本文是该书读书笔记的最后一篇。一、传统方法的局限通过前面的学习,我学习到了隐马尔可夫模型、感知机、条件随机场、朴素贝叶斯模型、支持向量机模型等传统机器学习模型。同时,为了将这些机器学习模型应用于NLP,我们掌握了特征模板、TF-IDF、词袋向量等特征提取方法。

2021-03-10 18:47:42 1518 1

原创 《统计学习方法》第四章——朴素贝叶斯及python实现

一、概述本文是《统计学习方法》的第四章,包含朴素贝叶斯分类器的原理与python实现。希望自己能坚持下去,完成整本书的学习二、朴素贝叶斯算法由于我们需要学习的参数为P(x,y)P(x,y)P(x,y),而P(X=x,Y=y)=P(X=x∣Y=y)P(Y=y)P(X=x,Y=y)=P(X=x|Y=y)P(Y=y)P(X=x,Y=y)=P(X=x∣Y=y)P(Y=y),其中P(X=x∣Y=y)P(X=x|Y=y)P(X=x∣Y=y)的参数是指数级的。当维度较大时,会发送维度灾难。具体地说,X和Y的组合很

2021-03-09 18:29:42 319

原创 NLP笔记之依存句法分析

一、语法分析语法分析是自然语言处理中一个重要的任务,其目的是分析句子的语法结构并将其表示为容易理解的结构。语法分析是所有工具性NLP任务中较为高级、较为复杂的一种任务。二、短语结构树短语结构语法是分析句子如何产生的方法。由于语言满足复合性原理,通过分解句子为短语、分解短语为单词,下游应用将会得到更多更深层次的结构化信息。复合性定理是指,一个复杂表达式的意义是由其各个组成部分的意义以及用以结合它们的规则来决定的。短语结构语法描述了如何自顶而下地生成一个句子。反过来,句子也可以用短语结构语法来递归地分解

2021-03-05 16:16:07 2511 2

原创 TSP问题蚁群算法详细解读与python实现

写在前面蚁群算法是一种求解NPC问题的启发式算法,属于仿生进化算法族的一员。仿生进化算法是受生物行为启发而发明的智能优化算法,往往是人们发现某种生物的个体虽然行为较为简单,但生物集群通过某种原理却能表现出智能行为。于是不同的人研究不同的生物行为原理,受到启发而发明出新的仿生进化算法。比如免疫优化算法,遗传算法,模拟退火算法等。遗传算法详解与Python实现在上一篇博客里已经介绍,蚁群算法与遗传算法等仿生进化算法均有共通之处,读者只需要明白透彻其中一种算法的原理和细节,便能触类旁通。因此,今天介绍的是蚁群算

2021-03-01 20:38:17 2714 3

原创 《统计学习方法》第三章——k近邻法及Python实现

一、概述pass二、k近邻算法k近邻是一种基本的分类与回归方法。本文只讨论分类问题中的k近邻算法。k近邻算法的输入为实例的特征向量,对于输入的实例,可以取多类。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此,K近邻法不具有显示的学习过程。k近邻实际上是利用训练集对特征空间进行划分,并作为其分类的“模型”。k值的选择、距离度量及分类决策规则是k近邻法的三个基本要素。三、k值的选择与分析k值的选择会对k近邻算法的结果产生重大影响。k较小,容易被噪声影响,发生过

2021-02-28 18:28:49 192

原创 《统计学习方法》第二章——感知机及Python实现

一、概述pass二、感知机模型感知机(perceptron)是二类分类的线性分类模型,其输入为特征向量x,输出为类别,取+1,-1二值。感知机将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出训练数据进行线性划分的超平面,属于判别模型。为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。同时,感知机算法是支持向量机和神经网络的基础。2.1 感知机模型对于感知机,由输入空间到输出空间的由如

2021-02-28 14:28:15 217

原创 NLP笔记之Python文本分类原理简析

一、概述上一篇文章中简单介绍了文本聚类,体验了无标注语料库的便利性。然而无监督学习总归无法按照我们的意志预测出文档的类别,限制了文本聚类的应用场景。很多情况下,我们需要将文档分门别类到具体的类别中。因此需要用到文本分类。本文便主要讲解文本分类的原理及实践。二、文本分类的概念文本分类,指的是将一个文档归类到一个或者多个类别的自然语言处理任务。值得一提的是,文档级别的情感分析也可以视作文本分类任务。此时情感分析的目的就是判断一段文本是否属于“正面”、“负面”等情感。每篇文章一般只属于一个类别,这是最常见

2021-02-26 19:49:39 574

原创 TSP、MTSP问题遗传算法详细解读及python实现

写在前面遗传算法是一种求解NPC问题的启发式算法,属于仿生进化算法族的一员。仿生进化算法是受生物行为启发而发明的智能优化算法,往往是人们发现某种生物的个体虽然行为较为简单,但生物集群通过某种原理却能表现出智能行为。于是不同的人研究不同的生物行为原理,受到启发而发明出新的仿生进化算法。比如免疫优化算法,蚁群算法,模拟退火算法等,这些算法以后也会简单介绍。本文的主题是遗传算法,该算法也是受到生物行为启发。物竞天择,适者生存,优胜劣汰,是该优化算法的核心思想。笔者在业务中需要用到遗传算法求解TSP问题,但是网

2021-02-26 15:55:26 8382 12

原创 《统计学习方法》第一章 概论

文章目录统计学习的分类基本分类二级目录三级目录统计学习的分类基本分类一、监督学习二、无监督学习三、强化学习四、半监督学习与主动学习按模型分类合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入统计学习的分类基本分类二级目录三级目录统计学

2021-02-26 00:35:22 177

原创 NLP笔记之文本聚类

NLP笔记之文本聚类一、概述文本聚类是聚类在文本上的应用。由浅入深,需要先介绍聚类的思想。二、聚类思想简介聚类是将给定对象的集合划分为不同子集的过程,目标是使每个子集内部的元素尽量相似,不同子集(簇)之间的元素尽量不相似。根据元素从属集合的确定程度,聚类分为硬聚类和软聚类。1.硬聚类:每个元素被确定地分入一个类2.软聚类:每个元素与每个簇都存在一定的隶属程度,只不过该程度有大有小。在实际工程尤其是NLP任务中,由于硬聚类更加简洁,所以使用得更频繁。三、文本聚类文本聚类指的是对文档进行的聚类

2021-02-25 20:25:33 1053

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除