9.关于注意力机制


    首先阿里面试官的说法是:”简单理解就是学习网络中间层输出值的权重。self-attention 是在给中间层输出值进行编码“
    ”看结构和公式应该可以看出它在学习什么。attention 的对齐可解释性效果不能说完美,但是attention一开始引入为了学习图像局部像素特征的权重。“
    
    优点:
    1.一步到位的全局联系捕捉 
        attention机制可以灵活的捕捉全局和局部的联系,而且是一步到位的。另一方面从attention函数就可以看出来,
        它先是进行序列的每一个元素与其他元素的对比,在这个过程中每一个元素间的距离都是一,
        因此它比时间序列RNNs的一步步递推得到长期依赖关系好的多,越长的序列RNNs捕捉长期依赖关系就越弱。
    2.并行计算减少模型训练时间 
        Attention机制每一步计算不依赖于上一步的计算结果,因此可以和CNN一样并行处理。但是CNN也只是每次捕捉局部信息,通过层叠来获取全局的联系增强视野。
    3.模型复杂度小,参数少
        模型复杂度是与CNN和RNN同条件下相比较的
    缺点:
    attention机制不是一个"distance-aware"的,它不能捕捉语序顺序(这里是语序哦,就是元素的顺序)。
    这在NLP中是比较糟糕的,自然语言的语序是包含太多的信息。如果确实了这方面的信息,结果往往会是打折扣的。
    说到底,attention机制就是一个精致的"词袋"模型。所以有时候我就在想,在NLP任务中,
    我把分词向量化后计算一波TF-IDF是不是会和这种attention机制取得一样的效果呢? 
    当然这个缺点也好搞定,我在添加位置信息就好了。所以就有了 position-embedding(位置向量)的概念了,这里就不细说了。
    Attention机制说大了就一句话,分配权重系数。
    
    Attention可以用于:
    1.学习权重分布:
        这个加权可以是保留所有分量均做加权(即soft attention);也可以是在分布中以某种采样策略选取部分分量(即hard attention),此时常用RL来做;
        这个加权可以作用在原图上,也可以作用在特征图上;
        这个加权可以在时间维度、空间维度、mapping维度以及feature维度。
    2.任务聚焦、解耦(通过attention mask)
        多任务模型,可以通过Attention对feature进行权重再分配,聚焦各自关键特征。

attention这篇文章讲的挺好https://zhuanlan.zhihu.com/p/53682800?utm_source=wechat_session&utm_medium=social&utm_oi=565476691313602560

 

你可能感兴趣的:(offer收割机)