• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

Word2Vec模型中深交叉SNE数据的降维

Word2Vec模型

fx45sdaiqc15184.png

模型结构:

1输入层:输入向量是词汇的一键代码。

1隐藏层:权重矩阵的形状为[vocab_size,hidden_size]

1输出层:输出一个长度为vocab_size的向量,向量中每个元素对应词库中一个词的概率。

模型培训:

W2V有两种训练模式:Skip-Gram和CBOW。直观理解:Skip-Gram给出当前值,预测上下文。CBOW是预测当前值的给定上下文。

Simple CBOW Model

oejn11i1he55185.png

简单的CBOW模型只输入一个单词,输出一个单词。

最终的输出需要经过softmax函数,将输出向量中的每个元素归一化为0到1之间的一个概率,预测出的单词就是概率最高的那个。

CBOW Multi-Word Context Model

203ke3qg2dq5186.png

SimpleCBOW和simple CBOW的区别在于输入由一个单词变为多个单词,每个输入Xik到达隐层时都会经过相同的权重矩阵W。隐藏层H的值变成多个字乘以权重矩阵,然后相加并平均。

Skip-gram

vltrwzingm25187.png

Skip-gram从输入层到隐含层的原理和简单的CBOW是一样的,不同的是从隐含层到输出层,损失函数变成了C字(期望输出上下文词汇)的损失函数之和,权重矩阵W '仍然是共享的。

从效果上看,skip-gram的结果一般比CBOW好。原因可能是CBOW在对多个字进行平均时带来了一些额外的信息损失。

Deep Crossing

g5psuzwdwcn5188.png

模型结构:

文字特征(一热矢量)先进入嵌入层,再拼成叠加层,数字特征直接拼成叠加层。

y1gcllocq015189.png

嵌入层实际上是全连接的隐藏层,可以降低一键特征的维数。

堆叠层将不同的嵌入特征和数值特征拼接在一起,形成一个包含所有特征的新特征向量。

再往上是由几个完全相连的层组成的MLP结构。

评分层输出最终结果

t-SNE数据降维

T-SNE(T-distributed random neighbor embedding)是一种降维的机器学习算法,常用于高维数据可视化。

t-SNE的两大优势:

对于不同的点,较小的距离将产生较大的梯度来排斥它们。

这种排斥不会是无限的(渐变中的分母),相异点之间的距离会太远。

四小于3360。

主要用于可视化,其他用途很难。

T-SNE倾向于保留局部特征,对于固有维数较高的数据集,不能完全映射到2-3维空间。

T-SNE没有唯一最优解,也没有预测部分。如果要做估算,可以考虑降维,然后建立回归方程等模型。但是需要注意的是,t-sne中的距离本身是没有意义的,是一个概率分布问题。

训练太慢了。有许多基于树的算法来改进t-sne。

sci kit-学习代码演示:

将numpy作为np导入

从sklearn.manifold进口TSNE

X=np.array([[0,0,0],[0,1,1],[1,0,1],[1,1,1]])

X_embedded=TSNE(n_components=2,learning_rate='auto ',

.init='random ')。拟合_转换(X)

x _嵌入式. shape

(4, 2)

Link to comment
Share on other sites