主页

那些被送进戒网瘾学校的孩子:正义可能会迟到 但永远不会缺席

转载自人间《进了那些学校,孩子再没回来》,作者:《今日说法》栏目记者倪伟 2017年11月,我再次来到济南,“山东科技防卫专修学院”的旧址。 一年前我来到这里的时候,操场上还有一百来个学生,穿着迷彩服。男生们打篮球,女生跳皮筋,到处都是一片欢声笑语。仅仅一年多时间,操场上只剩一大片芦苇随着风摇摆,晃得人失神。偌大的地方,如今只有一个22岁的娃娃脸男兵看守着——这块地是部队的军产,在我来的一个月前,部队要求原来租用这里的“山东科技防卫专修学院”腾退。 学校搬走,招牌取下,一片狼藉。我从一楼走到六楼,每层过道的尽头是一个“静”字,每个房间我都进去看了看,觉得这里更像是一家废弃的医院:学生宿舍的墙是惨白色,一个房间外写着“处置室”,床前还有呼唤铃。 可曾住在这里的,却不能算是病人。...

阅读更多

浅谈 NLP 中的 Attention 机制

(本文于 2020 年 6 月 14 日更新) 如今 NLP 领域,Attention 大行其道,当然也不止 NLP,在 CV 领域 Attention 也占有一席之地(Non Local、SAGAN 等)。众多 NLP&CV 的成果已经充分肯定了 Attention 的有效性。 背景 2017 年中,有两篇类似并且都算是 Seq2Seq 上的创新的论文,分别是 FaceBook 的《Convolutional Sequence to Sequence Learning》和 Google 的《Attention is All You Need》。本质上来说,它们都是抛弃了 RNN 结构来做 Seq2Seq 任务。 本文将首先对《Attention is All...

阅读更多

从 loss 的硬截断、软化到 focal loss:通过 Loss 函数缓解数据不平衡问题

转载自《从loss的硬截断、软化到focal loss》,作者:苏剑林。 前言 今天在 QQ 群里的讨论中看到了 focal loss,经搜索它是 Kaiming 大神团队在他们的论文《Focal Loss for Dense Object Detection》提出来的损失函数,利用它改善了图像物体检测的效果。不过我很少做图像任务,不怎么关心图像方面的应用。本质上讲,focal loss 就是一个解决分类问题中类别不平衡、分类难度差异的一个 loss,总之这个工作一片好评就是了。大家还可以看知乎的讨论: 《如何评价kaiming的Focal Loss for Dense Object Detection?》 看到这个 loss,开始感觉很神奇,感觉大有用途。因为在 NLP 中,...

阅读更多

区块链入门教程:快速了解区块链和挖矿

转载自《区块链入门教程》,作者:阮一峰 区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。 可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。 下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿、为什么挖矿越来越难等问题。 需要说明的是,我并非这方面的专家。虽然很早就关注,但是仔细地了解区块链,还是从今年初开始。文中的错误和不准确的地方,欢迎大家指正。 区块链的本质 区块链是什么?一句话,它是一种特殊的分布式数据库。 首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从...

阅读更多

Fork Join Java 并行编程:轻松实现 Java 多线程

实现程序高性能的一个重要技术手段,就是将密集的任务分隔成多个可以并行执行的块,以便可以最大化利用机器的计算能力。如今多核处理器已经非常普遍,这给了我们发挥并发编程潜能的机会,因为多个线程可以在多个内核上并发执行。但是编写并发(并行)程序一向比较困难,因为你必须处理线程同步和共享数据的问题。 好在 java 平台在语言级别上对并发编程就提供了支持,Java SE 5 和 Java SE 6 通过引入了一组包提供并发模块,Java SE 7 又进一步增强它们。 早期版本的写法 Java 中普通线程的并发编程 从历史上来看,java 通过 java.lang.Thread 类和 java.lang.Runnable 接口来实现多线程编程,以确保代码对于共享的可变对象表现出正确性和...

阅读更多

果壳中的条件随机场

转载自《果壳中的条件随机场(CRF In A Nutshell)》,作者:苏剑林。 本文希望用尽可能简短的语言把 CRF(条件随机场,Conditional Random Field)的原理讲清楚,这里 In A Nutshell 在英文中其实有“导论”、“科普”等意思(霍金写过一本《果壳中的宇宙》,这里东施效颦一下)。 网上介绍 CRF 的文章,不管中文英文的,基本上都是先说一些概率图的概念,然后引入特征的指数公式,然后就说这是 CRF。所谓“概率图”,只是一个形象理解的说法,然而如果原理上说不到点上,你说太多形象的比喻,反而让人糊里糊涂,以为你只是在装逼。(说到这里我又想怼一下了,求解神经网络,明明就是求一下梯度,然后迭代一下,这多好理解,偏偏还弄个装逼的名字叫“反向传播”,...

阅读更多

Ubuntu深度学习环境搭建:安装Cuda、CuDNN、TensorFlow

前言 首先,确保你的机器上已经下载并安装好 Ubuntu 服务器系统 (Ubuntu Server) 了,如果是使用阿里云或者其他云服务主机,那么直接创建一个安装有 Ubuntu 的实例就可以了。 本文以目前最新的 Ubuntu Server 16.04.3 LTS 系统为例,介绍包括 CUDA、CudNN 软件以及 TensorFlow、Keras 等 Python 库的安装方法。 下面是我们需要安装的软件列表。 Cuda CudNN TensorFlow 确认 GPU 可用 首先我们需要检查 GPU 是否已正常安装并已处在运行状态。 lspci -nnk | grep -i nvidia 前期准备 在安装软件之前,首先确认 apt-get 已经更...

阅读更多

不可思议的 Word2Vec(下):用 Tensorflow 和 Keras 来实现 Word2Vec

汇总整理自《不可思议的Word2Vec》系列,作者苏剑林。部分内容有删改。 Tensorflow 版的 Word2Vec 不同的地方 本文的主要模型还是 CBOW 或者 Skip-Gram,但在 loss 设计上有所不同。本文还是使用了完整的 softmax 结构,而不是 huffmax softmax 或者负采样方案,但是在训练 softmax 时,使用了基于随机负采样的交叉熵作为 loss。这种 loss 与已有的 nce_loss 和 sampled_softmax_loss 都不一样,这里姑且命名为 random softmax loss。 另外,在 softmax 结构中,一般是 $\text{softmax}(Wx+b)$ 这样的形式,考虑到 $W$ 矩阵的形状事...

阅读更多