0%

介绍

主成分分析(PCA)和自编码器(AutoEncoders, AE)是无监督学习中的两种代表性方法。

PCA 的地位不必多说,只要是讲到降维的书,一定会把 PCA 放到最前面,它与 LDA 同为机器学习中最基础的线性降维算法,SVM/Logistic Regression、PCA/LDA 也是最常被拿来作比较的两组算法。

阅读全文 »

为什么要发明变分自编码器

什么是变分自编码机?

要理解变分自编码机(VAE),我们要先从一个简单的网络开始,一步一步添加部件。

描述神经网络的常见方法,是把它解释成我们想要建模的功能的某种近似。然而,它们还能被理解为储存信息的某种数据结构。

阅读全文 »

胶囊网络的革命在于:它提出了一种新的“vector in vector out”的传递方案,并且这种方案在很大程度上是可解释的。

Hinton大神的胶囊网络

理解胶囊网络基本计算公式

将 Capsule 称作向量神经元 (vector neuron, VN),而普通的人工神经元叫做标量神经元 (scalar neuron, SN),下表总结了 VN 和 SN 之间的差异:

阅读全文 »

目标

  • Understanding the role of software project management in software development
  • Understanding why software project management practices are important
  • Knowing good basic software project management practices
  • Possessing basic skills using software management tools and practices
  • Having applied those skills in software developing with realistic challenges
阅读全文 »

本文分为理论和实验两部分:

  • 理论部分先讲解二分类、多分类与多标签分类问题的基本概念,然后分析它们为什么使用不同的激活函数和损失函数,结论见文末总结。

  • 实验部分重点讲解了多标签和多输出问题。

二分类、多分类、多标签和多输出问题的基本概念

阅读全文 »

原文链接:CHAPTER 4 A visual proof that neural nets can compute any function

神经网络的一个最显著的事实就是它可以计算任何的函数。不管这个函数是什么样的,总会确保有一个神经网络能够对任何可能的输入 $x$,其值 $f(x)$ (或者某个足够准确的近似)是网络的输出。 表明神经网络拥有一种普遍性。不论我们想要计算什么样的函数,我们都确信存在一个神经网络可以计算它。 而且,这个普遍性定理甚至在我们限制了神经网络只在输入层和输出层之间存在一个中间层的情况下成立。所以即使是很简单的网络架构都极其强大。普遍性定理在使用神经网络的人群中是众所周知的。但是它为何正确却不被广泛地理解。现有的大多数的解释都具有很强的技术性。

阅读全文 »

原文链接:CHAPTER 3 Improving the way neural networks learn

为什么选择神经网络的超参数是个难题

直到现在,我们还没有解释对诸如学习率 $\eta$,正则化参数 $\lambda$ 等等超参数选择的方法。我只是给出那些效果很好的值而已。实践中,当你使用神经网络解决问题时,寻找好的超参数其实是很困难的一件事。例如,我们要解决 MNIST 问题,开始时对于选择什么样的超参数一无所知。假设,刚开始的实验中选择前面章节的参数都是运气较好。但在使用学习率 $\eta=10.0$ 而正则化参数 $\lambda=1000.0$。下面是我们的一个尝试:

阅读全文 »

原文链接:CHAPTER 3 Improving the way neural networks learn

再看手写识别问题:代码

让我们实现本章讨论过的这些想法(交叉熵、正则化、初始化权重等等)。我们将写出一个新的程序,network2.py,这是一个对中开发的 network.py 的改进版本。如果你没有仔细看过 network.py,那你可能会需要重读前面关于这段代码的讨论。仅仅 $74$ 行代码,也很易懂。对 network.py 的详细讲解见第一章的 使用神经网络识别手写数字——代码实现

阅读全文 »