深度学习

深度学习是一种基于人工神经网络的机器学习方法,它通过多层神经网络对数据进行建模和学习,从而使计算机能够自动从数据中提取特征并进行预测。深度学习在图像处理、语音识别、自然语言处理等领域取得了显著的突破,特别是在大数据和强大计算能力的支持下,深度学习已成为解决复杂问题的主要技术。

新手如何开始学深度学习?别着急,看看别人走过的路先

作者:Arkar Min Aung
编译:ronghuaiyang

新手如何开始学深度学习,这个问题很难回答,每个人似乎都有自己的一套方法,在开始之前,先看看别人是怎么做的,也许会对自己有所启发。

刚开始学深度学习的时候,一定要像婴儿学步一样,慢慢的小步走。
很多人问我如何开始机器学习和深度学习。在这里,我整理了一个我使用过的资源列表,以及我第一次学习深度学习时所走过的路。

免费课程

“深度学习”和“多层神经网络”的区别

"深度学习"是为了让层数较多的多层神经网络可以训练,能够work而演化出来的一系列的 新的结构和新的方法。
新的网络结构中最著名的就是CNN,它解决了传统较深的网络参数太多,很难训练的问题,使用了“局部感受野”和“权植共享”的概念,大大减少了网络参数的数量。关键是这种结构确实很符合视觉类任务在人脑上的工作原理。

新的结构还包括了:LSTM,ResNet等。

新的方法就多了:新的激活函数:ReLU,新的权重初始化方法(逐层初始化,XAVIER等),新的损失函数,新的防止过拟合方法(Dropout, BN等)。这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。

从广义上说深度学习的网络结构也是多层神经网络的一种。

传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。

而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。

基于深度学习的细粒度图像分类综述

1. 简介

细粒度图像分类 (Fine-grained image categorization), 又被称作子类别图像分类 (Sub-category recognition),是近年来计算机视觉、 模式识别等领域一个非常热门的研究课题。 其目的是对属于同一基础类别的图像(汽车、狗、花、鸟等)进行更加细致的子类划分, 但由于子类别间细微的类间差异以及较大的类内差异, 较之普通的图像分类任务, 细粒度图像分类难度更大。 图1所示为细粒度图像分类数据集CUB-200[1]中的两个物种,加州鸥和北极鸥,从竖直方向的图片对比可以看出,两个不同物种长相非常相似,而从对比水平方向可知,同一物种由于姿态,背景以及拍摄角度的不同,存在较大的类内差异。 因此,要想顺利的对两个极为相似的物种进行细粒度分类,最重要的是在图像中找到能够区分这两个物种的区分性的区域块(discriminative part),并能够对这些有区分性的区域块的特征进行较好的表示。

图像识别中的深度学习

来源:《中国计算机学会通讯》
作者: 王晓刚

1、深度学习发展历史

深度学习是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域的应用取得了巨大成功。现有的深度学习模型属于神经网络。神经网络的起源可追溯到20世纪40年代,曾经在八九十年代流行。神经网络试图通过模拟大脑认知的机理解决各种机器学习问题。1986年,鲁梅尔哈特(Rumelhart)、欣顿(Hinton)和威廉姆斯(Williams)在《自然》杂志发表了著名的反向传播算法用于训练神经网络,该算法直到今天仍被广泛应用。

神经网络有大量参数,经常发生过拟合问题,虽然其识别结果在训练集上准确率很高,但在测试集上效果却很差。这是因为当时的训练数据集规模都较小,加之计算资源有限,即便是训练一个较小的网络也需要很长的时间。与其他模型相比,神经网络并未在识别准确率上体现出明显的优势。

三分钟看懂人工智能核心技术:深度学习

自从2012年以来,深度学习(Deep Learning)就以一种势如破竹之势突破了一个个经典的人工智能问题。面对人工智能的快速发展,你不想了解它的基本工作原理吗?

想搞清楚什么是深度学习,要先从人工智能说起,自从 1956 年计算机科学家们在达特茅斯会议(Dartmouth Conferences)上确认人工智能这个术语以来,人们就不乏关于人工智能奇思妙想,我们梦想着拥有人类五感(甚至更多)、推理能力以及人类思维方式的神奇机器。如今,虽然梦想的局面还没有出现,但是稍微弱一点的人工智能已经大行其道了,比如:图像识别、语音识别、多语言翻译等。

机器学习是实现人工智能的一种重要方法。机器学习的概念来自早期的人工智能研究者,简单来说,机器学习就是使用算法分析数据,从中学习并自动归纳总结成模型,最后使用模型做出推断或预测。与传统的编程语言开发软件不同,我们使用大量的数据送给机器学习,这个过程叫做“训练”。

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

1986年,辛顿教授和他的团队重新设计了BP算法,以“人工神经网络”模仿大脑工作机理,又一次将人工智能掀起了一个浪潮。但是,当风光不再时,辛顿和他的研究方向,逐渐被世人所淡忘,一下子就冷藏了30年。但在这30年里,辛顿有了新的想法。

于是在2006年,辛顿等人提出了“深度信念网(Deep Belief Nets,DBN)”(这实际上就是多层神经网络的前身)。这个“深度信念网”后期被称为“深度学习”。终于,辛顿再次闪耀于人工智能世界,随后被封为“深度学习教父”。

细心的您会发现,即使辛顿等人提出了“深度信念网”,在随后的小10年里,这个概念亦是不温不火地发展着(如图1所示)。直到2012年以后,随着大数据和大计算(GPU、云计算等)的兴起,深度学习才开始大行其道,一时间甚嚣尘上。

深度学习究竟存不存在缺陷?

如今,人工智能无疑是最热门的技术之一。人工智能的发展离不开机器学习算法的不断进步,而作为机器学习的一个分支,深度学习也在其中起着重要的作用。然而,深度学习目前也是存在着一些棘手的问题。近日,《福布斯》采访了与人工智能相关的高管,就2019年人工智能发展趋势进行了预测。MediaMath首席技术官普拉萨德·查拉萨尼表示:“深度学习模型已经被证明很容易受到数据中难以察觉的扰动,这些扰动会欺骗模型做出错误的预测或分类。随着对大型数据集的依赖越来越大,人工智能系统需要防范此类攻击数据”。

深度学习真的万能吗?

当前,人工智能技术的发展突飞猛进,在很大程度上都得益于深度学习在基本的人类技能上取得的重大进步。深度学习的概念最早起源于20世纪50年代,但直到2006年才真正进入到大众的视野。深度学习作为机器学习研究中的一个新的领域,其目的是构建、模拟人类大脑进行分析学习的神经网络。在过去几十年的发展中,它大量借鉴了关于人脑、统计学和应用数学的知识。近年来,深度学习更是得益于高性能的计算机、大规模的数据集以及能够训练更深网络的技术,它的实用性和普及性都有了很大的发展。但是,随着应用的越来越深化,深度学习技术也逐渐暴露出不足之处。

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

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

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

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

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

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

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

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

快速了解深度学习的工作原理

人工智能(AI)和机器学习(ML)是目前最热门的话题。

术语“AI”每天无处不在。经常听到有抱负的开发者说他们想要学习人工智能。还听到高管们说他们希望在他们的服务中实施AI。但很多时候,很多人都不明白AI是什么。

阅读完本文后,您将了解AI和ML的基础知识。更重要的是,您将了解最受欢迎的ML类型深度学习是如何工作的。

背景

了解深度学习如何运作的第一步是掌握重要术语之间的差异。

人工智能与机器学习

人工智能是人类智能在计算机中的复制。

当AI研究首次开始时,研究人员正试图复制人类智能以执行特定任务 - 比如玩游戏。

他们介绍了计算机需要尊重的大量规则。计算机有一个特定的可能操作列表,并根据这些规则做出决策。

机器学习是指机器使用大型数据集而不是硬编码规则进行学习的能力。

ML允许计算机自己学习。这种类型的学习利用了现代计算机的处理能力,可以轻松处理大型数据集。

监督学习与无监督学习

进阶深度学习?这里有9个给程序员的建议

俗话说得好,人往高处走。

在当前人工智能火得一塌糊涂的时候,很多程序员的心思也开始活络起来了。

“要不要转行做人工智能?”

想必是很多程序员心中都有过的念头。

到底该怎么转呢?很多人查了资料之后,一脸懵逼:一边要熟练掌握线性代数、矩阵计算,一边要搞概率论,还要去研究各种库与框架等等。

实在是不知道该从何开始,就拖延了下去,然后很是焦虑。

现在,你不用焦虑了。

国外一个开发者分享了自己的学习过程,并结合自己的经历,给出了9个建议。

这名开发者名叫Alexey Gaziev,是一家社交媒体管理创业公司的CTO,原来是一名Ruby开发者,后来自己学习深度学习。

在开始之前,我们先跟着Alexey澄清一下相关的概念:机器学习是实现人工智能的一组工具,深度学习是机器学习的一个特定子集。

好了,下面正式开始。

1、不要焦虑

可能你不太喜欢数学。就我个人而言,自从八年前毕业后,在开始学习深度学习之前,都没有再碰过数学教科书了。

但在你想要转行做人工智能之前,用谷歌进行一些简单的搜索并与周围比较喜欢数学的人交谈后,你会形成这样一个认知: