当前位置:   article > 正文

Word2Vec与Softmax以及one hot_softmax onehot

softmax onehot

最近去了趟DeeCamp,有个叫徐亦达的老师用了一节课的时间讲了softmax,当时感觉没啥用,过于理论,就没仔细看。现在想想,其实还挺有用的,关于softmax的背后的原理其实非常丰富。。

前言

一切深度学习模型都有不同程度的分布假设,高斯分布,拉普拉斯分布,独立。。。但是由于目的与结果一样,往往深度学习优化的目标与方向都是统一的,深度学习也是基于统计的。。往往不同的优化策略或者目标函数不同,在不同假设下都可以相互转化,只是特定问题特定分析,为了运算方便以及可解释性而已。

softmax回归,逻辑回归(二分类)都是不同的变种,而softmax用的更多,通常作为输出层激活,往往结合或者配合相似性度量手段,交叉熵等进行目标函数建模,当然也有衡量距离的其他指标,只是场合不同而已。。

UFLDL

斯坦福那个ufldl网站好像崩了,,不显示任何东西:
http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
其实里面有很多特别好的东西,可以看看。
不过好像提供了新版:http://ufldl.stanford.edu/
旧版只能去找资源下载了。。

word2vec

算了,步入正题,首先看下目前很火热的方向Emdedding,这是个很重要的话题,如何更好的描述输入,一直都是个很重要的话题。今天主要关注点在NLP领域的Word2Vec,针对词向量表征。
网上很多讲Word2Vec的,但是有的没抓住重点,有的则功力不够。
比如这篇:
https://www.cnblogs.com/lindaxin/p/7991436.html
https://blog.csdn.net/qq_36097393/article/details/88567942
只讲了如何使用pytorch搭建,但是不涉及训练,没卵用。。
https://blog.csdn.net/joleoy/article/details/85786061
过分依赖库,没有讲原理,也没用。。
https://blog.csdn.net/mylove0414/article/details/61616617
https://blog.csdn.net/raojunyang/article/details/81194363

原理讲了一些,但是缺乏实战。。
https://blog.csdn.net/scanf_yourname/article/details/94630754
https://blog.csdn.net/weixin_41843918/article/details/90312339?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

这是目前能找到最好的一篇,可以看看,讲的确实挺不错,但是实现代码稍微有些简单,很多细节可以优化,但是至少能用,且把word2vec原理讲清楚了,代码很好理解。

更多实战与原理,我这里介绍三本书:
1、小黄(深度学习tensorflow实战那本)
2、小黑(讲tensorflow应用的那本,里面有实际代码)
3、tensorlayer(玩转tensorlayer那本书,也有一些代码,讲得很好,但是有些东西封装得太好了,需要进一步查看源码,不过源码很好理解。。)

关于word2vec的东西就那么些,有点像自编码器,但是关联了语意,进行了信息抽取,语言建模,并且引入了两个trick,分层softmaxnce loss,以及负采样(不由得让人联想到focal loss)。

另外,其实word2vec有点像处理多标签分类不均衡的问题,这里面还是有些理论推导的,而在实现上,往往会加入一些技巧或者转化方法,但是解决的问题还是一样,思想都是很有相似之处的,具体请参见:
https://mp.weixin.qq.com/s/Ii2sxJUGNvX4CnmtVmbFwA

建立好词嵌入word2vec之后,RNN网络模型的使用,可以参考:

https://zhuanlan.zhihu.com/p/28054589

https://www.jianshu.com/p/cfa9f4c81523

https://mp.weixin.qq.com/s?__biz=MzUyMjE2MTE0Mw==&mid=2247484315&idx=1&sn=dd3cd5a4000624f7774670a7dbaa4e11&chksm=f9d15d03cea6d415ab120d848a8995b05561e24bdb452691a92ea422dffb2838c97f21512674&mpshare=1&scene=23&srcid=1017t04TAbdPWGAcUx2T0xqm#rd

softmax,交叉熵,one hot

其实大体上跟分类模型也大差不差,也用了softmax以及交叉熵,以及one hot编码,这里我想提一下为什么一定要使用one hot编码,个人觉得,只是计算方便,足以刻画区别,不偏重表示,以及迅速进行目标优化,但是我始终觉得one hot缺乏了关联分析,也无法进行多标签优化。。另外,很多东西都是变种,其实原理还是那些,优化目标还是一样,深度学习就是曲线救国嘛,只能靠迭代,逐步逼近全局最优解。

one hot参见:
https://blog.csdn.net/xiaotian127/article/details/99451619
https://www.cnblogs.com/smartwhite/p/8950600.html
https://blog.csdn.net/admin_maxin/article/details/81301857
https://blog.csdn.net/windowsyun/article/details/78277880
https://blog.csdn.net/Mr_HHH/article/details/80006971

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号