- 博客(47)
- 收藏
- 关注
原创 LSTM如何解决RNN带来的梯度消失问题
本篇文章参考于 RNN梯度消失和爆炸的原因、Towser关于LSTM如何来避免梯度弥散和梯度爆炸?的问题解答、Why LSTMs Stop Your Gradients From Vanishing: A View from the Backwards Pass。看本篇文章之前,建议自行学习RNN和LSTM的前向和反向传播过程,学习教程可参考刘建平老师博客循环神经网络(RNN)模型与前向反向传...
2020-04-25 16:31:33
2850
1
原创 知识图谱嵌入(KGE)主流模型简介
1. KGE简介目前(2020.03)知识图谱嵌入研究方法众多,本文将对其中的主流方法进行简要介绍,如翻译、双线性、神经网络、双曲几何、旋转等。各方法细节请看原论文,文中错误欢迎指出,谢谢。知识图谱嵌入(Knowledge Graph Embedding, KGE)学习知识库中的实体和关系的Embedding表示,是语义检索、知识问答、推荐等众多应⽤的基础研究。在具体了解KGE之前,我们先...
2020-03-19 16:03:29
11137
1
原创 Ununtu16.04搭建GitLab服务器教程
Ununtu16.04搭建GitLab服务器教程文章目录Ununtu16.04搭建GitLab服务器教程1.依赖包安装2.GitLab安装2.1官方教程2.2清华源3.GitLab启动4.GitLab配置4.1更改服务器IP地址4.2更改服务器端口4.3设置GitLab开机自启动5.GitLab备份5.1创建备份文件5.2修改备份目录5.3设置自动备份机制5.4设置备份过期时间5.5恢复备份文件...
2019-02-19 09:59:40
527
1
原创 详解准确率、精确率、召回率、F1值等评价指标的含义
机器学习问题之中,通常需要建立模型来解决具体问题,但对于模型的好坏,也就是模型的泛化能力,如何进行评估呢?很简单,我们可以定一些评价指标,来度量模型的优劣。比如准确率、精确率、召回率、F1值、ROC、AUC等指标,但是你清楚这些指标的具体含义吗?下面我们一起来看看吧。1.混淆矩阵介绍各个指标之前,我们先来了解一下混淆矩阵。假如现在有一个二分类问题,那么预测结果和实际结果两两结合会出现如下四种...
2019-01-31 20:55:00
36221
3
原创 机器学习之交叉验证
1.交叉验证简介交叉验证(Cross Validation) 是在机器学习建立模型和验证模型参数时常用的方法。顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集。用训练集来训练模型,测试集来评估模型的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的样本,在下次可能成为测试集中的样本,也就是所谓的交叉。2.为什么用交叉验证?交叉验证用在数据量不...
2019-01-30 16:30:56
6921
原创 机器学习降维之线性判别模型(LDA)
1.LDA简介线性判别分析(Linear Discriminant Analysis, LDA) 是一种监督学习的降维方法,也就是说数据集的每个样本是有类别输出。和之前介绍的机器学习降维之主成分分析(PCA)方法不同,PCA是不考虑样本类别输出的无监督学习方法。LDA的原理简单来说就是将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点会形成按类别区分。而我们的目标就是...
2019-01-29 16:13:04
1081
原创 机器学习降维之奇异值分解(SVD)
奇异值分解(Singular Value Decompostion, SVD) 是在机器学习领域广泛应用的算法,不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域,是很多机器学习算法的基石。本篇文章对SVD原理做主要讲解,在学习之前,确保你已经熟悉线性代数中的基本知识,包括特征值、特征向量、相似矩阵相关知识点。如果不太熟悉的话,推荐阅读如下两篇文章,如何理解矩阵特征值?知...
2019-01-01 20:42:14
2599
原创 机器学习降维之主成分分析(PCA)
主成分分析(Principal components analysis, PCA) 是最重要的降维方法之一,在数据压缩、消除冗余和数据噪音消除等方面有广泛的应用。通常我们提到降维算法,最先想到的就是PCA,下面我们对PCA原理进行介绍。1. PCA思想PCA就是找出数据中最主要的方面,用数据中最重要的方面来代替原始数据。假如我们的数据集是n维的,共有m个数据(x1,x2,…,xm),我们将这...
2018-12-30 21:12:13
1616
1
原创 Gibbs采样
在MCMC采样和M-H采样中,我们讲到M-H采样已经可以很好的解决蒙特卡罗方法需要的任意概率分布的样本集问题。但是M-H采样有两个缺点:一是需要计算接受率,在高维情况下计算量非常大,同时由于接受率的原因导致算法收敛时间变长。二是有些高维数据,特征的条件概率分布方便求解,但特征的联合分布很难求解。因此需要改进M-H算法,来解决上面提到的两个问题,下面我们详细介绍Gibbs采样方法。1.细致平衡条件...
2018-12-16 13:46:28
2431
原创 MCMC采样和M-H采样
在MCMC之马尔可夫链之中我们介绍到,给定一个概率分布π,很难直接找到对应的马尔可夫链状态转移矩阵P。只要解决这个问题,我们便可以找到一种通用的概率分布采样方法,进而用于蒙特卡罗模拟。下面我们来介绍如何找到马尔可夫链所对应的状态转移矩阵P。1.马尔可夫链细致平稳条件解决平稳分布π所对应的马尔可夫链状态转移矩阵P之前,我们先看一下马尔可夫链的细致平稳条件。其定义为:如果非周期马尔可夫链的状态转移...
2018-12-15 18:36:34
1505
1
原创 MCMC之马尔可夫链
在MCMC之蒙特卡罗方法之中,讲到如何利用蒙特卡罗方法来随机模拟求解一些复杂的连续积分或者离散求和方法。但蒙特卡罗方法需要得到对应的概率分布的样本集,而对于某些概率分布,得到这样的样本集很困难,因此本篇我们将介绍马尔可夫链来解决这种问题。1.马尔可夫链简介马尔可夫链定义比较简单,它假设某一时刻状态转移的概率只依赖于它的前一个状态,这样可以很大程度上简化模型的复杂度。假设我们的序列状态为...,...
2018-12-03 09:38:05
794
原创 MCMC之蒙特卡罗方法
1.MCMC简介**马尔可夫链蒙克卡罗(Markov Chain Monte Carlo,MCMC)**是一种随机采样方法,在机器学习、深度学习及自然语言处理等领域都有广泛的应用,是很多复杂算法求解的基础,例如受限玻尔兹曼机(RBM)便是用MCMC来做一些复杂算法的近似求解。在具体讲解什么是MCMC之前,我们先看看MCMC可以解决什么样的问题,为什么需要MCMC方法。2. 为什么需要MCMC?...
2018-12-01 23:53:17
2020
原创 LSTM神经网络之前向反向传播算法
上篇文章我们已经学习了循环神经网络的原理,并指出RNN存在严重的梯度爆炸和梯度消失问题,因此很难处理长序列的数据。本篇文章,我们将学习长短期记忆网络(LSTM,Long Short Term Memory),看LSTM解决RNN所带来的梯度消失和梯度爆炸问题。1.从RNN到LSTMRNN模型具有如下所示的结构,其中每个索引位置t都有一个隐藏状态h(t)h^{(t)}h(t)。如果省略每层的...
2018-11-15 21:43:57
2554
1
原创 循环神经网络之前向反向传播算法
前面我们已经介绍了深度神经网络和卷积神经网络,这些算法都是前向反馈,模型的输出和模型本身没有关联关系。今天我们学习输出和模型间有反馈的神经网络,循环神经网络(Recurrent Neual Networks),其广泛应用于自然语言处理中的语音识别,书写识别和机器翻译等领域。1.RNN简介前面介绍的DNN和CNN之中,训练样本的输入和输出都是确定的。但对于训练样本输入是连续的序列,训练样本长度不...
2018-11-04 17:23:32
1813
原创 卷积神经网络之反向传播算法
前面已经推导学习了卷积神经网络之前向传播算法,本篇文章将推导卷积神经网络之反向传播算法。在学习卷积神经网络算法之前,希望你对深度神经网络有一定程度的了解,我在之前也有写过相关的文章,包括深度神经网络之前向传播算法、深度神经网络之反向传播算法、深度神经网络之损失函数和激活函数、深度神经网络之正则化,可以先看一下再学习卷积神经网络。1.DNN反向传播算法学习CNN(卷积神经网络)反向传播算法之前,...
2018-10-21 21:11:28
3826
原创 卷积神经网络之前向传播算法
0.杂谈本来个人是准备毕业直接工作的,但前段时间学校保研大名单出来之后,发现本人有保研机会,于是就和主管请了几天假,回学校准备保研的事情。经过两天的准备,也是非常幸运,成功拿到本院的保研名额。明确得到保研名额的时候已经是9月18号,然而国家推免系统开放时间是9月28号,也就是说我只还有10天时间准备保研,而且这个时间点很多学校夏令营、预报名活动早已结束,不再接受学生申请。所以能够申请的学校也就很...
2018-10-20 21:08:40
6770
1
原创 进程、线程、锁的概念
大雾!可以说很大意啦!上周五终于改好bug,想着把代码同步到个人GitHub上面,就随手git push同步到远程。然而万万没想到,之前touch过一个information.txt文件,里面记录着一些服务器信息,然后也跟着同步到远程仓库去啦。等到周一,敏感信息被公司检测出来,通知删除。可以说,真的是很大意了。在通知我之前,我还不记得有提交过什么敏感信息。直到看见具体文件信息,才知道自己犯...
2018-08-28 20:17:31
2693
原创 基于google protobuf的gRPC实现(python版)
1.Protobuf简介Google Protocol Buffers简称Protobuf,提供一种灵活、高效、自动化的机制,用于序列化结构数据。Protobuf仅需自定义一次所需要的数据格式,然后我们就可以使用Protobuf编译器自动生成各种语言的源码,方便我们读写自定义的格式化数据。另外Protobuf的使用与平台和语言无关,可以在不破坏原数据格式的基础上,扩展新的数据。我们可以将P...
2018-08-14 20:41:32
3217
1
原创 Linux常用命令
1.常用指令 ls显示文件或目录 -l列出文件详细信息(list) -a列出当前目录下所有文件及目录,包含隐藏的a(all) mkdir创建目录 -p创建目录,若无父目录,则创建p(parent) cd切换目录 touch创建空文件 touch a.txt echo创建带有内容的文件 echo ...
2018-08-14 11:30:14
252
原创 《剑指Offer》Python版
1.二维数组中的查找题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:遍历每一行,查找该元素是否在该行之中。# -*- coding:utf-8 -*-class Solution: # array 二维列表 ...
2018-08-06 11:59:30
12056
5
原创 深度神经网络之正则化
1.正则化之前介绍的文章之中,我们已多次接触到正则化方法,但没有详细的解释为什么要正则化,什么是正则化,以及L1正则化和L2正则化的区别。本次文章之中,我们将详解机器学习中正则化的概念和深度神经网络中的正则化方法。1.1 为什么要正则化?讲到为什么需要正则化,就需要了解什么是过拟合问题。以下面图片为例,我们能够看到有两个类别,其中以X代表男生,O代表女生。我们想要通过学习来...
2018-07-04 11:11:36
16643
2
原创 深度神经网络之损失函数和激活函数
1.损失函数和激活函数简介通过前面深度神经网络之前向传播算法和深度神经网络之反向传播算法的学习,我们能够了解到损失函数是用来评估模型的预测值与真实值之间的差异程度。另外损失函数也是神经网络中优化的目标函数,神经网络训练或者优化的过程就是最小化损失函数的过程,损失函数越小,说明模型的预测值就越接近真实值,模型的准确性也就越好。前面我们已经学习过平方损失函数,对数损失函数、交叉熵损失函数等不同形式...
2018-06-30 18:35:16
20732
原创 深度神经网络之反向传播算法
1.DNN反向传播算法简介回顾我们前面学到的监督问题,通常会遇到这种情况,假如有mmm个训练样本,分别为{(x1,y1),(x2,y2),(x3,y3),...,(xm,ym)}{(x1,y1),(x2,y2),(x3,y3),...,(xm,ym)}\{(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_m,y_m) \},其中xxx为输入变量,特征维度为n_in,y为...
2018-06-28 16:05:50
1821
原创 深度神经网络之前向传播算法
1.深度神经网络简介深度神经网络(Deep Neural Networks,DNN)从字面上理解,也就是深层次的神经网络,从网络结构上看来就是有多个隐含层的神经网络。深度神经网络不仅能够用于分类和回归,在降维、聚类、语音识别、图像识别方面也有许多应用。由于神经网络内容较多,将分多次写作,本次主要讲解深度神经网络中的前向传播算法,后续还有反向传播算法、损失函数和激活函数、正则化。2.从感...
2018-06-27 16:20:50
1377
原创 效率软件推荐(一)
工欲善其事,必先利其器,为此给大家推荐几款效率软件,帮助你高效学习和工作。 + 滴答清单:解决拖延症&&健忘症,高效完成任务和规划时间。 + 印象笔记: 收集各类信息,捕捉灵感,做你的第二大脑。 + 夸克浏览器:极简风格,满足你对浏览器最本质的需求。1.滴答清单身边的人多多少都有点拖延症(包括我),不到DeadLine的时候,都不会想到去解决问题。为此还耽误了几...
2018-06-13 16:09:38
3666
原创 网店工商信息图片文字提取
首先非常抱歉,最近一段时间由于学校课程作业较多,外加个人较懒,所以一直没有更新文章,以后一定会勤奋点,多加更新。正如前几天在stormzhang**(张哥)**的公众号里看到的一样,写作其实并不难,每个人都可以做到,但是长期坚持写作就非常难,这也是写作者想要长期创作遇到的第一个大问题,所以贵在坚持。另外长期写作的第二大问题是什么呢?你猜猜看,看看我们认为的是不是一样。最近主要是完成专业内的一些...
2018-06-11 10:41:32
2874
1
原创 机器学习之Apriori算法
1.Apriori算法简介Apriori算法是常用于挖掘出数据关联规则的算法,能够发现事物数据库中频繁出现的数据集,这些联系构成的规则可帮助用户找出某些行为特征,以便进行企业决策。例如,某食品商店希望发现顾客的购买行为,通过购物篮分析得到大部分顾客会在一次购物中同时购买面包和牛奶,那么该商店便可以通过降价促销面包的同时提高面包和牛奶的销量。了解Apriori算法推导之前,我们先介绍一些基本概念...
2018-05-18 17:28:55
14466
原创 机器学习之朴素贝叶斯算法
1.朴素贝叶斯简介朴素贝叶斯(Naive Bayesian)算法能够根据数据加先验概率来估计后验概率,在垃圾邮件分类、文本分类、信用等级评定等多分类问题中得到广泛应用。对于多数的分类算法,比如决策树、KNN等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系。但朴素贝叶斯和多数分类算法都不同,朴素贝叶斯是生成算法,也就是先找出特征输出Y和特征X的联合分布P(X,Y)P(X,Y)P...
2018-05-15 23:05:49
534
原创 机器学习之K近邻(KNN)算法
1.KNN简介K近邻(K-Nearest Neighbors, KNN)算法既可处理分类问题,也可处理回归问题,其中分类和回归的主要区别在于最后做预测时的决策方式不同。KNN做分类预测时一般采用多数表决法,即训练集里和预测样本特征最近的K个样本,预测结果为里面有最多类别数的类别。KNN做回归预测时一般采用平均法,预测结果为最近的K个样本数据的平均值。其中KNN分类方法的思想对回归方法同样适用,...
2018-05-13 21:22:17
3423
原创 机器学习之K均值(K-Means)算法
1.K-Means简介K均值(K-Means)算法是无监督的聚类方法,实现起来比较简单,聚类效果也比较好,因此应用很广泛。K-Means算法针对不同应用场景,有不同方面的改进。我们从最传统的K-Means算法讲起,然后在此基础上介绍初始化质心优化K-Means++算法,距离计算优化Elkan K-Means算法和大样本情况下Mini Batch K-Means算法。K-Means算法的思想...
2018-05-12 17:50:41
9350
原创 机器学习之最大期望(EM)算法
1.EM算法简介最大期望(Expectation Maximum)算法是一种迭代优化算法,其计算方法是每次迭代分为期望(E)步和最大(M)步。我们先看下最大期望算法能够解决什么样的问题。假如班级里有50个男生和50个女生,且男生站左,女生站右。我们假定男生和女生的身高分布分别服从正态分布。这时我们用极大似然法,分别通过这50个男生和50个女生的样本来估计这两个正态分布的参数,便可知道男女身...
2018-05-10 22:41:09
12819
4
原创 机器学习之自适应增强(Adaboost)
1.Adaboost简介Adaptive boosting(自适应增强)是一种迭代算法,其核心思想是针对同一个训练集训练不同的弱分类器,然后把这些弱分类器集合起来,构成一个强分类器,Adaboost可处理分类和回归问题。了解Adaboost算法之前,我们先学习下Boost(增强)和Adaptive(自适应)的概念。1.1集成学习之Boosting集成学习不是单独的机器学习方法,而是...
2018-05-07 09:52:52
9223
原创 机器学习之梯度提升决策树(GBDT)
1.GBDT算法简介GBDT(Gradient Boosting Decision Tree)是一种迭代的决策树算法,由多棵决策树组成,所有树的结论累加起来作为最终答案,我们根据其名字(Gradient Boosting Decision Tree)来展开推导过程。决策树(Decision Tree)我们已经不再陌生,在之前介绍到的机器学习之决策树(C4.5算法)、机器学习之分类与回归树(CA...
2018-05-02 16:16:06
23509
4
原创 机器学习之随机森林
1.随机森林简介随机森林(Random Forest)是一个非常灵活的机器学习方法,从市场营销到医疗保险有着众多的应用。例如用于市场营销对客户获取和存留建模或预测病人的疾病风险和易感性。随机森林能够用于分类和回归问题,可以处理大量特征,并能够帮助估计用于建模数据变量的重要性。我们先了解随机森林中森林和随机的概念。1.1集成学习集成学习是将多个模型进行组合来解决单一的预测问题。其原理...
2018-04-30 17:16:03
976
原创 机器学习之分类与回归树(CART)
1.分类与回归树简介分类与回归树的英文是Classfication And Regression Tree,缩写为CART。CART算法采用二分递归分割的技术将当前样本集分为两个子样本集,使得生成的每个非叶子节点都有两个分支。非叶子节点的特征取值为True和False,左分支取值为True,右分支取值为False,因此CART算法生成的决策树是结构简洁的二叉树。CART可以处理连续型变量和离散...
2018-04-25 16:23:57
1530
原创 机器学习之决策树(C4.5算法)
1.决策树简介我们已有如下所示数据集,特征属性包含天气、温度、湿度、风速,然后根据这些数据去分类或预测能否去打高尔夫球,针对此类问题你会怎么解决呢。 序号 天气 温度 湿度 风速 高尔夫 1 晴 炎热 高 弱 进行 2 晴 炎热 高 强 进行 3 阴 炎热 高 弱 取消 ...
2018-04-20 18:13:12
2777
原创 Python之Sklearn使用教程
1.Sklearn简介Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点:简单高效的数据挖...
2018-04-15 19:49:27
160705
15
原创 机器学习之SVM支持向量机(二)
1.知识回顾机器学习之SVM支持向量机(一)中我们介绍了SVM损失函数、最大间隔分类、为什么SVM能形成最大间隔分类器、核函数、SVM中Gaussian Kernel的使用知识点。上文我们从Logistic Regression损失函数中推出SVM损失函数,本篇文章我们将更加直观的分析得到SVM损失函数、如何求解SVM对偶问题、如何解决outliers点,并且最终利用sklearn实现SVM。...
2018-04-06 20:19:03
585
原创 机器学习之SVM支持向量机(一)
我们思考这样一个问题,给两个标签,蓝色和红色点,数据有两个特征(x,y)。我们想要一个分类器,给定一对(x,y),能找到很好的分类边界,判断是蓝色点还是红色点。对于下图的数据,我们如何解决呢。本文通过引入Support Vector Machine(SVM)算法来详解此类问题。1.SVM损失函数针对前面介绍的机器学习之线性回归、机器学习之Logistic回归,我们已经了解Cost Fu...
2018-04-03 11:04:08
449
原创 机器学习之Logistic回归
1.Logistic回归简介线性回归能够找到一个假设函数来估计原函数,从而根据特征变量来得到假设值,但线性回归模型不能达到分类的效果。在线性回归的基础上,我们将假设值和概率结合得到分类器,达到分类的效果。虽然Logistic回归是回归模型,但在实际项目中我们经常用于分类问题。2.Sigmoid函数#plot sigmoid function import numpy as...
2018-03-29 09:37:44
502
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人