2017年12月3日星期日

为什么我对MATLAB情有独钟

本文作者 Christopher Madan 喜欢用 MATLAB 编程,尽管他是一个认知心理学家/神经科学家,编程对其来讲更多地是一个完成目标的工具。这篇文章的灵感来自 Olivia Guest 的博文《I hate Matlab: How an IDE, a language, and a mentality harm》,Olivia Guest 称自己不喜欢 MATLAB 不只是因为它是一款闭源、付费的软件,更主要的原因是 MATLAB 的有限资源限制了学生和科学家的技能。不过 Christopher Madan 却站在支持 Matlab 的角度,毕竟作者的绝大部分编程通过 MATLAB 完成,并且之前出版过针对行为研究者的 MATLAB 入门书籍(http://ift.tt/2ASBoUH



MATLAB 的图形用户界面(GUI)具有很多功能。这对了解工作环境的多个变量、在当前工作环境中拥有代码编辑器窗口很有用处。在 MATLAB 的 GUI 中,你还可以在电子表格式的编辑器中编辑变量。尽管该特征就是如此,但是我同样认为用这种方式编辑变量是一种坏习惯。当然可以这样辩解:「如果那样的话,这个特征就不会有了!」可能吧,不过我仍然认为学习在 MATLAB 中编程需要一些指导(最好是有一个经验丰富的同事,或者至少有在线课程或书籍),只依赖 MATLAB 的特征进行技巧学习是不公平的。我教 MATLAB 的时候,不使用任何 GUI 特征进行变量编辑,不使用绘图工具。原因在于即使它具备这些特征,我们也未必就要使用它。不过特征多一些当然比少的好。


我每周使用 MATLAB 10-20 个小时(平均),但是我还使用很多其他编程语言,包括 Python。你需要重点考虑你想用某种语言做什么。对于认知神经科学研究而言,MATLAB 非常有用,因为它具备 SPM(用于 fMRI)、 EEGLAB(用于 EEG)等工具箱。没有太多编程能力也可以使用这些工具箱,不过熟练使用 MATLAB 可以帮助你深入了解情况,对工具箱的作用、如何调整代码获取一些内部变量有更好的了解。


在分析行为数据时,MATLAB 也很有用,因为它本身就很方便交互使用。必须承认,这可能导致面条式代码(spaghetti code),不过正因如此,接受编写代码文档和结构的训练对构建可复现分析流程非常重要。在使用 MATLAB 之前,我使用的语言是 Python,不过我厌倦了在提交代码至脚本和功能之前无法积极处理代码、无法「自由地」写代码。Python 由志愿者开发,而 Matlab 由公司开发,因此有更全面的途径实现功能开发(如整合性的绘图功能,而不是先使用 matplotlib 再使用 seaborn)。MATLAB 内部的工具箱内还具备更多一致性,因为公司在管理不同团队的开发活动。


在对比不同编程语言的时候,无疑它们各有独特优势。我认为 MATLAB 擅长提供灵活的工作空间——比如,通常 MATLAB 并不允许在同一文件中有多个外部可访问的函数,但是这有简单的解决对策,可在一分钟内搜索到需要的函数。展开来讲,一个重要的问题是:认知心理学家/神经科学研究者应该具备多少编程技能?在我看来,他们不应该在电子表格程序中进行分析,但我也不认为他们应该具备开发分析工具箱的技能。


我喜欢使用 MATLAB 的部分原因是发现它的语法比 Python 或 R 更加直观。不过也不会受到它的限制,对其他采用类似语法的语言我也很感兴趣。


结语


本文受 Olivia 博文的启发而写,但并非直接回应。Olivia 文中的一些主题本文没有涉及,比如 MATLAB 没有一个正式指定的语法,并可在新版中改变语言——也许我忽略了这一问题是因为我不是正式的编程人员。尽管 Matlab 是封闭的,但很多内部代码是可见的,因此我不认为使用 MATLAB 是「不道德」的行为。


原文链接:http://ift.tt/2zZV4Gm

]]> 原文: http://ift.tt/2AT0D9E
RSS Feed

机器知心

IFTTT

如何用深度学习处理结构化数据?

这篇博客主要关注的是深度学习领域一个并不非常广为人知的应用领域:结构化数据。本文作者为旧金山大学(USF)在读研究生 Kerem Turgutlu。

 

使用深度学习方法按照本文所介绍的步骤处理结构化数据有这样的好处:

 

  • 无需领域知识
  • 表现优良


在机器学习/深度学习或任何类型的预测建模任务中,都是先有数据然后再做算法/方法。这也是某些机器学习方法在解决某些特定任务之前需要做大量特征工程的主要原因,这些特定任务包括图像分类、NLP 和许多其它「非常规的」数据的处理——这些数据不能直接送入 logistic 回归模型或随机森林模型进行处理。相反,深度学习无需任何繁杂和耗时的特征工程也能在这些类型的任务取得良好的表现。大多数时候,这些特征需要领域知识、创造力和大量的试错。当然,领域专业知识和精巧的特征工程仍然非常有价值,但这篇文章将提及的技术足以让你在没有任何领域知识的前提下向 Kaggle 竞赛的前三名看齐,参阅:http://ift.tt/1JpHLOH


图 1:一只萌狗和一只怒猫

 

由于特征生成(比如 CNN 的卷积层)的本质和能力很复杂,所以深度学习在各种各样的图像、文本和音频数据问题上得到了广泛的应用。这些问题无疑对人工智能的发展非常重要,而且这一领域的顶级研究者每年都在分类猫、狗和船等任务上你追我赶,每年的成绩也都优于前一年。但在实际行业应用方面我们却很少看到这种情况。这是为什么呢?公司企业的数据库涉及到结构化数据,这些才是塑造了我们的日常生活的领域。

 

首先,让我们先定义一下结构化数据。在结构化数据中,你可以将行看作是收集到的数据点或观察,将列看作是表示每个观察的单个属性的字段。比如说,来自在线零售商店的数据有表示客户交易事件的列和包含所买商品、数量、价格、时间戳等信息的列。

 

下面我们给出了一些卖家数据,行表示每个独立的销售事件,列中给出了这些销售事件的信息。


图 2:结构化数据的 pandas dataframe 示例

 

接下来我们谈谈如何将神经网络用于结构化数据任务。实际上,在理论层面上,创建带有任何所需架构的全连接网络都很简单,然后使用「列」作为输入即可。在损失函数经历过一些点积和反向传播之后,我们将得到一个训练好的网络,然后就可以进行预测了。

 

尽管看起来非常简单直接,但在处理结构化数据时,人们往往更偏爱基于树的方法,而不是神经网络。原因为何?这可以从算法的角度理解——算法究竟是如何对待和处理我们的数据的。

 

人们对结构化数据和非结构化数据的处理方式是不同的。非结构化数据虽然是「非常规的」,但我们通常处理的是单位量的单个实体,比如像素、体素、音频频率、雷达反向散射、传感器测量结果等等。而对于结构化数据,我们往往需要处理多种不同的数据类型;这些数据类型分为两大类:数值数据和类别数据。类别数据需要在训练之前进行预处理,因为包含神经网络在内的大多数算法都还不能直接处理它们。

 

编码变量有很多可选的方法,比如标签/数值编码和 one-hot 编码。但在内存方面和类别层次的真实表示方面,这些技术还存在问题。内存方面的问题可能更为显著,我们通过一个例子来说明一下。

 

假设我们列中的信息是一个星期中的某一天。如果我们使用 one-hot 或任意标签编码这个变量,那么我们就要假设各个层次之间都分别有相等和任意的距离/差别。


图 3:one-hot 编码和标签编码

 

但这两种方法都假设每两天之间的差别是相等的,但我们很明显知道实际上并不是这样,我们的算法也应该知道这一点!

 

「神经网络的连续性本质限制了它们在类别变量上的应用。因此,用整型数表示类别变量然后就直接应用神经网络,不能得到好的结果。」[1]

 

基于树的算法不需要假设类别变量是连续的,因为它们可以按需要进行分支来找到各个状态,但神经网络不是这样的。实体嵌入(entity embedding)可以帮助解决这个问题。实体嵌入可用于将离散值映射到多维空间中,其中具有相似函数输出的值彼此靠得更近。比如说,如果你要为一个销售问题将各个省份嵌入到国家这个空间中,那么相似省份的销售就会在这个投射的空间相距更近。

 

因为我们不想在我们的类别变量的层次上做任何假设,所以我们将在欧几里得空间中学习到每个类别的更好表示。这个表示很简单,就等于 one-hot 编码与可学习的权重的点积。

 

嵌入在 NLP 领域有非常广泛的应用,其中每个词都可表示为一个向量。Glove 和 word2vec 是其中两种著名的嵌入方法。我们可以从图 4 看到嵌入的强大之处 [2]。只要这些向量符合你的目标,你随时可以下载和使用它们;这实际上是一种表示它们所包含的信息的好方法。


图 4:来自 TensorFlow 教程的 word2vec

 

尽管嵌入可以在不同的语境中使用(不管是监督式方法还是无监督式方法),但我们的主要目标是了解如何为类别变量执行这种映射。

 

实体嵌入

 

尽管人们对「实体嵌入」有不同的说法,但它们与我们在词嵌入上看到的用例并没有太大的差异。毕竟,我们只关心我们的分组数据有更高维度的向量表示;这些数据可能是词、每星期的天数、国家等等。这种从词嵌入到元数据嵌入(在我们情况中是类别)的转换使用让 Yoshua Bengio 等人使用一种简单的自动方法就赢得了 2015 年的一场 Kaggle 竞赛——通常这样做是无法赢得比赛的。参阅:http://ift.tt/1GbRkLg

 

「为了处理由客户 ID、出租车 ID、日期和时间信息组成的离散的元数据,我们使用该模型为这些信息中的每种信息联合学习了嵌入。这种方法的灵感来自于自然语言建模方法 [2],其中每个词都映射到了一个固定大小的向量空间(这种向量被称为词嵌入)。[3]


图 5:使用 t-SNE 2D 投影得到的出租车元数据嵌入可视化

 

我们将一步步探索如何在神经网络中学习这些特征。定义一个全连接的神经网络,然后将数值变量和类别变量分开处理。

 

对于每个类别变量:

 

1. 初始化一个随机的嵌入矩阵 mxD:


m:类别变量的不同层次(星期一、星期二……)的数量

D:用于表示的所需的维度,这是一个可以取值 1 到 m-1 的超参数(取 1 就是标签编码,取 m 就是 one-hot 编码)


图 6:嵌入矩阵

 

2. 然后,对于神经网络中的每一次前向通过,我们都在该嵌入矩阵中查询一次给定的标签(比如为「dow」查询星期一),这会得到一个 1xD 的向量。


图 7:查找后的嵌入向量


3. 将这个 1×D 的向量附加到我们的输入向量(数值向量)上。你可以把这个过程看作是矩阵增强,其中我们为每一个类别都增加一个嵌入向量,这是通过为每一特定行执行查找而得到的。


图 8:添加了嵌入向量后

 

4. 在执行反向传播的同时,我们也以梯度的方式来更新这些嵌入向量,以最小化我们的损失函数。

 

输入一般不会更新,但对嵌入矩阵而言有一种特殊情况,其中我们允许我们的梯度反向流回这些映射的特征,从而优化它们。

 

我们可以将其看作是一个让类别嵌入在每次迭代后都能进行更好的表示的过程。


注意:根据经验,应该保留没有非常高的基数的类别。因为如果一个变量的某个特定层次占到了 90% 的观察,那么它就是一个没有很好的预测价值的变量,我们可能最好还是避开它。

好消息

 

通过在我们的嵌入向量中执行查找并允许 requires_grad=True 并且学习它们,我们可以很好地在我们最喜欢的框架(最好是动态框架)中实现上面提到的架构。但 Fast.ai 已经实现了所有这些步骤并且还做了更多。除了使结构化的深度学习更简单,这个库还提供了很多当前最先进的功能,比如差异学习率、SGDR、周期性学习率、学习率查找等等。这些都是我们可以利用的功能。你可以在以下博客进一步了解这些主题:


http://ift.tt/2AWuWZF


http://ift.tt/2icbdNM


http://ift.tt/2AbP2PT


使用 Fast.ai 实现

 

在这一部分,我们将介绍如何实现上述步骤并构建一个能更有效处理结构化数据的神经网络。

 

为此我们要看看一个热门的 Kaggle 竞赛:http://ift.tt/2iHw4w5

 

数据:


约 140 万行


  • item_condition_id:商品的情况(基数:5)
  • category_name:类别名称(基数:1287)
  • brand_name:品牌名称(基数:4809)
  • shipping:价格中是否包含运费(基数:2)

 

重要说明:因为我已经找到了最好的模型参数,所以我不会在这个例子包含验证集,但是你应该使用验证集来调整超参数。


第 1 步:

 

将缺失值作为一个层次加上去,因为缺失本身也是一个重要信息。


  1. train.category_name = train.category_name.fillna('missing').astype('category')

  2. train.brand_name = train.brand_name.fillna('missing').astype('category')

  3. train.item_condition_id = train.item_condition_id.astype('category')

  4. test.category_name = test.category_name.fillna('missing').astype('category')

  5. test.brand_name = test.brand_name.fillna('missing').astype('category')

  6. test.item_condition_id = test.item_condition_id.astype('category')


第 2 步:

 

预处理数据,对数值列进行等比例的缩放调整,因为神经网络喜欢归一化的数据。如果你不缩放你的数据,网络就可能格外重点关注一个特征,因为这不过都是点积和梯度。如果我们根据训练统计对训练数据和测试数据都进行缩放,效果会更好,但这应该影响不大。这就像是把每个像素的值都除以 255,一样的道理。

 

因为我们希望相同的层次有相同的编码,所以我将训练数据和测试数据结合了起来。


  1. combined_x, combined_y, nas, _ = proc_df(combined, 'price', do_scale=True)


第 3 步:

 

创建模型数据对象。路径是 Fast.ai 存储模型和激活的地方。


  1. path = '../data/'

  2. md = ColumnarModelData.from_data_frame(path, test_idx, combined_x, combined_y, cat_flds=cats, bs= 128


第 4 步:

 

确定 D(嵌入的维度),cat_sz 是每个类别列的元组 (col_name, cardinality+1) 的列表。


  1. # We said that D (dimension of embedding) is an hyperparameter

  2. # But here is Jeremy Howard's rule of thumb

  3. emb_szs = [(c, min(50, (c+1)//2)) for _,c in cat_sz]

  4. # [(6, 3), (1312, 50), (5291, 50), (3, 2)]


第 5 步:

 

创建一个 learner,这是 Fast.ai 库的核心对象。


  1. params: embedding sizes, number of numerical cols, embedding dropout, output, layer sizes, layer dropouts

  2. m = md.get_learner(emb_szs, len(combined_x.columns)-len(cats),

  3.                   0.04, 1, [1000,500], [0.001,0.01], y_range=y_range)


第 6 步:

 

这部分在我前面提及的其它文章中有更加详细的解释。

 

要充分利用 Fast.ai 的优势。

 

在损失开始增大之前的某个时候,我们要选择我们的学习率……


  1. # find best lr

  2. m.lr_find()

  3. # find best lr

  4. m.sched.plot()


图 9:学习率与损失图


拟合

 

我们可以看到,仅仅过了 3 epoch,就得到:


  1. lr = 0.0001

  2. m.fit(lr, 3, metrics=[lrmse])



更多拟合


  1. m.fit(lr, 3, metrics=[lrmse], cycle_len=1)



还有更多……


  1. m.fit(lr, 2, metrics=[lrmse], cycle_len=1)



所以,在短短几分钟之内,无需进一步的其它操作,这些简单却有效的步骤就能让你进入大约前 10% 的位置。如果你真的有更高的目标,我建议你使用 item_description 列并将其作为多个类别变量使用。然后把工作交给实体嵌入完成,当然不要忘记堆叠和组合。


参考文献


[1] Cheng Guo, Felix Berkhahn (2016, April, 22) Entity Embeddings of Categorical Variables. Retrieved from http://ift.tt/2yyNUV4.

[2] TensorFlow Tutorials: http://ift.tt/2ljuheX

[3] Yoshua Bengio, et al. Artificial Neural Networks Applied to Taxi Destination Prediction. Retrieved from http://ift.tt/2ff53yv.



原文链接:http://ift.tt/2iPSfgm

]]> 原文: http://ift.tt/2iHwbaZ
RSS Feed

机器知心

IFTTT

清华大学段路明组提出生成模型的量子算法

近日,清华大学段路明组提出一种生成模型的量子算法。在证明因子图为量子网络的特例的基础上,继而证明了量子算法在重要应用领域中具备超越任何经典算法的表示能力,可以实现指数级提升,该研究为量子机器学习开辟了新的研究方向。


论文:An efficient quantum algorithm for generative machine learning



论文地址:http://ift.tt/2jKrvNR


量子计算领域的一个核心任务是找到量子计算机可以提供超越传统计算机实现指数级加速的应用场景。机器学习是一个量子计算机可以在其多个应用层面提供大幅加速的重要领域。针对机器学习的判别式模型,基于线性代数问题的有效求解,人们已发现了多种量子算法,在假设能从量子随机访问存储器中获取有效输入的情况下可实现运算的指数级加速。


在机器学习中,生成式模型则代表了另一个大类,其被广泛用于监督学习和非监督学习。此文中,我们首先提出了量子生成式模型(Quantum Generative Model, QGM)的概念,模型通过测量一系列处于多体纠缠态下的可观测算符来表示用于描述数据间关系的概率分布。生成式模型最显著的特征是其表征能力和从数据中学习模型参数的能力,以及对任意变量之间的复杂关系进行推断的能力。对于表征能力,我们证明我们提出的 QGM 可以高效地表示任何因子图(factor graph),其中包括了所有实际应用的经典生成式模型,即经典生成式模型只是 QGM 的特例。此外,通过证明至少存在一些特定的概率分布,可以被 QGM 表示,但不能被任何使用多项式量级的变量的因子图进行表示,我们表明 QGM 相对于因子图具备指数量级的表征能力(前提是计算复杂度理论中一个被广泛接受的猜想成立的话,即多项式分层作为 P vs NP 问题的泛化,是不塌缩的)。


具备表征能力和泛化能力只是量子生成式模型(QGM)的一个方面,另一方面我们需要可用于训练和推断的有效算法。我们提出了一种通用的学习算法,该算法利用对多体纠缠量子态构建的母哈密顿系统(parent Hamiltonian)进行量子相位估计(quantum phase estimation)进行学习。虽然不能期待这种量子算法在所有情况下都能在多项式时间内有效地实现,我们证明了至少存在一些我们的量子算法相对于所有经典算法有指数量级的加速效果的场景。(因为如果可以证明我们的量子算法在所有情况下都可行,那就意味着量子计算机能高效解决所有 NP 问题,这显然不太可能)同时这个结论依赖于量子计算机不能被经典计算机高效地模拟这个现在广为接受的假设。


我们算法中的指数加速效果可以直观地理解为:机器学习生成式模型的目的是通过寻找潜在的概率分布,对自然界中任意的数据生成过程进行建模。由于自然界是受量子力学定律支配的,所以用经典生成式模型中的概率分布对现实世界中的数据进行建模,是很有局限性的。然而,在我们的量子生成式模型中,我们使用一个多体纠缠量子态的概率幅对数据中的相互关系进行参数化。也正是因为由于量子概率幅的相干性会产生比经典概率模型复杂得多的现象,我们的量子生成式模型也许的确能在特定情况下取得显著的性能提升。


图 1:经典和量子生成模型。a,因子图(factor graph)图示;b,张量网络状态(tensor network state)图示;c,量子生成模型(quantum generative model)定义。


图 2:通过量子生成模型可以有效表示因子图。


我们的 QGM 用图态 |G> 表示,由 m 个量子比特与图 G(graph G)组成。我们引入下面的变换:



其中 M_i 表示应用在量子比特 i 的 Hilbert 空间上的可逆(通常是非么正的)2×2 矩阵。从图 G 的 m 个顶点,我们选择一个 n 个量子比特的子集作为可见的单元,并在计算基态 {| 0>;| 1>} 上计算该子集。

从 n 个二元变量 {x_i,i = 1,2, ...,n} 的概率分布 Q({x_i})中得到计算结果样本(其他 m×n 个隐藏的量子比特只用来给出低密度矩阵)。给定图 G 和可见顶点的子集,概率分布 Q({x_i})定义了由矩阵 Mi 中的参数有效参数化的 QGM。


状态| Q>可以写成一个特定的张量网络状态(见图 1)。我们用这种形式来表示我们的模型,原因有二点:首先,概率分布 Q({x_i})需要具备足以包含所有因子图的泛化能力; 第二,如果状态| Q>采取特定的形式,这个模型中的参数可以方便地通过量子算法在数据集上进行训练。


现在我们证明任何因子图都可以看成是 QGM 的一个特例,其定理如下:


定理 1: 上面定义的 QGM 可以任意高精度地有效表示任何常数度(degree,即节点连接的边的数量)的因子图的概率分布。


定理 2:如果计算复杂性理论中关于多项式分成的泛化假设不塌缩,那么存在可以被 QGM 高效表示但不能被任何来自由经典生成模型简化后的因子图的条件概率有效甚至近似地表示的概率分布。


图 S1:因子图和 QGM 的参数空间。a,两种模型都有多项式量级的参数的一种情况。在这种情况下,因子图不能代表 QGM 中的一些分布(如蓝色圆圈所示处)。b,为了表示 QGM 中的蓝色圆圈的分布,因子图必须包含指数级的参数。在这种情况下,参数空间将膨胀到一个非常大的规模。


图 3:关于 QGM 的训练算法示意图。


a,QGM 的训练和推断过程被简化到在|Q(z)>状态下对某些特定操作的测量。因此量子算法的关键步骤是获取状态|Q(z)>,具体通过针对已构建的母哈密顿系统进行递归的量子相位估计的方法制备。


由指定值组成的集合 z 中的变量被称为条件变量,而其他标记二元物理索引的变量则被称为无条件变量。我们将变量分组,使得每个组只包含一个无条件变量和一些通过少量固定数量的边连接的不同的组(表示虚拟索引或隐藏变量)。然后每个组使用一个物理索引(用 p 表示)和少量固定数量的虚拟索引(在图中用 i,j,k 表示)定义一个张量。


b,|Q(z)>的张量网络表示,其中为 a 中每个指定的组定义一个局部张量。


c,|Q(t)>的张量网络表示,其中|Q(t)>是从|Q(z)>简化的一系列状态。每一次简化会移出一个局部张量。移出的局部张量用未填充的圆圈表示,每个圆圈的物理索引设置为 0. 对于剩余张量网络和移出张量之间的边,我们将相应的虚拟索引设置为 0(由未填充的圆圈表示)。


d,母哈密顿量(parent Hamiltonian)的构建。该图显示了如何在母哈密顿算子中构造一个项,该项对应于一组相邻的局部张量,例如 c 中的虚线框中的那些。在压缩组内所有虚拟指标之后,我们得到一个张量 L_pqr,ij,其定义了从虚拟指标 i,j 到物理指标 p,q,r 的线性映射 L. 由于指标 i,j 取所有可能的值,该映射 L 的范围跨越物理指标 p,q,r 的希尔伯特空间 H_p,q,r 中的子空间范围(L)。该子空间在 H_p,q,r 内部有用 comp(L)表示的互补的正交子空间。


投影到子空间 comp(L),然后在母哈密顿系统中定义一个项,由此定义|Q_t>位于该投影的核空间中。我们用一组相邻的张量构造每个局部项。每个局部张量可以涉及几个哈密顿量项(如虚线框和虚线框中的 c 所示),因此一些相邻组具有非空重叠,并且产生一般不交换的项。通过这种方法,可以构造母哈密顿系统,用其基态来定义状态|Q_t>。


e,在母哈密顿系统中使用的量子相位估计方法从|Q_t-1>到|Q_t>的演化过程中的状态的示意图。|Q_t-1> *,|Q_t> *分别表示在|Q_t-1>和|Q_t>所跨越的二维子空间内正交于|Q_t-1>,|Q_t>的状态。|Q_t>和|Q_t-1>之间的角度由重叠部分η_t= | | ^ 2 确定。


f,通过量子相位估计算法的递归应用得到的状态演化过程。演化过程的每一个分支都是从状态|Q_t-1>开始,在状态|Q_t>结束,其中η_t 和 1-η_t 表示相关输出的概率。


定理 3: 存在计算条件概率和KL 散度的梯度到附加误差 1/poly(n) 的实例,使得(i)我们的算法可以在多项式时间内得到计算结果;(ii)任何经典算法都不能在多项式时间内完成计算,除非经典计算机能够高效地模拟量子计算。


]]> 原文: http://ift.tt/2AKdUR7
RSS Feed

机器知心

IFTTT

NIPS 2017 | 机器之心线上分享:大疆提出高准确率的二值卷积神经网络

11 月初,我们发布了《攻略 | 虽然票早已被抢光,你可以从机器之心关注 NIPS 2017》。在 NIPS 2017 正式开始前,我们将选出数篇优质论文,邀请论文作者来做线上分享,聊聊理论、技术和研究方法。


最新一期的 NIPS 2017 线上分享,机器之心邀请到了大疆创新的林晓帆博士为我们介绍他们的 Spotlight 论文《Towards Accurate Binary Convolutional Neural Network》。


日期:北京时间 12 月 06 日 20:00-21:00



讲者简介:林晓帆,华南理工大学博士,研究方向为机器学习、稀疏与低秩矩阵复原、模型压缩、二值网络。目前就职于大疆创新。


演讲主题:高准确率的二值卷积神经网络


演讲摘要:


我们提出一种新的训练二值卷积神经网络的方案。二值卷积网络是一种权值和激活值在推理阶段只有两种取值(如 {-1, +1})的卷积神经网络。这种网络能显著减少模型存储容量和运行内存要求,并且可以用位操作代替算术操作,提高硬件的运算速度,减小电量损耗。然而,以往把浮点网络转化为二值网络的工作都存在严重的准确率下降的问题。我们提出两个创新点来改善这个情况:第一,用多个二值权值张量的线性组合来近似浮点权值张量;第二,用多个二值激活值张量来减少信息由于二值化带来的损失。根据上述创新,我们设计了 Accurate Binary Convolutional Neural Network (ABC-Net)。在有足够多二值权值和激活值的情况下,ABC-Net 的准确率远比以往的二值网络更接近它们对应的浮点版本,甚至能在 ImageNet 和 forest trail 数据集上达到可以与浮点网络相比较的准确率。


参与方式


线上分享将在「NIPS 2017 机器之心官方学霸群」中进行。加群方式:长按扫描下方二维码,添加「机器之心小助手Ⅱ」,备注暗号:147,由小助手拉大家入群。



线上分享往期回顾



点击这里查看机器之心 NIPS 2017 专题策划并参与其中。


]]> 原文: http://ift.tt/2ifEoPV
RSS Feed

机器知心

IFTTT

百度AI开发者实战营下周在京收官,AI加速器首期学员将在现场入营

百度 AI 开发者 2017 实战营系列活动自 10 月开启以来,短短一个多月走遍祖国南北西东,将免费开放的人工智能送到开发者家门口,手把手教你与人工智能「第一次亲密接触」,受到各地开发者的热烈欢迎和高度认可。12 月 7 日,本次实战营即将在北京举办今年的最后一站活动,除了讲师阵容和现场演示规模空前之外,还将揭晓首期百度 AI 加速器的入围者名单。怎么样,惊不惊喜,期不期待?

 

五大城市,每站都有「爆款」

10 月 19 日,深圳,百度宣布名为「燎原」的 AI 开发者扶植计划,并宣布「AI 加速器」一期报名启动,掀起全场高潮。「燎原计划」将对 AI 领域相关公司输出技术、客户、营销、企业运作和投资支持等多个层面的资源,帮助伙伴成功,共享 AI 未来。北京站,AI 加速器第一期开营仪式即将揭晓。



10 月 26 日,成都,全新上线的机器人视觉解决方案成为全场焦点。它最大的亮点在于:百度机器人视觉是市面上唯一既有导航定位 (SLAM),也有物体识别 (人脸识别、物品识别、OCR 识别) 的机器人视觉 SDK,并且是唯一软硬件都开源的视觉模组。有了这套解决方案,机器人可以更好地「看懂」世界。



11 月 2 日,杭州,百度宣布正式启动人脸硬件合作伙伴招募计划,将面向开发者开放从模型算法、开发组件、场景覆盖到行业应用的全链条能力。该计划旨在为开发者、合作伙伴提供最全面的技术能力、最完善的开发支持,及市场资源和客户渠道,帮助开发者、合作伙伴快速进入 AI 行业。



11 月 23 日,上海,百度宣布大幅调整目前人脸识别商用接口收费模式,在「新套餐」的计费策略下,「饭量不大」的中小企业基本等于可以「终生白吃」。这将大幅降低中小企业日常业务所需成本。



11 月 30 日,广州,百度再次为开发者带来「大礼」。百度在现场详解介绍了语音技术全系列接口,主要分为语音识别、语音合成和语音唤醒三大类应用的多种开放能力,能满足开发者、合作伙伴的不同语音应用及落地需求。



终极收官,北京站与你不见不散


百度 AI 开发者实战营 2017 年度最后一站还将为开发者们揭晓一个惊喜。据介绍,第一期百度 AI 加速器将于 12 月 7 日在北京举办开营仪式,入营的企业需要通过「层层关卡」,才能获得「加速资格」。据了解,本期 AI 加速器入营企业都可谓是「优生优育」,有不少非常好的「苗子」,再经过多轮资料筛选和面试沟通,可以说是既代表了一段时间以来 AI 创业的热门领域,又揭示了 AI 技术发展的未来方向,非常具有参考价值,届时请拭目以待。


值得期待的是,开营后的培训将邀请百度邀请自然语言理解、PaddlePaddle、人脸识别、图像视频分析、语音技术、大数据等方向技术负责人,多位知名 VC 投资人、成功创业家与大家分享技术知识和行业经验,并为入选项目提供深度定制化技术对接、谋求上下游产业资源合作。



除此之外,本次实战营北京站活动,还将设置丰富的互动技术展区,到场开发者可以上手体验百度的多项 AI 技术,并在百度工程师的指导下操作简单的案例。

 

如何?你是不是迫不及待想知道北京站的报名方式?目前,北京站报名目前已启动,报名地址:http://dwz.cn/6Y0Q1a

 

附:百度 AI 开发者实战营·北京站时间地点及议程安排

活动时间:12 月 7 日 13:30-17:00

活动地点:北京泰富酒店(北京市海淀区西土城路 1 号院 1 号楼)

活动议程:

  • 1:30-2:00 签到+AI 技术体验
  • 2:00-2:10 开场致辞
  • 2:10-2:35 百度 AI 开放平台与燎原计划
  • 2:35-2:40 百度 AI 生态伙伴授牌仪式
  • 2:40-2:55 百度 AI 加速器第一期开营仪式
  • 2:55-5:00 百度 AI 技术解析+合作伙伴分享 

点击链接,立即报名



]]> 原文: http://ift.tt/2iHjoFr
RSS Feed

机器知心

IFTTT

LangChain 彻底重写:从开源副业到独角兽,一次“核心迁移”干到 12.5 亿估值 -InfoQ 每周精要No.899期

「每周精要」 NO. 899 2025/10/25 头条 HEADLINE LangChain 彻底重写:从开源副业到独角兽,一次"核心迁移"干到 12.5 亿估值 精选 SELECTED 1000 行代码手搓 OpenAI gpt-oss 推理引...