- 博客(29)
- 收藏
- 关注
原创 关于语言模型中的平滑
在语言模型计算概率的时候,我们会碰到概率为0的情况,即计算的单词在语言模型中并没有出现过。这个时候会使用平滑的方法计算概率,一般分为以下几种:Add-One SmoothingAdd-K Smoothing其中Add-One Smoothing可以看作Add-K Smoothing中K为1的变种。概率计算即为(C+k)/(N+kV)其中C为需要计算的情形出现的次数,N为语料库中所有情形的次数,V为语料库中所有情形的种类。InterpolationInterpolation 即为.
2021-11-01 14:50:29
469
原创 循环神经网络(RNN)
简介在全神经网络中,我们输入固定大小的vector,输出固定大小的vector。在卷积神经网络中,我们输入固定大小的矩阵,输出固定大小的vector。但是现实生活中,还有非常的的东西是非固定大小的,比如视频,语音,连续文本等等。循环神经网络(RNN)便是一种对序列数据非常有效的时间序列模型。他对于挖掘数据中的时序信息以及语义信息都十分有效。比如之前关于中文语义的一个笑话:领导:你这是什么意思?小明:没什么意思。意思意思。领导:你这就不够意思了。小明:小意思,小意思。领导:你这人真
2021-08-07 11:23:34
394
原创 激活函数与梯度消失
在我们搭建神经网络时,通常的做法是每一层后面都需要添加一个激活函数。它的作用是将一个线性的模型转化为非线性模型。因为现实生活中很多场景需要解决的都是非线性问题。而线性模型是有局限性的。比如一层线性神经网络就无法解决异或问题。Sigmodsigmod:1/(1+e^-x)是最经典的激活函数,一层的神经网络加上sigmod其实就是最传统逻辑回归的做法。它能够把任何数映射到[0,1]之间,十分直观。你可以把它想象成一个神经元的放电率,在中间斜率比较大的地方是神经元的敏感区,在两边斜
2021-08-04 10:08:00
1928
原创 常用优化算法
当我们使用机器学习的时候,最开始都是初始化一组参数,然后不断优化迭代,得到最终的结果。所以优化算法也是机器学习中很重要的一个组成部分。我们之前提到过的梯度下降法,牛顿法这些便是很经典的优化方法。SGD首先是stochastic Gradient Descent,随机梯度下降,简称SGD。每次选择一个mini-batch,而不是全部样本,使用梯度下降来更新模型参数。SGD最大的缺点是下降速度慢,而且可能会在沟壑的两边持续震荡,停留在一个局部最优点。框架基本上所有的优化算法都有一个固定的框架
2021-08-02 13:30:07
957
原创 隐马尔科夫模型(HMM)
隐马尔科夫模型(HMM, Hidden Markov Model)是一种经典的模型,可用于标注问题,在语音识别、NLP、生物信息、模式识别等领域被实践证明是有效的算法。HMM是关于时序的概率模型,描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。模型简介我们现在来假设一种情况,一个文明在某个时期有三种状态,黑暗时期,正常时期与黄金时期。在我们接触到文明的时候,我们不能够直接得知他的状态,但是可以观测到这个文明的科技水平。而通过我们的先验知识,状态与科技..
2021-07-07 13:38:26
1117
原创 共轭先验分布,LDA与吉布斯采样
共轭先验分布我们之前学习过贝叶斯公式,概括地来说,贝叶斯公式是对因果关系的总结。贝叶斯学派与频率学派最大的不同是频率派认为参数是客观存在,不会改变,虽然未知,但却是固定值;贝叶斯派则认为参数是随机值,因为没有观察到,那么和是一个随机数也没有什么区别,因此参数也可以有分布。而这个概率分布是在抽样之前,就基于已有的知识对于这个未知量进行的预估,这在贝叶斯公式里面被称作先验分布,然后再基于样本的分布情况,最后在考虑到所有因素的情况下得出后验分布。往小处说,频率派最常关心的是似然函数,而贝叶斯派..
2021-07-04 12:18:47
802
原创 关于贝叶斯网络的一些判定
贝叶斯网络在之前说到朴素贝叶斯的时候提到过,即类似下图就是一个简单的贝叶斯网络:根据这个图我们可知联合概率而根据这个式子以及我们观测的任一条件下每个事件发生的概率,我们就可以计算出任何概率。通过贝叶斯网络判定条件独立1.tail-to-tail根据上图我们可知可得带入贝叶斯定律所以,在c确定的条件下。a,b是独立的,即条件独立。2.head-to-tail根据上图我们可知所以,在c确定的条件下。a,b是独立的,即条件独立。.
2021-07-02 12:35:10
3102
8
原创 EM算法推导
EM(Expectation-Maximum)算法也称期望最大化算法,曾入选“数据挖掘十大算法”中,可见EM算法在机器学习、数据挖掘中的影响力。EM算法是最常见的隐变量估计方法,在机器学习中有极为广泛的用途,例如常被用来学习高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐式马尔科夫算法(HMM)、LDA主题模型的变分推断等等。EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),所以算法被称为EM算法(Expec
2021-06-30 15:05:07
172
原创 关于距离,K-means,层次聚类,密度聚类以及谱聚类
之前博客中讲的模型基本上都是分类以及回归模型,他们都是属于有监督学习的,意为所有的样本都有一个结果值提供,我们所要做的就是在原有结果值的指导(监督)下使机器拟合结果,从而学习规律。而聚类是无监督学习,就是指没有一个结果值的提供。聚类本身需要做的是对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小。相似度/距离那么如何判断两个样本之间的距离或者是相似度呢。最简单想法就是闵可夫斯基距离(Minkowski):当p为1时即
2021-06-29 13:33:22
2079
原创 线性SVM,线性可分SVM与核函数
SVM即支持向量机(support vector machine),是一种分类算法。SVM 适合中小型数据样本、非线性、高维的分类问题。它将实例的特征向量映射为空间中的一些点。如:而SVM要做的事情就是找到那么一条线, “最好地” 区分这两类点,以后有了新的点,这条线也能做出很好的分类。划分的线是可以有无数条的。那么哪一条线是最好的呢。SVM 将会寻找可以区分两个类别并且能使间隔(margin or gap)最大的划分超平面。比较好的划分超平面,样本局部扰动时对它的影响最小、产生的分类结果最
2021-06-27 19:08:29
2843
原创 Xgboost与GBDT的区别
XGBoost是使用梯度提升框架实现的高效、灵活、可移植的机器学习库,全称是eXtreme GradientBoosting,是对于GBDT(GBM)的一个优化以及C++实现。它将树的生成并行完成,从而提高学习速度。XGBoost的作者为华盛顿大学陈天奇,并封装了Python接口,随着在机器学习竞赛中的优异表现,其他学者封装完成了R/Julia等接口。 书名:类.XGBoost的作者为华盛顿大学陈天奇,并封装了Python接口,随着在机器学习竞赛中的优异表现,其他学者封装完成了R/Julia等接口。.
2021-06-25 13:23:56
1524
原创 不同决策树的区别,提升树,GBDT以及Adaboost
ID3,C4.5,CART在之前提到决策树的时候我们说到表示信息不确定度的值叫做信息熵数据集的信息熵:以及条件熵:表示在条件V确定后,对U仍然存在的不确定性。信息熵减去条件熵即为信息增益,反映的是信息在得到条件V后消除随机不确定性的程度,即条件V给的信息有多少。所以我们对于选择特征进行分类的时候,当然选择信息增益较大的特征,这样具有较强的分类能力。采用这种选择特征的方法得到的决策树我们叫做ID3。可是ID3有一个缺点就是对可取值数目较多的特征有所偏好。比如说我们提供学
2021-06-24 14:42:48
1135
原创 一些对于模型的评判标准(R方与AUC)
我们在做逻辑回归或是其他线性模型的时候,经常会遇到一个模型衡量指标叫做,网上很多一个普遍的解释是:表达了2个变量间关系的解释程度百分比程度 / 你的你和曲线对于模型variance的减少百分比。那么到底是什么呢,首先计算样本的总平方和TSS(Total Sum of Squares):然后计算残差平方和RSS(Residual Sum of Squares):那么越大,拟合效果越好。最优值为1。若模型预测为随机值,R2有可能为负,若预测值恒为样本期望,R2为0 。...
2021-06-21 12:10:55
3665
原创 线性回归一些细节推导
这篇博客主要针对之前线性回归的内容做进一步的探讨。比如为什么损失函数是这样的,zhengguifangchen关于损失函数之前在介绍线性回归的时候,
2021-06-19 13:38:45
194
原创 逻辑回归介绍
在上一篇博客里面我们介绍了线性回归,这一片里面我们介绍的是逻辑回归(Logistic Regression)。虽然我们称之为回归,但是实际上逻辑回归是一个分类模型,常用于二分类。具体什么是回归与fe...
2021-06-17 14:02:21
210
原创 线性回归简述
线性回归模型一般都是我们学习机器学习时候最先遇到的几个模型之一。而且虽然他比较简单易懂,至今为止依然是工业界使用最广泛的模型之一。线性回归分析(Linear Regression Analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。本质上说,这种变量间依赖关系就是一种线性相关性,线性相关性是线性回归模型的理论基础。例如房价...
2021-06-16 14:52:22
1179
原创 决策树与随机森林
我们在学每一种语言的时候,都会学习语言中的逻辑结构,即if-else结构。基于现有的信息依次做出判断。今天要介绍的决策树就是起源于这种想法,利用这类结构分割数据的一种分类学习方法。比如说youmeimo...
2021-06-15 14:46:03
290
1
原创 数据的降维
为何要进行降维在工作场景中,我们面对的数据通常是现实中直观观测的集合。这些数据可能多方面,多角度的描述了目标,因此根据这些数据我们可以很直观的了解观测的目标。可是我们在进行...
2021-06-13 13:38:02
881
原创 归一化与标准化
一般来说呢我们获得了数据想要学习规律或者统计结果。多个维度的特征需要统一为一个值。但是不同维度之间特征的量纲或量级可能相差的非常大。这个时候量级大的数据可能会使我们在学习的时候忽略量级小的数据。举个例子...
2021-06-12 14:56:21
379
原创 One-hot编码以及TF-IDF方法
在进行机器学习的时候,我们通常是输入一组特征,然后经过算法,得到结果。机器学习的本质是通过已有的数据,从中得到规律,并且根据规律对未知的值进行预测。那么现实生活中我们想要学习数据,数据...
2021-06-12 14:01:28
637
原创 对于优化算法的简单介绍
在平常的生活活着工作中,我们经常会遇到各种各样的最优化问题。比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”,以及之前提到的下山,ruhecainengzhao
2021-06-11 16:26:32
1303
原创 关于机器学习的一些数学基础(二)
一般在我们刚接触机器学习的算法时,我们要让机器去学习东西,那么就需要让机器在学习的过程中修正自己的参数。一般在无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一。...
2021-06-08 16:21:37
485
原创 关于机器学习的一些数学基础(一)
Big O notation一般我们描述算法复杂度时,会使用大O符号。例如冒泡排序的复杂度是O(n^2),快排与归并排序的复杂度为O(nlogn)。那么什么是大O符号呢
2021-06-07 15:38:03
1411
原创 Pandas中的时间序列
时间序列是指在一定时间内按时间顺序测量的某个变量的取值序列。常见的时间序列数据有一天内随着时间变化的温度序列,又或者交易时间内不断波动的股票价格序列。Pandas也因其强大的时序处理能力Panda的时间序列处理中...
2021-06-06 19:12:27
958
1
原创 Pandas数据分组聚合
合并数据表pandas提供join操作进行数据间的快速合并,默认以行索引对其def join(self, other, on=None, how="left", lsuffix="", rsuffix="", sort=False)
2021-06-05 13:39:41
383
原创 Pandas中Series与DataFrame的使用
为什么需要Pandas在之前的博客中介绍了numpy,numpy已经能够帮我们去处理需要处理的数值,并且提供了各种运算方法,还可以从txt,csv中读取数据。;、
2021-06-04 14:30:36
357
原创 Numpy使用总结
Ndarray的创建类似正常创建数组:a=np.array([1,2,3,])b=np.array(range(5))c=np.arange(3,18,3)
2021-06-03 15:11:21
636
原创 Matplotlib个人使用Tips
Matplotlib.pyplot.figure函数matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)1.
2021-06-02 15:22:06
185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人