task2

作者: 欧飞红 | 来源:发表于2020-02-14 16:42 被阅读0次

文本预处理

建立字典

记一个文本预处理需要用到的字典,学习一下python

class Vocab(object):
    def __init__(self, tokens, min_freq=0, use_special_tokens=False):
        counter = count_corpus(tokens)  # : 
        self.token_freqs = list(counter.items())
        self.idx_to_token = []
        if use_special_tokens:
            # padding, begin of sentence, end of sentence, unknown
            self.pad, self.bos, self.eos, self.unk = (0, 1, 2, 3)
            self.idx_to_token += ['', '', '', '']
        else:
            self.unk = 0
            self.idx_to_token += ['']
        self.idx_to_token += [token for token, freq in self.token_freqs
                        if freq >= min_freq and token not in self.idx_to_token]
        self.token_to_idx = dict()
        for idx, token in enumerate(self.idx_to_token):
            self.token_to_idx[token] = idx

    def __len__(self):
        return len(self.idx_to_token)

    def __getitem__(self, tokens):
        if not isinstance(tokens, (list, tuple)):
            return self.token_to_idx.get(tokens, self.unk)
        return [self.__getitem__(token) for token in tokens]

    def to_tokens(self, indices):
        if not isinstance(indices, (list, tuple)):
            return self.idx_to_token[indices]
        return [self.idx_to_token[index] for index in indices]

def count_corpus(sentences):
    tokens = [tk for st in sentences for tk in st]
    return collections.Counter(tokens)  # 返回一个字典,记录每个词的出现次数

语言模型

n元语法和马尔可夫假设

马尔可夫假设:一个词的出现只与前面n个词有关

基于统计的语言模型:n元语法

马尔可夫链

n元模型的缺陷

1.参数空间大

p(w1)p(w2|w1)p(w3|w1,w2)

v + v**2 + v**3

2.数据稀疏

齐夫定律:大多数单词的频率很小

循环神经网络

基于n元模型的理论,避免缺陷

时序数据:时序数据的一个样本通常包含连续的字符

采样方式:随机采样和相邻采样。

随机采样和相邻采样示例(来自评论区)

听完课之后总结了一下随机采样和相邻采样,并且花了点时间画了一下自己理解的原理图,如果有错误请大家指出来。

0I3BsBmshG3xRWggUDH4v.jpg

本次课程中,讲课的老师讲的非常的详细,包括前面语言模型,N元模型,都非常的清楚。
建议第一次没有看懂的同学多看几次。

循环神经网络

循环神经网络

image

梯度衰减或梯度爆炸

反向传播方式:通过时间反向传播,BPTT(针对循环层的训练算法)

梯度是幂的形式,指数是时间步数

应对方法:裁剪梯度(只能应对梯度爆炸)

\min\left(\frac{\theta}{|\boldsymbol{g}|}, 1\right)\boldsymbol{g}

超参数

在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。 通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

epoch

深度学习中 number of training epochs 中的 epoch到底指什么?

回答一

epoch:1个epoch表示过了1遍训练集中的所有样本。

RNN的state

定义模型RNN中的state维护一些状态,都是维护哪些状态,这些状态具体什么作用和效果呢?

对于RNN来讲,就是隐藏状态H,因为RNN在计算H_{t}时会用到H_{t-1},所以需要维护这个状态

相关文章

  • ExecutorService对象的shutdown()和shu

    在submit(task2)后shutdown() 运行结果: 在submit(task2)后shutdownNo...

  • IELTS --WRITING(20180421)

    TASK2: In the modern world ,it is possible to shop, work ...

  • python处理被试行为数据

    ######################################### # task2 求出每个被试在...

  • 2018年3月3日雅思大作文范文~

    Task2 of IELTS on March 3.2018 题目: In many countries, pri...

  • 贷款违约预测-Task2 数据分析

    Task2 数据分析 此部分为零基础入门金融风控的 Task2 数据分析部分,带你来了解数据,熟悉数据,为后续的特...

  • task2

    1. JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?...

  • task2

    给出分区大小。命令:df -h(print sizes in powers of 1024 (e.g., 1023...

  • TASK2

    马尔可夫性质(Markov Property): 如果某一个过程未来的转移跟过去是独立的,即只取决于现在,那么其满...

  • TASK2

    任务要求: 基本文本处理技能:中英文字符串处理(删除不相关的字符、去停用词);分词(结巴分词);词、字符频率统计。...

  • task2

    文本预处理 建立字典 记一个文本预处理需要用到的字典,学习一下python 语言模型 n元语法和马尔可夫假设 马尔...

网友评论

      本文标题:task2

      本文链接:https://www.haomeiwen.com/subject/sdhjfhtx.html