demi的博客

【译】如何给你的机器学习问题选择正确的算法

随着机器学习浪潮的高涨,越来越多的算法在许多任务中表现得很好。但是我们通常不可能在事先知道哪种算法会是最优的。如果你有无限的时间逐一去尝试每一个算法那就另当别论。接下来的文章我们将依赖从模型选择和超参数调节中得到的知识向你一步一步展示如何来选择最优的算法。

原文地址:http://www.askaswiss.com/2017/02/how-to-choose-right-algorithm-for-your-...

Step 1: 基本知识

在深入讨论之前,我们应当确保已经疏通了基本的知识点。首先,我们应该知道机器学习主要有三大分类:监督学习、无监督学习和强化学习。

简单易懂的讲解深度学习(入门系列之六)

“损失函数减肥用,神经网络调权重”

在上一讲中,由于感知机不能解决“异或”问题,明斯基并无恶意却把AI冷藏了二十载。但是解决“异或”问题,其实就是能否解决非线性可分问题。如何来解决这个问题呢???

简单总结,其就是用更加复杂网络(利用多层前馈网络——经典的全连接前馈神经网络与BP)。接下来,我们将详细讨论该问题。

6.1 复杂网络解决“异或”问题

我们知道了深度学习是一个包括很多隐含层的复杂网络。感知机之所以当初无法解决“非线性可分”问题,是因为相比于深度学习这个复杂网络,感知机太过于简单”。

如上所讲,想解决“异或”问题,就需要使用多层网络。这是因为,多层网络可以学习更高层语义的特征,其特征表达能力更强。因此,我们在输入层和输出层之间,添加一层神经元,将其称之为隐含层(“隐层”)。于是隐层和输出层中的神经元都有激活函数。

假设各个神经元的阈值均为0.5,权值如图6-1所示,就可实现“异或”功能。

汽车高级驾驶辅助系统ADAS全盘点

相比目前还无法大规模应用的无人驾驶,高级辅助驾驶系统是一种把汽车变的更智能的实用技术。目前的车辆都带有驾驶辅助系统,广泛应用的倒车雷达,比较高端的远程召唤,都属于辅助驾驶。

随着造车新势力的崛起,互联网公司的介入,越来越多的高科技技术应用到了汽车上。ADAS作为汽车智能化的典型功能,备受关注。

01 自适应巡航控制系统 Adaptive Cruise Control(ACC)

汽车高级驾驶辅助系统ADAS全盘点

自适应巡航控制系统是一种智能化的自动控制系统,它是在早已存在的巡航控制技术的基础上发展而来的。

ACC的原理并不复杂。首先设置一个跟车距离,随后通过长距离毫米波雷达实时监测前方的汽车,通过对发动机和制动器的控制,使前车与自车始终保持在设定的距离。这样驾驶员就可以解放双脚。

GPU Raycasting的两种实现方法

Raycasting的核心是从每一个屏幕像素处发射一条光纤,然后让其穿过整个体数据。基于GPU的Raycasting可以独立,并行地计算每条光线,从而能大大提高速度,实现实时绘制效果。绘制时的过程一般是绘制一个长方体,并且以体数据作为三维纹理。

根据光线的方向和终点的确定方法的不同,Raycasting有两种实现:

GPU Raycasting的两种实现方法

1,基于光线起点和相机位置。将相机位置由世界坐标通过模型视图投影矩阵反变换到长方体的局部坐标空间。每个fragment的坐标作为光线的起点,由变换后的相机位置与光线起点确定光线的方向,在沿着光线方向从起点前进时,每到达一个新的点,判断其是否在长方体内,如果不在,则结束这条光线。

OpenGL中的数据——Buffer

OpenGL中主要包括了两种数据——Buffer和Texture。

Buffer用于储存线性数无类型据块,可以看成普通的内存块,而Texture则用于储存多维数据,一般储存图像或者其他数据。

Buffer

OpenGL中有很多绑定点,Buffer绑定在绑定点使用。

使用glGenBuffers来生成一个Buffer的id。
使用glBindBuffer来绑定一个Buffer。
使用glBufferData来为Buffer分配内存。如果想要改变Buffer中已经初始化的数据,那么可以使用glBufferSubData。
如果想要从Buffer中拷贝或者写入数据,glMapBuffer会返回一个这些数据的指针,可以使用memcpy进行数据拷贝写入等等操作,使用完成后使用glUnmapBuffer来解除。

机器学习算法中的过拟合与欠拟合

在机器学习表现不佳的原因要么是过度拟合或欠拟合数据。

机器学习中的逼近目标函数过程

监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y).

Y=f(X)Y=f(X)

这种特性描述可以用于定义分类和预测问题和机器学习算法的领域。

从训练数据中学习目标函数的过程中,我们必须考虑的问题是模型在预测新数据时的泛化性能。泛化好坏是很重要的,因为我们收集到的数据只是样本,其带有噪音并且是不完全的。

机器学习中的泛化

在In机器学习中,我们描述从训练数据学习目标函数的学习过程为归纳性的学习。

归纳与特别的样本中学习到通用的概念有关,而这就是监督式机器学习致力于解决的问题。这与推演不同,其主要是另一种解决问题和寻求从通常的规则中找寻特别的内容。

泛化即是,机器学习模型学习到的概念在它处于学习的过程中时模型没有遇见过的样本时候的表现。

好的机器学习模型的模板目标是从问题领域内的训练数据到任意的数据上泛化性能良好。这让我们可以在未来对模型没有见过的数据进行预测。

漏洞挖掘、利用及修复——从人工到自动的跨越

随着互联网的普及,各类App如雨后春笋般产生。受限于代码质量,App中或多或少的会存在各类漏洞。据统计,CVE(http://cve.mitre.org/)及CNNVD(http://www.cnnvd.org.cn/)能够涵盖的漏洞多达100000个,严重威胁着网络及用户安全。当前,二进制漏洞挖掘主要依靠专业人员的人工审计,从而能够提供准确的漏洞点、漏洞利用及修补方案。

然而,人工审计与挖掘存在以下缺陷:

1. 开发团队往往缺少专业的安全人员,不能及时发现漏洞;

2. 面对数量庞大的漏洞,安全人员疲于应对。而自动化漏洞挖掘能够为人工审计提供良好的补充,也更为经济。

那么要构建这样一个自动化漏洞挖掘的系统需要哪些技术呢?下面,我们介绍一些具有代表性的相关技术。

一、自动化漏洞挖掘技术

当我们拿到一个App以后,首要的工作是找到该App中的漏洞点。从被检测程序是否被运行的角度可知,自动化漏洞挖掘技术可分为静态分析、动态分析及混合分析。

主流物联网无线技术都在这了!

本文涉及:蓝牙,WiFi,BLE,Zigbee,Z-Wave,6LoWPAN,NFC,WiFi Direct,GSM,LTE,LoRa,NB-IoT和LTE-M。小隐根据它们的功能,数据速度和操作范围不同而成几个大类。

点对点技术

点对点即表示两个设备连接在一起以进行直接通信。通常只有两个设备可以参与对等连接。

Bluetooth Classic (经典蓝牙)

最知名的点对点无线技术当属蓝牙无疑了。将手机连接到蓝牙扬声器时,蓝牙扬声器是手机和扬声器之间即为点对点无线连接。

由于相对较短的工作范围,蓝牙功耗相当低。它比WiFi消耗更少的功率,比蜂窝技术少得多,但仍远远超过蓝牙低功耗或Zigbee等技术。

WiFi Direct

大家都知道WiFi,但很少有人听说过WiFi Direct,即便是几乎所有手机和平板电脑都支持它。与蓝牙一样,但与传统WiFi不同,WiFi Direct是一种点对点无线技术。

图像识别的未来:机遇与挑战并存

本文转载自公众号微软研究院AI头条(ID:MSRAsia)
本文作者:代季峰、林思德、郭百宁

编者按:自1998年成立以来,微软亚洲研究院一直致力于推动计算机科学领域的前沿技术发展。在建院20周年之际,我们特别邀请微软亚洲研究院不同领域的专家共同撰写“预见未来”系列文章,以各自领域的前瞻视角,从机器学习、计算机视觉、系统架构、图形学、自然语言处理等多个方向出发,试图描绘一幅未来科技蓝图。

在计算机视觉领域,图像识别这几年的发展突飞猛进,但在进一步广泛应用之前,仍然有很多挑战需要我们去解决。本文中,微软亚洲研究院视觉计算组的研究员们为我们梳理目前深度学习在图像识别方面所面临的挑战以及具有未来价值的研究方向。

识别图像对人类来说是件极容易的事情,但是对机器而言,这也经历了漫长岁月。

在计算机视觉领域,图像识别这几年的发展突飞猛进。例如,在PASCAL VOC物体检测基准测试中,检测器的性能从平均准确率30%飙升到了今天的超过90%。对于图像分类,在极具挑战性的ImageNet数据集上,目前先进算法的表现甚至超过了人类。

迁移学习在自然语言处理领域的应用

迁移学习

迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,再使用该模型进行微调,使得该模型能很好地拟合少量数据的同时又具备较好的泛化能力(不过拟合)。

在迁移学习任务中,需要事先定义一组源数据集合,使用该集合训练得到预训练好的模型,该模型具备了源数据集合中的一些知识,在目标数据集合上微调该预训练的模型,使得模型能够很好地完成目标数据集合定义的任务,即完成了迁移学习。

由于深度学习模型结构复杂,在NLP领域中迁移学习不够成熟,不知道如何进行迁移、迁移模型的哪个结构部分、源数据集合与目标数据集合之间需要满足怎样的关系。本文以CNN文本分类任务为例进行描述,总结一下迁移学习在NLP领域文本分类任务中的一些经验。

CNN文本分类模型框架