概率计算

深度学习部分笔记

不羁岁月 提交于 2020-02-15 09:46:11
线性回归部分 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现 线性回归的基本要素 模型 为了简单起见,这里我们假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。接下来我们希望探索价格与这两个因素的具体关系。线性回归假设输出与各个输入之间是线性关系: price=warea⋅area+wage⋅age+b 数据集 我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。 损失函数 在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。 它在评估索引为 i 的样本误差的表达式为 l(i)(w,b)=12(y^(i)−y(i))2, L(w,b)=1n∑i=1nl(i)(w,b)=1n∑i=1n12(w⊤x(i)+b−y(i))2. 优化函数 - 随机梯度下降

语言模型——深度学习入门动手

北慕城南 提交于 2020-02-15 09:44:54
语言模型 一段自然语言文本可以看作是一个离散时间序列,给定一个长度为 T 的词的序列 w1,w2,…,wT ,语言模型的目标就是评估该序列是否合理,即计算该序列的概率: P(w1,w2,…,wT). 本节我们介绍基于统计的语言模型,主要是 n 元语法( n -gram)。在后续内容中,我们将会介绍基于神经网络的语言模型。 语言模型 假设序列 w1,w2,…,wT 中的每个词是依次生成的,我们有 P(w1,w2,…,wT)=∏t=1TP(wt∣w1,…,wt−1)=P(w1)P(w2∣w1)⋯P(wT∣w1w2⋯wT−1) 例如,一段含有4个词的文本序列的概率 P(w1,w2,w3,w4)=P(w1)P(w2∣w1)P(w3∣w1,w2)P(w4∣w1,w2,w3). 语言模型的参数就是词的概率以及给定前几个词情况下的条件概率。设训练数据集为一个大型文本语料库,如维基百科的所有条目,词的概率可以通过该词在训练数据集中的相对词频来计算,例如, w1 的概率可以计算为: P^(w1)=n(w1)n 其中 n(w1) 为语料库中以 w1 作为第一个词的文本的数量, n 为语料库中文本的总数量。 类似的,给定 w1 情况下, w2 的条件概率可以计算为: P^(w2∣w1)=n(w1,w2)n(w1) 其中 n(w1,w2) 为语料库中以 w1 作为第一个词, w2 作为第二个词的文本的数量

机器学习:朴素贝叶斯

纵然是瞬间 提交于 2020-02-15 00:20:45
朴素贝叶斯(Naive Bayesian)分类器可以给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值 优点:在数据较少的情况下仍然有效,可以处理多类别问题 缺点:对于输入数据的准备方式较为敏感 贝叶斯准则 公式    \(\small P(C|X)=\frac{P(X|C)}{P(X)}P(C)\) 以文本分类为例    X 是一个词组 \(\small (x_{0}, x_{1}, x_{2}, ..., x_{n})\)    P(X) 是 X 组词出现的概率    P(C) 是标签 C 出现的概率    P(X|C) 是标签 C 出现 X 词组的概率    P(C|X) 是 X 词组是分类 C 的概率 又有    \(\small P(X) = P(x_{0})*P(x_{1})*P(x_{2})*...*P(x_{n})\)    \(\small P(X|C) = P(x_{0}|C)*P(x_{1}|C)*P(x_{2}|C)*...*P(x_{n}|C)\)    对于特定的 X ,由于 P(X) 是一样的 只需要比较 \(\small P(X|C_{i})P(C_{i})\) 和 \(\small P(X|C_{j})P(C_{j})\) 就可以知道是 X 是属于分类 i 的可能性大还是属于分类 j 的可能性大 并且可以求出 X 属于不同分类的概率 朴素

文本预处理、语言模型、循环神经网络基础

风流意气都作罢 提交于 2020-02-14 22:50:51
文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 1.读入文本 2.分词 3.建立字典,将每个词映射到一个唯一的索引(index) 4.将文本从词的序列转换为索引的序列,方便输入模型 一段自然语言文本可以看作是一个离散时间序列,给定一个长度为 T 的词的序列 w1,w2,…,wT ,语言模型的目标就是评估该序列是否合理,即计算该序列的概率: P(w1,w2,…,wT). 本节我们介绍基于统计的语言模型,主要是 n 元语法( n -gram)。在后续内容中,我们将会介绍基于神经网络的语言模型。 语言模型 假设序列 w1,w2,…,wT 中的每个词是依次生成的,我们有 P(w1,w2,…,wT)=∏t=1TP(wt∣w1,…,wt−1)=P(w1)P(w2∣w1)⋯P(wT∣w1w2⋯wT−1) 例如,一段含有4个词的文本序列的概率 P(w1,w2,w3,w4)=P(w1)P(w2∣w1)P(w3∣w1,w2)P(w4∣w1,w2,w3). 语言模型的参数就是词的概率以及给定前几个词情况下的条件概率。设训练数据集为一个大型文本语料库,如维基百科的所有条目,词的概率可以通过该词在训练数据集中的相对词频来计算,例如, w1 的概率可以计算为: P^(w1)=n(w1)n 其中 n(w1) 为语料库中以 w1

《动手学深度学习》系列笔记 —— 语言模型(n元语法、随机采样、连续采样)

南楼画角 提交于 2020-02-14 21:31:12
目录 1. 语言模型 2. n元语法 3. 语言模型数据集 4. 时序数据的采样 4.1 随机采样 4.2 相邻采样 一段自然语言文本可以看作是一个离散时间序列,给定一个长度为 \(T\) 的词的序列 \(w_1, w_2, \ldots, w_T\) ,语言模型的目标就是评估该序列是否合理,即计算该序列的概率: \[ P(w_1, w_2, \ldots, w_T). \] 1. 语言模型 假设序列 \(w_1, w_2, \ldots, w_T\) 中的每个词是依次生成的,我们有 例如,一段含有4个词的文本序列的概率 \[ P(w_1, w_2, w_3, w_4) = P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) P(w_4 \mid w_1, w_2, w_3). \] 语言模型的参数就是词的概率以及给定前几个词情况下的条件概率。设训练数据集为一个大型文本语料库,如维基百科的所有条目,词的概率可以通过该词在训练数据集中的相对词频来计算,例如, \(w_1\) 的概率可以计算为: 其中 \(n(w_1)\) 为语料库中以 \(w_1\) 作为第一个词的文本的数量, \(n\) 为语料库中文本的总数量。 类似的,给定 \(w_1\) 情况下, \(w_2\) 的条件概率可以计算为: 其中 \(n(w_1, w_2)\) 为语料库中以 \

CS224n学习笔记(一)

旧巷老猫 提交于 2020-02-14 04:30:40
How do we have usable meaning in a computer? Represents the words as discrete symbols, (离散型变量) Use the one-hot vector to represent the word in sentence, (Traditional way, we can use Distributional semantics) Distributional semantics : A word's meaning is giving by words that frequently appear close-by. when a word w appear in a text, its context words is the set of words that appears nearby. We can use many contexts of w to build up a representation of w . Word Vector :We build a dense(稠密的) vector for each word, chosen so that it's similar to vector of words that appear in similar contexts, it

几种随机算法的实现原理

瘦欲@ 提交于 2020-02-14 00:17:03
转自:http://www.androidstar.cn/%E5%87%A0%E7%A7%8D%E9%9A%8F%E6%9C%BA%E7%AE%97%E6%B3%95%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/   在日常工作中,经常需要使用随机算法。比如面对大量的数据, 需要从其中随机选取一些数据来做分析。 又如在得到某个分数后, 为了增加随机性, 需要在该分数的基础上, 添加一个 扰动 , 并使该扰动 服从特定的概率分布 ( 伪随机 )。本文主要从这两个方面出发, 介绍一些算法, 供大家参考。   首先假设我们有一个使用的随机函数float frand(), 返回值在(0, 1)上均匀分布。大多数的程序语言库提供这样的函数。 在其他的语言如C/C++中, 可以通过间接方法得到。如 frand()= ((float)rand() ) / RAND_MAX; 1, 随机选取数据   假设我们有一个集合A(a_1,…,a_n), 对于数m,0≤m≤n, 如何从集合A中 等概率地 选取m个元素呢?   通过计算古典概率公式可以得到, 每个元素被选取的概率为m/n。 如果集合A里面的元素本来就具有随机性, 每个元素在各个位置上出现的概率相等, 并且只在A上选取一次数据,那么直接返回A的前面m个元素就可以了,

中文分词技术笔记

允我心安 提交于 2020-02-13 23:02:45
参考《python自然语言处理实战核心技术与算法》 分词是自然语言处理的一项核心技术。中文分词算法大致分为三类,基于规则的分词算法、基于统计的分词算法、两者结合的分词算法。 一、基于规则的分词算法 基于规则的分词算法核心思想是维护一个词表,收录所有可能词,分词时拿待切分的字符串和此表中的词逐一查询匹配。找到则切分出来,没找到则不切分。 这种方法简单高效,便于理解,但是维护词表是一个很庞大的工程,而且现在的网络新词更新很快,基于规则很难将它们纳入其中。 关键算法是最大匹配算法,即以词表中最长的词的长度为单位步长,在待切分字符串中取步长长度的字串,再在词表中匹配,匹配到则将其切分出来并继续处理下一个步长,没有匹配到则将长度减少1继续进行匹配,直到匹配到或者长度为零,再进行下一轮匹配,直到切分完成。 最大匹配算法分为三种,正向最大匹配算法(MM),逆向最大匹配算法(RMM),双向最大匹配算法(BMM)。 (1)正向最大匹配算法(MM) 正向最大匹配算法的思路是从待切分字符串的头部开始做最大匹配。比如词表中最长词的长度为l,则从字符串中取前l个字符,从词表中匹配,如果匹配到则切分出来,没有匹配到则取前(l-1)个字符继续匹配,直到字串的长度为1,将其单独切分出来。反复进行直到字符串全部被处理。 算法实现: class MM(object): def __init__(self,

欧拉项目 323题

僤鯓⒐⒋嵵緔 提交于 2020-02-13 11:01:25
题目链接 这道题乍一看是位运算,其实是一道和概率分布相关的题目。 有y0 y1 y2一系列32bits的无符号数 x初始为0,然后和这一系列数异或操作,操作了N次,直到x是2^32-1,其实就是x所有bits都是1。 求N的期望值。 期望怎么计算呢? 计算对于每一个n对应的概率p(n),然后加权求和。 我们现在逐一分析一下 N为1,那么说明y0每一个bits都是1,概率是1/(2^32) N为2,针对每个bit进行计算,第一个bit,结果是1的概率是1减去不是1的概率,不是1的概率就是y0的第一bit不是0,y1的第一bit也不是0,概率是1/(2^2),那么p(2)=(1-1/(2^2))^32 - p(1) N为3,p(3)=(1-1/(2^3))^32 - p(1) - p(2) 以此类推 题目要求小数点后十位,如果p(n)很小,乘以n对结果都没有影响了,也就是p(n)*n小于10的十次方。 我计算的时候搞了一个数据结构保存概率的分子和分母。我解答出来之后,看了下别人的分析,感觉直接使用double 来保存概率也能给出正确答案,我没有试,不确定。 下面是我的代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 public class {

统计学习方法第一章课后作业(

亡梦爱人 提交于 2020-02-12 22:57:31
原文链接: https://blog.csdn.net/liufei00001/article/details/80973809 beta分布 https://blog.csdn.net/a358463121/article/details/52562940 MLE与bayes https://blog.csdn.net/bitcarmanlee/article/details/52201858 1.1 统计学习方法的三要素是模型、策略、算法。 伯努利模型是定义在取值为0与1的随机变量上的概率分布。 统计学分为两派:经典统计学派和贝叶斯统计学派。两者的不同主要是,经典统计学派认为模型已定,参数未知,参数是固定的,只是还不知道;贝叶斯统计学派是通过观察到的现象对概率分布中的主观认定不断进行修正。 极大似然估计和贝叶斯估计的模型都是伯努利模型也就是条件概率模型;极大似然估计用的是经典统计学派的策略,贝叶斯估计用的是贝叶斯统计学派的策略;为了得到使经验风险最小的参数值,使用的算法都是对经验风险求导,使导数为0. 定义随机变量A为一次伯努利试验的结果,A的取值为 { 0 , 1 } {0,1},概率分布为 P ( A ) P(A):                                下面分布用极大似然估计和贝叶斯估计来估计θ 的值。 极大似然估计: Ai代表第i次随机试验。解得