- 区别检测(detection)与识别(recognition),
- 目标检测,目标识别;
- 人脸检测(一张图像中是否有人脸),人脸识别(确定这个人脸是谁)
- DP:不是指动态规划(dynamic programming),而是狄利克雷过程(Dirichlet Process)
- TF,可以是 TensorFlow,也可以是 Term Frequency,注意 context
- PMF: Probabilistic Matrix Factorization,概率矩阵分解,(PMF:Probability Mass Function),概率质量函数;
- 参数模型(Parametrical models),非参数模型(non-parametric models),
- 参数模型中的参数一般是关于对数据本身分布的假设;
- 随机森林(包括提升方法)、神经网络等方法中的参数,则是关于算法本身;
- Are Random Forest and Boosting parametric or non-parametric?
0. 机器学习与统计、与数据挖掘
机器学习与统计因为其概念的提出来源不同,一个来源于人工智能,一个则是数学;
- 机器学习中的 Networks,Graphs 等,在统计的范畴里称为 Models
- Networks,Graphs:weights
- Learning
- Generation
- supervised learning
- unsupervised learning
- Models:parameters
- 对模型,fitting
- 对参数,估计(estimation);
- Test set(Generation)
- Regression/Classification(supervised learning)
- density estimation,clustering(unsupervised learning)
- Networks,Graphs:weights
机器学习更偏重,自动化(数学);数据挖掘则偏重,半自动;
1. Multi-class、Multi-label
- Multi-class Classification:多分类问题,即在多于两个类别中选择一个;
- Multi-label Classification:判断一个样本是否同时属于多个不同类别;
2. 分类函数(classification function)与模型(model)
- 分类函数:fθ(x),f(x)
- 模型:P(Y|x,θ)
二者什么关系呢?
3. empirical loss:经验损失
- 损失函数一定是需要对其执行最小化操作的。
存在以下版本的经验损失函数的定义形式:
-
0-1 损失,
ℓ0,1(θ,D)=∑i=0|D|Ifθ(x(i))≠y(i)接下来就要看 fθ(x) 的具体定义形式了,比如,fθ(x)=argmaxkP(Y=k|x,θ)
-
NLL(Negative Log-Likelihood Loss),其实有 MLE(Maximum Likelihood)最大(对数,乘法转化为加法)似然取负号转化而来,(最大似然 ⇒ 最小对数损失)
L(θ,D)=∑i=0|D|logP(Y=y(i)|x(i),θ)所以其 NLL 形式为:
NLL(θ,D)=−∑i=0|D|logP(Y=y(i)|x(i),θ)此为真正的损失函数(当然这里也可以再次执行以下均值化的操作);
4. 手动求导还是自动求导?
在实现 minibatch SGD(stochastic gradient descent)的过程中,对于大多数的编程语言,C/C++Python/Matlab,来说,都需要手动求解损失函数关于参数的导数(对 logistic regression 来讲,就是 ∂ℓ/∂W,∂ℓ/∂b,这对某些复杂模型常常变得十分棘手,尤在考虑到数值稳定性时。
对于 Theano 这种符号式编程语言来说,就变得十分容易:
g_W = T.gradient(cost=cost, wrt=clf.W)
g_b = T.gradient(cost=cost, wrt=clf.b)
- 手动求导:C/C++/Python/Matlab
- 自动求导:theano
5. MLP vs LR(logistic regression)
一个 MLP(multi-layer perceptron)可被看做一个 LR 分类器,首先使用一个非线性函数(non-linear,因为激励函数不是线性的) Φ 将输入样本(input)映射到一个可以使其线性可分的空间中。
这样的一个中间层视为隐层(hidden layer)。
一个单隐层的 MLP 就足以成为一个通用的逼急器(universal approximator)。
MLP 也被成为 ANN(Artificial Neural Network)。
-
正式地,单隐层的 MLP 可看做一个函数,f:RD→RL,D 是输入样本的维数,L 则是输出向量的维数,以矩阵的记法:
f(x)=G(b(2)+W(2)s(W(1)x+b(1)))符号介绍:
- b(1),b(2):bias vectors
- W(1),W(2):weight matrices
- G,s:activation function
定义:h(x)=Φ(x)=s(b(1)+W(1)x),其构成了中间的隐层(的输入)
一般将 s=tanh
输出向量(output vector) o(x)=G(b(2)+W(2)h(x)),我们可将 G 设置为 softmax 的形式;
对于 MLP 模型,参数集为 θ={W(2),b(2),W(1),b(1)}
6. 无监督学习 vs 监督学习
想要结合实际,让工具变得更加智能化,深度学习必将的走向:
- 大数据和无监督算法;
- 围绕着庞大的未标记数据;
7. parameter vs hyper-parameter
-
hyper-paramter 的学习(获得)对应着 model selection(model comparison)的过程。
- 不同的超参对应着不同的模型;
-
parameter 的学习(获得)对应着在 hyper-parameter 确定的前提下,模型训练的过程。
- 模型无关其内具体参数的数值;
比如多项式拟合,hyper-parameter 对应的是,多项式的最高次数,而 parameter 对应的则是最高次数确定之后,每一项的系数。