精华内容
下载资源
问答
  • 假设监督学习的输入与输出的随机变量X和Y遵循联合概率分布P(X,Y),对于学习系统来说,联合概率分布的具体定义是未知的,训练数据和测试数据被看作是依联合概率分布P(X,Y)独立同分布产生的。X和Y具有联合概率分布就是...

    联合概率分布

    假设监督学习的输入与输出的随机变量X和Y遵循联合概率分布P(X,Y),对于学习系统来说,联合概率分布的具体定义是未知的,训练数据和测试数据被看作是依联合概率分布P(X,Y)独立同分布产生的。X和Y具有联合概率分布就是监督学习关于数据的基本假设。

    按模型分类

    • 概率模型
      概率模型是生成模型,一定可以表示为联合概率分布的形式
    • 非概率模型
      非概率模型是判别模型

    • 线性模型
    • 非线性模型

    • 参数化模型
    • 非参数化模型

    按算法分类

    • 在线学习
    • 批量学习

    按技巧分类

    • 贝叶斯学习
    • 核方法

    统计学习方法三要素

    方法 = 模型 + 策略 + 算法

    模型:所要学习的条件概率分布或决策函数
    策略:按照什么样的准则学习或者选择最优模型。引入损失函数与风险函数的概念。
    损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
    设模型的输入、输出(X,Y)是随机变量,遵循联合分布P(X,Y),所以损失函数的期望就是
    Rexp(f)=Ep[L(Y,f(X))]=XYL(y,f(x))P(x,y)dxdy R_{exp}(f) = E_p[L(Y,f(X))] = \int_{X*Y}L(y,f (x))P(x,y)dxdy
    这是理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数或者期望损失或者期望风险
    学习的目标就是选择期望风险最小的模型,但是联合分布P(X,Y)是未知的,所以用经验风险估计期望风险
    期望风险Remp(f)R_{emp}(f)是模型关于训练样本集的平均损失,根据大数定律,当样本容量N趋于无穷时,经验风险Remp(f)R_{emp}(f)趋于期望风险Rexp(f)R_{exp}(f)
    算法:求解最优化问题的算法,找到全局最优解

    生成方法与判别方法

    生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
    P(YX)=P(X,Y)P(X)P(Y|X) = \frac{P(X,Y)}{P(X)},之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。生成方法可以还原出联合概率分布P(X,Y),收敛速度快,当样本容量增加时,学到的模型可以更快的收敛于真实模型,当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。

    判别方法直接学习的时条件概率P(Y|X)或决策函数f(X),直接面对预测往往准确率更高,由于直接学习P(Y|X)或f(X),可以对数据就行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

    展开全文
  • 得到语料库中词性标注种类和个数==>得到隐序列; 对输入的句子进行分词==>得到观测序列; 对每个词性标注,计算该词性出现时的前一个词性的次数/该词性出现的总次数==>得到转移...

    复制这段内容后打开百度网盘手机App,操作更方便哦
    链接:https://pan.baidu.com/s/1sB252goPWU5UruzWmBWO1A 提取码:4r13
    上篇文章我们以Brown语料库中的一个特例讲解了HMM和Viterbi算法。
    那么如何使用特定语料库通过HMM算法进行词性标注呢?我们可以从HMM的五元组入手。

    大致步骤:

    1. 得到语料库中词性标注种类和个数==>得到隐序列;
    2. 对输入的句子进行分词==>得到观测序列;
    3. 对每个词性标注,计算该词性出现时的前一个词性的次数/该词性出现的总次数==>得到转移概率矩阵;
    4. 对每个观测状态,计算该状态不同词性出现的次数/该观测状态出现的总次数==>得到发射概率矩阵;
    5. 计算各词性初始概率:nc(postag)nsum\frac{n_{c(pos-tag)}}{n_{sum}},某一个词性出现的次数/语料库总词性标记数;

    在实际操作中某些小细节是需要引起我们关注的。

    1 如何做数据平滑?

    我们要考虑并处理发射矩阵和转移矩阵中条件概率为0而出现整条路径概率为0情况,因此我们需要做数据平滑。下面以他是创业大赛国赛金奖?为例展开分析:

    数据平滑的方法有很多种,一开始我使用的是加一法,在测试的时候我发现无论输入什么句子,词性标注都是Rg。

    他/Rg 是/Rg 创业/Rg 大赛/Rg 国/Rg 赛/Rg 金奖/Rg ?/Rg

    平滑方法改进后:

    他/r 是/v 创业/vn 大赛/vn 国/n 赛/vn 金奖/n ?/w

    为什么会出现这样的情况呢?

    我们回到语料库可以发现总词性种类有44种,而Rg只出现了10次,如果我们使用加一法平滑数据,对数据的概率影响还是比较大的,因此加一法在该语料库中的表现上效果不是特别理想。我们可以使用Laplace平滑方法,并使参数p足够小,对平滑方法进行改进,从而更好地弥补语料库数据量的不足。其他数据平滑方法还有Kneser-Ney、Katz等,在宗成庆的《统计自然语言处理》中有所提及。

    # 加一法平滑方法
    for row in range(transaction_matrix.shape[0]):
    	transaction_matrix[row] += 1
    	transaction_matrix[row] /= np.sum(transaction_matrix[row])	
    for row in range(emission_matrix.shape[0]):
        emission_matrix[row] += 1
        emission_matrix[row] /= tags_num[tags_list[row]] + emission_matrix.shape[1]
    
    # Laplace平滑方法 l=1,p=1e-16
    # 这里也可以看做使用一个极小的数字如1e-16代替0,分母+1为避免分母为0的情况出现
    for row in range(transaction_matrix.shape[0]):
    	n = np.sum(transaction_matrix[row])
    	transaction_matrix[row] += 1e-16
    	transaction_matrix[row] /= n + 1	
    for row in range(emission_matrix.shape[0]):
        emission_matrix[row] += 1e-16
        emission_matrix[row] /= tags_num[tags_list[row]] + 1
    

    2 未登录词的词性?

    这里使用的分词词典是基于该语料库的,所以分割结果都能找到对应的词性标注,所以不存在未登录词未知词性的情况。

    但是,如果我们使用别的分词词典或者分词工具呢?那就会出现未登录词的情况,这时候每种词性的发射概率都相同,该未登录词的词性就跟前后的词性有关了,不过对未登录词测试结果并不是太好。

    最大概率分词:
    今天/t 和/p 明天/t 我/r 不/d 用/v 再/d 做/v 自然/a 语言/n 处理/vn 作业/n 了/y !/w
    
    其他分词:(含未登录词-自然语言处理)
    今天/t 和/p 明天/t 我/r 不用/d 再/d 做/v 自然语言处理/vd 作业/v 了/y 。/w
    

    3 语料库的影响?

    先看一下这个例子:

    我/r 喜欢/v 学习/v 。/w

    我们再看看词典,学习有/v,/vn这两种词性,但是在这个例子中应该是vn才对。这是什么情况呢?通过打印发射概率矩阵发现,学习的vn和v这两个发射概率竟然差不多?问题可能出在这里。

    我们可以试着将语料库中学习/v全部替换成学习/vn。这时候,我们的标注结果变成了:

    我/r 喜欢/v 学习/vn 。/w

    分析发现,出现这样的标注差异应该是语料库本身造成的,有趣的是我们使用LTP词性标注测试该例子时也是第一种结果。

    4 转移概率矩阵和发射概率矩阵的存储?

    数据结构使用numpy.float64,保证有足够小的精度尽量防止溢出,能够小到1e-308。

    转移概率矩阵大小为44*44,发射概率矩阵大小为44*分词词串数目,两者都是在程序运行时生成。

    若在大规模词性标注情况下建议保存44*4444*60366(语料库总词数)大小的转移概率矩阵和发射概率矩阵到本地文件中,需要时直接一次读取该文件存入内存而不需动态生成,提高效率。

    5 其他问题

    语料库中有[香港/ns 特区/n 基本法/n 推广/vn 督导/vn 委员会/n]nt这样的组合标记,为了处理方便,这里特别处理这样的词性标注,在实际应用中需要注意处理这种情况。

    在计算转移概率时是以句子为单位进行处理的,因此,对于一段文字建议按标点分成几个句子处理,一来能提高词性标注的准确性,二来防止因句子长度过长出现下溢现象

    6 实现代码

    import numpy as np
    import hmm_viterbi
    import max_probability_seg
    
    
    def cal_hmm_matrix(observation):
        # 得到所有标签
        word_pos_file = open('ChineseDic.txt').readlines()
        tags_num = {}
        for line in word_pos_file:
            word_tags = line.strip().split(',')[1:]
            for tag in word_tags:
                if tag not in tags_num.keys():
                    tags_num[tag] = 0
        tags_list = list(tags_num.keys())
    
        # 转移矩阵、发射矩阵
        transaction_matrix = np.zeros((len(tags_list), len(tags_list)), dtype=float)
        emission_matrix = np.zeros((len(tags_list), len(observation)), dtype=float)
    
        # 计算转移矩阵和发射矩阵
        word_file = open('199801.txt').readlines()
        for line in word_file:
            if line.strip() != '':
                word_pos_list = line.strip().split('  ')
                for i in range(1, len(word_pos_list)):
                    tag = word_pos_list[i].split('/')[1]
                    pre_tag = word_pos_list[i - 1].split('/')[1]
                    try:
                        transaction_matrix[tags_list.index(pre_tag)][tags_list.index(tag)] += 1
                        tags_num[tag] += 1
                    except ValueError:
                        if ']' in tag:
                            tag = tag.split(']')[0]
                        else:
                            pre_tag = tag.split(']')[0]
                        transaction_matrix[tags_list.index(pre_tag)][tags_list.index(tag)] += 1
                        tags_num[tag] += 1
    
                for o in observation:
                    # 注意这里用in去找(' 我/',' **我/'的区别),用空格和‘/’才能把词拎出来
                    if ' ' + o in line:
                        pos_tag = line.strip().split(o)[1].split('  ')[0].strip('/')
                        if ']' in pos_tag:
                            pos_tag = pos_tag.split(']')[0]
                        emission_matrix[tags_list.index(pos_tag)][observation.index(o)] += 1
    
        for row in range(transaction_matrix.shape[0]):
            n = np.sum(transaction_matrix[row])
            transaction_matrix[row] += 1e-16
            transaction_matrix[row] /= n + 1
    
        for row in range(emission_matrix.shape[0]):
            emission_matrix[row] += 1e-16
            emission_matrix[row] /= tags_num[tags_list[row]] + 1
    
        times_sum = sum(tags_num.values())
        for item in tags_num.keys():
            tags_num[item] = tags_num[item] / times_sum
    
        # 返回隐状态,初始概率,转移概率,发射矩阵概率
        return tags_list, list(tags_num.values()), transaction_matrix, emission_matrix
    
    
    if __name__ == '__main__':
    
        input_str = "今天和明天我弹琴。"
        obs = max_probability_seg.seg(input_str).strip().split(' ')
        hid, init_p, trans_p, emit_p = cal_hmm_matrix(obs)
    
        result = hmm_viterbi.viterbi(len(obs), len(hid), init_p, trans_p, emit_p)
        
        tag_line = ''
        for k in range(len(result)):
            tag_line += obs[k] + hid[int(result[k])] + ' '
        print(tag_line)
    
    

    这里用到了上两篇文章讲到的概率最大化分词Viterbi算法
    用到的语料库链接:
    https://pan.baidu.com/s/1sB252goPWU5UruzWmBWO1A 提取码:4r13

    展开全文
  • 超几何分布与二项分布及其期望

    千次阅读 2018-09-05 16:44:00
    惊奇的发现选修2-3上有...超几何分布(Hypergeometric distribution)是统计学上一种离散概率分布。它描述了由有限个物件中抽出$n$个物件,成功抽出指定种类的物件的个数(不归还 (without replacement))。 举个例...

    惊奇的发现选修2-3上有期望的介绍,不过我没有课本啊qwq。只能去网上找资料了。。

    这两节我感觉比较有意思,就记一下吧

    超几何分布

    名字真高大上

    定义

    超几何分布(Hypergeometric distribution)统计学上一种离散概率分布。它描述了由有限个物件中抽出$n$个物件,成功抽出指定种类的物件的个数(不归还 (without replacement))。

    举个例子:

    $N$个物品中有$M$个是不合格的,超几何分布描述了在这$N$个样本中选$n$个,其中有$k$个是不合格的概率

    $$P(x = k) = \frac{C_M^k C_{N - M}^{n - k}}{C_N^n}$$

     

    若随机变量$X$服从参数为$n, M, N$的超几何分布,则记为$$x \sim H(n, M, N)$$

    期望

    $E(x) = \frac{nM}{N}$

    证明(前方高能):

    前置定理:

    1. $k * C_M^k = M * C_{M - 1}^{k - 1}$

    2. $\sum_{k = 0}^m C_M^k C_{N - M}^{n - k} = C_N^n$

    推导过程

    \begin{aligned}
    E(x) &= \sum_{k = 0}^m k * \frac{C_M^k * C_{N - M}^{n - k}}{C_N^n} \\
    &=\frac{1}{C_N^n} \sum_{k = 0}^m k C_M^K * C_{N - M}^{n - k}\\
    &=\frac{1}{C_N^n} \sum_{k = 1}^m M C_{M - 1}^{k - 1} C_{N - M}^{n - k}\\
    &=\frac{M}{C_N^n} \sum_{k = 1}^m C_{M - 1}^{k - 1}C_{N - M}^{n - k}\\
    &=\frac{M}{C_N^n} C_{N - 1}^{n - 1} \\
    &=\frac{nM}{N}
    \end{aligned}

     

    方差

    $$D(x) = {n(\frac{M}{N})(1-\frac{M}{N})(N-n) \over (N-1)}$$

     

    二项分布

    定义

    概率论统计学中,二项分布Binomial distribution)是$n$个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为$p$。这样的单次成功/失败试验又称为伯努利试验

    实际上,当$n = 1$时,二项分布就是伯努利分布


    一般地,如果随机变量$X$服从参数$n$和$p$的二项分布,我们记$x \sim b(n, p)$或$X \sim B(n, p)$.$n$次试验中正好得到$k$次成功的概率为

    $f(x;n,p) = P(x = k) C_n^k \ p^k \ (1-p)^{n- k}$

     

    期望

    $E(x) = np$

    证明

    这不是很显然的么qwq。

    $n$次试验均为独立的,每次试验的成功率为$p$

    根据期望的线性性$E(x) = E(x_1) + E(x_2) + \dots E(x_n) = np$

     

    如果你想找刺激的话可以继续往下看

    $$P(X=k) = {n\choose k}p^kq^{n-k}, k = 0,1,2,..,n,q = 1-p\\$$

    \begin{aligned}
    EX &= \sum_{k=0}^n k {n\choose k}p^kq^{n-k} \\
    &= \sum_{k=1}^n k {n\choose k}p^kq^{n-k} \\
    &= \sum_{k=1}^n k {\frac{n!}{k!(n-k)!}}p^kq^{n-k} \\
    &= np\sum_{k=1}^n {\frac{(n-1)!}{(k-1)!(n-k)!}}p^{k-1}q^{(n-1)-(k-1)} \\
    &= np\sum_{k=1}^n{n-1\choose k-1}p^{k-1}q^{(n-1)-(k-1)}\\
    &= np[{n-1\choose 0}p^0q^{n-1}+{n-1\choose 1}p^1q^{n-2}+...+{n-1\choose n-1}p^{n-1}q^0] \\
    &= np
    \end{aligned}

    最后一步可以由二项式定理推得

    方差

    $$D(x) = np(1 - p)$$

    参考资料

    维基百科—超几何分布

    维基百科—二项分布

    二项分布的期望方差证明

     

    展开全文
  • 台大概率第四周

    2017-08-28 09:18:58
    台大概率第四周4-1 随机变数考虑费文兄的例子 写字很累人 随机变数R.V 把实验结果数字化的表示方法 ...4-2 累积分布函数CDF什么是累积分布函数CDF CDF有什么用? 最有用的用途是计算X落在某范围内的概

    台大概率第四周

    4-1 随机变数

    考虑费文兄的例子

    • 写字很累人

    随机变数R.V

    • 把实验结果数字化的表示方法
    • 让概率的推倒更数学,更简明
    • 随机变数通常是用大写的英文字母表示

    探究他的本质

    • 是函数不是变数

    随机变数的种类

    • 离散随机变数
      • 是有限多个或是可数的无穷多个
    • 连续随机变数
      • 不可数的无穷多个

    4-2 累积分布函数CDF

    什么是累积分布函数CDF

    image
    这里写图片描述

    CDF有什么用?

    • 最有用的用途是计算X落在某范围内的概率

    离散随机变数的CDF图像

    这里写图片描述
    image

    连续随机变数的CDF图像

    image
    这里写图片描述

    CDF的性质

    这里写图片描述
    image

    4-3 概率质量函数PMF

    这里写图片描述
    image

    PMF 和 CDF 的关系

    这里写图片描述
    image
    * 两者可以互推

    几率分布

    PMF 是总和为一的概率分布

    4-4离散分布概率1

    Bernoulli分布

    • 一次实验两种结果
    • X~Bernoulli(p)成功的概率为p

    适用问题

    这里写图片描述
    这里写图片描述
    image
    image

    Uniform概率分布

    • 每个情况出现的机会相等

    适用问题

    image
    这里写图片描述

    学习概率分布有什么用

    • 很多事情的概率模型是未知的
    • 我们可以用概率分布来计算概率

    4-5 离散分布概率2

    Geometric概率分布

    • 有失忆性

    适用问题

    image
    这里写图片描述

    Pascal概率分布

    适用问题

    这里写图片描述
    image

    Poisson概率分布

    适用问题

    这里写图片描述
    image

    推导

    这里写图片描述
    image

    展开全文
  • 对于每一个MFCC特征都输出一个概率分布,然后结合CTC算法即可实现语音识别 相比之下,语音分类要简单很多,因为对于整个MFCC特征序列只需要输出一个分类结果即可 语音分类和语音识别的区别,可以类比一下文本分类和...
  • 抽样分布 一、概率论基础 1.相关基础 2.概率及基础运算 3.密度函数与分布函数 4.Gamma分布 Γ(a,λ)\...1.定义与种类 2.概率函数 3.常用统计量 4.统计量的三大分布 5.正态总体的抽样分布 三、常考题型及解题思路 ...
  • 概率公式: 贝叶斯公式: 三.朴素贝叶斯做分类问题 PS:之所以说朴素是因为它的特征之间是相互独立的。 当作应用题 已知量 1.一群对象。 有固定种类(A1,A2...An) 每个对象都有固定的特征(B1,...
  • 超几何分布是统计学上一种离散概率分布。它描述了由有限个物件中抽出n个物件,成功抽出指定种类的物件的次数(不归还)。称为超几何分布,是因为其形式与“超几何函数”的级数展式的系数有关。 在产品质量的不放回...
  • 压缩感知中常用的待还原信号种类

    千次阅读 2014-05-12 10:50:45
    研究压缩感知的一个基本工作就是生成原始的信号,也就是y=Ax中的x。一般来说,x是一个长度为N的列向量,稀疏度...2、Signs,伯努利分布,待选集合为{-1,1},等概率选取。 3、Gaussian,标准正态分布N(0,1) 4、Power,能
  • 我们将熵看作是一个系统“混乱程度”的度量,因为一个系统越混乱,可以看作是微观状态分布越均匀。 1948年香农 在信号通信领域《信息论》提出信息熵: 信息熵(香农熵):根据数据样本所出现的概率计算数据混乱程度...
  • 本次笔记取材于: 概率论05 离散分布 概率论06 连续分布 概率论07 联合分布 离散随机变量的概率分布 随机变量(random variable)的本质是一个函数,是从样本空间的...离散随机变量的概率分布有很多种类,常见如...
  • 机器学习 | 集成学习

    2021-02-16 21:09:06
    1、Bagging装袋:又称自主聚集(bootstrap aggregating),是一种根据均匀概率分布从数据集中重复抽样(有放回)的技术。每个新数据集合原始数据集大小相等。 2、Boosting提升:是一个迭代的过程,用来自适应地改变...
  • 概率分布及其在模拟中的应用 概率分布 随机变量、随机数、随机数分布 模拟的应用示例 写在后面 模拟的基本概念 模拟又称仿真,它的基本思想是构造一个实验的模型,这个模型与我们研究的系统的主要性能十分近似。通过...
  • 概率分布完整表达 边缘概率和模型更有效率的计算 边缘效率和模型更有效率的学习 对概率模型的要求: 更有效率的推理 理解性更强 ->现在他只能有一定条件的满足 概率模型的种类 bayessches Netz 一定的相关性 ...
  • 交叉熵(cross entropy):刻画两个概率分布之间的距离,是分类问题中使用较为广泛的一种损失函数。 (1)Softmax回归,可以将神经网络的输出转化为一个概率分布 tensorflow中提供了交叉熵和Softmax两个功能的函数tf...
  • TensorFlow损失函数(loss function)

    万次阅读 2017-08-14 11:32:33
    分类问题常用方法:交叉熵(cross_entropy),它描述了两个概率分布之间的距离,当交叉熵越小说明二者之间越接近。它是分类问题中使用比较广的一种损失函数。 给定两个概率分布p和q,通过q来表示p的交叉熵为: H(p...
  • 交叉熵代表的是不同概率分布的相似情况,他的计算方法如下所示:其中y代表的是每种类比出现的概率 cross\_entropy = -\sum y * log(y) 对于深度学习中的分类问题来说,当分类越准确的时候,上述值就越小。 但是对于...
  • 匹配参数,使特征匹配到相关的概率分布 计算概率积,判断是否小于某个值 一个实例 15-4 实施并评估异常检测算法 实施过程见下方,以下面航空发动机为例 评估过程 使用精确率和召回率 还有F1来评价 15-5异常检测...
  • 正如我们在离散分布和连续分布中看到的,分布有许多种类。更夸张的是,在满足概率公理的前提下,我们完全可以自行设计分布。想像一下,如果有一天数学书上印一个Vamei分布,这是多么美好的事情啊!然而,这一愿望并不...
  • 文章目录一,概述1,条件概率(Condittional probability)2,全概率公式3,贝叶斯推断二,举个“栗子”(手动星标)三,朴素贝叶斯的种类如何选择1,高斯分布的朴素贝叶斯算法GaussianNB在sklearn中的实现2,多项式...
  • 谈一谈交叉熵损失函数

    千次阅读 2018-05-22 16:31:40
    关于损失函数的概念以及种类特点,可参看博主的博客: 常见的损失函数总结,谈到交叉熵,就...交叉熵(cross entropy)是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预...

空空如也

空空如也

1 2 3 4 5 6
收藏数 108
精华内容 43
关键字:

概率分布种类