UMBRELLA

未雨绸缪,举重若轻

卷积神经网络(convolutional neural network,CNN)是一类强大的、为处理图像数据而设计的神经网络。基于卷积神经网络架构的模型在计算机视觉领域中已经占主导地位,当今几乎所有的图像识别、目标检测或语义分割相关的学术竞赛和商业应用都以这种方法为基础。

阅读全文 »

层和块

介绍神经网络时,我们关注的是具有单一输出的线性模型。在这里,整个模型只有一个输出。注意,单个神经网络(1)接受一些输入;(2)生成相应的标量输出;(3)具有一组相关参数(parameters),更新这些参数可以优化某目标函数。然后,当考虑具有多个输出的网络时, 我们利用矢量化算法来描述整层神经元。像单个神经元一样,层(1)接受一组输入,(2)生成相应的输出,(3)由一组可调整参数描述。当我们使用softmax回归时,一个单层本身就是模型。然而,即使我们随后引入了多层感知机,我们仍然可以认为该模型保留了上面所说的基本架构。对于多层感知机而言,整个模型及其组成层都是这种架构。整个模型接受原始输入(特征),生成输出(预测),并包含一些参数(所有组成层的参数集合)。同样,每个单独的层接收输入(由前一层提供),生成输出(到下一层的输入),并且具有一组可调参数,这些参数根据从下一层反向传播的信号进行更新。

阅读全文 »

隐藏层

回想一下softmax回归的模型架构。该模型通过单个仿射变换将我们的输入直接映射到输出,然后进行softmax操作。如果我们的标签通过仿射变换后确实与我们的输入数据相关,那么这种方法确实足够了。但是,仿射变换中的线性是一个很强的假设。例如,线性意味着单调假设:任何特征的增大都会导致模型输出的增大(如果对应的权重为正),或者导致模型输出的减小(如果对应的权重为负)。例如,如果我们试图预测一个人是否会偿还贷款。我们可以认为,在其它条件不变的情况下,收入较高的申请人比收入较低的申请人更有可能偿还贷款。但是,虽然收入与还款概率存在单调性,但是它们不是线性相关的。收入从0增加到5万,可能比从100万增加到105万带来更大的还款可能性。处理这一问题的一种方法是对我们的数据进行预处理,使线性变得更合理,如使用收入的对数作为我们的特征。然而我们可以很容易找出违反单调性的例子。

阅读全文 »

softmax 回归

通常,机器学习实践者用“分类”这个词来描述两个有微妙差别的问题:1.我们只对样本的“硬性”类别感兴趣,即属于哪个类别;2.我们希望得到“软性”类别,即得到属于每个类别的概率。这两者的界限往往很模糊。其中的一个原因是:即使我们只关心硬类别,我们仍然使用软类别的模型。我们从一个图像分类问题。假设每次输入是一个的灰度图像,我们可以用一个标量来表示每个像素值,每个图相对应四个特征。假设每个图像属于类别“猫”“鸡”和“狗”中的一个。接下来,我们要选择如何表示标签。我们有两个明显的选择:最直接的想法是选择,其中整数分别代表{狗,猫,鸡}。这是在计算机上存储此类信息的有效方法。如果类别间有一些自然顺序,比如我们试图预测{婴儿,儿童,青少年,青年人,中年人,老年人},那么将这个问题转换为回归问题,并且保留这些格式是有意义的。但是一般的分类问题并不与类别之间的自然顺序有关。幸运的是,统计学家很早以前就发明了一种表示分类数据的简单方法:读热编码(one-hot encoding)。读热编码是一个向量,它的分量和类别一样多。类别对应的分量设置为1,其它所有分量设置为0,在我们的例子中,标签将是一个三维向量,其中(1,0,0)对应于猫,(0,1,0)对应于鸡,(0,0,1)对应于狗:

阅读全文 »

一篇论文大体结构包括标题(title),标题之后是作者,然后是论文的摘要(abstract),之后是论文的介绍,就是导言(intro),导言之后可能是你相关工作。比较重要的一部分是你提出的算法(algorithm),你的算法之后,当然你需要证明你算法是很棒的,所以你需要做一些实验(experment)。最后是你的结论(conclusion),绝大部分论文都是采用这样的一个结构。你可以说我们从头到尾按照这样的结构都是可以的,但是这个世界上论文写的那么多。如果你从头读到尾的话,从时间上可能不划算。适合你的文章可能就是那么一小部分。你需要快速的找到适合你的文章,然后对其进行精读。下面给大家介绍一种方法,就是“怎么样花三遍阅读一篇论文”。

阅读全文 »

线性回归

回归(regression)是能为一个或多个自变量与因变量之间关系建模的一类方法。在自然科学和社会科学领域,回归经常用来表示输入和输出之间的关系。在机器学习领域中的大多数任务通常都与预测(prediction)有关。当我们向预测一个数值时,就会涉及到回归问题。常见的例子包括:预测价格(房屋、股票等)、预测住院时间(针对住院病人等)、预测需求(零售销量等)。但不是所有的预测都是回归问题。分类问题的目标是预测数据属于一组类别中的哪一个。

阅读全文 »

数据操作

为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。通常,我们需要做两件重要的事:1.获取数据;2.将数据读入计算机后对其进行处理。如果没有某种方法来存储数据,那么获取数据是没有意义的。首先,我们介绍n维数组,也称为张量(tensor)。使用过PythonNumPy计算包。无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray,在PyTorchTensorFlow中为Tensor)都与Numpyndarray类似。但深度学习框架又比Numpyndarray多一些重要功能:首先,GPU很好地支持加速计算,而NumPy仅支持CPU计算;其次,张量类支持自动微分。这些功能使得张量类更适合深度学习。

阅读全文 »

引言

为了解决各种各样的机器学习问题,深度学习提供了强大的工具。虽然许多深度学习方法都是最近才有重大突破,但使用数据和神经网络编程的核心思想已经研究了几个世纪。事实上,人类长期以来就有分析数据和预测未来结果的愿望,而自然科学大部分都植根于此。例如,伯努利分布是以雅各布•伯努利(1654-1705)命名的。而高斯分布是由卡尔•弗里德里希•高斯(1777-1855)发现的,他发明了最小均方算法,至今仍用于解决从保险计算到医疗诊断的许多问题。这些工具算法催生了自然科学中的一种实验方法—例如,电阻中电流和电压的欧姆定律可以用线性模型完美地描述。

阅读全文 »

什么是 ScanNN?

ScaNN是可扩展最近邻的缩写。在推荐系统的检索阶段,我们需要快速找到给定查询嵌入的最近数据集的嵌入。通常嵌入集对于穷举搜索来说往往太大。因此,需要像ScaNN这样的工具来进行近似邻域搜索。ScaNN2020.06开源。他提供高效的向量相似性搜索,即从海量数据库中快速地匹配和检索相似项。他包括基于树的空间分区、非对称哈希、内涵和倒排索引等实现。由于这些高度优化的算法,ScaNN在大型和中等规模数据库的最近邻搜索方面提供了显著的加速。

阅读全文 »

介绍

深度与交叉网络DCN)旨在有效地学习显式的、有边界的交叉特征,你已经知道大而稀疏的特征空间极难训练。通常我们执行特征工程,包括设计交叉特征,这是非常具有挑战性且效率低下的。虽然在这种情况下可以使用其它神经网络,但这并不是最有效的办法。深度与交叉网络是专门为应对这一挑战而设计的。在深入了解DCN之前,我们首先花一点时间回顾一下,什么是特征交叉?假设我们正在构建一个推荐系统来向客户销售搅拌机,那么我们客户过去的购买历史记录,例如购买的香蕉和购买的烹饪书籍或地理特征都是单一特征。如果一个人同时购买了香蕉和烹饪书籍,那么该客户将更有可能点击推荐的搅拌机。购买的香蕉和购买的烹饪书籍的组合被称为特征交叉,它提供了除单个特征之外附加交互信息。你可以添加更多交叉特征。在真实的推荐系统当中,我们通常拥有大而稀疏的特征空间,因此,在这种情况下识别有效的特征,通常需要执行特征工程或详尽的搜索,这是非常低效的。

阅读全文 »
0%