机器学习

机器学习综述——机器学习理论基础与发展脉络

本文主要参考中科院自动化研究所复杂系统与智能科学实验室王珏研究员《关于机器学习的讨论》,讨论机器学习的描述,理论基础,发展历史以及研究现状。

20世纪90年代初,当时的美国副总统提出了一个重要的计划——国家信息基本设施计划(NationalInformation Infrastructure,NII)。这个计划的技术含义包含了四个方面的内容:

(1)不分时间与地域,可以方便地获得信息。
(2)不分时间与地域,可以有效地利用信息。
(3)不分时间与地域,可以有效地利用软硬件资源。
(4)保证信息安全。

本文主要讨论解决“信息有效利用”问题,其本质是:如何根据用户的特定需求从海量数据中建立模型或发现有用的知识。对计算机科学来说,这就是机器学习。

人工智能VS机器学习VS深度学习VS人工神经网络

在经历了蛮荒的PC互联网时代,混战的移动互联网时代,到现今最火的人工智能时代。大数据、云计算、机器学习的技术应用,已经使得IT从业者的门槛越来越高。套用一句樊登读书会的宣传口号“keep learning”,保持对新鲜技术的好奇心,保持对技术应用的责任心,持续关注、学习是每个IT从业者的必备技能。

一、什么是人工智能?

人工智能VS机器学习VS深度学习VS人工神经网络

人工智能(Artificial Intelligence),英文缩写为AI。

它是一个融合计算机科学、统计学、脑神经学和社会科学的前沿综合学科。

它使得计算机像人一样拥有智能能力,可以代替人类实现识别、认知,分析和决策等多种功能。

比如当你说一句话时,机器能够识别成文字,并理解你话的意思,进行分析和对话等。

二、人工智能发展简史

如何用TensorFlow训练和识别/分类自定义图片

很多正在入门或刚入门TensorFlow机器学习的同学希望能够通过自己指定图片源对模型进行训练,然后识别和分类自己指定的图片。但是,在TensorFlow官方入门教程中,并无明确给出如何把自定义数据输入训练模型的方法。现在,我们就参考官方入门课程《Deep MNIST for Experts》一节的内容(传送门:
https://www.tensorflow.org/get_started/mnist/pros ),介绍如何将自定义图片输入到TensorFlow的训练模型。

在《Deep MNISTfor Experts》一节的代码中,程序将TensorFlow自带的mnist图片数据集mnist.train.images作为训练输入,将mnist.test.images作为验证输入。当学习了该节内容后,我们会惊叹卷积神经网络的超高识别率,但对于刚开始学习TensorFlow的同学,内心可能会产生一个问号:如何将mnist数据集替换为自己指定的图片源?譬如,我要将图片源改为自己C盘里面的图片,应该怎么调整代码?

我们先看下该节课程中涉及到mnist图片调用的代码:

from tensorflow.examples.tutorials.mnist import input_data

机器学习项目失败的9个原因,你中招了吗?

本文总结了数据科学项目失败的最常见原因,希望能够帮助你避免陷阱。

1. 问错了问题

如果你问了错问题,你将会得到错误的答案。比如金融业中的欺诈识别问题,这个问题最初可能是“这个特定的交易是否存在欺诈”。为了确定这一问题,你将需要一个包含欺诈和非欺诈交易示例的数据集。这个数据集可以在一组专门负责侦测欺诈行为的专家(SME)的帮助下生成。但是,由于专家们依据的是过去对欺诈行为的认识进行的标记,用该数据集训练的模型只会捕获符合旧模式欺诈,而对于新兴的欺诈方式,这一模型将无法识别。如果将问题改为“这个交易是否反常”,它只需寻找不符合“正常”签名的交易,依靠人类进一步分析预测的欺诈交易以验证模型结果即可。但这种方法的副作用是,它很可能会比以前的模型产生更多的误报。

2. 试图用它来解决错误的问题

我们经常会忽视一个问题:我们费尽心思解决了一个问题,但是解决后是否能实现我们的目的。比如,你想出了用人工智能开发出一个将人的全身照传上网站就能根据提醒量身定做一套合身的衣服的项目。完成这个项目我们需要完成以下任务:

  •  开发AI/ML技术以确定照片中的身体测量值;

机器学习中的相似性度量

在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。

本文的目的就是对常用的相似性度量作一个总结。

1. 欧氏距离(Euclidean Distance)

欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。

(1)二维平面上两点a(x1,y1)与b(x2,y2)间的欧氏距离:

机器学习中的相似性度量

(2)三维空间两点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离:

【深度学习】L1正则化和L2正则化

在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况。正则化是机器学习中通过显式的控制模型复杂度来避免模型过拟合、确保泛化能力的一种有效方式。如果将模型原始的假设空间比作“天空”,那么天空飞翔的“鸟”就是模型可能收敛到的一个个最优解。在施加了模型正则化后,就好比将原假设空间(“天空”)缩小到一定的空间范围(“笼子”),这样一来,可能得到的最优解能搜索的假设空间也变得相对有限。有限空间自然对应复杂度不太高的模型,也自然对应了有限的模型表达能力。这就是“正则化有效防止模型过拟合的”一种直观解析。

【深度学习】L1正则化和L2正则化

L2正则化

机器学习优化算法:梯度下降、牛顿法、拟牛顿法

1、梯度下降法

梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。

梯度下降法的优化思想:用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。

缺点:
(1)靠近极小值时收敛速度减慢,求解需要很多次的迭代;
(2)直线搜索时可能会产生一些问题;
(3)可能会“之字形”地下降。

2、牛顿法

牛顿法最大的特点就在于它的收敛速度很快。

优点:二阶收敛,收敛速度快;

缺点:
  •   牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。
  •   牛顿法收敛速度为二阶,对于正定二次函数一步迭代即达最优解。
  •   牛顿法是局部收敛的,当初始点选择不当时,往往导致不收敛;
  •   二阶海塞矩阵必须可逆,否则算法进行困难。

关于牛顿法和梯度下降法的效率对比:

机器学习中的优化算法

本文主要分机器学习和深度学习两部分介绍,介绍常用的优化算法。优化算法的重要性是不言而喻的,优化算法决定了损失函数的收敛速度,甚至是损失函数是否容易收敛,是否会收敛在最小值处(全局优化)。

1、梯度下降法  

梯度下降法可以说是机器学习中最常用的算法,当然在深度学习中也会使用。不过一般使用的都是梯度下降法的变体—小批量梯度下降法,因为在样本较大时使用全样本进行梯度下降时需要计算的梯度太多,导致计算量会非常大。考虑无约束优化问题minxf(x),其中f(x)是在RD上具有一阶连续偏导的函数。梯度下降法是一种迭代算法,选取合适的初值x(0),不断的迭代更新x的值,进行目标函数f(x) 的极小化,直至目标函数收敛。由于负梯度方向是使得函数值下降最快的方向,因此在迭代的每一步,以负梯度方向更新x 的值,从而达到减小函数值的目的。

假设第k次迭代值为x(k),则根据目标函数的性质,我们可以将f(x) 在x(k)的领域内进行一阶泰勒展开:

人工智能之机器学习——模型评估与选择

机器学习方法在大型数据库中的应用称为数据挖掘(data mining)。在数据挖掘中,需要处理大量的数据以构建有使用价值的简单模型,例如具有高准确率的预测模型。数据挖掘的应用领域非常广泛:在金融业、银行分析历史数据,构建用于信用分析、诈骗检测、股票市场等方面的应用模型;在制造业,学习模型可以用于优化、控制以及故障检测等;在医学领域,学习程序可以用于医疗诊断等;在电信领域,通话模式的分析可用于网络优化和提高服务质量;在科学研究领域,比如物理学、天文学以及生物学的大量数据只有使用计算机才可能得到足够快的分析。万维网是巨大的,并且在不断增长,因此在万维网上检索相关信息不可能依靠人工完成。

机器学习还可以帮助我们解决视觉、语音识别以及机器人方面的许多问题。如人脸识别,通过分析一个人的脸部图像的多个样本,学习程序可以捕捉到那个人特有的模式,例如眼睛、鼻子和嘴巴的特定组合模式,然后再所给的图像中检测这种模式,从而进行辨认,这就是模式识别(pattern recognition)的一个例子。

一. 绪论

五个最热门的开源机器学习 JavaScript 框架

如果你是一位想要深入机器学习的 JavaScript 程序员或想成为一位使用 JavaScript 的机器学习专家,那么这些开源框架也许会吸引你。

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