0%

今天在讨论神经网络中的激活函数时,陆同学提出 Sigmoid 函数的输出不是以零为中心的(non-zero-centered),这会导致神经网络收敛较慢。关于这一点,过去我只是将其记下,却并未理解背后的原因。此篇谈谈背后的原因。

阅读全文 »

本文是译文,原文由 Chris Wellons 创作,首刊于这里
本文已被翻译成日语乌克兰语中文
本文还有一后续

Linux 的线程设计十分优美:线程只不过是共享虚拟地址空间和文件描述符表的进程而已。由某一进程产生的线程是该主线程(父进程)的子进程。除了少数线程相关的系统调用,操作线程的系统调用与操作进程的系统调用完全相同。这种优美与文件描述符的优美异曲同工。

通常来说,在类-Unix 的系统上,进程是通过 fork() 来生成的。新生成的进程的虚拟内存空间是原进程的拷贝,但具有独立的地址空间和文件描述符表。(Linux 使用写时拷贝技术提升了这一步骤的效率)不过,对于创建线程来说,这种做法太高级(high-level)了;因此 Linux 还有名为 clone() 的系统调用。它与 fork() 的行为大致相同,只不过它能通过一系列参数控制其行为:主要是控制子进程与父进程之间共享那些运行时上下文。

在进程的栈上创建一个新的线程非常简单——只需要 15 条命令,而无需任何库,特别是不需要调用 pthread 库!本文中,我将以 x86-64 平台为例。所有代码均以 NASM 语法写就,因为,依我愚见,它是至今为止最好的(参见:这里)。

此处是完整的示例代码:Pure assembly, library-free Linux threading demo

阅读全文 »

我打小就与音乐结缘,先后学习过声乐和钢琴,接触过的乐器就更多。作为人类智慧的结晶(EVA 渚薰语),音乐总是与高贵、优雅、美丽这些美好的形容词挂钩。另一方面,物理和数学又代表着人类心智的荣耀。作为写作的缘和由,这无疑是很强大的了。因此,这一系列将介绍音乐中的物理和数学知识。

这是系列文章的第一篇,讲讲和声音相关最基本的一些知识。

阅读全文 »