白板推导实现
文章平均质量分 61
孤独腹地
计算机视觉
展开
-
白板推导系列Pytorch-隐马尔可夫模型-解码问题
解码问题(Decoding)解码问题就是求 argmaxI P(I∣O,λ)\underset{I}{argmax}\ P(I|O,\lambda)Iargmax P(I∣O,λ)Viterbi算法Viterbi算法事实上是一个动态规划的算法这个图来自知乎我们把概率当成距离那么只要确定了唯一的终点,到这个终点的最大距离必然等于到前一个时间轴5个点的最大距离分别乘以这5个点到终点的距离我们也可以用公式严格推导出这一性质定义距离为δt(i)=maxi1,i2,...原创 2021-11-12 16:05:21 · 1706 阅读 · 2 评论 -
白板推导系列Pytorch-隐马尔可夫模型-学习问题
隐马尔可夫模型的学习问题分为监督学习和非监督学习问题,监督学习采用极大似然估计,非监督学习采用Baum-Welch算法,我们直接先讲Baum-Welch算法。Baum-Welch算法(EM算法)事实上,Baum-Welch算法是EM算法在HMM学习问题中的应用。我们要估计的λ^\hat \lambdaλ^应该为λ^=argmaxλP(O∣λ)\hat \lambda = \underset{\lambda}{argmax} P(O|\lambda)λ^=λargmaxP(O∣λ)我们还是先把原创 2021-11-12 15:54:38 · 1004 阅读 · 1 评论 -
白板推导系列Pytorch-隐马尔可夫模型-概率计算问题
概率计算问题(Evaluation)给定模型 λ=(A,B,π)\lambda=(A, B, \pi)λ=(A,B,π) 和观测序列 O=(o1,o2,⋯ ,oT)O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)O=(o1,o2,⋯,oT) , 计算在模型 λ\lambdaλ 下观测序列 OOO 出现的概率 P(O∣λ)P(O \mid \lambda)P(O∣λ).直接计算法P(O∣λ)=∑IP(O,I∣λ)=∑IP(O∣I,λ)⋅P(I∣λ原创 2021-11-12 15:44:30 · 496 阅读 · 0 评论 -
白板推导系列Pytorch-隐马尔可夫模型(HMM)
白板推导Pytorch-隐马尔可夫模型(HMM)状态转移矩阵和观测概率矩阵状态转移矩阵A=[aij]N×Nαij=P(it+1=qj∣it=qi)\begin{aligned}A &=\left[a_{i j}\right]_{N \times N} \\\alpha_{ij} &= P(i_{t+1} = q_j|i_t=q_i)\end{aligned}Aαij=[aij]N×N=P(it+1=qj∣it=qi)观测概率矩阵B=[bj(k)]N×Mb原创 2021-11-08 22:52:09 · 1607 阅读 · 3 评论 -
白板推导系列Pytorch-期望最大(EM)算法
白板推导系列Pytorch-期望最大(EM)算法EM算法介绍直接看这篇博客-如何通俗理解EM算法,讲的非常好,里面也有算法的公式推导。当然白板推导的视频里面公式推导已经讲的很清楚了,就是缺少应用实例。这篇博客用三个很通俗的例子引入了极大似然估计和EM算法。美中不足的是并没有详细说明极大似然估计并不是一定陷入鸡生蛋蛋生鸡的循环而没有办法处理隐变量问题,而是由于计算复杂从而摒弃了这个方法。当我们能知道z的分布的时候,其实也是可以用极大似然估计表示的但是,很多时候,我们很难获得Z的分布,除非我们事先对Z已经原创 2021-11-08 15:32:51 · 916 阅读 · 0 评论 -
白板推导系列Pytorch-支持向量机(SVM)
白板推导系列Pytorch-支持向量机(SVM)支持向量机的代码实现主要是SMO算法的实现,我参考了下面这篇博客https://www.cnblogs.com/lsm-boke/p/12317200.html该博客中使用numpy实现的svm,我对numpy版本做了一点修改,并且使用pytorch的API写了一个新版本,但除了函数名不同基本一致,只是numpy版本的收敛速度比pytorch要快很多。另外我调用了sklearn中的svm,速度都远超这两个实现pytorch版本导入所需的包impor原创 2021-10-29 18:57:35 · 8166 阅读 · 5 评论 -
白板推导系列Pytorch-PCA降维
白板推导系列Pytorch-PCA降维前面在看花书的时候就遇到过PCA,但是花书上的推导和白板推导中的推导不太一样,花书上的推导我至今还没弄清楚,但是这个我懂了,接下来我将以mnist数据集为例实现PCA降维并利用sklearn朴素贝叶斯分类器分类导入相关包import torchimport matplotlib.pyplot as pltfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import tr原创 2021-10-26 17:28:40 · 2078 阅读 · 1 评论 -
白板推导系列Pytorch-朴素贝叶斯
白板推导系列Pytorch-朴素贝叶斯下面的实现基于极大似然估计,意思就是使用极大似然估计的方法来估计模型中的未知参数,因此我们当然能想到还有其它的估计方法,例如贝叶斯估计。如果您仍然不明白我在说什么,或许是您还没有看白板推导的系列视频pytorch实现生成数据集def create_dataset(n_samples=1000): x0 = torch.normal(2,1,size=(n_samples//2,2),dtype=torch.float32) y0 = torch.原创 2021-10-25 21:45:18 · 690 阅读 · 0 评论 -
白板推导系列Pytorch-高斯判别分析(GDA)
白板推导系列Pytorch-高斯判别分析(GDA)不同于感知机和逻辑回归中由于得到的参数方程无法直接求解而只能采用随机梯度下降或上升的方式来求极值,LDA和GDA都可以直接求得参数,因而不需要通过逐步训练导入需要的包import torchimport matplotlib.pyplot as pltimport numpy as np生成数据集def create_dataset(n_samples=1000): n_data = torch.ones(n_samples//2,原创 2021-10-25 16:26:54 · 211 阅读 · 0 评论 -
白板推导系列Pytorch-逻辑回归
白板推导系列Pytorch-逻辑回归的简单实现导入需要的包import torchimport matplotlib.pyplot as pltimport torch.nn as nnfrom torch.autograd import Variable生成数据集def create_dataset(n_samples=1000): n_data = torch.ones(n_samples//2, 2) x0 = torch.normal(2 * n_data, 1)原创 2021-10-24 18:36:30 · 150 阅读 · 2 评论 -
白板推导系列Pytorch-线性判别分析(LDA)
白板推导系列Pytorch-线性判别分析(LDA)导入所需的包import torchfrom sklearn.datasets import make_classificationfrom sklearn.linear_model import Perceptronimport torch.nn.functional as Fimport matplotlib.pyplot as plt生成数据集X, y = make_classification(n_samples=1000, n_f原创 2021-10-24 09:38:18 · 2550 阅读 · 3 评论 -
白板推导系列Pytorch实现-感知机算法
白板推导系列Pytorch实现-感知机算法下面的代码以二维输入为例,实现二分类的感知机算法import matplotlib.pyplot as pltimport torchimport torch.utils.data as Dataimport numpy as npclass Perceptron: # 注意,为了我们能看到训练的效果,特意将learning_rate设的很小 def __init__(self, X, y, learn_rate=0.00001, b原创 2021-10-22 18:36:02 · 245 阅读 · 3 评论