Author Archive

标量 | scalar

什么是标量

标量只有大小概念,没有方向的概念。通过一个具体的数值就能表达完整。

比如:重量、温度、长度、提及、时间、热量等都数据标量。

标量只有大小,没有方向

 

标量、向量、矩阵、张量的关系

这4个概念是维度不断上升的,我们用点线面体的概念来比喻解释会更加容易理解:

  • 点——标量(scalar)
  • 线——向量(vector
  • 面——矩阵(matrix
  • 体——张量(tensor)

标量、向量、矩阵、张量的关系

感兴趣的可以通过下面的内容了解详情:

一文看懂标量

一文看懂向量

一文看懂矩阵

一文看懂张量

 

百度百科和维基百科

百度百科版本

标量(scalar),亦称“无向量”。有些物理量,只具有数值大小,而没有方向,部分有正负之分。物理学中,标量(或作纯量)指在坐标变换下保持不变的物理量。用通俗的说法,标量是只有大小,没有方向的量。

查看详情

维基百科版本

标量是一个的元素字段,其用于定义一个向量空间。由多个标量描述的量,例如具有方向和幅度,被称为矢量。在线性代数,实数或场的其它元素被称为标量,并涉及到在载体通过的操作的向量空间标量乘法,其中载体可以由多个以产生另一矢量相乘。更一般地,可以通过使用任何字段而不是实数来定义向量空间,例如复数。然后该向量空间的标量将成为相关字段的元素。

查看详情

向量 | vector

一文看懂向量vector

什么是向量?

向量主要有2个维度:大小、方向。

大小:箭头的长度表示大小

方向:箭头所指的方向表示方向

向量有大小和方向2个维度

向量的3种表达方式

代数表示

一般印刷用黑体的小写英文字母(abc等)来表示,手写用在a、b、c等字母上加一箭头(→)表示,如

向量的代数表示

 

几何表示

向量可以用有向线段来表示。有向线段的长度表示向量的大小,向量的大小,也就是向量的长度。

向量的几何表示

 

坐标表示

在平面直角坐标系中,分别取与x轴、y轴方向相同的两个单位向量ij作为一组基底。a为平面直角坐标系内的任意向量,以坐标原点O为起点P为终点作向量a。由平面向量基本定理可知,有且只有一对实数(x,y),使得a=xi+yj,因此把实数对(x,y)叫做向量a的坐标,记作a=(x,y)。这就是向量a的坐标表示。其中(x,y)就是点 P 的坐标。向量a称为点P的位置向量。

向量的坐标表示

在空间直角坐标系中,分别取与x轴、y轴,z轴方向相同的3个单位向量ijk作为一组基底。若为该坐标系内的任意向量,以坐标原点O为起点作向量a。由空间基本定理知,有且只有一组实数(x,y,z),使得a=ix+jy+kz,因此把实数对(x,y,z)叫做向量a的坐标,记作a=(x,y,z)。这就是向量a的坐标表示。其中(x,y,z),就是点P的坐标。向量a称为点P的位置向量。

当然,对于多维的空间向量,可以通过类推得到。

向量的矩阵表示

向量的矩阵表示

 

标量、向量、矩阵、张量的关系

这4个概念是维度不断上升的,我们用点线面体的概念来比喻解释会更加容易理解:

  • 点——标量(scalar
  • 线——向量(vector)
  • 面——矩阵(matrix
  • 体——张量(tensor)

标量、向量、矩阵、张量的关系

感兴趣的可以通过下面的内容了解详情:

一文看懂标量

一文看懂向量

一文看懂矩阵

一文看懂张量

easyai公众号

 

百度百科和维基百科

百度百科版本

在数学中,向量(也称为欧几里得向量、几何向量、矢量),指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。与向量对应的量叫做数量(物理学中称标量),数量(或标量)只有大小,没有方向。

向量的记法:印刷体记作黑体(粗体)的字母(如a、b、u、v),书写时在字母顶上加一小箭头“→”。 如果给定向量的起点(A)和终点(B),可将向量记作AB(并于顶上加→)。在空间直角坐标系中,也能把向量以数对形式表示,例如xOy平面中(2,3)是一向量。

查看详情

维基百科版本

向量空间(也称为线性空间)是称为对象的集合的载体,其可被添加在一起,并乘以由数字(“缩放”),所谓的标量。标量通常被认为是实数,但是也存在标量乘以复数,有理数或通常任何字段的向量空间。向量加法和标量乘法的运算必须满足下面列出的某些要求,称为公理。

欧几里德向量是向量空间的一个例子。它们代表物理量,诸如力:任何两个力(同一类型的)可被添加,以产生第三和的相乘力矢量由一实数乘法器是另一个力矢量。同样,但在更几何意义上,表示平面或三维空间中的位移的矢量也形成矢量空间。向量空间中的向量不一定必须是箭头状对象,因为它们出现在上述示例中:向量被视为具有特定属性的抽象数学对象,在某些情况下可以将其视为箭头。

向量空间是线性代数的主题,并且通过它们的维度很好地表征,粗略地说,它指定了空间中独立方向的数量。无限维向量空间在数学分析中自然出现,作为函数空间,其向量是函数。这些向量空间通常具有附加结构,其可以是拓扑结构,允许考虑接近度和连续性问题。在这些拓扑中,由规范或内积定义的拓扑更常用,因为它具有距离概念两个向量之间。特别是Banach空间和Hilbert空间的情况,这是数学分析的基础。

查看详情

线性代数(linear algebra)

百度百科版本

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

查看详情

 

维基百科版本

线性代数是关于线性方程的数学分支,如

{\ displaystyle a_ {1} x_ {1} + \ cdots + a_ {n} x_ {n} = b,}

线性函数如

{\ displaystyle(x_ {1},\ ldots,x_ {n})\ mapsto a_ {1} x_ {1} + \ ldots + a_ {n} x_ {n},}

和他们通过矩阵和向量空间的表示。线性代数几乎是所有数学领域的核心。例如,线性代数是几何的现代表示中的基础,包括用于定义基本对象,例如线,平面和旋转。此外,功能分析基本上可以视为线性代数在函数空间中的应用。线性代数也用于大多数科学和工程领域,因为它允许对许多自然现象进行建模,并使用这些模型进行有效计算。对于不能用线性代数建模的非线性系统,线性代数通常用作一阶近似。

查看详情

知识图谱(Knowledge Graph)

百度百科版本

知识图谱(Knowledge Graph)又称为科学知识图谱,在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。

通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。为学科研究提供切实的、有价值的参考。

查看详情

 

维基百科版本

知识图谱是一个知识库,使用由谷歌和它的服务,以提高其搜索引擎从各种渠道收集信息的结果。信息将在搜索结果旁边的信息框中显示给用户。2012年5月,知识图谱信息框被添加到谷歌的搜索引擎中,从美国开始,到今年年底将进行国际扩张。知识图部分由Freebase提供支持。知识图所涵盖的信息在发布后显着增长,在七个月内增加了三倍(覆盖5.7亿个实体和180亿个事实),并且能够回答Google在2016年5月处理的每月1000亿次搜索中的“大约三分之一”。知识图谱因未提供源归属或引用而提供答案而受到批评。

来自知识图谱的信息显示为搜索结果右侧(移动设备顶部)的框。根据Google的说法,这些信息可以从许多来源获取,包括CIA World Factbook,Wikidata和Wikipedia。2016年10月,谷歌宣布知识图谱拥有超过700亿个事实。没有关于用于知识图实现的技术的官方文档。来自知识图的信息用于回答Google智能助理和Google Home语音查询中的直接口头问题。

查看详情

 

粒子群算法(Particle swarm optimization | PSO)

百度百科版本

粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为 PSO, 是由J. Kennedy和R. C. Eberhart等开发的一种新的进化算法(Evolutionary Algorithm – EA)。

PSO 算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。

粒子群算法是一种并行算法。

查看详情

 

维基百科版本

在计算科学中,粒子群优化(PSO)是一种计算方法,通过迭代地尝试针对给定的质量度量来改进候选解决方案来优化问题。它通过在粒子的位置和速度上根据简单的数学公式得到一组候选解决方案(这里称为粒子)并在搜索空间中移动这些粒子来解决问题。每个粒子的运动受其局部最佳已知位置的影响,但也被引导到搜索空间中最着名的位置,这些位置随着其他粒子找到更好的位置而更新。预计这会将群体推向最佳解决方案。

PSO最初归功于Kennedy,Eberhart和Shi,最初用于模拟 社会行为,作为鸟群或鱼群中有机体运动的程式化表示。该算法被简化并且观察到执行优化。肯尼迪和艾伯哈特的着作描述了PSO和群体智能的许多哲学方面。Poli对PSO应用进行了广泛的调查。最近,Bonyadi和Michalewicz 发表了关于PSO理论和实验工作的综合评论,并回顾了Sengupta,Basak和Peters的历史和近期发展以及杂交观点。

PSO是一种元启发式算法,因为它对被优化的问题做出很少或没有假设,并且可以搜索候选解决方案的非常大的空间。然而,诸如PSO之类的元启发式并不能保证找到最佳解决方案。此外,PSO不使用被优化的问题的梯度,这意味着PSO不要求优化问题可以如经典优化方法(例如梯度下降和准牛顿方法)所要求的那样是可微分的。

查看详情

 

深度学习 – Deep learning | DL

一文看懂深度学习

深度学习有很好的表现,引领了第三次人工智能的浪潮。目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习。

本文将详细的给大家介绍深度学习的基本概念、优缺点和主流的几种算法。

 

深度学习、神经网络、机器学习、人工智能的关系

深度学习、机器学习、人工智能

简单来说:

  1. 深度学习是机器学习的一个分支(最重要的分支)
  2. 机器学习是人工智能的一个分支

深度学习、机器学习、人工智能的关系

目前表现最好的一些应用大部分都是深度学习,正是因为深度学习的突出表现,引发了人工智能的第三次浪潮。详情可以看《人工智能的发展史——3次 AI 浪潮

 

详细了解人工智能:《“2019更新”什么是人工智能?(AI的本质+发展史+局限性)

详细了解机器学习:《“75页PDF免费下载”面向所有人的机器学习科普大全

 

深度学习、神经网络

深度学习的概念源于人工神经网络的研究,但是并不完全等于传统神经网络。

不过在叫法上,很多深度学习算法中都会包含”神经网络”这个词,比如:卷积神经网络、循环神经网络。

所以,深度学习可以说是在传统神经网络基础上的升级,约等于神经网络。

深度学习和神经网络的关系

 

大白话解释深度学习

看了很多版本的解释,发现李开复在《人工智能》一书中讲的是最容易理解的,所以下面直接引用他的解释:

我们以识别图片中的汉字为例。

假设深度学习要处理的信息是“水流”,而处理数据的深度学习网络是一个由管道和阀门组成的巨大水管网络。网络的入口是若干管道开口,网络的出口也是若干管道开口。这个水管网络有许多层,每一层由许多个可以控制水流流向与流量的调节阀。根据不同任务的需要,水管网络的层数、每层的调节阀数量可以有不同的变化组合。对复杂任务来说,调节阀的总数可以成千上万甚至更多。水管网络中,每一层的每个调节阀都通过水管与下一层的所有调节阀连接起来,组成一个从前到后,逐层完全连通的水流系统。

深度学习类似一个水流系统

那么,计算机该如何使用这个庞大的水管网络来学习识字呢?

比如,当计算机看到一张写有“田”字的图片,就简单将组成这张图片的所有数字(在计算机里,图片的每个颜色点都是用“0”和“1”组成的数字来表示的)全都变成信息的水流,从入口灌进水管网络。

深度学习-将图片数字化

我们预先在水管网络的每个出口都插一块字牌,对应于每一个我们想让计算机认识的汉字。这时,因为输入的是“田”这个汉字,等水流流过整个水管网络,计算机就会跑到管道出口位置去看一看,是不是标记由“田”字的管道出口流出来的水流最多。如果是这样,就说明这个管道网络符合要求。如果不是这样,就调节水管网络里的每一个流量调节阀,让“田”字出口“流出”的水最多。

这下,计算机要忙一阵了,要调节那么多阀门!好在计算机的速度快,暴力的计算加上算法的优化,总是可以很快给出一个解决方案,调好所有阀门,让出口处的流量符合要求。

深度学习-识别田字

下一步,学习“申”字时,我们就用类似的方法,把每一张写有“申”字的图片变成一大堆数字组成的水流,灌进水管网络,看一看,是不是写有“申”字的那个管道出口流水最多,如果不是,我们还得再调整所有的阀门。这一次,要既保证刚才学过的“田”字不受影响,也要保证新的“申”字可以被正确处理。

深度学习-学习申字

如此反复进行,知道所有汉字对应的水流都可以按照期望的方式流过整个水管网络。这时,我们就说,这个水管网络是一个训练好的深度学习模型了。当大量汉字被这个管道网络处理,所有阀门都调节到位后,整套水管网络就可以用来识别汉字了。这时,我们可以把调节好的所有阀门都“焊死”,静候新的水流到来。

深度学习-学习所有汉字

与训练时做的事情类似,未知的图片会被计算机转变成数据的水流,灌入训练好的水管网络。这时,计算机只要观察一下,哪个出水口流出来的水流最多,这张图片写的就是哪个字。

深度学习大致就是这么一个用人类的数学知识与计算机算法构建起来的整体架构,再结合尽可能多的训练数据以及计算机的大规模运算能力去调节内部参数,尽可能逼近问题目标的半理论、半经验的建模方式。

 

传统机器学习 VS 深度学习

传统机器学习和深度学习的相似点

传统机器学习和深度学习的相似点

在数据准备和预处理方面,两者是很相似的。

他们都可能对数据进行一些操作:

  • 数据清洗
  • 数据标签
  • 归一化
  • 去噪
  • 降维

对于数据预处理感兴趣的可以看看《AI 数据集最常见的6大问题(附解决方案)

 

传统机器学习和深度学习的核心区别

传统机器学习和深度学习的核心区别

传统机器学习的特征提取主要依赖人工,针对特定简单任务的时候人工提取特征会简单有效,但是并不能通用。

深度学习的特征提取并不依靠人工,而是机器自动提取的。这也是为什么大家都说深度学习的可解释性很差,因为有时候深度学习虽然能有好的表现,但是我们并不知道他的原理是什么。

 

深度学习的优缺点

深度学习的优缺点

优点1:学习能力强

从结果来看,深度学习的表现非常好,他的学习能力非常强。

优点2:覆盖范围广,适应性好

深度学习的神经网络层数很多,宽度很广,理论上可以映射到任意函数,所以能解决很复杂的问题。

优点3:数据驱动,上限高

深度学习高度依赖数据,数据量越大,他的表现就越好。在图像识别、面部识别、NLP 等部分任务甚至已经超过了人类的表现。同时还可以通过调参进一步提高他的上限。

优点4:可移植性好

由于深度学习的优异表现,有很多框架可以使用,例如 TensorFlowPytorch。这些框架可以兼容很多平台。

 

缺点1:计算量大,便携性差

深度学习需要大量的数据很大量的算力,所以成本很高。并且现在很多应用还不适合在移动设备上使用。目前已经有很多公司和团队在研发针对便携设备的芯片。这个问题未来会得到解决。

缺点2:硬件需求高

深度学习对算力要求很高,普通的 CPU 已经无法满足深度学习的要求。主流的算力都是使用 GPUTPU,所以对于硬件的要求很高,成本也很高。

缺点3:模型设计复杂

深度学习的模型设计非常复杂,需要投入大量的人力物力和时间来开发新的算法和模型。大部分人只能使用现成的模型。

缺点4:没有”人性”,容易存在偏见

由于深度学习依赖数据,并且可解释性不高。在训练数据不平衡的情况下会出现性别歧视、种族歧视等问题。

 

4种典型的深度学习算法

4种典型的深度学习算法

卷积神经网络 – CNN

CNN 的价值:

  1. 能够将大数据量的图片有效的降维成小数据量(并不影响结果)
  2. 能够保留图片的特征,类似人类的视觉原理

CNN 的基本原理:

  1. 卷积层 – 主要作用是保留图片的特征
  2. 池化层 – 主要作用是把数据降维,可以有效的避免过拟合
  3. 全连接层 – 根据不同任务输出我们想要的结果

CNN 的实际应用:

  1. 图片分类、检索
  2. 目标定位检测
  3. 目标分割
  4. 人脸识别
  5. 骨骼识别

了解更多《一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)

 

循环神经网络 – RNN

RNN 是一种能有效的处理序列数据的算法。比如:文章内容、语音音频、股票价格走势…

之所以他能处理序列数据,是因为在序列中前面的输入也会影响到后面的输出,相当于有了“记忆功能”。但是 RNN 存在严重的短期记忆问题,长期的数据影响很小(哪怕他是重要的信息)。

于是基于 RNN 出现了 LSTM 和 GRU 等变种算法。这些变种算法主要有几个特点:

  1. 长期信息可以有效的保留
  2. 挑选重要信息保留,不重要的信息会选择“遗忘”

RNN 几个典型的应用如下:

  1. 文本生成
  2. 语音识别
  3. 机器翻译
  4. 生成图像描述
  5. 视频标记

了解更多《一文看懂循环神经网络-RNN(独特价值+优化算法+实际应用)

 

生成对抗网络 – GANs

假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷。在这些小偷中,有的可能是盗窃高手,有的可能毫无技术可言。假如这个城市开始整饬其治安,突然开展一场打击犯罪的“运动”,警察们开始恢复城市中的巡逻,很快,一批“学艺不精”的小偷就被捉住了。之所以捉住的是那些没有技术含量的小偷,是因为警察们的技术也不行了,在捉住一批低端小偷后,城市的治安水平变得怎样倒还不好说,但很明显,城市里小偷们的平均水平已经大大提高了。

警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。为了避免被捕,小偷们努力表现得不那么“可疑”,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种“交流”与“切磋”,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了“火眼金睛”,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。

同时得到了最强的小偷和最强的警察

了解更多《什么是生成对抗网络 – GAN?(基本概念+工作原理)

 

深度强化学习 – RL

强化学习算法的思路非常简单,以游戏为例,如果在游戏中采取某种策略可以取得较高的得分,那么就进一步“强化”这种策略,以期继续取得较好的结果。这种策略与日常生活中的各种“绩效奖励”非常类似。我们平时也常常用这样的策略来提高自己的游戏水平。

在 Flappy bird 这个游戏中,我们需要简单的点击操作来控制小鸟,躲过各种水管,飞的越远越好,因为飞的越远就能获得更高的积分奖励。

这就是一个典型的强化学习场景:

  • 机器有一个明确的小鸟角色——代理
  • 需要控制小鸟飞的更远——目标
  • 整个游戏过程中需要躲避各种水管——环境
  • 躲避水管的方法是让小鸟用力飞一下——行动
  • 飞的越远,就会获得越多的积分——奖励

游戏是典型的强化学习场景

你会发现,强化学习和监督学习、无监督学习 最大的不同就是不需要大量的“数据喂养”。而是通过自己不停的尝试来学会某些技能。

了解更多:《一文看懂什么是强化学习?(基本概念+应用场景+主流算法)

 

总结

深度学习属于机器学习的范畴,深度学习可以说是在传统神经网络基础上的升级,约等于神经网络。

深度学习和传统机器学习在数据预处理上都是类似的。核心差别在特征提取环节,深度学习由机器自己完成特征提取,不需要人工提取。

 

深度学习的优点:

  1. 学习能力强
  2. 覆盖范围广,适应性好
  3. 数据驱动,上限高
  4. 可移植性好

深度学习的缺点:

  1. 计算量大,便携性差
  2. 硬件需求高
  3. 模型设计复杂
  4. 没有”人性”,容易存在偏见

 

深度学习的4种典型算法:

  1. 卷积神经网络 – CNN
  2. 循环神经网络 – RNN
  3. 生成对抗网络 – GANs
  4. 深度强化学习 – RL

 

百度百科版本+维基百科

百度百科版本

深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

深度学习的概念由Hinton等人于2006年提出。基于深度置信网络(DBN)提出非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,随后提出多层自动编码器深层结构。此外Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。

深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。

深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。

同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分.不同的学习框架下建立的学习模型很是不同.例如,卷积神经网络(Convolutional neural networks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(Deep Belief Nets,简称DBNs)就是一种无监督学习下的机器学习模型。

查看详情

 

维基百科版本

深度学习(也称为深度结构化学习 或分层学习)是基于学习数据表示的更广泛的机器学习方法系列的一部分,而不是特定于任务的算法。学习可以是监督,半监督或无监督。

深度学习架构,如深度神经网络,深度置信网络和递归神经网络,已应用于计算机视觉,语音识别,自然语言处理,音频识别,社交网络过滤,机器翻译,生物信息学,药物设计,医学图像分析等领域。 材料检查和棋盘游戏程序,它们产生的结果可与人类专家相媲美,在某些情况下优于人类专家。

深度学习模型受到生物神经系统中信息处理和通信模式的模糊启发,但与生物大脑(尤其是人类大脑)的结构和功能特性存在各种差异,这使得它们与神经科学证据不相容。

查看详情

 

人工神经网络 – Artificial Neural Network | ANN

百度百科版本

人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。

在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

最近十多年来,人工神经网络的研究工作不断深入,已经取得了很大的进展,其在模式识别、智能机器人、自动控制、预测估计、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。

查看详情

 

维基百科版本

人工神经网络(ANN)或连接系统是由构成动物大脑的生物神经网络模糊地启发的计算系统。神经网络本身不是算法,而是许多不同机器学习算法的框架,它们协同工作并处理复杂的数据输入。此类系统通过考虑示例“学习”执行任务,通常不用任何特定于任务的规则编程。例如,在图像识别中,他们可能通过分析手动的示例图像来学习识别包含猫的图像标记为“猫”或“没有猫”,并使用结果来识别其他图像中的猫。他们在没有任何关于猫的先验知识的情况下这样做,例如,他们有毛皮,尾巴,胡须和猫般的面孔。相反,它们会自动从他们处理的学习资料中生成识别特征。

ANN基于称为人工神经元的连接单元或节点的集合,其松散地模拟生物大脑中的神经元。每个连接,如生物大脑中的突触,可以将信号从一个人工神经元传递到另一个人工神经元。接收信号的人工神经元可以处理它,然后发信号通知与之相连的其他人工神经元。

在常见的ANN实现中,人工神经元之间的连接处的信号是实数,并且每个人工神经元的输出通过其输入之和的一些非线性函数来计算。人工神经元之间的联系称为“边缘”。人工神经元和边缘通常具有重量随着学习的进行而调整。重量增加或减少连接处信号的强度。人工神经元可以具有阈值,使得仅在聚合信号超过该阈值时才发送信号。通常,人工神经元聚集成层。不同的层可以对其输入执行不同类型的转换。信号可能在多次遍历各层之后从第一层(输入层)传播到最后一层(输出层)。

人工神经网络方法的最初目标是以与人类大脑相同的方式解决问题。然而,随着时间的推移,注意力转移到执行特定任务,导致偏离生物学。人工神经网络已经用于各种任务,包括计算机视觉,语音识别,机器翻译,社交网络过滤,游戏板和视频游戏以及医学诊断。

查看详情

 

干货|简单理解神经网络几个基础问题

迁移学习(Transfer learning)

百度百科版本

迁移学习是一种机器学习的方法,指的是一个预训练的模型被重新用在另一个任务中。迁移学习与多任务学习以及概念飘移这些问题相关,它不是一个专门的机器学习领域。

然而,迁移学习在某些深度学习问题中是非常受欢迎的,例如在具有大量训练深度模型所需的资源或者具有大量的用来预训练模型的数据集的情况。仅在第一个任务中的深度模型特征是泛化特征的时候,迁移学习才会起作用。

深度学习中的这种迁移被称作归纳迁移。就是通过使用一个适用于不同但是相关的任务的模型,以一种有利的方式缩小可能模型的搜索范围。

查看详情

 

维基百科版本

迁移学习是机器学习中的一个研究问题,它侧重于存储在解决一个问题时获得的知识并将其应用于不同但相关的问题。例如,在学习识别汽车时获得的知识可以在尝试识别卡车时应用。这一研究领域与学习转移的心理学文献的悠久历史有一定关系,尽管两个领域之间的正式关系是有限的。

查看详情

长短期记忆网络 – Long short-term memory | LSTM

一文看懂长短期记忆网络 - LSTM

什么是 LSTM?

长短期记忆网络——通常被称为 LSTM,是一种特殊的 RNN,能够学习长期依赖性。由 Hochreiter 和 Schmidhuber(1997)提出的,并且在接下来的工作中被许多人改进和推广。LSTM 在各种各样的问题上表现非常出色,现在被广泛使用。

LSTM 被明确设计用来避免长期依赖性问题。长时间记住信息实际上是 LSTM 的默认行为,而不是需要努力学习的东西!

所有递归神经网络都具有神经网络的链式重复模块。在标准的 RNN 中,这个重复模块具有非常简单的结构,例如只有单个 tanh 层。

RNN中,只有单个tanh层

LSTM 也具有这种类似的链式结构,但重复模块具有不同的结构。不是一个单独的神经网络层,而是四个,并且以非常特殊的方式进行交互。

LSTM有4个神经网络层

不要担心细节。稍后我们将逐步浏览 LSTM 的图解。现在,让我们试着去熟悉我们将使用的符号。

不同符号的含义

在上面的图中,每行包含一个完整的向量,从一个节点的输出到其他节点的输入。粉色圆圈表示逐点运算,如向量加法;而黄色框表示学习的神经网络层。行合并表示串联,而分支表示其内容正在被复制,并且副本将转到不同的位置。

 

LSTM的核心思路

LSTM 的关键是细胞状态,即图中上方的水平线。

细胞状态有点像传送带。它贯穿整个链条,只有一些次要的线性交互作用。信息很容易以不变的方式流过。

LSTM 的关键是细胞状态,即图中上方的水平线

LSTM 可以通过所谓“门”的精细结构向细胞状态添加或移除信息。

门可以选择性地以让信息通过。它们由 S 形神经网络层和逐点乘法运算组成。

LSTM 可以通过所谓“门”的精细结构向细胞状态添加或移除信息

S 形网络的输出值介于 0 和 1 之间,表示有多大比例的信息通过。0 值表示“没有信息通过”,1 值表示“所有信息通过”。

一个 LSTM 有三种这样的门用来保持和控制细胞状态。

如果对详细的技术原理感兴趣,可以看看这篇文章《Illustrated Guide to LSTM’s and GRU’s: A step by step explanation

 

百度百科+维基百科

百度百科版本

长短期记忆人工神经网络(Long-Short Term Memory,LSTM)论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。

LSTM的表现通常比时间递归神经网络及隐马尔科夫模型(HMM)更好,比如用在不分段连续手写识别上。2009年,用LSTM构建的人工神经网络模型赢得过ICDAR手写识别比赛冠军。LSTM还普遍用于自主语音识别,2013年运用TIMIT自然演讲数据库达成17.7%错误率的纪录。作为非线性模型,LSTM可作为复杂的非线性单元用于构造更大型深度神经网络。

查看详情

维基百科版本

长短期记忆(LSTM)单位是递归神经网络(RNN)的单位。由LSTM单元组成的RNN通常称为LSTM网络(或仅称为LSTM)。公共LSTM单元由单元,输入门,输出门和忘记门组成。该单元记住任意时间间隔内的值,并且三个门控制进出单元的信息流。

LSTM网络非常适合基于时间序列数据进行分类,处理和预测,因为在时间序列中的重要事件之间可能存在未知持续时间的滞后。开发LSTM是为了处理在训练传统RNN时可能遇到的爆炸和消失的梯度问题。对于间隙长度的相对不敏感性是LSTM相对于RNN,隐马尔可夫模型和其他序列学习方法在许多应用中的优势。

查看详情

 

生成对抗网络 – Generative Adversarial Networks | GAN

一文看懂生成对抗网络GANs

生成对抗网络 – GAN 是最近2年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频。我们手机里的照片处理软件中就会使用到它。

本文将详细介绍生成对抗网络 – GAN 的设计初衷、基本原理、10种典型算法和13种实际应用。

 

GAN的设计初衷

一句话来概括 GAN 的设计动机就是——自动化。

人工提取特征——自动提取特征

我们在《一文看懂深度学习(概念+优缺点+典型算法)》中讲过,深度学习最特别最厉害的地方就是能够自己学习特征提取。

传统机器学习和深度学习的核心区别

机器的超强算力可以解决很多人工无法解决的问题。自动化后,学习能力更强,适应性也更强。

人工判断生成结果的好坏——自动判断和优化

我们在《监督学习》中讲过,训练集需要大量的人工标注数据,这个过程是成本很高且效率很低的。而人工判断生成结果的好坏也是如此,有成本高和效率低的问题。

而 GAN 能自动完成这个过程,且不断的优化,这是一种效率非常高,且成本很低的方式。GAN是如何实现自动化的呢?下面我们讲解一下他的原理。

 

生成对抗网络 GAN 的基本原理

大白话版本

知乎上有一个很不错的解释,大家应该都能理解:

假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷。在这些小偷中,有的可能是盗窃高手,有的可能毫无技术可言。假如这个城市开始整饬其治安,突然开展一场打击犯罪的“运动”,警察们开始恢复城市中的巡逻,很快,一批“学艺不精”的小偷就被捉住了。之所以捉住的是那些没有技术含量的小偷,是因为警察们的技术也不行了,在捉住一批低端小偷后,城市的治安水平变得怎样倒还不好说,但很明显,城市里小偷们的平均水平已经大大提高了。

警察严打导致小偷水平提升

警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。

经常提升技能,更多小偷被抓

为了避免被捕,小偷们努力表现得不那么“可疑”,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种“交流”与“切磋”,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了“火眼金睛”,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。

同时得到了最强的小偷和最强的警察

 

非大白话版本

生成对抗网络(GAN)由2个重要的部分构成:

  1. 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
  2. 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”

生成对抗网络GANs由生成器和判别器构成

下面详细介绍一下过程:

第一阶段:固定“判别器D”,训练“生成器G”

我们使用一个还 OK 判别器,让一个“生成器G”不断生成“假数据”,然后给这个“判别器D”去判断。

一开始,“生成器G”还很弱,所以很容易被揪出来。

但是随着不断的训练,“生成器G”技能不断提升,最终骗过了“判别器D”。

到了这个时候,“判别器D”基本属于瞎猜的状态,判断是否为假数据的概率为50%。

固定判别器,训练生成器

第二阶段:固定“生成器G”,训练“判别器D”

当通过了第一阶段,继续训练“生成器G”就没有意义了。这个时候我们固定“生成器G”,然后开始训练“判别器D”。

“判别器D”通过不断训练,提高了自己的鉴别能力,最终他可以准确的判断出所有的假图片。

到了这个时候,“生成器G”已经无法骗过“判别器D”。

固定生成器,训练判别器

循环阶段一和阶段二

通过不断的循环,“生成器G”和“判别器D”的能力都越来越强。

最终我们得到了一个效果非常好的“生成器G”,我们就可以用它来生成我们想要的图片了。

下面的实际应用部分会展示很多“惊艳”的案例。

循环训练,2遍越来越强

如果对 GAN 的详细技术原理感兴趣,可以看看下面2篇文章:

生成性对抗网络(GAN)初学者指南 – 附代码

长文解释生成对抗网络GAN的详细原理(20分钟阅读)

 

GAN的优缺点

3个优势

  1. 能更好建模数据分布(图像更锐利、清晰)
  2. 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。
  3. 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

2个缺陷

  1. 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
  2. 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

扩展阅读:《为什么训练生成对抗网络如此困难?》阅读这篇文章对数学要求很高

 

10大典型的GAN算法

GAN 算法有数百种之多,大家对于 GAN 的研究呈指数级的上涨,目前每个月都有数百篇论坛是关于对抗网络的。

下图是每个月关于 GAN 的论文发表数量:

关于GANs的论文呈指数级增长

如果你对 GANs 算法感兴趣,可以在 “GANs动物园”里查看几乎所有的算法。我们为大家从众多算法中挑选了10个比较有代表性的算法,技术人员可以看看他的论文和代码。

算法 论文 代码
GAN 论文地址 代码地址
DCGAN 论文地址 代码地址
CGAN 论文地址 代码地址
CycleGAN 论文地址 代码地址
CoGAN 论文地址 代码地址
ProGAN 论文地址 代码地址
WGAN 论文地址 代码地址
SAGAN 论文地址 代码地址
BigGAN 论文地址 代码地址

上面内容整理自《Generative Adversarial Networks – The Story So Far》原文中对算法有一些粗略的说明,感兴趣的可以看看。

 

GAN 的13种实际应用

GAN 看上去不如“语音识别”“文本挖掘”那么直观。不过他的应用已经进入到我们的生活中了。下面给大家列举一些 GAN 的实际应用。

生成图像数据集

人工智能的训练是需要大量的数据集的,如果全部靠人工收集和标注,成本是很高的。GAN 可以自动的生成一些数据集,提供低成本的训练数据。

GANs生成人脸的矢量算法案例

 

生成人脸照片

生成人脸照片是大家很熟悉的应用,但是生成出来的照片用来做什么是需要思考的问题。因为这种人脸照片还处于法律的边缘。

2014年至2017年GANs能力进展的实例

 

生成照片、漫画人物

GAN 不但能生成人脸,还能生成其他类型的照片,甚至是漫画人物。

GANs生成的照片

GANs生成的漫画人物

 

图像到图像的转换

简单说就是把一种形式的图像转换成另外一种形式的图像,就好像加滤镜一样神奇。例如:

  • 把草稿转换成照片
  • 把卫星照片转换为Google地图的图片
  • 把照片转换成油画
  • 把白天转换成黑夜

用pix2pix从草图到彩色照片的示例

GANs应用-照片到油画、马到斑马、冬天到夏天、照片到google地图

 

文字到图像的转换

在2016年标题为“ StackGAN:使用 StackGAN 的文本到逼真照片的图像合成 ”的论文中,演示了使用 GAN,特别是他们的 StackGAN,从鸟类和花卉等简单对象的文本描述中生成逼真的照片。

从StackGAN获取鸟类的文本描述和GAN生成照片的示例

 

语意 – 图像 – 照片 的转换

在2017年标题为“ 高分辨率图像合成和带条件GAN的语义操纵 ”的论文中,演示了在语义图像或草图作为输入的情况下使用条件GAN生成逼真图像。

语义图像和GAN生成的城市景观照片的示例

 

自动生成模特

在2017年标题为“ 姿势引导人形象生成 ”的论文中,可以自动生成人体模特,并且使用新的姿势。

GAN生成了新的模特姿势

 

照片到Emojis

GANs 可以通过人脸照片自动生成对应的表情(Emojis)。

名人照片和GAN生成的表情符号示例

 

照片编辑

使用GAN可以生成特定的照片,例如更换头发颜色、更改面部表情、甚至是改变性别。

使用IcGAN编辑照片的效果

 

预测不同年龄的长相

给一张人脸照片, GAN 就可以帮你预测不同年龄阶段你会长成什么样。

用具有不同表观年龄的GAN生成的面部照片的示例

 

提高照片分辨率,让照片更清晰

给GAN一张照片,他就能生成一张分辨率更高的照片,使得这个照片更加清晰。

GANs在原始照片的基础上增加分辨率,使照片更清晰

 

照片修复

假如照片中有一个区域出现了问题(例如被涂上颜色或者被抹去),GAN可以修复这个区域,还原成原始的状态。

遮住照片中间的一部分,GANs可以很好的修复

 

自动生成3D模型

给出多个不同角度的2D图像,就可以生成一个3D模型。

从2D图像到3D椅子模型的建立过程

 

 

百度百科+维基百科

百度百科版本

生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。

查看详情

维基百科版本

生成对抗网络(GAN)是一类用于无监督机器学习的人工智能算法,由在零和游戏框架中相互竞争的两个神经网络系统实现。他们是由Ian Goodfellow 等人介绍的。在2014年这种技术可以生成照片看起来至少在表面上真实的人的观察员,有很多的现实特征(虽然在测试中的人可以真正告诉在许多情况下产生)。

查看详情

 

扩展阅读