算法

让人工智能摆脱偏见

作者:Francisco Socal,Imagination Technologies

人们都曾看过电影里机器控制了世界而人类被毁灭的场景。好在这些电影只是娱乐性的,现实世界是不会发生的。然而,一个更应该关注的问题是:算法偏见。

所谓“算法偏见”是指在看似没有恶意的程序设计中带着设计者的偏见,或者所采用的数据是带有偏见的。结果当然是带来了各种问题,例如,被曲解的谷歌搜索,合格的考生无法进入医学院就学,聊天机器人在推特上散布种族主义和性别歧视信息等。

基于GPU的算法并行化

GPU计算的目的即是计算加速。相比于CPU,其具有以下三个方面的优势:

• 并行度高:GPU的Core数远远多于CPU,从而GPU的任务并发度也远高于CPU;

• 内存带宽高:GPU的内存系统带宽几十倍高于CPU;

• 运行速度快:GPU在浮点运算速度上较之CPU也具有绝对优势。

另一方面,GPU采用的SIMD(Single Instruction Multiple Data)架构,这决定了其对执行的任务具有特定的要求(如不适合判断逻辑过多的任务,数据大小不可控的任务等)。而且,应用程序在GPU上也需有特定的实现,包括算法的GPU并行化,程序的定制等。因此,针对GPU并行处理的研究成为一大研究热点。

现有GPU采用SIMD方式执行,即所有线程块在同一时刻执行相同的程序,从而若这些线程块处理的数据量相差大,或计算量分布不均,便会带来线程块的负载不均,进而影响整个任务执行效率。这类问题实则常见的Skew Handling或Load Inbalance问题。

应用算法的GPU并行化之所以成为一个研究问题而不仅仅是工程问题,这其中的主要的问题在于

1)GPU不支持内存的动态分配,从而对于输出结果大小不确定的任务是一个极大的挑战;

2)GPU的SIMD特性使得很多算法不易很好实现,即如何充分利用GPU线程块的并行度;

方向:如何提高深度学习的性能?

性能提高分为四个部分: 1. 通过数据提升性能 、2. 通过算法提升性能 、3. 通过算法调参提升性能 、4. 通过嵌套模型提升性能。

通常来讲,随着列表自上而下,性能的提升也将变小。例如,对问题进行新的架构或者获取更多的数据,通常比调整最优算法的参数能带来更好的效果。虽然并不总是这样,但是通常来讲是的。

1. 通过数据提升性能

对你的训练数据和问题定义进行适当改变,你能得到很大的性能提升。或许是最大的性能提升。

1) 获取更多数据

你能获取更多训练数据吗?

你的模型的质量通常受到你的训练数据质量的限制。为了得到最好的模型,你首先应该想办法获得最好的数据。你也想尽可能多的获得那些最好的数据。

有更多的数据,深度学习和其他现代的非线性机器学习技术有更全的学习源,能学得更好,深度学习尤为如此。这也是机器学习对大家充满吸引力的很大一个原因(世界到处都是数据)。

深度学习的57个术语

激活函数(Activation Function)

为了让神经网络能够学习复杂的决策边界(decision boundary),我们在其一些层应用一个非线性激活函数。最常用的函数包括 sigmoid、tanh、ReLU(Rectified Linear Unit 线性修正单元) 以及这些函数的变体。

Adadelta

Adadelta 是一个基于梯度下降的学习算法,可以随时间调整适应每个参数的学习率。它是作为 Adagrad 的改进版提出的,它比超参数(hyperparameter)更敏感而且可能会太过严重地降低学习率。Adadelta 类似于 rmsprop,而且可被用来替代 vanilla SGD。

论文:Adadelta:一种自适应学习率方法(ADADELTA: An Adaptive Learning Rate Method)
技术博客:斯坦福 CS231n:优化算法(http://cs231n.github.io/neural-networks-3/)

神经网络算法的优势与应用

人工神经网络(ANN)以大脑处理机制作为基础,开发用于建立复杂模式和预测问题的算法。

首先了解大脑如何处理信息:
在大脑中,有数亿个神经元细胞,以电信号的形式处理信息。外部信息或者刺激被神经元的树突接收,在神经元细胞体中处理,转化成输出并通过轴突,传递到下一个神经元。下一个神经元可以选择接受它或拒绝它,这取决于信号的强度。

神经网络算法的优势与应用

神经网络算法的优势与应用

现在,让我们尝试了解 ANN 如何工作:

训练神经网络的五大算法:技术原理、内存与速度分析

训练神经网络的算法有成千上万个,最常用的有哪些,哪一个又最好?作者在本文中介绍了常见的五个算法,并从内存和速度上对它们进行对比。最后,他最推荐莱文贝格-马夸特算法。

用于神经网络中执行学习过程的程序被称为训练算法。训练算法有很多,各具不同的特征和性能。

问题界定

神经网络中的学习问题是以损失函数f的最小化界定的。这个函数一般由一个误差项和一个正则项组成。误差项评估神经网络如何拟合数据集,正则项用于通过控制神经网络的有效复杂性来防止过拟合。

损失函数取决于神经网络中的自适应参数(偏差和突触权值)。我们可以简便地把它们组合成单个n维权值向量w。下图表示损失函数f(w)

训练神经网络的五大算法:技术原理、内存与速度分析

如上图所示,点w*是该损失函数的最小值。在任何点A,我们可以计算损失函数的一阶和二阶导数。一阶导数用梯度向量组成,可以写成:

ᐁif(w) = df/dwi (i = 1,...,n)

深度学习时代的目标检测算法综述

作者:Javier Rey

目标检测 VS 其他计算机视觉问题

分类问题

这或许是计算机视觉领域内最著名的问题。它主要指将一张图像归为某种类别。学术界最流行的一类数据集是 ImageNet,由数以百万计已分好类的图像组成,(部分)用于年度 ImageNet 大规模视觉识别挑战比赛(ILSVRC)。近年来,分类模型已经超过了人类的表现,因此该问题基本算是一个已经解决的问题。图像分类领域有许多挑战,但是也有许多文章介绍已经解决了的,以及未解决的挑战。

深度学习时代的目标检测算法综述
分类样例

Google科学家研究的新算法,可以自动烘焙美味饼干

Google的计算机科学家创建了一个AI来烘焙美味的饼干。这个领先的机器学习算法,被称为Google Vizier。为了测试它,研究人员参考了一种常规的指标:食堂的饼干标准。

这个算法非常强大,但它们还不完全成熟,需要通过有效的方式,手动进行微调。

算法需要详细设置“超参数”:预先设定的适应于手头问题的参数。这不容易,因为机器学习算法是“黑匣子”:即使你已经做到了,你也不能完全确定算法如何获得最佳的结果。一个常见的调整方法为 “梯度下降”:基本上,你需要通过梯度下降优化参数,让算法运行。

Google Vizier通过自动优化机器学习模型的超参数,缩短了繁琐的手动任务。据Google研究人员介绍,该算法已经在整个公司内使用。

他们在本周发布的一篇论文(文末链接)中写道,“ Google研究人员”使用Vizier执行超参数调优研究,并进行了数百万次试验研究…如果没有有效的黑盒优化,该研究项目是不可能的”。

Google Vizier中使用的另一项技术是“迁移学习”,主要是从经验中学习。使用先前研究的数据作为指导,Vizier算法可以为新算法提出最佳超参数。该方法进行了大量研究被证明是最有效的,即使当数据相对较少时也运行良好。

科学家研发独特AI算法:用WiFi监测你是否在做梦

近日,美国科学家研发出了一种分析射频信号的算法,可用于监测用户的睡眠情况,这一发明使用了类似于无线路由器的设备,可监测呼吸的深浅程度,判别用户是否在做梦。

这项研究由麻省理工学院研究人员和美国马萨诸塞州总医院睡眠医学科医务人员共同完成的。对此,麻省理工学院教授Dina Katabi表示:“想像一下,如果你的Wi-Fi路由器知道你什么时候在做梦,并且可以监测你是否有足够的深度睡眠,这对于记忆巩固是非常有必要的。我们希望能开发一种无形的健康传感器,它就存在你的身边,能捕捉你的生理信号和一系列重要的健康指标,却不需要用户以任何方式改变其行为。”

传感器的工作原理是向身体发送低水平的射频信号,然后这些信号会再从人体反射回来。人体的细微运动是通过类似于路由器的射频设备检测出来的,并通过算法进行分析。这种通过人工智能的方式收集的诊断数据和信息是将电极传感器直接连接到一个物体上得到的,并不需要电线。分析这些射频信号可用于监测生命体征,如脉搏和呼吸频率等。

科学家研发独特AI算法:用WiFi监测你是否在做梦

机器学习进入「时尚圈」,利用社交媒体揭秘服饰变化规律

上传到社交媒体上的数百万张照片是我们研究人类自身的丰富资源,但是它们还未被充分利用。机器学习为充分利用这些资源提供了条件。

“试想一下,如果未来的人类学家能够轻易地访问来自各个时代、不同地域的照片,并且拥有分析这些照片的强大工具,那时我们可以解决什么新问题?”这一疑问启发了纽约康奈尔大学的Kevin Matzen、 Kavita Bala 和Noah Snavely。

机器学习进入「时尚圈」,利用社交媒体揭秘服饰变化规律

他们的想法是:每天都有数百万张的照片上传到社交媒体上,这 为 了解世界各地的文化、社会、经济因素打开了一扇大门。强大的机器智能 可能会 挖掘出这些数据(照片)背后的价值,以便于我们深入了解 人类 文明 的 发展。

算法揭示了服装款式随时间如何变化

同步内容
--电子创新网--
粤ICP备12070055号