From c970fc58912fdc4d66fcb4d879c5e6bc591a74ab Mon Sep 17 00:00:00 2001 From: bushuhui Date: Fri, 4 Dec 2020 18:37:40 +0800 Subject: [PATCH] Improve softmax cross-entropy descriptions --- 5_nn/3-softmax_ce.ipynb | 116 ++++++++++++++++-- 5_nn/3-softmax_ce_EN.ipynb | 2 +- 5_nn/images/cross_entropy_loss_1.png | Bin 0 -> 23811 bytes 5_nn/images/cross_entropy_loss_2.png | Bin 0 -> 24450 bytes 5_nn/images/cross_entropy_loss_sigmod.png | Bin 0 -> 60730 bytes 6_pytorch/0_basic/1-Tensor-and-Variable.ipynb | 12 +- 6 files changed, 119 insertions(+), 11 deletions(-) create mode 100644 5_nn/images/cross_entropy_loss_1.png create mode 100644 5_nn/images/cross_entropy_loss_2.png create mode 100644 5_nn/images/cross_entropy_loss_sigmod.png diff --git a/5_nn/3-softmax_ce.ipynb b/5_nn/3-softmax_ce.ipynb index cf9de55..6650f49 100644 --- a/5_nn/3-softmax_ce.ipynb +++ b/5_nn/3-softmax_ce.ipynb @@ -17,6 +17,37 @@ "\n", "softmax(柔性最大值)函数,一般在神经网络中, softmax可以作为分类任务的输出层。其实可以认为softmax输出的是几个类别选择的概率,比如我有一个分类任务,要分为三个类,softmax函数可以根据它们相对的大小,输出三个类别选取的概率,并且概率和为1。\n", "\n", + "Softmax从字面上来说,可以分成`soft`和`max`两个部分。`max`故名思议就是最大值的意思。Softmax的核心在于`soft`,而`soft`有软的含义,与之相对的是`hard`硬。很多场景中需要我们找出数组所有元素中值最大的元素,实质上都是求的`hardmax`。下面使用`Numpy`模块实现hardmax。" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "a = np.array([1, 2, 3, 4, 5]) # 创建ndarray数组\n", + "a_max = np.max(a)\n", + "print(a_max) # 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "通过上面的例子可以看出hardmax最大的特点就是只选出其中一个最大的值,即非黑即白。但是往往在实际中这种方式是不合情理的,比如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章对于每个可能的文本类别的概率值(置信度),可以简单理解成属于对应类别的可信度。所以此时用到了soft的概念,**Softmax的含义就在于不再唯一的确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。**\n", + "\n", "softmax函数的公式是这种形式:\n", "\n", "$$\n", @@ -31,8 +62,13 @@ "\n", "![softmax_demo](images/softmax_demo.png)\n", "\n", - "softmax直白来说就是将原来输出是$[3,1,-3]$通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!\n", - "\n", + "softmax直白来说就是将原来输出是$[3,1,-3]$通过softmax函数作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "\n", "\n", "首先是神经元的输出,一个神经元如下图:\n", @@ -53,21 +89,54 @@ "a_i = \\frac{e^{z_i}}{\\sum_k e^{z_k}}\n", "$$\n", "\n", - "$a_i$代表softmax的第$i$个输出值,右侧套用了softmax函数。\n", + "$a_i$代表softmax的第$i$个输出值,右侧套用了softmax函数。\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. 交叉熵损失函数\n", + "\n", + "在神经网络反向传播中,需要设计一个损失函数,这个损失函数表示真实值与网络的估计值的误差,知道误差了,才能知道怎样去修改网络中的权重。\n", + "\n", + "神经网络的设计目的之一是为了使机器可以像人一样学习知识。**人在学习分析新事物时,当发现自己犯的错误越大时,改正的力度就越大**。比如投篮:当运动员发现自己的投篮方向离正确方向越远,那么他调整的投篮角度就应该越大,篮球就更容易投进篮筐。同理,我们希望:ANN在训练时,如果预测值与实际值的误差越大,那么在反向传播训练的过程中,各种参数调整的幅度就要更大,从而使训练更快收敛。然而,**如果使用二次代价函数训练ANN,看到的实际效果是,如果误差越大,参数调整的幅度可能更小,训练更缓慢。**\n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "以一个神经元的二类分类训练为例,进行两次实验(神经网络常用的激活函数为`sigmoid`函数,该实验也采用该函数):输入一个相同的样本数据x=1.0(该样本对应的实际分类y=0);两次实验各自随机初始化参数,从而在各自的第一次前向传播后得到不同的输出值,形成不同的代价(误差):\n", + "\n", + "![cross_entropy_loss_1](images/cross_entropy_loss_1.png)\n", + "实验1:第一次输出值为0.82\n", + "\n", + "![cross_entropy_loss_2](images/cross_entropy_loss_2.png)\n", + "实验2:第一次输出值为0.98\n", + "\n", "\n", + "在实验1中,随机初始化参数,使得第一次输出值为0.82(该样本对应的实际值为0);经过300次迭代训练后,输出值由0.82降到0.09,逼近实际值。而在实验2中,第一次输出值为0.98,同样经过300迭代训练,输出值只降到了0.20。\n", "\n", - "### 1.1 损失函数 loss function\n", "\n", - "在神经网络反向传播中,要求一个损失函数,这个损失函数其实表示的是真实值与网络的估计值的误差,知道误差了,才能知道怎样去修改网络中的权重。\n", + "神经网络常用的激活函数为sigmoid函数,该函数的曲线如下所示:\n", + "![cross_entropy_loss_sigmod.png](images/cross_entropy_loss_sigmod.png)\n", "\n", + "如图所示,实验2的初始输出值(0.98)对应的梯度明显小于实验1的输出值(0.82),因此实验2的参数梯度下降得比实验1慢。这就是初始的代价(误差)越大,导致训练越慢的原因。与我们的期望不符,即:不能像人一样,错误越大,改正的幅度越大,从而学习得越快。" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "损失函数可以有很多形式,这里用的是交叉熵函数,主要是由于这个求导结果比较简单,易于计算,并且交叉熵解决某些损失函数学习缓慢的问题。**[交叉熵函数](https://blog.csdn.net/u014313009/article/details/51043064)**是这样的:\n", "\n", "$$\n", "C = - \\sum_i y_i ln a_i\n", "$$\n", "\n", - "其中$y_i$表示真实的分类结果。\n", - "\n" + "其中$y_i$表示真实的分类结果。\n" ] }, { @@ -88,7 +157,7 @@ "\\frac{\\partial C}{\\partial z_i} = \\frac{\\partial C}{\\partial a_j} \\frac{\\partial a_j}{\\partial z_i}\n", "$$\n", "\n", - "有个人可能有疑问了,这里为什么是$a_j$而不是$a_i$,这里要看一下$softmax$的公式了,因为$softmax$公式的特性,它的分母包含了所有神经元的输出,所以,对于不等于i的其他输出里面,也包含着$z_i$,所有的$a$都要纳入到计算范围中,并且后面的计算可以看到需要分为$i = j$和$i \\ne j$两种情况求导。\n", + "有个人可能有疑问了,这里为什么是$a_j$而不是$a_i$,这里要看一下$softmax$的公式了,因为$softmax$公式的特性,它的分母包含了所有神经元的输出,所以,对于不等于$i$的其他输出里面,也包含着$z_i$,所有的$a$都要纳入到计算范围中,并且后面的计算可以看到需要分为$i = j$和$i \\ne j$两种情况求导。\n", "\n", "### 2.1 针对$a_j$的偏导\n", "\n", @@ -131,6 +200,36 @@ "\\end{eqnarray}" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "参数更新方程为\n", + "$$\n", + "\\frac{\\partial C}{\\partial w_{ij}} = (-y_i + a_i) x_i\n", + "$$\n", + "\n", + "其中\n", + "$$\n", + "z_i = \\sum_{j} w_{ij} x_{j} + b\n", + "$$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "对于使用二次代价函数的更新方程为:\n", + "\n", + "$$\n", + "\\delta_i = a_i (1-a_i) (y_i - a_i)\n", + "$$\n", + "\n", + "$$\n", + "w_{ji} = w_{ji} + \\eta \\delta_j x_{ji}\n", + "$$" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -146,6 +245,7 @@ "## References\n", "\n", "* Softmax & 交叉熵\n", + " * [一文详解Softmax函数](https://zhuanlan.zhihu.com/p/105722023)\n", " * [交叉熵代价函数(作用及公式推导)](https://blog.csdn.net/u014313009/article/details/51043064)\n", " * [手打例子一步一步带你看懂softmax函数以及相关求导过程](https://www.jianshu.com/p/ffa51250ba2e)\n", " * [简单易懂的softmax交叉熵损失函数求导](https://www.jianshu.com/p/c02a1fbffad6)" diff --git a/5_nn/3-softmax_ce_EN.ipynb b/5_nn/3-softmax_ce_EN.ipynb index d5186cd..c2d2a29 100644 --- a/5_nn/3-softmax_ce_EN.ipynb +++ b/5_nn/3-softmax_ce_EN.ipynb @@ -166,7 +166,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/5_nn/images/cross_entropy_loss_1.png b/5_nn/images/cross_entropy_loss_1.png new file mode 100644 index 0000000000000000000000000000000000000000..46fd3f9de64c7603f2c65373a5ab4ee848fdbc2f GIT binary patch literal 23811 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 JGK_cP{{nTxK#TwY literal 0 HcmV?d00001 diff --git a/5_nn/images/cross_entropy_loss_2.png b/5_nn/images/cross_entropy_loss_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cca9b886111630cd90a9f0e71c4c951627a06dcb GIT binary patch literal 24450 zcmb4rWmuG9*X_{VB_JW)C`dQbNOz-jH%NCk5=w`3cMKt+AWFl`00JV-3?N+s=fU^= z&h`B{Kh6&?ubFw`j(zXF_TFm|uc@wxhfReI0)g<9mE^QRAQS`$goJ{L4t&$7n{omC zhvcQLD2pupIrt0k0n1&<$O{CbAb$LZWLGo`+ybKXmN)d)akKUId*f*XQgg8Kbn^l} z(QDY+I#}6+9te1VKo-c#ax%K_mJa&-(sT_1E(h+joDMi{>7cIuQ1Hd=67`mu$s6YS zO}$AroM>iD!VE$YEKTHaLsCoz?C>}S)@PoRB0F533f4^0VMifh)P|3x41t+L601?eEuX!HwFm=l5QSm`1cVPJ%R=VqK{}A z1AfCrj|{iO0D+=) z{NE27+ncL&IsDlTDV4|J)Tv04`1@yAzgn9)@O;6b-n=gWQlrNSU#QK&qm%r3b8!G4 z>5&U;cU-9R+!{X=Nfked>pPtk6SVq@d%KY1Miso3ZBi!_i7x1WVtsqD?3TFIK2<0IFGaZZ zUstRI!0Ru7FP9B0g1;zZDDgir42yHWKCw|pmX49JXM`cOAeGm2x~;9cf)501joWLu z&3lFGk2*cKRBDY{D@YDi%A`CuF)5Jf)hsQM_>yMl`~RM(!dJkZ?GAHab6+~V3^pcP+9KTa%2fo6?N?`XbS zC*H?vAmF^lr0nl;YG~V()I)wEvgQw9IwAs*sU zey{D<;Ju2xI-^$G1_v4tDFLwDZ?}JTdtK~R7WFjL5ijags&jY5@a{u6n(tv&sf%7y z5)_n-c)vI?T~Nis+>~%@OY#|(RI|C_=bP(IIwuc%;5-Ju6&2{EkHf;z*c1TU-5xn> zosxuKNT^XPWt3YCg!n$(U4q-Lx4!3iogig^N|G%x{^0pI3|y`Ty4+qIq>J~XVBmMP zr>Q)|wV`~%M<*|SqKRsTuB&DcLqKP4-4p2Hu|Lla?K%Vur4tDS-TfJe81>&%;tyBA z%gI8k_IZLX31=QPZyFroSsetR>TqDIi2S?sDjUuk%M??y$6i#us@q?t7IJ-!O(l)| zpFMx>1mR+Zv{UpDu$fs199Vr#TK|po34~5gk7k`jx)QQe;HMHq=Tlx>jnmg*@J32E z?7urFP2^NQNbpp6x^@F{(H43$SLD3$HQ7`yjA`&QGSjzG`9wsviL1w+gO*JD!9uM; zCu`xmA)hjgu%Uk@U7CW7y!1>Vc{}Kn&G&3qGg)+cX-{CgGo)`zRO_6;?NucQznGT3 zXK}`Qpt2$VJDU5iKk|J!>^)Uq?sO~484dkCf(2zV2>gm7{TsNGcysgH`-|PORO3W) zZic|5wV=~viR;bx7Z4LSk3kSN(&K8y@lo)adk1?;0%qDMrC1~xj3|kvZQ-|@bk{;6 zMn%C%qgPP|4wda@Cx?jlZrZ6m0gY&8BDyB%aqp!wDfz79TDKCkZ40(e{@RdeES8PhgMqh-#Tk;0S2aD@tP72j9ovdFr87c z=d1s?E^62nuv{bYxm_!Ol?evlcsHhq**$Y<>^;GzAf$gd!gxzPh)<}@^7?}%fz;n7 z)x;@s-3Fm|e=K=;q>+JH|CTdTuhp;LU-58qy8<8fe7Bv<|0a(b_n+BvsO7$Fww=he zS+H|l?x=T4!T}vehNHzr9xQi?&47XP&YNmc{dcM8?(g-f>FY4Uf3qaL28_(?pvTQ9 zSiVGC!l(D2ccG+Lf8GT0`16(84F+!aSbZ4p)2nsBBRE{^|fG@rjU212S z@;z9x0o+hRV66hMrbLJpFx0=h(|Pgt`Ob7UM;3=(%l8~!FD;~dI?RJJOkaU*;EK-R zKZ6*MW-CRfm7ey#hx^-(kh`0@-qf}+6Tp?%PPi=8WYLJfd%h0UEI9eIK3uO~Z>&EM z5*&Eccj>${SrDYG%DyDp;kwe}yEUFwck8Tj3YEZTPJJ4+#Mflf>8d@q3nFv}G9_jq(g-z`lz*Mf2P-7Xqs@6H3d}DR965?fSG7eYO zn?qF?#TJ)L6AI}NaIovu3q&CeW@1NDi7aJ6i0zgzL;BT7-!_*=+$gUxkt^VGx;?=h zP$1;8L~20FXk^XFW7e}N*O~j?(I8!J+FyGytA!X@ccZqBtz6-iZ>jWWShH0@ncezO zboao+4ZN}5d9kJ8B?GllyJMDWB5Nd*NdLoqAbh4Q7KcR{#1gq}eLzo&srbyJMjE7e}-`UJGf0dT?@pfWcI)ldPD)p8*mr{!{6e=!htSYp!W3HRu0)NM|&h|`yXX;xjJ_ zz3-+*Tks-_!L3fp$2AU-Ra!+9N(36m;?tPEDwC78uQX^f{z=DoT)s4rUun;xuXC4zM( zEv_6Tad$SyzA&Re8P5xVr*Kj?(3g4hQCn1SA^B*rm37@J4Mi^9Rpb>iQ^$E< z=CBa$S@1$WjW372y1~cylVwl6d(2%1H4QRK_GItk_YH}qx{M2iOydz~IQbO4294$of*OtTYE2JpcU(%ZaQS`q zb$8Gvvk&)kgJ^^P$OwtZ&WxRYbQ~{ad3ZA%vsl~Mzwb!={ye7ANga0}M0C~a;r{N? zfs4#Mi%p-DVVD_Z*QpS8Yjgb8wjADJfLn>gW8MoZ&vaa8hz+}MJf%6Zld;c9vV;a~ z0Laq){C&V{U%g9(rfJcTzg^3b#!w5W364O$#{3woG=9Eap+5_>gyXn@)Ki`_(mrPU z58%)tA!lWDi@?dVdPGfqw})V;Fyh<{I)tdmb5*GhY|lqtsL@k3Y=ZNTi99voo9^}Z z3cNk&oV&k^&9GZ)b2tovlv-T<EiVtr?Bo_HM~dutD*R&2>tF4C!|DsxOPiD`L{6 z^`p%2PvS{fdz@YZnC9}scJX9^7#RKQcp71k0jEKO^TP@6!&|_gwB}i4DbT{~MdlQf zo~$F<3g?>Myb@Bx=zHBpK7BM_E3@@Xwom%gt1Ojv*rT-C$iW zI&!G&#pVvMV*)90@1{K*4)M!=AnmO;t*~P+X8Z}_?yIWDJvTb@_ffZj4%y$8o*EiT zGp2@THP4|LaKHMsI5%k9vmVV-W!=koTs&2lyD4_q#aMzv@6E8~Kg%G?rqWonGm$r% zv@UX!0sl@+t?ahe-zVVuQ`kwe@+pBa;TQ^*e3^W7ly8ee{7FU4$HW-&-zqLyFOr}p z)btpMh3^}>4b1|#ez3caW+r8ej}p%y-54oIt)B9_`CJ87=c>m)5mDJv%i*`2DV6U| z{eIhE%X195c-E$>-UJ7iM=y1GY?xX%2VNc?ny0^ieff!8Bvs<#gGrskU?tn9s9;S< znXxLjZlp_No966q?eu+1JiwT?#kjwoNn}cEjxY)mmIUe@RerJJ5ZL&J?Q4Um9#yJ) zrJ?nlJ8Z7N5qn13>*K7I&q_P~6r=$8><(hgwA@k0$-eowPOD7e=aTYe*0{?_Vgmer zu9vIt6Ew3`T)N|GMv-n}0(E9d?zDEle+zTrZ%wx-VWB9ke2#!dDwV*vgvL?z+MYQy z_f?AT;`J|c=z!;s+73x+I4hdbxu2)zZt#f-$+vsB7xUb$j5=ts=6ON_C$r=t4PG1m zj2+gt&thLJZ2+547lx~;fp8vF*sh^hzTm`_@a_K7^d*$I&YydqF#Q4yDrTJg1_i zG(oKqeP2B|kFEGAFI7AbA=YO^J@yi>MJ@hu2~_07r* z@2W-2pk+-l0l?}~O8GYr)7o?MY@JUJDL)vDNAxa-S3!@?yBKIs@*SE^ryDU;-lBn5#YQKY7QRT*o`r;$F<1f#ctgBtDH3%sd4Y+|QB3-scD%kb z!OH?GG$HKohY2Q4wS|wx2=DY~{#u(05RAF#Gz`sB6Ix%X>e>0T zUXXm{1AO3~6M9Rpk&X-Ar{6T1&k-5OQ*ON8pnHIEo4~?0hj)!ie+t#@>^YWS%+|$n-3%1 z+fv-)(NT#bqh@|9Tl<~fQXCwV^8xJbuYXG~OI1sn&IC;i8lS0dsvzuF@wQpxj{zVH z?eX6G9gQ?jeT01o6k-}qluEJC;2=Xj`8;hf<2^s^PAoZE3s#F1 z60uz8im!=ln{FyQcI_%|0;EQ@Hp#h{{?W5K(Q4;fhqbT{MVLV?fbFHj>MK0Fwj6xI z3G-gxckJahk3^tIV4;d)HjM<}mSPtpAxc4(Z^0FZVK`Gg_9*nB+Gi8kk~3 zsN-ew)AgEL+UJ(irbd*xq0B!PD!GzMe-UqnD;aPH8a6qZl?li)M3@cakVqs!7LDl~ zxZf99Lh}n91|{8pNelVK4tRNfQn6$urib_$Hns;{pNQ}1LFIQehD?nx-fXsI9P-o| zDF2Kw<7GImBOrN)t7}m;ppzVt6i5D1r4tXgT(V768>0}F^825O5`yAgW#>=wU#pu$ zaplvPDl%MRa_TG%ye0ITzIUlKVHhDN07>U3E9)zvm;Sr=)1?+)PX-=t2fWG(79&cH ziNj5gMh7t?HvJw z-M^s;s(A)XE6i-hC|Vi@tW zgfoihZJl89l~$EReTOjd`x+!1@zs`Bo;7=Yx+rx=F4OK@v_LvRhVYzb3uGK1Ml*xD z`>RhEKesO=#k_D=j@q`W=a1mS6sa2WY3hM)y-RRm;E2_~I&$AHxn5y^$i{^AM4eBaFMobx6E%aMe3-^_{6?JTidIw&twr#w;Q!w*#CtjtjSf z&k1D+{t9(2={)yU(fwXgLv`vojlXQ@?ebdBQI{kqRQ&!{cE(=b?_nqOo>gOBNQz02 zS$Bv?t^^H?T8Ubll<+kC%~T7jLtUjYlxyJTd0*_|Ler>7oUoHQr1z5uCzqvwqH=Fk zx<`B`ktu`yq=Bt;*J*WB=k||x{A6vG3qLtWqr~rI{3B3{5z)@-O#*4!e;3qDQ???a zw77tDR}n^b9dGtoiImexBQX!OQfWMfsz%8iLKcma&rkdiU{QuEY*n8lBqJTY?$lOjrzl|)ZbSn6KURVoQaB; zt%okb>f9el_WY1S7{VEkNv%t2yj3D33Y^w6Xxx^4xVVbjjf5C+@-+(n zf{ZM~k^uL8sdRIM8EqteGM|2vQ}fT2KNUF!n9EDtpfsgucfBLb)^yJeMOUQYLDY0s}mx7=o(XOGQ zK?i*vbF7^66nY%pqUJ>Wk|38+<{o``!?nVo!o>IWB$f%MaZl|~yhY2L;dYDYIK!G|P{mpLg8{WJ zA0Q~b=t*m)kPBtB%5$a&5GL%ouE60#Rq zto)2-rB#(!t$+RK*+^_}eRz5t1*H^afqOzd!*}9&ViG={+{7W1OZyZW$)I?7XEsGQL=X$18dPs#0x%Od{wsx|6mG#lP6Crw7dLBsirqAD7W^b@m5oEGu z_brt260-MLY@Xq_7;JXsytim9zb!7t?+H-r^L3{qYZIKltKDF)Qg+s)E5tPx+I@2V z(dX$+@6FFaKZ}R`Kr)SE24X=5+Sk+|HM7j^>cRdecuU{7s#bVM@&-oe_Bq;u@o+*V-qxgPH*##6?Gwt!3N)(@x@em zf!%e?o}^lqkM!E5m_6degT9<6^kb?-FJtH69J!>cg>n{#@~IJD@@U`tu@KIk456Jn zBh}3O1rTJKw^@#QzPL#9G9_Eh4cy}4CO3EPk6P^%HJ5YyhcrbAv%s&fw$nQeW~MBg z8{v8OW}5ReeoajQHeK2D2X)0Rs@Sq#pGK^nSE5Q`sMD)$)^y^P;@%jkBb6&g_d$u_ zGM~&tNj?#&ykqNmk}_7CZqUSCiJRBpH~ohbcA^p^>6{mdVtL(G!%VJ&use%pdhk!d^^r4=%tRKn;Xdv+P7lTD{|J8UkuXLd=pz z-gn+>RjG0LFXIfx^fyhD$wYeAw%#oS2vg5c$-&*nB{CRcGA#Q_mFx`lRbCyUMSSwK zD7Ers+WmAPS8t$wW;nWPJyLnC z>(8pCSjwxO<#M||S&sBbTm)LeU(_7jRp_Q=btr@({3Tx+wefy0lCzO>BQkA2QK1Ht zb6-Tv3yWa238!t8(6@~(G{aA;C!hU9Bm66WS+$RzB}3GIpP(LdD|nUC|6N5fV-Dx{ ztJ6|Bn=XhT(dP8~Uuo02FD3G^$zQU~1Xo_Gr!bVyIGSVob!SiOt7VriEM@SNC0f47%XeBQ5)ZdUh37$v(2P!1Qt0bV`L~j#;*q z;%W0ZwIR$-sOPJ3o`Zyu<|p1H=Z^jzY~pHgzq9f4#@*}OjrkR$QwQhl3SKsjYSImB zYA!`GGuFjiSd!_OWLx$$l^i8xQQth*;pB-S_XpB$O*s=FAsG zD%^cW=6B5f=Qi^ULcR95)4$b@N)oFE-V;quc{M=w9X&&;k#7R!9W(YeYoZ%d)Evr; zoAyspagex6vuw39SuNfVq|`Uz9S-t(OR;NH=J`C^Nh$>(=%EYu+j&CN1cf0(oS}D) z5S&-1A7&vqH9E6FRU-12Z=Umhopj61d+8TF*Y>hVrPz^Y&IvAX!nrqNmFvg+=e+0o zF4*5*N43kO5ny*s}x4etlCwTFxfu;^Q4H%IvltMT6@Jr7#dvo0ZWUS!`6`HanNTp-(hd7j3 z4C~ah?hLFRq)h#UiO(uswZk>DwAd=_7!PUbs%_+-iU(3XRm$XEJMTqn%4zTQL@(4` zMUg*uyeD<*ad%MsE$sWS%eK;5qX>0HPvD_gXs12F02(>5S2MZv_6%gS9ADV$DCFNL z>0+2DveTF1mceLWz1bAjtiMLy z=v5H?Komx^twA*r`<5LWs}hJEkOCq14B>$DiAN}8bMWH&y~=r#y3#4~I_;!^t%q-; zO&#lLtx7#X&Y^u@373dPC&8S5m1(!9{z@Q+8TQc=G>|;d$Fb{L2&M1+Wx!pZ)Fi%5 zT&rTh>0B!zVbE@;qNYP?kX#;dW`Pyzf>A<@EP#0Lw@T4AJuS-u8-V)F-3N1R5g)C>iL-30 z?Sy-7oblX%G6_PHFwU9VFiVGZRve@#!CM%3*!^==wI4v2A*zeo549`{H{xfZ$V#}l z&T{FM#^<@jLpKIQ?lvz-$>nu&0{UIZ6hRJ?`6ikf-B>)5m+= zo^7?+X84XaL`>jXP15Oht&IuY&YA?|@g&Wt0`GTWBcDGjkWy0lN85DGQ%gq(?-H63 z^0ja%ViNfOz;PsHKIYZvVfeKl)1W@NB&niS380#!#;0ieL#BrBB`CkUW9Nx>jNft} zb?-YxHZ%s{`HbuHlUbw*J%nS>j;-`h8=w==BD67D%W3I~g&*7Es+{8uI%Rq;IP8i& zQLVE-aGa)DO3IUZKW}5ag2!5qd!7Y&?mHzjGW}-0-(us%6e(gJYwyRLUShMyui1e5 z4q}UQ8MlqqSN`4;r_+mI3w$F(LZ?~1N%wH2*hxYPVnRn3EFFvd`;E0om}s@+6^5O& z^>hM1A9rJqT)XzdCaLC2^S~FiI^Iv>Z`^x~L&k<14s?)_2OC}nl!MXUT0DGpW#2-n z`5p@NwEOysm}VDf3W0S3>IOuJa>{y64!xR9s;+O7>}ry8_I=X;8{;yxe99@A@Jv=a zHxMyNhAmr#Zk!SWa#5@fp(XyiK9IvGGqmD&=HGr-KBeU=5|zmf0>wv$C$lBEe?P5% z$s-T3ao0W7fmzpkKbO}WeuZcBdykfz*PAPVS0FFZ4(GYgiwWK#9*uW*H|KpRO*jWL z4K#!&aHb;^l|bFoUgza0GJ3s#Co?Gmg~M(RlHn+6K+LRzP21+YIP0=g5gNJMGt!xl z)$RoC-xg7c%>e}g-NBz;)*DQl?XENMs&DoA2!NX+Q>fJ2ScTNkA)EKoAtPtBQJ?~% z*l;S(dCaQ5-XPPw!uF*o zzJJqJdrET8_ubl!TDks?Txxk**7X6%c^Up~r~8fyh7 zpKN^xyR2k(RA3pXNB!OZsq0j6<|hz|6&S{RlJ&cSG}u25$1!3D#Z#DVVKS$0Q^;-A z`H^mrfRF)c8vi2`1j%e=@b+JoF4UVq6F2ne6-};ebShA!l>s`25=ca&(0`k9r!7u& zpV}QT*}xSp0{WGIZF$LO%lE$`3CMfS%}A#qpMkz~C)@`0Kh%k|yW7jn8U}p7UHgAs9ob~9bSM)@c_C7)_jS+n(p>w z0rj_y_e2IPpFi^3bs2)9!=@FQaujrJSu0y}mup72Nvuvrjv@D_S{I|}cL$SSQ4kF* zB4r-W7z`}J#or$XKo7TgiZ7<=rI6LY%5OdyXFzfKL!%EG!f)$<~8Hnt_ zYo|SGRO=l3X5(}BR)S6^0K&qV(u!0~>%c~eSno2NwwURk17lojmY=ZZpZI|ni?FCU z@3er@I1a>HnL_RB?(ST&T=v@>(xobwT3$~C@W)f3)I!s!W~%Mflv@HXT?6;4D}QR* zy#ujHK5rtDW7k`%kXz2PcWPrx_OKdVvRjdC#xM__q74d6lYlrkNz}}EYu-P^D2Aj) zhf>hW_dy=0Z9Hkgm-Qu(>a`p}-!qF;Em`B`Zd9}Vx%h^3$F{Q&=H#amj&i4)?=_Zg z&f(V#NFzx90^v*pZvr+&`+<`OzsrH-t<(YrEEGcLIFM-d*Wi8gMe2jj7Z$a`r`KLJ z(yA#1wcA@AeIP9i6l$4G=7r5l(PFk1 zuVr#@y$a6lb?qI(z$bR8aUYkx`S_?Eedo#fn~tE-8SzmzUcU*tuwj3VN2*$rr9?Lg9^dCRDtpuANGYpw)M@U$H4nyJzD{er19RHgq723ay zqy(Nh+ntFl6ahIP14GE1t?y}hO+EWA-E!bGYXBBH|HN{@={XlqSzg0&Ue7B;3^aE6 zDz-q=+tIyVmw^_fBD}d?L9GBAC~-%Mu`Vc(MOklKis6eF{=}B<1wI z{GDj|U{*GBajLk#gb?v!2vt`#Zo&~ki23YqmL7Qis&tYl%}4;K6U+6TtBwE-qN8!( zK9`qFnriT~LYj1w;(|`M72FmKUb;;uLl}oy8#g7k+D-M?x^=FFfD=31U`@~Jj{x$( z%N=^ngIw)XBzlkkU@VP@J39iXOcQHd0IU~i)2erI{$2%$2+&VFi{3s0O?qXrA}DQ# zS3qsv9^k=v!1X{%Qcqx*zauRN2EHm@B<7+JA+C$R@&golT>4x%s-{9AM^)WC|5{jQ&wlMg@sI#IP;PILGRSiA` zS>pqzPp0XX8-@Zj+Bb7QI|ROebc(y+q+*8S_+p+WzB-`G?}N8Rs^vCUkxU~IkjaZ9 zo$xQ*5|zJ9rIT6}z@0OG73g0X_`$4QnbU7s!{WegAgNVjqLDhKBh>#>;Y9v5^sblR zBmWz2)^Ft|yB^gbhNmK)BQ_g-_cw6$Fsb7a5?8fnM2%V<&PE1Hl@GOZU|Q(W{zC1J z$`L-T_!tF7aTEZA2(d1Jp7H4S!h&T)c&-a#%?ZB+PKDbE-zVT~E~)T?4oD8^ABYz2 zJh3rVF>b=B>NmrW67|^!cytomv)?lL)&M#r)XaQT6yV|Q>=lapx8MOJGErZ|Zt0nT z-=2Z z>k*o7GZ34)IxzyZ&;T2tC7OX7*4qyLX}%-I$bWIPZ0BXG-YRB(pLn;-*>{j5AlYf5 zcVzN*L#pPyc@45}SGH5v5gh0Xw#qEg8rRoF4SXVCt91zh$SsBd0qwChtlt;lLlK_C z3f3-H(XZ9#4m_O@s@JR4htwMI0uh4U;RraLKr+LdT-B?xH`S8!@u>>18-LRCJ-Ws` z&R`zP{Z^F{+S@PSE0w9=IliAAv+%WT3;QBq58qip|Mia!iWWh~(TU^ZCe-CGY=1m~ z&zJPAT#TJUN^dD3Z>FuCge+yhCEthMbskM?U3`gqkWeoe*ceR>^ystsNhV-W)7#Up z=;H?pbAF@~#_pcnMW6aU1YhC;U{9|dvo*o3ST%e$Zl|H)p zXFX%-!BY~Kat$A;LDDRPpJj)F01B?FDgjj*DD3FbJ_*g#izHqAetKX4ykQlACx%K- z7GP`dHj*32@j##LfbI2-VPBR-0 zfJ*_ya^9JZ=?gcvfx8Zg`>PE|yORObfS$JP2;9-Q5ORopVxMU8EWM$?^XwMDudo)I z?_DsE{3D+e`JjFYu)rkDi@*8LNLba|0G{rGdEkKnKreGKZRGbmGz|ng$ScjUc}E4} z{Ag)O|cyYUjN4Gp?N0B`kIah=TG>KrE-`vsU^U z5j>eMasg1Sw<%9va@O~=Wy-R=pqZ}LVFif7nuk*bVt&4~@S(Ky`D5(zdG;)|YWow* z@0#P5=%ExLE@88n{~2Xl;V!hX=#k&Y6Wt5=!)V*vZ~Z`2n#Q{OGkqu-UD7^OqgQ*9 zB;W*r0Z07t0CvN30FItW?C0?;PMlx~`OWsj>#L2_6_3!X^;qBaA+#LxMy>((xwrB^ z&pSby&jBVdgXVA!y|!72ELsk&#fNt}&-JlQ-T@rPVanPFVUOQYs(v{JJ$^^4hYtY- zeSw!f&mz3rit)LmyiMJDj}=_iK8P;^i9;d4(1w*m_FyO#8byb+C~On|;HH+mZ;!{u zSDu!7bZ_E*V^&fjtI-r6c;26Pd*wNZNCL^GTmh$T!Pq%bxrpHFldb6f!j$VT6c*m_ zCt1JQTQ!U#WG7=C<|?`$z9VT?s?+Smfx;pH{wQfU1L85lv2Q1Y`Rz^*mRFInp2XFv z-%W+yw`Q^Hd|fE2HBvR)oXQuOqj~j4>8e&)&GL1YLM2qoc;G40oA3sx&InEM%SZrg zqR5en+{O~n72dX@_VOKI%i@RFoG(;qF-~E&91_a|HTvIZK$GJH9gm8X9d<5M6msKm zIK=^fe?XwI1v8aqY7x1o&|M-Yak zZSHq8G&$yq_?Y#zpkm8M1En97bcQvV4)RR3lp@fc4OiSW{DA@7$c7RQT!Ex?3<+sG z6YHkYB+89KUL^DR{_+|coRPkyPPy)+QpZ_ifQ@MKP%-t1G%#!y_dh1e1X(DTkbcnU z2sh=k?@K>j>3HP%77YMwdI>5$GqxL^W8R%XfGK)#+iAREZ6`=RG>MXNWapcyc#LkU*Ft&$bmz)SRZ?~RNFfK}!oaqOu@@V?X7gM5T8n{xCrJvqy>|3&KrvBJ3>E!U zh3*Rqv&3K{rljl0mTYa=Qe8N(>(BUo~J!l^zbz;AA<`X%3w=Kb0EE+Sbl_c~hunUn%> z9LQ;draj)(%X7N7#kCs&x-lt=RA&}v#!!u10N%d;>NgHlPLRZElVZ5uX8lsQJF_K%*2a#K6xoKKY?e z>~n~YQ<%V^3$^Q0rFIP^UCOa@WRa|ZxP5R5B{tJgW$6Qe3T%7IZ(ykVF8K-(EOX=KfeZDrB17~ zE8e=?I+SZ1^q>zPbe_j#!>)W*o?RRXpc_@j!%v?UT|_B1y~_OWYO6o^p_;-{knxCSGRiWoth^U-!FVMQ6sH|w)} z0k=s9J#5hAaRGltT83^fC|or1`Y1M`Fk$^W%>und2%lKkd6tx16Urw_z?C6g(Ze|B zU2Grp&-ri7Pyjsu-+$ctFzaB*hH5>ap>Y6A^Kp1m0MXStwK=Gu0yur7|FkZp=n;Ka zGEI?F0Bawco)EEQ@v=s@>bBvo&Qar5t&d2=$}m3JVu8l-p>x|3{`{HST=(_q4uG;| z|MQYp5y3!8M;W>nUwg51M4i%P0ik?5FwuM7L*U{6^xY;*6I(C+WKEA_+xm#ABS`}G@%sUHgX?^^>joX)=Gbi5lB z_Y2ym;*5%%elb^1LH!S4Q5j9S)BZSb@3^HxMML2i^O>(jtJBD5AowFn)U}R>H|;(V0sp4 zQH3U(PIZEhLSe>jhnD>0T&)hL*_pc^a`|n4m}Gi6he~{vZaZ25=j35A{5!dX0&NdH zsM{m)Brda`lqo6Sdwq@b&~cfD?Flj!zHp7fqvD^qci)MG{07+lfMkYJ3}PKKxdTYI zR+jMpofq0u`;UBr9)AthQKd8ft!%(Y)j(>=AYoQydgXr}MhPG5BG0XV@oN(0@HdbW;}b(r zDy6V{F}G<~8VOPw)8kPCF^xV_<`t5u9_3f+=#N=2GDx}_?a@ZVHbnr0Q6TD*09>x{ z|8!4)953^K-393H_<&b|*xLWi1q9OiUvf4;t2YkV8>o2x-#kDdIlz$rN1yip;}ie? zUs_@)?05K-6$#Xf@;JHw3{&ajmqdzX5)JV;0P@+g289{?uR*gnd+%uj8WuPLL+UF0 zZj)82S@}JShc@Ul_2UBni3BPKOQL><&Vb-+(;8ScWE33bRv@y0f$aZL_;(=`dMb1Q zQ0fgxr19Q1EL)}fOx#M z35*7Wf`i2$c;UI~&7LJdU@7A8ILv*2 zwA;DRk2c>Dd=FXJc$kLtT6vm7{$6=piXAAGwJS`s?f~4C*2jz}{sPEiyk#h9( z_;Sqlc~cr+xTS&LI}oTy`tb^I(z5gL_MwX5)ua=k`EkX`1fYxE zS)Y*WPkX7q>jYk%J}96+Xi)+85oSyrOWk?&1%R0KQSW&EbipO~_zQ)r#w?H+8UljQ zIsk$LNqF@>E!Q>fA3&2>j%Ji^y z7cP)AP>h3%Jf>qb+L10AZCl2V@|g4eg)bMhIXq@9(Kr-6yTKudwSl#RiGJS$V;)S< zJ9!Vx6;_jp!uNQLikWWlWC#ZHnaP#RzI-5CJV*?=Kr9lAp<`VPT<1MZu_RUg#RsVX zcqDbEzwFVbYM&9573FXlX*(Y=+DQX?H|!wOh`VSC^Cloqa@PWV=1h3i6f0J1Hyj5% znfCF?!ED2>zyaX#(tsxe&*b54bQ_t&yc^T7UFShojGwhEzhbyP&=EG|}WpCEd^gI1his`z>u>Mj> zYzq%s)ZaSSF8SC_e%QKy_!=e;VN(1X`qDAWr=V>WeXDnJGap*eV_Q_e82qDSvv;Su zl>+g*oYVJuT+fvlG=>S7Si0eq5fjc(mfem&X!; z7hP-7ViUE#5`@Rsk798PpkAvk0~`u=u;!~}VCS~K!AKIqoazC}t1(8^*C3#XdflJx zxR#~R=qX`y9PPBe^<=uE=}~3;sPl83C_Rtb-yTMd2)+9jK4o^e%Su}MdWQrir&8X z@VL(hTQX7g&J&Rb$brOK{4J!+z$n#$+U0Dvpu=&Lh@u?|FZw}rk;7xLu7Df{gx-MH zj|Dy;n4n2E^zdU{G|hlLw-Ww|%HIs3UY-JA$t)M_IQun~?x<&wlgu0-`o`Vd9t|AP zekTAhz!i3cgvbfW!A~`#%N2Kcbm<463M$|Xn>G*FW2PY7UF`z{Ab{iY7?1?R07a55 z;2~Nc<;{5YVr>w@xk`;rKuWzhA++WU$cG#C8cY}KmGS8$^LK)g2m1jDUQ!{3{48@X zuW7IIZAw9NJNSX)aFln=MZzm8Aokd)e(x7EkEccX_t&hu7T4a{3%f6%RF@X^bV;TT zk=w5A@tl{io4(P5Kh;M`zr;aI$iQh1074q7KcXMb7ja_#J&uFMy!zk`=|><1>$)9? z>Soy0sd(-2)u^%ak(eFIJIK>01bFloJk-FG5g>L{AbtbGgxs7t zbWS)!8_c{O6qx;hss6b02Xe+qB0})#Ye4qZs60TR12i{?)QiCOfhmO@dSaBd1VEB{`2p}Ai|;ig{nbc> z%L@*Ggj&G9TB|H3`0gCqo%&6B-%lkuXSztx#h6y65gG&#w@*KP-fOpRi#!wRQxGn| z8^j0oM_6hkH`y1pZxagXl51sJLYLMLI@f$<#eM))w4b7{@b;tlZsyPQ@wSlD8+@Wi zf}hB51EM>VU$@uvFdSK9)9R~)X`rERe|yVlAo|RrWX_v&*|wz*<`C1j>Q-|8q2rrA zLip{ddQm55)Ndr9WN2Qt+tmv@as5s>EcZiq(x}w}FY^r~jP>jSC9JVJ5+1 z`1m0yH!s^sEw_c!Ld_Ng^$jW0^wIF0SA^@SN&$eiI|E(07P)}I?_KQhns>OwsxMYC zi`Ac3>FIYu#cO}s#3YV!PV|q?CwBxuUv$)?uzjJ2NhrqXvRea1uo%5Y^A&|u+5$yq z&V+`BKQ)~1n+ys9giCpd8hHK$^zVP&1f@x*%A;$e8zM`=F1SJev&?$SsmnNYlkDyf zzJGFv7!?e^B#@oXm*JqHlA@;VW`hWh#2MQZrc?NhN$fd=1*&i~=ehyEFqUjMvs!N= z1PyASZ_#R^h`Pur>f9^#`PenNfBw;JOYC(gHch1w_(iSD_RZbPRuncHde}1?;LlP3 zivEjDtiI z*4WS_leG7;D4!@ShRTG}ppmy-22Oua&tw^-RnWSku?Te{(MR|$Pu_Lk>E=kTh5V#i z?mCJxvwV0LR);Z&|6df-#Hv_lSg9K1%Lf#YbH-Q86bb(Q;e;cLkZT)P5@Y$bEPrT+ ziwX5}%P>_xH=x7{k7Z=))zhww12bII_#FY&(C^!cE~1r517DM=!2>gaKsoD~hG>Wb z8RCt%XiAaf(d-WVywFag^CLoghk0A0u=_I}PFgttCI4skBi}UY7-6kBkr)I$W)48* z`fzs5%CAt%+idF{@%B>x0Z^^#PE~eyTj^O4=+Z+qOZV|fBDfsHdQ@^!G#gY~I3I{d z+!+hf3GZEmg`Sit>-TTGq!#w8Ef7s~#~2fQgk_JxjSMyLEh!U(2$AMWh(Pl~ET0NG z4+?f-{KYw_T>9m2a)7u_%zqNbh4eotk6nGR0e^4t`32oA&zhIs2ScD<&?D1CG4b(f zI?ww3>pW%k-dc}>|I@~m2ST~M;gKbiERo#G)*`w}MUp*BDMcuhWvHka>&T$7g)S{3 zORilc+4nt!vV>Hf>?dWL z_P39f2xUGp_P*t5?8nzym>f61aIi{m>gn0Bn#76Y`%%1rc!K~Cx~FgTHg?Nu9hD>> z#=ZXjWS)*7bCsu@Wr(3X>NwVcFI%^`ArHs%ob1uyeS8-x%45~vh)*>0KBpvQddOl{ zK6U=l6xSjB1T=Q6kt%qJI21nG#7VIMmxn*-7L#FoUK!%OtDB#6;Tj|(<-Jjre)41C z(P_yYO*G%>7`ACKEYAiFqEUw6-z(vIW5dGga*b13Ex&4ki+m=}jrJ?UpO?C(8mBi~ zo~c-AIYwqw8efG$mh}m-=+n~fg1@7~ID@4pjGsQS(t-zmhAO4G$kZ5%vfDC-;&uPk zKmHabwo&wbdphZ7JLw3MSxet96N+Z`5*!A#<`$bw)frECAs8P3@+)1o;UA2Yy|1M_ zc$%1j;LyD7OwPNIvNU=S|9My&o>X4-3qrZj8`9uI|R?<+Ix+@nhM{IWY`4cfXWA<%iq||2&44MhIyCyYsI{F9F zuxRdJgPiOa<-miB2K8!W#T$y2Oj~ejg>L~^^xky=7F&{@0u-J0wUofjO#xl zdVNR)KC%O-2k?OSHJMlXna#aGi6|jC{o{*K4dRJ;_9tA(8Jd=k@MU}1)%@Uz!wn)$ zM|fjajnA*&HG@hNtIdw#Ch^6%nZE_;VxaK*YqVFMsXc67%aW{6?dZ<_=UfIQ!E#o% zQGr`MkgkXDVODi{JReL@L2PRyeMnO3{3Wb4t6s%Dl+doVA;RDe%noCdTb%ykk+FRe zNTac?k0t#DHbYq@VmC8$cV>tE-zQ8orwYxxZ@_{3)`N{TN7uFBauADA?#O}g9CKDd zTK>wlQ7q~IVKK~rBs`Er|EvpPt(eQ0T>hKR_Jq<;CMXl||M+!)1*Sv(L`H~Al96?n z+tZoQ+|WQ8e}%POgLCI05k=P}Vq7HwVEv5? z61d&}?^n;JkNN@ISpAQz`z}u&kCZ90l6>xbWCL$rmwj<>;1EP|mo&14H?RNo>IR?O73|kkO91>wPM|<#S_Y*7GdSJo8%;>+f%#T-%;Xu}|seEX96OiuzP5wBQ zaLweDH(yO77~PNlUZxQS2bo=inJ~KunNzp)OCzl&QA5B5uWY6(sn__-cIoc1>tqoa zHDK1(B<)c%>FdF{JB!19(rYUl)5^r;RV$UUd29cmw}46q839g8Yvxs$L4hNAm>Oz* zL1zM(t7qu7gRTlX&*IJ$oXrf^LF6BK&s+Xz+HA%Oqqui3Xou0Z@ZOFMcXe_tQ}f&Ne?o!pUg`q?8w zg0wMzts8@BNy1`)_`LI-naEsnnnB51G>y=@ZjNtc%6GQZE~?M*6htQ2R*tn zBa6{x`f_Qcg@@*5{s$}!PCs^DFk!LEb6F~`>~W5x0*Wc&KXF4v?; zIk(5Kj%;2#Ufp~EqpUwmoy%5Ro{INr){gpIB|_*nf6t}7>l45aiJDEK5`P1QmBhuD zkzD%q2~QU;a#?P4Z&}w2BWJ=m0nXyjeKAFWkQBSub=S|f&f)S5@e66l?r1daY5H}o zsQ$7bXgF2qJ4XuS;pbeNH{*N*Wn~tYRVi89DxZ)|DJC0FuOi)ku32-nNs%hcnd9-r z4s~X2-r(hbj8_O?-#gr~4}Td2joiDgks)SS3VDj}eCE%sEdU77|BlHbZnlf6lRRKB za>Q~EOfvMkc1nn~Pvj4Ds%45_sNXDUT93mF5ATrp|zJq+i+YseIy*SW)B0x!jo%&>a+fD->$S z$bs?R7JAeKQnW#~GjjQ`p~@IJFVM2*xhH({IFi#AT?LJc6zionFlKsH3ub@6pH`Z) z#g4|GzfN|_bE5TOf`O_BKd@y+8w|)E1=64}cUE@#Y;S9#VUB9#4HB}N$Jgls$OOg7 z-5@mG91y#b+fjX-21p<(^V?Bh4Tqp$Wo1dQagCaL;yOew&=^Rh+lT`e8 z8)|ECdECd%5Hym|c`oY%Q+{EP6DS^#d9}YvG!{twk0vLoG?{1j_{p$4s1@(n){Uz> zs8j0flx$F#B|H6I32{B7lA!QocyNxERivQ8L zu>Q&dVTELMutwxuk zt{oN?-RmV#l7N2=DqP@CJkZAG<8iL|gr+I{U)AbhJ8Og$SSBBCV;&N&Qw#*}0^wsu>!r$sJw z_bx=*k9CNr&1riWnvLJ#m$&=!kVhJSfNE?1R9El^NZNYo?_{0s|4T!;1W^ZV`GJZj z3Y(`DIi7r{9fx64P<`1nOgp_jNRc%ZxjeOuP^~E3vX-<1u7C#B^Q+|}ZZ>#}WH+95 z=xDSi+T!>}kZ1{My||emRj|Q?Jw5~xh_*q`3!*uMNwj-Ah|%&BT73efR$n<|kO7Dg zlnsZp+j%?F6_{$ei%1O{a zpVd+FMe<15)#@#sZu1W#=N1F_q6Kb5KE+AVZ_0V+KV_t(uz{XK)QKAyE_+#L(M)}o zz2K3kwU2Eysg=HFYtlm7;tUNEYUCTz0OfZ}&qvmhMYA={Pago92B7E}~Yq@^qmwCRzRxQ#h z0=N#-ecN*$In53wjOmum2FotZPw9ZbMgr;_vt8mR_i6AejBE?0-A#&v(z4bm@j~Q+ zgF!z#KSv6tqyzDn1iLd8MPi^PVrD1y5BrDv^}=@-VD)wIFt7k_2IKgFer|q>XxO6P zXpNqSLPK%&=b0zFS|?`afsQU7;Dt&x)n$5apITUfn|8RINe!EBW!etM1@-E*9M`A4 zA&5%slXoPY|MultE2tZ`zA5LpVX5%w1mEESVeB!JMC~ytVHLPH7a|vGHYLGX=F&P# zl_>k++j(Rk+44%Ol8P^ulZ{cs%W&kOO(CYJamON*Ve7iTZHuKxdX-zc=hVXtMExB| zW2WLUYqT_DWGF~cZj2g%YXq6#ex(lMpZc2qauA;8#pv=-ZY3YoJbVjjs|eD!tNs zFQ>Jrt}#uhkbADy2V^!0(&fBCAIu_S>~q_8XJY+s#RfU1y7*+Ma6oO`@h-QL`LPg| ztu%Zs!-NSxmxFxYIM!~ZyT3eCJA~5Aev8#?X zPw;qcd2hOrJXbKQN z1#Ek<^YUt>uO4nc`vs*3oQF$=7dm3I4>x!FA<@;`uS1QceQP>qzo#_(~t!pv*cMKO0`2Wf`G<4zUm-4Hg!2x()06TXTceE(G4 zU}IhjLOGFrPQh61kq6u)7Q1GTkm&z+{eh^Wav^f2kLJ(WAbJ_5y#+Npva?Pk(? z;%S|Qb_vpXUnzBZ*(1`NbYzbml#Doq1=k=sRsmK>e8v5e=Eu4Ct)rUEP$=hRoK&W< zWaAqy-JU*ONgW7Y{Pa(@ho31G-X*18hL?E#^>2ac?qy; zl?daF$(hOTxm{yq}&TEK{5a# z(ebbRxFtoYHxOox4oMFb**CTsab3o44q>@i=?YeP#qWk|Wh5fl5AE$~{jQTZs>s|2 z{zU8z?5>euwZ5sVXyAAxjjg+n$nx@`=&D7eL>?+sgg2B!z z^RW5z0uE+RvIL!t@i_5Ym6?$_3dOgqw*mu27b?IF|0gaDx%7xb?!Ol$U(gkLQNdh< zNw6dMW7^Z{1*8Ir57)H;aLPi{nk{@6v&1?~6!_XY{R1F^Em7Ax5ws#C&~DiEVgb3T z=Zx5vL~(CmAHB_bvIn8+sgfQog!slfv~9bgL*YI@jVw4s3bd$cnN4KL)}dsHO#5!qEXu0laFkhh+Cf7%qZ60i=GAN`;FK zqN{Au`GxY>55gR>n}~9atflc z?_JS?=l<=>bKp=7T$*k^-@SAQ>{NF&3{A8?OapaNAyM<9D=6b4&iU+J^}SbTkz2-j zH=8k|Nk+OZvtUQueGMc(ICdI+~#vcCznX*rg literal 0 HcmV?d00001 diff --git a/5_nn/images/cross_entropy_loss_sigmod.png b/5_nn/images/cross_entropy_loss_sigmod.png new file mode 100644 index 0000000000000000000000000000000000000000..f34c0041d61da615a7c0256f337e5a28d6ea4fe8 GIT binary patch literal 60730 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ÐSXhh^i3wZY{n}91KT~Ei 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 literal 0 HcmV?d00001 diff --git a/6_pytorch/0_basic/1-Tensor-and-Variable.ipynb b/6_pytorch/0_basic/1-Tensor-and-Variable.ipynb index ca92d15..31743ca 100644 --- a/6_pytorch/0_basic/1-Tensor-and-Variable.ipynb +++ b/6_pytorch/0_basic/1-Tensor-and-Variable.ipynb @@ -5,7 +5,14 @@ "metadata": {}, "source": [ "# Tensor and Variable\n", - "这是 PyTorch 基础的第二课,通过本次课程,你能够学会如何像使用 NumPy 一样使用 PyTorch,了解到 PyTorch 中的基本元素 Tensor 和 Variable 及其操作方式。" + "\n", + "PyTorch的简洁设计使得它入门很简单,在深入介绍PyTorch之前,本节将先介绍一些PyTorch的基础知识,使得读者能够对PyTorch有一个大致的了解,并能够用PyTorch搭建一个简单的神经网络。部分内容读者可能暂时不太理解,可先不予以深究,后续的课程将会对此进行深入讲解。\n", + "\n", + "本节内容参考了PyTorch官方教程[^1]并做了相应的增删修改,使得内容更贴合新版本的PyTorch接口,同时也更适合新手快速入门。另外本书需要读者先掌握基础的Numpy使用,其他相关知识推荐读者参考CS231n的教程[^2]。\n", + "\n", + "[^1]: http://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html\n", + "[^2]: http://cs231n.github.io/python-numpy-tutorial/\n", + "\n" ] }, { @@ -13,7 +20,8 @@ "metadata": {}, "source": [ "## 把 PyTorch 当做 NumPy 用\n", - "PyTorch 的官方介绍是一个拥有强力GPU加速的张量和动态构建网络的库,其主要构件是张量,所以我们可以把 PyTorch 当做 NumPy 来用,PyTorch 的很多操作好 NumPy 都是类似的,但是因为其能够在 GPU 上运行,所以有着比 NumPy 快很多倍的速度。" + "\n", + "PyTorch 的官方介绍是一个拥有强力GPU加速的张量和动态构建网络的库,其主要构件是张量,所以我们可以把 PyTorch 当做 NumPy 来用,PyTorch 的很多操作好 NumPy 都是类似的,但是因为其能够在 GPU 上运行,所以有着比 NumPy 快很多倍的速度。通过本次课程,你能够学会如何像使用 NumPy 一样使用 PyTorch,了解到 PyTorch 中的基本元素 Tensor 和 Variable 及其操作方式。" ] }, {