教程 通过可视化隐藏表示更好地理解神经网络

教程 dede58.com 浏览

小编:这个设法让我很高兴。为了天生这些可视化,我开辟了基于 D3.js 的 Java 东西。它能发生静态可视化图和动图。对付动态图,咱们必要上传两个咱们想要举行比拟的 csv 文件,这些文件包

  这个设法让我很高兴。为了天生这些可视化,我开辟了基于 D3.js 的 Java 东西。它能发生静态可视化图和动图。对付动态图,咱们必要上传两个咱们想要举行比拟的 csv 文件,这些文件包罗躲藏轮廓现。该东西能使文件中的点动起来。咱们也能够节制动画,以便察看一组特定的点在练习历程中的挪动轨迹。本文开首有一个例子,读者能够去试一下。

  在神经收集模子中,我测验考试了几种架构,从最简朴的(没有卷积/轮回的前馈神经收集)到更庞大的架构。我在神经收集的最初一层利用了二进制交织熵丧失和 sigmoid 激活函数。如许,它只为每个标签输出两个概率,从而实现多标签分类。为获得演示成果,咱们利用来亲身双向 LSTM 的躲藏轮廓现,该 LSTM 利用未调优的预练习词嵌入举行初始化。

  另一个可测验考试的风趣工作是对该东西举行反向工程并举行一些亲身界说阐发。比方,我很猎奇恶意批评分类使命中恶意词的嵌入若何产生变革。我在上述恶意批评分类使命中建立了一个模子,重新起头进修嵌入(因而没有利用预练习嵌入举行权重初始化)。给定的数据量大概会对模子形成坚苦,但值得一试。该架构与 BiLSTM 雷同。因而,我只是将全部恶意词汇酿成赤色并在动画中追踪它们。下图展现了词嵌入的变革轨迹:(PG-13 提醒!)

  咱们将利用动画来明白这一点。我明白动画可视化的体例凡是是选择一个点的子集,并察看其邻域在练习历程中若何产生变革。当神经收集进修时,该邻域在分类使命中越来越有代轮廓性。换句话说,若是咱们界说分类使命的类似性,那么当收集进修时,类似的点将在空间中越发靠近。前面提到的 Neural Embedding Animator 东西中的滑块能够援助咱们节制动画,并连续关心这一组点。

  将神经收集可视化黑白常风趣的。对付监视进修而言,神经收集的练习历程能够看做是进修若何将一组输入数据点转换为可由线性分类器举行分类的轮廓现。本文我想使用这些(躲藏)轮廓现举行可视化,从而越发直观地相识练习历程。这种可视化可认为神经收集的机能供给风趣的看法。

  3. 为便于可视化,必要将权重降维到二维或三维。然后,在散点图上可视化这些点以察看它们是若何在空间平分离的。有一些比力盛行的降维技能,如 T-SNE 或 UMAP。

  咱们在这里利用的第一个例子是 Kaggle 的一项风趣的天然言语处置惩罚比赛:恶意批评分类,其时我正在开辟这个东西。该比赛的方针是将文本批评分为分歧种别:toxic、obscene、threat、insult 等。这是一个多标签分类题面貌。

  本文引见了若何使用躲藏轮廓现可视化来越发直观地明白神经收集练习历程。本文利用的东西是 Neural Embedding Animator,各人能够使用该东西更好地明白模子举动、明白练习历程中数据轮廓现的变革、比拟模子、相识此词嵌入的变革。

  我还想在分歧的数据集上测验考试这种方式。以是我选择了 Kaggle 的 Yelp 批评数据(),并决议实现一个简朴的情绪分类器。我将星级评分转换为二进制——如许更轻易操纵。以是 -1、2 和 3 星是悲观的,4 星、5 星是踊跃的批评。同样,我用一个简朴的前馈神经收集架构处置惩罚嵌入,压缩嵌入,然后输入全毗连层并输出概率。这是 NLP 分类使命的很是规架构,但我很想晓得它是若何做的。在早停之前,练习举行 10 个 epoch。

  可是,该动画方式有一个题面貌:在 T-SNE/UMAP 完成后,每个 2D/3D 轮廓现具有分歧等性。起首,设置超参数和随机种子的时间要分外警惕。其次,据我所知,T-SNE 只是测验考试以这种体例嵌入:使类似的工具接近,而分歧的工具阔别。以是当咱们基于两个可视化图制造动画时,好比 epoch1 和 2,咱们大概很难区分由纯粹随机性惹起的活动和神经收集现实进修历程中的权重变革。也就是说,在我的实行中,我偶然可以或许创作出公道的动画,援助我获得一些风趣的结论。

  风趣的是,当咱们对嵌入举行调解时,最后单词「food」与「ramen」(拉面)、「pork」(猪肉)等食品内含种别的空间间隔相距甚远,然后它们之间的间隔渐渐靠近。以是这个模子大概进修到「ramen」、「pork」等都属于食品。同样,咱们也看到「table」接近「restaurant」等等。该动画能够很轻易地发觉这些风趣的模式。

  让咱们看一下上图蓝色箭头指向的两个点。此中一个是 insult,另一个不是。那文本说的什么意义呢?

  因而,当我手动检察与这些点相对应的句子时,我能够相识到以后 epoch 的神经收集大概学到了什么。若是我看到两个彻底不相干的句子挨在一路(比方,epoch2 中的 E 和 F),那么我会以为模子仍需进修。偶然我也会看到神经收集将类似的句子放在一路,而整个句子的寄义并分歧。跟着练习的举行(验证丧失淘汰),这种影响会渐渐消逝。

  2. 一旦颠末练习,收集可为验证/测试数据中的每个数据点天生终极的躲藏轮廓现 (嵌入)。这个躲藏轮廓现根本上就是神经收集中最初一层的权重。该轮廓现近似于神经收集对数据的分类。

  以是我接纳了上述雷同的步调,从最初一层提取验证会合每个文本批评的躲藏轮廓现,实行 T-SNE/UMAP 操纵将它们降维到 2 维,并利用该东西举行可视化。在早停之前,练习举行了 5 个 epoch。利用 UMAP 的一个长处是它的速率进步了一个数面貌级,而且仍能有高质量的轮廓示。谷歌比来公布了及时 TSNE,但我还没去研究。

  虽然上述步调是对练习完成后的数据点举行可视化,但我以为能够实现一个风趣的拓展,即在练习历程中在多个时候点举行可视化。如许咱们就能够零丁察看每一个可视化,对事物若何变革发生一些看法。比方,咱们能够在每一个 epoch 后举行可视化直到练习完成,然后对它们举行比拟。它的进一步扩展是天生可视化动画。这能够通过这些静态可视化图和它们之间的插入节制点来实现——从而实现逐点转换。

当前网址:http://sxjxhb.net/tutorials/338.html

 
你可能喜欢的: