第一个

作者: onepedalo | 来源:发表于2018-07-25 09:17 被阅读0次

    RBF(Radial Basis Function)径向基函数,就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。

    双竖运算符∥...∥ 表示Norm运算,即取向量的‘度量’ .e.g 二维下常为距离函数

    RBF网络能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度,已成功应用于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。

    简单说明一下为什么RBF网络学习收敛得比较快。当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的每一个权值都要调整,从而导致全局逼近网络的学习速度很慢。BP网络就是一个典型的例子。

    如果对于输入空间的某个局部区域只有少数几个连接权值影响输出,则该网络称为局部逼近网络。常见的局部逼近网络有RBF网络、小脑模型(CMAC)网络、B样条网络等。

    RBF神经网络是一种前向网络,由输入层、隐含层和输出层构成,隐节点一般采用高斯激励函数,而输出层通常为线性函数。当输入信号靠近激励函数的中央范围时,隐节点将产生较大的输出响应。即在输入空间的局部范围内,仅由少数几个神经元决定网络的输出,所以它也被称为局部感受野网络。RBF神经网络的学习可避免非线性优化,不存在局部极小的问题,它的网络结构通过学习确定,具有良好的预测精度和逼近速度,尤其适合对尚不清楚内在机理的非线性复杂系统进行函数逼近和预测模型的建立。

    NIPS 神经信息处理系统大会(Conference and Workshop on Neural Information

    Processing Systems),是一个关于机器学习和计算神经科学的国际会议。该会议固定在每年的12月举行,由NIPS基金会主办。NIPS是机器学习领域的顶级会议。在中国计算机学会的国际学术会议排名中,NIPS为人工智能领域的A类会议

    训练集(train)、验证集(validation)和测试集(test)的意义

    有监督的机器学习中,一般需要将样本分成独立的三部分训练集(train set),验证集(validation set)和测试集(test set)。其中训练集用来估计模型,验证集用来确定网络结构或者控制模型复杂程度的参数,而测试集则检验最终选择最优的模型的性能如何。

    训练集(train)、验证集(validation)和测试集(test),这三个集合的区分可能会让人糊涂,特别是,有些读者搞不清楚验证集和测试集有什么区别。

    Training set: A set of examples used for learning, which is to fit the parameters [i.e., weights] of the classifier.

    Validation set: A set of examples used to tune the parameters [i.e., architecture, not weights] of a classifier, for example to choose the number of hidden units in a neural network.

    Test set: A set of examples used only to assess the performance [generalization] of a fully specified classifier.

    训练集:学习样本数据集,通过匹配一些参数来建立一个分类器。建立一种分类的方式,主要是用来训练模型的。

    验证集:对学习出来的模型,调整分类器的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。

    测试集:主要是测试训练好的模型的分辨能力(识别率等)

    I. 划分

    如果我们自己已经有了一个大的标注数据集,想要完成一个有监督模型的测试,那么通常使用均匀随机抽样的方式,将数据集划分为训练集、验证集、测试集,这三个集合不能有交集,常见的比例是8:1:1,当然比例是人为的。从这个角度来看,三个集合都是同分布的。

    如果是做比赛,官方只提供了一个标注的数据集(作为训练集)以及一个没有标注的测试集,那么我们做模型的时候,通常会人工从训练集中划分一个验证集出来。这时候我们通常不再划分一个测试集,可能的原因有两个:1、比赛方基本都很抠,训练集的样本本来就少;2、我们也没法保证要提交的测试集是否跟训练集完全同分布,因此再划分一个跟训练集同分布的测试集就没多大意义了。

    样本少的时候,上面的划分就不合适了。常用的是留少部分做测试集。然后对其余N个样本采用K折交叉验证法。就是将样本打乱,然后均匀分成K份,轮流选择其中K-1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。特别的K取N,就是留一法(leave one out)。

    II. 参数

    有了模型后,训练集就是用来训练参数的,说准确点,一般是用来梯度下降的。而验证集基本是在每个epoch完成后,用来测试一下当前模型的准确率。因为验证集跟训练集没有交集,因此这个准确率是可靠的。那么为啥还需要一个测试集呢?

    这就需要区分一下模型的各种参数了。事实上,对于一个模型来说,其参数可以分为普通参数和超参数。在不引入强化学习的前提下,那么普通参数就是可以被梯度下降所更新的,也就是训练集所更新的参数。另外,还有超参数的概念,比如网络层数、网络节点数、迭代次数、学习率等等,这些参数不在梯度下降的更新范围内。尽管现在已经有一些算法可以用来搜索模型的超参数,但多数情况下我们还是自己人工根据验证集来调。

    III. 所以

    那也就是说,从狭义来讲,验证集没有参与梯度下降的过程,也就是说是没有经过训练的;但从广义上来看,验证集却参与了一个“人工调参”的过程,我们根据验证集的结果调节了迭代数、调节了学习率等等,使得结果在验证集上最优。因此,我们也可以认为,验证集也参与了训练。

    那么就很明显了,我们还需要一个完全没有经过训练的集合,那就是测试集,我们既不用测试集梯度下降,也不用它来控制超参数,只是在模型最终训练完成后,用来测试一下最后准确率。

    https://developers.google.cn/machine-learning/crash-course/

    苦于无法入门的同学,这套教程可以帮你解决以下问题:

    - 机器学习与传统编程有何不同?

    - 什么是损失,如何衡量损失?

    - 梯度下降法的运作方式是怎样的?

    - 如何确定我的模型是否有效?

    - 怎样为机器学习提供我的数据?

    - 如何构建深度神经网络?

    以及,包含了 40 多项练习 25 节课程 总计 15 小时Google 研究人员的讲座 实际案例研究 以互动方式直观呈现算法的实际运用

    图片标注主要是用来创建自己的数据集,方便进行深度学习训练。一款十分好用的图片标注工具LabelImg

    谷歌收购数据公司Kaggle:加码人工智能

    谷歌在人工智能方面一直是处于业界领先的位置,无论是AlphaGo还是神经网络系统,都受到了人们的广泛关注。近日谷歌收购了一家名为Kaggle的数据公司,这家公司在大数据等领域非常有心得,谷歌也希望借此来进一步提升他们的机器学习和人工智能。

    Kaggle是由联合创始人、首席执行官安东尼·高德布卢姆(Anthony Goldbloom)2010年在墨尔本创立的,主要为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。该平台已经吸引了80万名数据科学家的关注,这些用户资源或许正是吸引谷歌的主要因素。

    相关文章

      网友评论

          本文标题:第一个

          本文链接:https://www.haomeiwen.com/subject/fawumftx.html