https://www.zhihu.com/question/323747423/answer/790457991
https://segmentfault.com/a/1190000012668819

- 1.1k
</ul> </div> </div><div></div> <div class="functional-area-left sticky-top d-none d-xl-flex"><div class="text-center"><div class="btn-group like-group " role="group"> <button data-type="question" class="func-btn mainLike like-btn btn btn-outline-primary " data-id="1190000012668819"> <svg class="svg-inline--fa fa-thumbs-up fa-w-16" aria-hidden="true" focusable="false" data-prefix="far" data-icon="thumbs-up" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"></path></svg><!-- <i class="far fa-thumbs-up"></i> --> <span class="mainLikeNum">1</span> </button></div><button class="func-btn mainBookmark btn btn-outline-secondary " data-id="1190000012668819"> <svg class="svg-inline--fa fa-bookmark fa-w-12" aria-hidden="true" focusable="false" data-prefix="far" data-icon="bookmark" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"></path></svg><!-- <i class="far fa-bookmark"></i> --> </button><a class="func-btn show-column btn btn-outline-secondary " href="#comment-area"> <svg class="svg-inline--fa fa-comment-alt-lines fa-w-16" aria-hidden="true" focusable="false" data-prefix="far" data-icon="comment-alt-lines" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288zm-96-216H144c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-96 96H144c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16z"></path></svg><!-- <i class="far fa-comment-alt-lines"></i> --> </a><div class="dropdown dropup d-inline-block"> <button class="func-btn btn btn-outline-secondary " id="func_share" data-toggle="dropdown"> <svg class="svg-inline--fa fa-share-alt fa-w-14" aria-hidden="true" focusable="false" data-prefix="far" data-icon="share-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M352 320c-25.6 0-48.9 10-66.1 26.4l-98.3-61.5c5.9-18.8 5.9-39.1 0-57.8l98.3-61.5C303.1 182 326.4 192 352 192c53 0 96-43 96-96S405 0 352 0s-96 43-96 96c0 9.8 1.5 19.6 4.4 28.9l-98.3 61.5C144.9 170 121.6 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.6 0 48.9-10 66.1-26.4l98.3 61.5c-2.9 9.4-4.4 19.1-4.4 28.9 0 53 43 96 96 96s96-43 96-96-43-96-96-96zm0-272c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zM96 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm256 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"></path></svg><!-- <i class="far fa-share-alt"></i> --> </button> <div class="dropdown-menu shareContent" aria-labelledby="func_share"> <div class="text-center mt-2" style="cursor: auto"> <div class="qr"><img crossorigin="anonymous" src="https://img-blog.csdnimg.cn/2022010614210347049.png" width="118" height="118" style="width: 118px; height: 118px;"></div> 扫一扫分享 </div> <div class="dropdown-divider"></div> <a class="dropdown-item share_weibo" data-share="weibo" href="http://weibo.com/segmentfault" target="_blank"><svg class="svg-inline--fa fa-weibo fa-w-16 fa-fw" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="weibo" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"></path></svg><!-- <i class="fab fa-weibo fa-fw"></i> --> 新浪微博</a><a class="dropdown-item share_twitter" data-share="twitter" href="https://twitter.com/segment_fault" target="_blank"><svg class="svg-inline--fa fa-twitter fa-w-16 fa-fw" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg><!-- <i class="fab fa-twitter fa-fw"></i> --> Twitter</a><a class="dropdown-item share_facebook" data-share="facebook" href="javascript:;" target="_blank"><svg class="svg-inline--fa fa-facebook-square fa-w-14 fa-fw" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook-square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"></path></svg><!-- <i class="fab fa-facebook-square fa-fw"></i> --> Facebook</a></div> </div></div></div> <h1 class="h2 mb-3" id="sf-article_title"> <a class="text-body" href="/a/1190000012668819">深度学习优化器 Adam 解析</a> </h1> <div class="d-sm-flex d-none flex-wrap align-items-center mb-4" id="sf-article_tags"> <div class="m-n1"><a class="m-1 badge-tag" href="/t/deeplearning" data-toggle="popover" data-img="" data-placement="top" data-original-title="deeplearning" data-id="1040000004939428"> deeplearning </a><a class="m-1 badge-tag" href="/t/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0" data-toggle="popover" data-img="" data-placement="top" data-original-title="机器学习" data-id="1040000000089788"> 机器学习 </a><a class="m-1 badge-tag" href="/t/optimization" data-toggle="popover" data-img="" data-placement="top" data-original-title="optimization" data-id="1040000000616141"> optimization </a></div> <div class="font-size-14"> <span class="text-secondary ml-2" data-toggle="tooltip" data-placement="top" title="" data-original-title="发布于 2018-01-02 ">更新于 2018-01-02 </span> <span class="split-dot"></span> <span class="text-secondary" title="阅读时长"> 约 5 分钟</span> </div> </div> <article class="article fmt article-content" data-id="1190000012668819" data-license="cc">
Adam的优点
现在很多深度网络都优先推荐使用Adam做优化算法,我也一直使用,但是对它的参数一知半解,对它的特性也只是略有耳闻,今天我终于花时间看了一下论文和网上的资料。整理如下。
Adam是从2个算法脱胎而来的:AdaGrad和RMSProp,它集合了2个算法的主要优点,同时也做了自己的一些创新,大概有这么几个卖点:
- 计算高效,方便实现,内存使用也很少。
- 更新步长和梯度大小无关,只和alpha、beta_1、beta_2有关系。并且由它们决定步长的理论上限。
- 对目标函数没有平稳要求,即loss function可以随着时间变化
- 能较好的处理噪音样本,并且天然具有退火效果
- 能较好处理稀疏梯度,即梯度在很多step处都是0的情况
Adam算法
Adam的伪代码其实很好理解,贴图如下:来自原文
从while循环往下看,第一行是更新step,
第二行是计算梯度,
第三行计算一阶矩的估计,即mean均值
第四行计算二阶距的估计,即variance,和方差类似,都是二阶距的一种。
第五、六行则是对mean和var进行校正,因为mean和var的初始值为0,所以它们会向0偏置,这样处理后会减少这种偏置影响。
第七行是梯度下降。注意alpha后的梯度是用一阶距和二阶距估计的。
Adam设计原理
为什么这么设计呢?Andrew Ng在他的公开课中给出了他的解释,他认为Adam其实可以看做是Momentum和RMSProp算法的结合。
Momentum算法
其中V_dw和V_db对应上面的mt,Ng喜欢把w和b分开写,其实他们都是参数。
如上面Ng画的那样,Momentum通过对梯度mean的估计,使得梯度在纵向上的正负步长逐步抵消,横向上的步长逐步累积,从而减少了震荡,加快了学习速率。
可以认为:对于mean的这种估计,其实是从噪音中提取到了有效信号,因为信号的方向在一段时间内是不会变的。同时抵消了噪音,比如白噪音,它的均值为0,把多个白噪音累加后,它们是正负相互抵消的
当然实际情况噪音可能会非常复杂,如果步长太大,或者衰减太小,还是会出现震荡甚至发散的情况。
RMSProp算法
RMSProp要解决的问题和Momentum类似,但是它是从二阶距入手的。
上图中的S_dw对应Adam中的vt。它的思路是这样的,对于波动比较大的梯度,它的方差肯定是很大的,所以它用梯度去除以二阶距的开方,作为梯度下降的梯度,从而也使得它在纵轴上的步长减小了,同时相对的增加了横轴的步长。
这个也是mt和vt的设计来源。同时因为mt和vt涉及了所有历史梯度信息,所以他们都能较好处理梯度稀疏的情况。
Adam的改进
Adam的改进主要体现在2个地方,即伪代码第五、六行的偏置修正,和第七行的梯度计算。
第5、6行可以这样简单理解:因为m0和v0初始为0,所以开始阶段得到的m和v肯定是偏向0的,所以我需要把他们的绝对值调大些才好。假设beta1 = 0.5,t = 1,那么调整后,m = m / 0.5 = 2m,这样就把m从0拉了回来。
当然了这背后是有理论依据的,有兴趣的同学可以去看看论文,推导也不难。
其实最关键的就是第7行了。首先在没有噪音的情况下,m/sqrt(v) 约等于+/- 1,所以步长的上限基本就由alpha决定了。当t比较小的时候,beta1和beta2也会有一些影响,因为此时m、v还是有偏的,需要在5、6行用beta1、beta2做些调整。原文指出:
当1 - beta1 > sqrt(1 - beta2)时,
其他时候,
所以,正是由于采用了m/sqrt(v)的形式,梯度本身的大小被消除了,假设你在目标函数上乘以k,那么这个k会同时出现在分子分母上,从而在梯度更新时被消除了。
根据原文作者的意思,在机器学习中,我们经常可以方便的获知最优参数所处的范围,从而据此设置alpha的取值大小,所以Adam的这种特性可以方便你设置alpha。
另外,根据我们在Momentum和RMSProp中的描述,m/sqrt(v)可以看做是对梯度“信噪比”(SNR)的估计,其中m是信号量,而v是噪音量。当噪音大时,步长小;噪音小时,步长大。这正是我们需要的特性,从而使得Adam能够较好的处理噪音样本,另外,当我们接近最优点时,噪音通常会变得很大,或者说真正的信号变得很微弱,信噪比通常会接近0,这样步长就会变得较小,从而天然起到退火效果(annealing)
</article>
<div class="text-secondary font-size-14 mb-5 d-flex justify-content-between row">
<div class="col-6 text-secondary" id="sf-article_metas">阅读 19.2k<span class="split-dot"></span><span data-toggle="tooltip" data-placement="top" title="" data-original-title="发布于 2018-01-02 ">更新于 2018-01-02 </span>
</div><div></div>
<div class="operation col-6 text-right">
</div>
</div>
<div class="functional-area-bottom"><div class="text-center"><div class="btn-group like-group mr-2" role="group">
<button data-type="question" class="func-btn mainLike like-btn btn btn-outline-primary
" data-id="1190000012668819">
<svg class="svg-inline--fa fa-thumbs-up fa-w-16" aria-hidden="true" focusable="false" data-prefix="far" data-icon="thumbs-up" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"></path></svg><!-- <i class="far fa-thumbs-up"></i> -->
<span class="ml-1">赞</span> <span class="mainLikeNum">1</span>
</button></div><button class="func-btn mainBookmark btn btn-outline-secondary
mr-2 " data-id="1190000012668819">
<svg class="svg-inline--fa fa-bookmark fa-w-12" aria-hidden="true" focusable="false" data-prefix="far" data-icon="bookmark" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"></path></svg><!-- <i class="far fa-bookmark"></i> -->
<span class="ml-1">收藏</span> <span class="bookmarkNum">1</span>
</button><div class="dropdown dropup d-inline-block">
<button class="func-btn btn btn-outline-secondary
" id="func_share" data-toggle="dropdown">
<svg class="svg-inline--fa fa-share-alt fa-w-14" aria-hidden="true" focusable="false" data-prefix="far" data-icon="share-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M352 320c-25.6 0-48.9 10-66.1 26.4l-98.3-61.5c5.9-18.8 5.9-39.1 0-57.8l98.3-61.5C303.1 182 326.4 192 352 192c53 0 96-43 96-96S405 0 352 0s-96 43-96 96c0 9.8 1.5 19.6 4.4 28.9l-98.3 61.5C144.9 170 121.6 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.6 0 48.9-10 66.1-26.4l98.3 61.5c-2.9 9.4-4.4 19.1-4.4 28.9 0 53 43 96 96 96s96-43 96-96-43-96-96-96zm0-272c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zM96 304c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm256 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"></path></svg><!-- <i class="far fa-share-alt"></i> -->
<span class="ml-1 show-row">分享</span>
</button>
<div class="dropdown-menu shareContent" aria-labelledby="func_share">
<div class="text-center mt-2" style="cursor: auto">
<div class="qr"><img crossorigin="anonymous" src="https://img-blog.csdnimg.cn/2022010614210347049.png" width="118" height="118" style="width: 118px; height: 118px;"></div>
扫一扫分享
</div>
<div class="dropdown-divider"></div>
<a class="dropdown-item share_weibo" data-share="weibo" href="http://weibo.com/segmentfault" target="_blank"><svg class="svg-inline--fa fa-weibo fa-w-16 fa-fw" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="weibo" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"></path></svg><!-- <i class="fab fa-weibo fa-fw"></i> --> 新浪微博</a><a class="dropdown-item share_twitter" data-share="twitter" href="https://twitter.com/segment_fault" target="_blank"><svg class="svg-inline--fa fa-twitter fa-w-16 fa-fw" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg><!-- <i class="fab fa-twitter fa-fw"></i> --> Twitter</a><a class="dropdown-item share_facebook" data-share="facebook" href="javascript:;" target="_blank"><svg class="svg-inline--fa fa-facebook-square fa-w-14 fa-fw" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook-square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"></path></svg><!-- <i class="fab fa-facebook-square fa-fw"></i> --> Facebook</a></div>
</div></div></div>
<div class="text-center mb-5 mt-3 text-secondary font-size-14">
本作品系
原创
,
<a target="_blank" class="text-secondary" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">采用《署名-非商业性使用-禁止演绎 4.0
国际》许可协议</a>
</div>
<hr class="mb-0">
<div class="article-author d-flex flex-sm-row align-items-center pt-4 row">
<div class="d-flex align-items-center flex-grow-1 author-left col-sm-9 col-12">
<a href="/u/flybywind">
<img class="rounded-circle mr-3" width="64" src="https://i-blog.csdnimg.cn/blog_migrate/916180a5bead1f5692e90cc1fd01e962.jpeg" aria-hidden="true">
</a>
<div>
<h5><a class="text-body" href="/u/flybywind">flybywind</a></h5>
<ul class="list-inline mb-0 authentication-info">
<li class="list-inline-item">
<svg class="svg-inline--fa fa-dice-d8 fa-w-16" style="color: #BF7158;" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="dice-d8" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M225.53 2.52L2.36 233.83c-4.21 4.37-2.56 11.71 3.1 13.77l234.13 85.06V8.39c-.01-7.49-8.91-11.21-14.06-5.87zm284.11 231.31L286.47 2.52C281.32-2.82 272.41.9 272.41 8.4v324.27l234.13-85.06c5.66-2.07 7.31-9.42 3.1-13.78zM33.53 310.38l192 199.1c5.15 5.34 14.06 1.62 14.06-5.88V368.29L42.13 296.61c-8.21-2.98-14.72 7.43-8.6 13.77zm436.34-13.77l-197.46 71.68V503.6c0 7.5 8.91 11.22 14.06 5.88l192-199.1c6.12-6.34-.39-16.75-8.6-13.77z"></path></svg><!-- <i class="fas fa-dice-d8" style="color:#BF7158"></i> -->
<span style="color: #BF7158; font-size:16px; font-weight:bold">1.1k</span>
</li>
</ul>
</div>
</div>
<div class="author-right flex-shrink-0 col-sm-3 col-12 text-sm-right text-left mt-sm-0 mt-3">
<button type="button" class="btn btn-primary follow-user sf_do" data-dotype="post" data-content="{"type":"state","state":false,"true":"\u5173\u6ce8\u4f5c\u8005","false":"\u6b63\u5728\u5173\u6ce8"}" data-api="/iteration/api/user/1030000004187465/follow">关注作者
</button>
</div>
</div>
</div>