介绍
主成分分析(PCA)和自编码器(AutoEncoders, AE)是无监督学习中的两种代表性方法。
PCA 的地位不必多说,只要是讲到降维的书,一定会把 PCA 放到最前面,它与 LDA 同为机器学习中最基础的线性降维算法,SVM/Logistic Regression、PCA/LDA 也是最常被拿来作比较的两组算法。
胶囊网络的革命在于:它提出了一种新的“vector in vector out”的传递方案,并且这种方案在很大程度上是可解释的。
将 Capsule 称作向量神经元 (vector neuron, VN),而普通的人工神经元叫做标量神经元 (scalar neuron, SN),下表总结了 VN 和 SN 之间的差异:
本文是 《Hands-on Machine Learning with Scikit-Learn and TensorFlow 》的课后习题解答!
把练习和答案分开是为了督促学习和思考,提倡独立思考,主动学习,而不是背答案!文章前半段中文翻译有问题的地方欢迎评论指正,英文原文在后面。
原文链接:CHAPTER 4 A visual proof that neural nets can compute any function
神经网络的一个最显著的事实就是它可以计算任何的函数。不管这个函数是什么样的,总会确保有一个神经网络能够对任何可能的输入 $x$,其值 $f(x)$ (或者某个足够准确的近似)是网络的输出。 表明神经网络拥有一种普遍性。不论我们想要计算什么样的函数,我们都确信存在一个神经网络可以计算它。 而且,这个普遍性定理甚至在我们限制了神经网络只在输入层和输出层之间存在一个中间层的情况下成立。所以即使是很简单的网络架构都极其强大。普遍性定理在使用神经网络的人群中是众所周知的。但是它为何正确却不被广泛地理解。现有的大多数的解释都具有很强的技术性。
让我们实现本章讨论过的这些想法(交叉熵、正则化、初始化权重等等)。我们将写出一个新的程序,network2.py,这是一个对中开发的 network.py 的改进版本。如果你没有仔细看过 network.py,那你可能会需要重读前面关于这段代码的讨论。仅仅 $74$ 行代码,也很易懂。对 network.py 的详细讲解见第一章的 使用神经网络识别手写数字——代码实现