机器学习研究人员需要了解的8个神经网络架构(上)

简介: 本文简要讲述了8种机器学习架构,希望可以给大家带来帮助

81778991cc7f0e7de2864e5f71d40ba14b3d2956

在这篇文章中,我想与大家分享8个神经网络体系结构,我相信任何一个机器学习的研究人员都应该熟悉这一过程来促进他们的工作。

为什么我们需要机器学习?

机器学习对于那些对人类来说太复杂而不能直接编码的任务是必需的。有些任务非常复杂,因此人类不可能明确地计算出所有细微差别并对其进行编码,这是不切实际的。相反,我们向机器学习算法提供大量数据,让算法通过探索数据并搜索一个能够实现程序员设定的模型来解决这个问题。

我们来看看这两个例子:

  • 编写解决问题的程序非常困难,例如在一个混乱的场景中,新的光照条件下,从一个新颖的视角来识别三维物体。我们不知道要写什么程序,因为我们不知道它是如何在我们的大脑中完成的。即使我们知道如何去做,这个程序可能会非常复杂。
  • 很难编写一个程序来计算信用卡交易欺诈的可能性。可能没有任何既简单又可靠的规则。我们需要结合大量的弱规则。欺诈是一个移动的目标,而程序需要不断变化。

然后是机器学习方法:我们不是为每个特定任务手动编写程序,而是收集大量的例子来指定给定输入的正确输出。然后,机器学习算法就会使用这些例子,并生成一个执行该任务的程序。学习算法产生的程序可能与典型的手写程序看起来非常不同。它可能包含数百万的数字。如果我们做得对,该计划适用于新案例以及我们训练的案例。 如果数据发生变化,程序也可以通过对新数据进行训练来改变。你应该注意到,大量的计算现在比付钱给某人编写一个特定任务的程序要便宜。

鉴于此,机器学习最能解决的一些任务包括:

  • 识别模式:真实场景中的物体,人脸识别或面部表情,口语单
  • 识别异常:不寻常的信用卡交易序列,核电站传感器读数异常模式
  • 预测:未来股票价格或货币汇率,将会感兴趣的电影

什么是神经网络?

神经网络是通用机器学习文献中的一类模型。举个例子,如果你参加一个关于机器学习的Coursera课程,神经网络很可能会被覆盖。神经网络是一组特定的算法,对机器学习领域发生了革命性的变化。它们受到了生物神经网络的启发,目前所谓的深层神经网络已经被证明非常有效。神经网络本身就是一般的函数逼近,这就是为什么它们几乎可以应用于几乎任何机器学习问题,其中问题的关键是学习从输入到输出空间的复杂映射。

以下是说服你学习神经计算的三个理由:

  • 要理解大脑的实际工作原理:它非常庞大而且非常复杂,并且当你戳到它时会死掉。所以我们需要使用计算机模拟。
  • 了解受神经元及其适应性连接启发的并行计算风格:这是一种与顺序计算非常不同的风格。
  • 用新的学习算法来解决实际问题:学习算法是非常有用的,即使它们不是大脑实际工作的方式。

在完成着名的Andrew Ng的机器学习Coursera课程后,我开始对神经网络和深度学习产生兴趣。因此,我开始寻找最好的在线资源来了解这些主题,并找到了Geoffrey Hinton的机器学习神经网络课程。如果你是一个深度学习实践者或想要进入深度学习/机器学习世界的人,你应该真的参加这门课程。Geoffrey Hinton毫无疑问是深度学习世界的教父。而且他在这门课程中提供了一些特别的东西。在这篇博客文章中,我想分享我认为机器学习研究人员应该熟悉的课程中的8个神经网络架构,以推进他们的工作。

通常,这些体系结构可以分为3个特定的类别:

1.前馈神经网络

这些是实际应用中最常见的神经网络类型。第一层是输入,最后一层是输出。如果有多个隐藏层,我们称它们为“深层” 神经网络。它们计算出一系列改变案例之间相似性的转变。每层神经元的活动都是下层中活动的非线性函数。

2.递归神经网络

它们在它们的连接图中有直接的循环。这意味着你有时可以回到你开始的地方。它们可能有复杂的动态,这可能会使它们很难训练。 它们更具生物现实性。

目前在寻找有效的训练回归网方面有很多的兴趣。递归神经网络是建模时序数据的一种非常自然的方法。它们相当于每个时间片具有一个隐藏层的非常深的网络; 除了它们在每个时间片上使用相同的权重并且它们在每个时间片都得到输入。它们有能力长时间记住隐藏状态的信息,但很难训练它们使用这种潜力。

3.对称连接网络

这些就像递归网络,但是单元之间的连接是对称的(它们在两个方向上具有相同的权重)。对称网络比递归网络更容易分析。 因为它们服从能量函数,所以它们在做的事情上也受到更多的限制。没有隐藏单元的对称连接的网络被称为“霍普菲尔德网络”。具有隐藏单元的对称连接网络称为“玻尔兹曼机器”。

1.感知器

考虑到第一代神经网络,感知器只是单个神经元的计算模型。它们是由Frank Rosenblatt在20世纪60年代早期推广的。它们似乎有一个非常强大的学习算法,并且为它们可以学习的东西做了很多重大的宣传。1969年,Minsky和Papers发表了一本名为《感知器》的书,分析了它们可以做什么并展示了它们的局限性。许多人认为这些限制适用于所有的神经网络模型。然而,感知器学习过程在今天仍然被广泛地应用于包含数百万个特性的巨大特征向量的任务。

d6a7f43f542ce95e1916e40cdad529d9bd16872e

在统计模式识别的标准范例中,我们首先将原始输入向量转换为特征激活向量。 然后,我们使用基于常识的手写程序来定义特征。 接下来,我们将学习如何对每个特征激活进行加权以获得单个标量数量。如果这个数量高于某个阈值,我们就决定输入向量是目标类的一个正面例子。

标准的感知器体系结构遵循前馈模型,这意味着输入被发送到神经元中,被处理并产生输出。在下面的图中,这意味着网络是自下而上的:输入来自底部,输出从顶部输出。

ae18e941719150236648596239f9ff3c8e2ff0e6

然而,感知器确实有局限性:如果你遵循手动选择特性并使用足够的特性,那么你几乎可以做任何事情。对于二元输入向量,我们可以为每个指数多的二进制向量分别设置一个特征单元,因此我们可以对二进制输入向量进行任何可能的区分。但是,一旦确定了手工编码的特性,就会对感知器的学习有很大的限制。

这个结果对感知器来说是毁灭性的,因为整个模式识别的重点是识别模式,尽管像翻译这样的转换。Minsky和Papert的“群体不变定理”说,如果转化形成一个群体,学习感知器的部分不能学会这样做。为了处理这种转换,感知器需要使用多个特征单元来识别信息性子模式的转换。所以模式识别的棘手部分必须通过手动编码特征检测器来解决,而不是学习过程。

没有隐藏单元的网络在它们可以学习建模的输入输出映射方面非常有限。更多层次的线性单元不起作用。它仍然是线性的。固定输出非线性是不够的。 因此,我们需要多层自适应非线性隐藏单元。 但我们如何训练这样的网?我们需要一种有效的方法来适应所有的权重,而不仅仅是最后一层。这是很难的。学习进入隐藏单位的权重等同于学习功能。这很难,因为没有人直接告诉我们隐藏单位应该做什么。

2.卷积神经网络

机器学习研究一直以来都集中在对象检测问题上。有很多东西让我们很难识别物体:

分割:真实场景与其他对象混杂在一起。很难分辨哪些部分是同一个对象的一部分。对象的某些部分可以隐藏在其他对象后面。

照明:像素的强度取决于物体的照明程度。

变形:物体以各种非仿射方式变形。一个手写的也可以有一个大的圈,或者只是一个尖头。

可用性:对象类通常由它们的使用方式来定义。例如,椅子是专为坐着而设计的,因此它们具有各种各样的外形。

观点:观点的改变导致标准学习方法无法处理的图像变化。输入维度(即像素)之间的信息跳跃。

设想一个医学数据库,其中患者的年龄有时希望达到通常编码体重的输入维度! 为了应用机器学习,我们首先要消除这种维度跳跃。

复制特征方法是目前神经网络解决目标检测问题的主要方法。它使用不同位置的同一功能检测器的许多不同副本。它也可以在规模和方向上进行复制,这很棘手,也很昂贵。

复制大大减少了要学习的可用参数的数量。它使用了几种不同的特性类型,每个特征类型都有自己的复制检测器映射。它还允许每个图像块以多种方式表示。

那么复制特征探测器是如何实现的?

等效活动:复制的特性不会使神经活动不变量转换。这些活动是等变的。

不变知识:如果在训练过程中某个特性在某些位置有用,那么在测试期间,该特性的检测器将在所有位置都可用。

1998年,Yann LeCun和他的合作者开发出了一种名为LeNet的手写数字识别器。它在具有许多隐藏层的前馈网中使用反向传播,在每层中复制单元的许多映射,汇集附近复制单元的输出,即使它们重叠也能够一次处理几个字符的宽网,以及聪明的训练一个完整的系统,而不仅仅是一个识别器。后来,它被命名为卷积神经网络。 有趣的事实:这个网络用于读取北美地区约10%的支票。

55965578cbd6669a70d443c9cc08f61d795c6783

卷积神经网络可以用于所有与物体识别有关的工作,从手写数字到3D对象。然而,从网上下载彩色照片中的真实物体要比识别手写数字复杂得多。有100倍的类(1000比10),100倍的像素(256 x 256色vs 28 x 28灰色),二维图像的三维场景,杂乱的场景需要分割,以及每个对象中有多个对象图片。相同类型的卷积神经网络会起作用吗?

之后,ILSVRC-2012竞赛在ImageNet上进行,该数据集包含大约120万张高分辨率训练图像。测试图像将显示没有初始注释(无分割或标签),算法将不得不产生指定图像中存在什么对象的标签。一些最优秀的计算机视觉方法是通过来自牛津,INRIA, XRCEa的计算机视觉组来测试的。通常,计算机视觉系统使用复杂的多级系统和早期通常是手工调整通过优化几个参数。

大赛的获胜者Alex Krizhevsky(NIPS 2012)开发了一种非常复杂的神经网络,由Yann LeCun首创。它的体系结构包括7个隐藏层,而不包括一些混合池。早期的层是卷积的,而最后两层是全局连接的。激活函数在每个隐藏层中被纠正为线性单位。这些训练比物流单位训练速度更快,表现力更强。除此之外,当附近的单位有更强的活动时,它还使用竞争性标准化来压制隐藏的活动。这有助于强度的变化。

有几个技术诀窍可以显著提高神经网络的泛化程度:

从256 x 256图像中随机抽取224 x 224个补丁,以获得更多的数据,并使用图像的左右反射。在测试时,结合10个不同补丁的意见:4个224 x 224角补丁加上中央224 x 224补丁加上这5个补丁的反射。

使用dropout在全局连接的层中调整权重(包含大多数参数)。中途退出意味着每一个训练实例中,有一半的隐藏单元被随机移除。这阻止了隐藏单位过多地依赖其他隐藏单位。

65bd3d4e89f61dab78bab05ae04b03e4a0264694

就硬件要求而言,Alex在2个Nvidia GTX 580 GPU(超过1000个快速小内核)上使用了非常高效的卷积网络实现。GPU非常适合矩阵矩阵乘法,并且还具有非常高的内存带宽。这使他可以在一周内训练网络,并使测试时快速结合10个补丁的结果。如果我们能够以足够快的速度交流状态,我们可以在许多核心上扩展网络。随着核心越来越便宜,数据集越来越大,大型神经网络将比老式计算机视觉系统提高得更快。

下文我们继续介绍另外6种神经网络架构,希望可以给大家带来帮助。


数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《The 8 Neural Network Architectures Machine Learning Researchers Need to Learn

作者:Nand Kishor译者:董昭男,审校:

文章为简译,更为详细的内容,请查看原文 

相关文章
|
13天前
|
运维 监控 安全
|
10天前
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】循环神经网络(RNN)与LSTM详解
【4月更文挑战第30天】本文探讨了处理序列数据的关键模型——循环神经网络(RNN)及其优化版长短期记忆网络(LSTM)。RNN利用循环结构处理序列依赖,但遭遇梯度消失/爆炸问题。LSTM通过门控机制解决了这一问题,有效捕捉长距离依赖。在Python中,可使用深度学习框架如PyTorch实现LSTM。示例代码展示了如何定义和初始化一个简单的LSTM网络结构,强调了RNN和LSTM在序列任务中的应用价值。
|
10天前
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】卷积神经网络(CNN)的原理与应用
【4月更文挑战第30天】本文介绍了卷积神经网络(CNN)的基本原理和结构组成,包括卷积层、激活函数、池化层和全连接层。CNN在图像识别等领域表现出色,其层次结构能逐步提取特征。在Python中,可利用TensorFlow或PyTorch构建CNN模型,示例代码展示了使用TensorFlow Keras API创建简单CNN的过程。CNN作为强大深度学习模型,未来仍有广阔发展空间。
|
10天前
|
机器学习/深度学习 自然语言处理 语音技术
【Python 机器学习专栏】Python 深度学习入门:神经网络基础
【4月更文挑战第30天】本文介绍了Python在深度学习中应用于神经网络的基础知识,包括神经网络概念、基本结构、训练过程,以及Python中的深度学习库TensorFlow和PyTorch。通过示例展示了如何使用Python实现神经网络,并提及优化技巧如正则化和Dropout。最后,概述了神经网络在图像识别、语音识别和自然语言处理等领域的应用,并强调掌握这些知识对深度学习的重要性。随着技术进步,神经网络的应用将持续扩展,期待更多创新。
|
10天前
|
机器学习/深度学习 安全 网络安全
数字堡垒的构筑者:网络安全与信息安全的深层剖析构建高效微服务架构:后端开发的新趋势
【4月更文挑战第30天】在信息技术高速发展的今天,构建坚不可摧的数字堡垒已成为个人、企业乃至国家安全的重要组成部分。本文深入探讨网络安全漏洞的本质、加密技术的进展以及提升安全意识的必要性,旨在为读者提供全面的网络安全与信息安全知识框架。通过对网络攻防技术的解析和案例研究,我们揭示了防御策略的关键点,并强调了持续教育在塑造安全文化中的作用。
|
10天前
|
机器学习/深度学习 数据采集 安全
基于机器学习的网络安全威胁检测系统
【4月更文挑战第30天】 随着网络技术的迅猛发展,网络安全问题日益凸显。传统的安全防御机制在应对复杂多变的网络攻击时显得力不从心。为了提高威胁检测的准确性和效率,本文提出了一种基于机器学习的网络安全威胁检测系统。该系统通过集成多种数据预处理技术和特征选择方法,结合先进的机器学习算法,能够实时识别并响应各类网络威胁。实验结果表明,与传统方法相比,本系统在检测率、误报率以及处理速度上均有显著提升,为网络安全管理提供了一种新的技术手段。
|
11天前
|
机器学习/深度学习 数据采集 监控
构建高效机器学习模型的策略与实践云端防御:融合云计算与网络安全的未来策略
【4月更文挑战第29天】 在数据驱动的时代,构建一个高效的机器学习模型对于解决复杂问题至关重要。本文将探讨一系列策略和最佳实践,旨在提高机器学习模型的性能和泛化能力。我们将从数据处理的重要性入手,进而讨论模型选择、训练技巧、超参数调优以及模型评估方法。通过这些策略的实施,读者将能够构建出更加健壮、准确的模型,并有效地避免过拟合和欠拟合问题。
|
12天前
|
机器学习/深度学习 安全 算法
学习机器学习(ML)在网络安全中的重要性
机器学习(ML)是人工智能的一个分支,它使用算法来使计算机系统能够自动地从数据和经验中进行学习,并改进其性能,而无需进行明确的编程。机器学习涉及对大量数据的分析,通过识别数据中的模式来做出预测或决策。这些算法会不断地迭代和优化,以提高其预测的准确性。
18 0
|
16天前
|
机器学习/深度学习 数据挖掘 数据中心
利用机器学习优化数据中心能效的策略研究
【4月更文挑战第24天】在数据中心管理和运营中,能效优化是一个长期存在的挑战,它直接关系到成本控制和环境影响的减轻。随着人工智能技术的不断进步,特别是机器学习(ML)方法的广泛应用,为解决数据中心能效问题提供了新的途径。本文旨在探讨如何通过机器学习技术对数据中心的能源消耗进行建模、预测和优化,以实现更高的能效。我们首先分析了数据中心能耗的主要组成部分,然后提出了一种基于机器学习的能效优化框架,并详细阐述了关键技术和方法。最后,通过实验验证了所提出策略的有效性,并讨论了未来的研究方向。