循环神经网络的提出
提起神经网络,最被广为知晓的就是图像识别,他可以告诉我们一张图片中是否有猫咪的存在,或者告诉我们一个手写数字代表哪个数字,这样的一个图像识别网络就是一个前向反馈神经网络(例如CNN-Convolutional Neural Network),这种网络有一个显著的特点:
In this network, the information moves in only one direction, forward, from the input nodes, through the hidden nodes (if any) and to the output nodes. There are no cycles or loops in the network. — Wikipedia
网络的结构如下图所示,将图像的所有像素信息一次性输入到网络中,然后一层一层的向前计算,这种方法可以有效的提取图像中的各种特征信息。
但是前向反馈神经网络不能有效的处理序列化数据,即他不能有效的获取到序列化数据中包含的规律。因此有人提出了RNN(Recurrent Neutral Network)的模型,将序列化数据逐个送入网络中,让网络去记住序列之间的特征,来预测一个准确的结果。一个循环神经网络模型如下图所示,其中x_1, x_2... 代表输入的序列化数据,y_1, y_2...代表着预测到的下个数据,h_0, h_1...中保留了上一个输入数据中包含的信息。
这些变量存在着如下的数学关系:
每个节点的\(h_t\)都是根据前一个\(h_{t-1}\)和\(x_t\)计算得到的 \[ h_{t}=f\left(W^{(h h)} h_{t-1}+W^{(h x)} x_{t}\right) \]
每一个\(y_t\)都是由\(h_t\)计算出来的
\[ y_{t}=\operatorname{softmax}\left(W^{(s)} h_{t}\right) \]
最后根据较差熵算出预测值和实际值之间的差距,对模型的中的参数进行求导。
\[ J^{(t)}(\theta)=\sum_{i=1}^{|V|}\left(y_{t_{i}}^{\prime} \log y_{t_{i}}\right) \]
RNN模型还是十分简单的一种模型,有一个十分显著的缺陷,因为向前求导的深度很深,十分容易产生梯度爆炸或者梯度消失,这就意味着网络难以记忆序列中距离较远的数据,往往会基于最新的数据进行预测,这个问题可以被称为短期记忆问题。
LSTM & GRU
LSTM和GRU都是为了解决RNN模型中的短期记忆问题提出来的,他们中都有门的概念来控制信息流。这些门会学习序列中的哪些信息是有效的哪些事可以被删除的。LSTM和GRU是最被广泛使用的神经网络。
放弃整理了,希望我还能好好学习!
评价指标
均方根误差
均方根误差(或称方均根偏移、均方根差、方均根差等,英文:root-mean-square deviation、root-mean-square error、RMSD、RMSE)是一种常用的测量数值之间差异的量度,其数值常为模型预测的量或是被观察到的估计量。方均根偏移代表预测的值和观察到的值之差的样本标准差(sample standard deviation),当这些差值是以资料样本来估计时,他们通常被称为残差;当这些差值不以样本来计算时,通常被称为预测误差(prediction errors)。方均根偏移主要用来聚集预测里头误差的大小,通常是在不同的时间下,以一个量值来表现其预测的能力。方均根偏移是一个好的准度的量度,但因其与数值范围有关,因此被限制只能用来比较不同模型间某个特定变量的预知误差。 -- 维基百科
均方根误差的定义是估计量 之差期望值的平方根: \[ \operatorname{RMSD}(\hat{\theta})=\sqrt{\operatorname{MSE}(\hat{\theta})}=\sqrt{\mathrm{E}\left((\hat{\theta}-\theta)^{2}\right)} \] 对一个无偏估计量(unbiased estimator)来说,均方根差是方差的平方根,也就是我们所称的标准差。
皮尔逊相关系数
两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商
高级特征的构造和特征编码
labelEncoder
有序的非数值离散特征会用到标签编码
onehotEncoder
针对类别特征,例如【男人,女人】,【晴天,雨天,阴天】,类别型特征,无序,最简单快捷的方式是通过独热编码转化为【0,1】或者【0,0,1】这样的形式,模型才能识别,同时也起到了扩充特征的作用
label_binarize
比如特征为【晴天,雨天,阴天,雷暴】则特征转化为【是否晴天,是否雨天,是否阴天,是否雷暴】,用数字来表示【雷暴】就是[0,0,0,1]