RNN 学习笔记

NLP (Natural Language Processing)

Tensorflow-reader.py

os.path.join(data_path, "ptb.train.txt")
#定义文件路径

#join函数为路径拼接函数
>>>os.path.join('a','b','c')
>>>a\\b\\c'

_build_vocab(train_path)
#对输入文本进行排序,首要字段 value(频率),次要字段 key,返回类型为字典(字符:_id)

train_data = _file_to_word_ids(train_path, word_to_id)
#将输入文本按照生成的字典映射为 id 序列

vocabulary = len(word_to_id)
#记录字典大小,未在字典中出现的字符将被忽略

with tf.name_scope(name, "PTBProducer", [raw_data, batch_size, num_steps]):
#定义命名空间,不同命名空间内的 Variable name 属性可以相同

__init__(
    name,#域名
    default_name=None,#域名未指定时的默认值
    values=None#传入的变量列表,可在上下文中操作修改
)

raw_data = tf.convert_to_tensor(raw_data, name="raw_data", dtype=tf.int32)
#将 python 中的数据类型转换为 tensor 张量

继续阅读

DeepLearning中的一些笔记

前言

终于考完试了,有时间来写一篇博客,记录一下刚刚接触DeepLearning中遇到的一些问题,博客文章也开始完全使用Markdown+LaTex公式编辑,但是语法会出现一些覆盖冲突问题,还好LaTex只是用来敲公式,问题不大,同时下一步我也会优化一下博客的Markdown渲染,实在是太丑了,高亮丑,标题大小丑(实在忍不了完全没差的标题大小,文章结构根本凸显不出来),引用也丑,颜色更丑…=。=


为什么使用Sigmoid函数

在多元线性回归中我们的回归函数为

    \[h(x) = \theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2} ...\]

而在分类问题中我们去拟合数据时选择的预测函数为Sigmoid函数

    \[g(x) = \frac{1}{1+e^{-x}}\]

    \[h(x) = \frac{1}{1+e^{-\theta^{\mathrm{T}}X}}\]

这么选区预测函数的原因,是为了使h(x)\in(0,1),而我们的预测只需要根据h(x)的输出来判断预测点的类别,且默认情况下我们会在训练时,我们的训练方向总是朝着使h(x)\geq 0.5时表示预测结果为1来进行训练
继续阅读