zoukankan      html  css  js  c++  java
  • 辨异 —— 机器学习概念辨异、模型理解

    • 区别检测(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),

    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)

    机器学习更偏重,自动化(数学);数据挖掘则偏重,半自动;

    1. Multi-class、Multi-label

    • Multi-class Classification:多分类问题,即在多于两个类别中选择一个;
    • Multi-label Classification:判断一个样本是否同时属于多个不同类别;

    2. 分类函数(classification function)与模型(model)

    • 分类函数:fθ(x),f(x)
    • 模型:P(Y|x,θ)

    二者什么关系呢?

    fθ(x):=argmaxkP(Y=k|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:RDRL,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 对应的则是最高次数确定之后,每一项的系数。

  • 相关阅读:
    一.django初识
    解决Centos7下中文显示乱码
    宿主机ping不通虚拟机,虚拟机能ping通宿主机问题
    Win7查看某个端口被占用的解决方法
    改变securecrt背景色
    一.1搭建跨平台的统一python开发环境
    第二部分用户交互程序开发,通过paramiko记录ssh会话记录
    【VUE+Django】天坑》》 模板语法与VUE语法的冲突
    【vue_django】成功登录后,保存用户
    【Vue+django】 配合rest_framework的惊天大坑
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423144.html
Copyright © 2011-2022 走看看