<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Flyingzhan的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Flyingzhan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Flyingzhan]]></copyright><item><title><![CDATA[条件随机场CRF]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/116208369</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/116208369</guid><author>Flyingzhan</author><pubDate>Tue, 25 May 2021 10:13:00 +0800</pubDate><description><![CDATA[条件随机场CRF

1：介绍

条件随机场（conditional random field，简称CRF），是一种判断模型，经常被用于part-of-speech tagging任务中，例如标注句子的词性，例如『苹果是好吃的』中苹果是名词，是是动词，好吃的是形容词等等。此外，由于分词任务也可以被看做是对句子进行tagging的任务，例如4tag（BMES）等，因此也可以使用CRF处理分词的任务。除了CRF，我们都知道HMM也可以用于这样的词性标注任务，jieba分词就是使用HMM预测未登录句子的BMES标签]]></description><category></category></item><item><title><![CDATA[jieba分词源码分析]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/114002920</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/114002920</guid><author>Flyingzhan</author><pubDate>Thu, 25 Feb 2021 15:13:13 +0800</pubDate><description><![CDATA[jieba分词源码分析

jieba分词是开源的中文分词库，里面包含了分词，核心词提取等功能，使用范围非常广。下面介绍一下jieba分词的源码，方便之后查找回忆。

1：前缀词典

基于词典的切词方法需要一个好的语料库，jieba分词的作者在这里https://github.com/fxsjy/jieba/issues/7描述了语料库来源，主要来源于人民日报的语料库。初始化时会根据原始语料库生成前缀词典，可以用来得到之后的词频数据等。


@staticmethod
    def gen_pfdict(f]]></description><category></category></item><item><title><![CDATA[中文分词]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/108392598</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/108392598</guid><author>Flyingzhan</author><pubDate>Mon, 22 Feb 2021 20:23:52 +0800</pubDate><description><![CDATA[中文分词

最近工作中碰到很多query分析的技术，包括query的分词，纠错，改写，同义词，权重等等常见的自然语言处理任务，在这里简单的记录一下这些任务的常见算法，持续更新。

1:中文分词

中文分词根据实现原理和特点，主要分为以下2个类别：

1、基于词典分词算法

也称字符串匹配分词算法。该算法是按照一定的策略将待匹配的字符串和一个已建立好的“充分大的”词典中的词进行匹配，若找到某个词条，则说明匹配成功，识别了该词。常见的基于词典的分词算法分为以下几种：正向最大匹配法、逆向最大匹配法和双向匹配分词法]]></description><category></category></item><item><title><![CDATA[SVM实现（最优化方法）]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/105106691</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/105106691</guid><author>Flyingzhan</author><pubDate>Wed, 25 Mar 2020 23:36:07 +0800</pubDate><description><![CDATA[SVM实现

SVM（支持向量机）是一个常用的分类器，我在SVM中介绍了该方法的大概的公式以及出发点。很多机器学习课程也讲了SVM的公式，那么具体怎么实现一个SVM呢？这里介绍一下这个git repo里面的SVM实现：SVM代码。首先我想将SVM的公式放到下面：

传统SVM公式：



改进后的SVM（不严格要求所有点必须满足大于margin,对于离群点不那么敏感）：



SVM实现的代码如...]]></description><category></category></item><item><title><![CDATA[从零开始NLP]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/103387317</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/103387317</guid><author>Flyingzhan</author><pubDate>Wed, 04 Dec 2019 15:31:26 +0800</pubDate><description><![CDATA[从零开始NLP

最近打算学习一下NLP，在这里记录一下看到的知识。

1：N-gram

n-gram是一种语言模型，作用就是为一句给定的单词的序列返回一个概率，表示这个序列出现的概率值。常见的有unigram，bigram，trigram等等。

n个单词的句子出现的概率：



unigram，假设单词之间相互独立，那么可以表示为：



unigram是不可取的，因为‘i have a ...]]></description><category></category></item><item><title><![CDATA[word2vec在推荐系统的应用]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/103374098</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/103374098</guid><author>Flyingzhan</author><pubDate>Tue, 03 Dec 2019 18:22:50 +0800</pubDate><description><![CDATA[word2vec在推荐系统的应用

word2vec是自然语言处理里面的一种模型，主要根据单词的"context"上下文来学习词向量。word2vec被用在了很多场景中，比如说node2vec，deepWalk等图特征学习算法中，除此之外，也被用在了很多推荐系统场景中。下文转载自http://mccormickml.com/2018/06/15/applying-word2vec-to-recom...]]></description><category></category></item><item><title><![CDATA[降维方法]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/103225392</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/103225392</guid><author>Flyingzhan</author><pubDate>Wed, 27 Nov 2019 11:14:38 +0800</pubDate><description><![CDATA[降维方法

1：Multidimensional Scaling(MDS)

MDS是一种降维或者可视化算法，通过使得降维之后的数据能够保留原始数据之间的相似度（或者不相似度，距离）等等，来将数据映射到低维空间。

假设原始数据的距离矩阵D已知，比如说下面的形式：



我们使用stress来衡量映射的好坏：



上面的这些符号来自于https://www.ncss.com/wp-content...]]></description><category></category></item><item><title><![CDATA[基于树结构的机器学习模型]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/99711321</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/99711321</guid><author>Flyingzhan</author><pubDate>Sun, 10 Nov 2019 18:09:24 +0800</pubDate><description><![CDATA[基于树结构的机器学习模型

在深度学习被广泛应用之前，基于树形结构的机器学习模型，比如说决策树，随机森林，GBDT，Xgboost等等被广泛的应用到分类等常见场景中，下面总结一下常见一个一些树形结构的机器学习模型。

1：决策树

常见的决策树算法有ID3，C4.5，CART(classification and regression tree)等等。由于存在很多好的文章已经详细的介绍了这些算法，...]]></description><category></category></item><item><title><![CDATA[机器学习算法]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/97826769</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/97826769</guid><author>Flyingzhan</author><pubDate>Tue, 30 Jul 2019 22:43:42 +0800</pubDate><description><![CDATA[机器学习算法

1：线性回归的解释

线性回归是最简单的机器学习算法之一，但是非常常用。我们都知道给定(x,y)作为训练数据，使用如下的目标函数进行优化：



然后使用优化方法，比如说梯度下降算法（或者牛顿法等）对上面的目标进行优化：





但是为什么直接使用平方差作为损失函数能够进行先行回归？下面的解释来自与Andrew Ng的机器学习课程：



假设回归结果与真实值之间的误差满足正太分...]]></description><category></category></item><item><title><![CDATA[SVM（支持向量机）总结]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/96573585</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/96573585</guid><author>Flyingzhan</author><pubDate>Sun, 28 Jul 2019 18:41:17 +0800</pubDate><description><![CDATA[SVM知识点总结

1：几何间隔和函数间隔



假设叉号对应的点标签y=1，圈对应的点的标签y=0，我们可以得到一个分类界面能够将两类数据分开。当处理未知数据A,B,C的时候，很显然，判断A为y=1这一类的置信度(confident)应该比判断C为y=1这一类的置信度高，而B的置信度介于两者之间。因此，我们可以知道，如果某个点距离分类界面越远的话，预测结果的置信度越高。

函数间隔(functi...]]></description><category></category></item><item><title><![CDATA[遗传算法总结]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/94970522</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/94970522</guid><author>Flyingzhan</author><pubDate>Sun, 07 Jul 2019 14:01:06 +0800</pubDate><description><![CDATA[遗传算法总结

遗传算法是一种最优化算法，或者说遗传算法可以应用于求解搜索问题或者最优化问题。百度对遗传算法的定义为：遗传算法（Genetic Algorithm）是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型，是一种通过模拟自然进化过程搜索最优解的方法遗传算法在工业界有着比较广泛的应用。我也是实习的时候才真正用到遗传算法，下面是我的一些总结。

1：传统优化算法

遗传算法...]]></description><category></category></item><item><title><![CDATA[常用算法java汇总]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/89034420</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/89034420</guid><author>Flyingzhan</author><pubDate>Thu, 04 Apr 2019 20:14:32 +0800</pubDate><description><![CDATA[常用算法java汇总

最近在面试的时候，面试官都会问到一些算法题，这里我把一些课本上有的（算法导论）算法的java实现版本整理一下，方便自己查阅，如果里面存在错误的话，请及时指正，谢谢。

1：快排

快排的思想是分支，具体介绍请查看别的博客，这里我主要说明两点内容：

1）为什么最后需要把你选择的某个anchor点交换，比如说，我在程序里面使用的输入数组的第一个元素，为什么需要把第一个元素和e...]]></description><category></category></item><item><title><![CDATA[机器学习面试知识点汇总]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/88431088</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/88431088</guid><author>Flyingzhan</author><pubDate>Tue, 12 Mar 2019 23:20:28 +0800</pubDate><description><![CDATA[机器学习面试知识点汇总

最近开始找实习了，记录一下看过的知识点，方便查询，以下的知识点主要是根据同学面试问题或者网上面经题目整理。

1：字符串匹配算法

朴素匹配算法
	KMP (https://www.geeksforgeeks.org/kmp-algorithm-for-pattern-searching/)
	有限自动机算法
	AC自动机（多模式匹配）

public class KMP...]]></description><category></category></item><item><title><![CDATA[机器学习的数学基础]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/86571039</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/86571039</guid><author>Flyingzhan</author><pubDate>Mon, 21 Jan 2019 11:33:39 +0800</pubDate><description><![CDATA[机器学习的数学基础

这里我主要总结一下我正在看的Bishop的"Pattern Recognition and Machine Learning"里面的内容。

1：概率论基础

边缘概率：只观察某个变量的概率。如存在X,Y两个变量，P(X)和P(Y)都是边缘概率（marginal probability）

联合概率：同时观测两个变量的值，此时的概率。如P（X=i,Y=j）就是联合概率（joi...]]></description><category></category></item><item><title><![CDATA[矩阵导数(Matrix Differentia)]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/85332112</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/85332112</guid><author>Flyingzhan</author><pubDate>Sat, 29 Dec 2018 15:35:06 +0800</pubDate><description><![CDATA[矩阵导数(Matrix Differentia)

常见的偏导，导数形式都是标量形式的，比如说方程y=2x+10，那么y关于x的导数dy/dx=2，但是对于一般情况下，方程组Y=AX等情况来说，X,Y都有可能是向量或者矩阵的形式，这个时候怎么求dY/dX呢？

矩阵求导主要分为以下一些情况：

1：x∈,y∈，y=Ψ(x)

对于y,x都是向量的情况下，dy/dx的形式如下，是一个m*n的矩...]]></description><category></category></item><item><title><![CDATA[tensorflow reproducible（再现性）]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/85038412</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/85038412</guid><author>Flyingzhan</author><pubDate>Sun, 16 Dec 2018 19:29:03 +0800</pubDate><description><![CDATA[tensorflow reproducible（再现性）

平时做实验一般需要保证每次实验结果一致（同样的设置下），这样才能知道哪些改进是真正有用的，最近在做实验的时候遇到一些问题，代码结果每次都不一样（小数点后面三位开始不相同，而且随着epoch的增加，结果慢慢就越来越不一样），下面是我我看见的一些保证reproducible的方法(tensorflow下）：

1：tensorflow.set...]]></description><category></category></item><item><title><![CDATA[DCT变换和DFT变换]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/85029075</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/85029075</guid><author>Flyingzhan</author><pubDate>Sun, 16 Dec 2018 16:45:44 +0800</pubDate><description><![CDATA[DCT变换和DFT变换

1：DFT变换

这里我只谈论二维的DFT变换，有关一维的DFT，请查看一下博客，里面有详细介绍：

https://blog.youkuaiyun.com/IMWTJ123/article/details/79831242



根据上面的公式，我们可以得到对应的离散傅里叶变换呃代码，下面是matlab版本的代码，和公式(12)是一一对应的，时间复杂度为（MN)^2，通常记成N^4...]]></description><category></category></item><item><title><![CDATA[目标函数常见解法]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/84978518</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/84978518</guid><author>Flyingzhan</author><pubDate>Wed, 12 Dec 2018 20:27:06 +0800</pubDate><description><![CDATA[如何求解目标函数

简介

相信大家在写程序的时候，尤其是一些机器学习算法的时候，都会遇到将自己的目标函数使用矩阵形式表达的情况。大多数时候，我们写目标函数都是以的形式递归的计算，但是写程序的时候一般输入都是所有的数据，如numpy储存的数组，因此需要转化为矩阵形式。这里简单介绍一下常用的方法以及函数(tensorflow)，希望有所收获。

此外，本文还包括一些常见的矩阵形式的目标函数的解法。
...]]></description><category></category></item><item><title><![CDATA[跨模态检索评价指标(evaluations of cross-modal retrieval)]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/84779607</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/84779607</guid><author>Flyingzhan</author><pubDate>Tue, 04 Dec 2018 16:54:57 +0800</pubDate><description><![CDATA[跨模态检索评价指标(evaluations of cross-modal retrieval)

1：背景

跨模态检索在实际生活中有着广泛的应用，比如说输入一段话，希望找到对应的图片，再比如说根据一段语音得到与描述大致相同的图像，这些都是跨模态(modality, 如文本，图像，语音等等）检索的例子，本文主要介绍跨模态检索的评价指标，对基本的跨模态检索概念不清楚的话，请首先查阅资料。

最近面试...]]></description><category></category></item><item><title><![CDATA[tensorflow自定义梯度 RegisterGradient gradient_override_map]]></title><link>https://blog.youkuaiyun.com/Flyingzhan/article/details/84714206</link><guid>https://blog.youkuaiyun.com/Flyingzhan/article/details/84714206</guid><author>Flyingzhan</author><pubDate>Sun, 02 Dec 2018 15:29:31 +0800</pubDate><description><![CDATA[tensorflow自定义梯度

1：梯度计算

关于tensorflow的反向传播算法可以查看我之前的文章反向传播(back propagation)算法详解，tensorflow可以自动计算网络结构的梯度，但是我们需要首先确保模型的梯度是能够正确学习的，而不是ill-posed的，比如说将softmax-loss里面的交叉熵换成一般的squared error的话，会存在梯度一直是0的现象，具...]]></description><category></category></item></channel></rss>