-
传统机器学习和深度神经网络对比
2020-04-29 00:42:53Table of ContentAlpha GO神经网络从工业的角度对比传统机器学习和深度神经网络 Alpha GO 虽然大家会说AlexNet是深度学习的开始,但真正引爆整个AI行业的可以说是Alpha GO(人称阿尔法狗)。Alphabet子公司Deepmind...Table of Content
Alpha GO
虽然大家会说AlexNet是深度学习的开始,但真正引爆整个AI行业的可以说是Alpha GO(人称阿尔法狗)。Alphabet子公司Deepmind开发的围棋算法在01博弈游戏上成功击败人类,除了传统的把神经网络往深里走,然后通过过去对局的学习意外,还加入了一些探索性的策略使得人们认为它将是未来的AI发展方向。如果你英语够好也可以直接阅读它的原文,这里并不是我想说的重点。我们要沉下心来反思这个浮躁的技术。
神经网络
一种传统的机器学习方法,它就好像是一颗横着放的树加上一些策略,看起来像人类的思考方式。它有人脑神经元的特质,像生物感受器一样。有多个输入端和多个输出端。同一个细胞可能要受到多个来源的输入才可能传播到下个神经细胞。
神经网络完美地复制了这一结构,它早在上个世纪初就已经有人用电阻地方式去模拟这样地算法,可是最终以失败告终,最直接地原因就是能力不是几十个神经元可以体现出来的。像万金油ResNet152的层数到达了152层神经网络,训练的过程对显卡要求是非常的高,如果使用Pytorch那么请自己查2019年Nvidia 2080Ti 8G现存以上显卡价格。不得不佩服人脑的伟大,可以提供几亿个这样的网络同时互相作用。
但实际上它完全无法突破的就是对于一个问题的定义范围。比如,你让Alpha GO去试试英雄联盟?因此神经网络只是一种像显微镜一样的工具,在某些场合能够超越人类,但最后还是一个解决问题的工具而已(离通过图灵测试还远着呢)。它在复杂的现实世界里,应用的范围也是有限的,受到数据集和网络设计的限制。更重要的是对于深层次的网络平民级显卡是无法承受。除非有无限的时间和无限石子。
然而传统的机器学习算法并没有以上的问题。他们深知自己是一门工具,有效地为工业界提供稳定可靠解决方法。所以现在比较突出的深度神经网络应用有Computer Vision, Natural Language Processing和Recommendation System里。除了NLP以外,其余两个方向算是找到了自己的金主,但Recommendation System算是一个比较不正宗的神经网络,后面文章会对比。由于个人还没有时间深入到NLP的领域太深,我就从CV和RS两个方向,对深度网络做个简单评判。
从工业的角度对比传统机器学习和深度神经网络
在学深度神经网络的时候有个词汇就定好传统机器学习和深度神经网络的应用范围,那就是可解释性。当深度神经网络只有几层的时候我们可以用卷积核的感受野来解释它的合理性。可随着网络深层化,一些Dropout、BN层使得它就像变了一个人似的无法解释为什么会这么做的黑盒子。
有这么一种观点,工业界不允许大量运用这么摸棱两可的技术,因为它无法证明它自己的正确性,就好比我们不可以用深度神经网络去测算桥梁的稳定程度,也不可以在食品生产的某个环节相信那91%的准确性,因为那8%的错误会导致工业血本无归,无法证明它的正确意味着跟一部分的工业完全脱钩。但过分的追求可解释就等于没有隐私!这也是不符合工业界的思路,也是深度神经网络的机会。设计网络地时候可以结合传统机器学习,也许也能提高不少可解读。所以深度神经网络在各种行业探索中前行。
-
机器学习:深度神经网络
2019-08-19 10:18:41文章目录基本概念神经网络的介绍神经元深度神经网络(大于两层就可以称为深度神经网络)感知器与神经网络感知器神经网络用符号标识神经网络一个神经元的数学表示一层神经元的数学表示神经网络计算流程激活函数为什么...文章目录
基本概念
神经网络的介绍
神经网络是为了模拟人的大脑
神经网络起源于1943年,A Logical Calculus of Ideas Immanent in Nervous Activity , 使用一个间划过的计算模型来描述在动物的大脑中,神经元如何通过命题逻辑来实现复杂的计算。在80年代流行过一阵,但是到了90年代后期,由于各种原因,应用逐渐消失了,近几年,神经网络又火了起来
神经元
生物神经元:由包含细胞核和大部分细胞复合成分的细胞体组成。有许多分枝延伸的部分称为树突,一个非常长的延伸称为轴突。轴突的长度肯呢个比细胞体长几倍,或者长达几万倍,在其极端附近,轴突分裂成许多被称为终树突的分支,在这些分支的尖端是称为突触终端的微小结构,它会连接到其他神经元的树突(或者直接连接到细胞体)。生物神经元通过这些突触接受从其他细胞发来的很短的电脉冲,这种脉冲被称为信号。当一个神经元在一定的时间内收到足够多的信号,就会发出它自己的信号
一只猫大约有10亿个神经元,一只老鼠大约有7500万个神经元,一只蟑螂大约有100万个神经元。相比之下,许多人工神经网络包含的神经元要少得多,通常只有几百个,所以我们在不久的将来随时创建一个人工大脑是没有危险的
深度神经网络(大于两层就可以称为深度神经网络)
感知器与神经网络
感知器
神经网络
用符号标识神经网络
一个神经元的数学表示
一层神经元的数学表示
神经网络计算流程
激活函数
为什么需要非线性激活函数
如果你使用线性激活函数,或者没有激活函数,那么无论你的神经网络有多少层,
你一直在做的只是计算线性激活函数(两个线性组合的本身就是线性组合),
所以隐藏层就没有用了
常见激活函数
激活函数的导数
sigmoid
tanh
ReLu和Leaky ReLu
如何训练神经网络
我们使用反向传播来训练神经网络
反向传播的理解
反向传播的理解: 对于每一个训练实例,算法将其发送到网络中并计算每个连续层中的每个神经元的输出(这是正向过程,与做预测的过程一样)。然后它会度量网络的输出误差(对比期望值和实际的网络输出)
然后,它会计算最后一个隐藏层中的每个神经元对输出神经元的误差的贡献度。
之后,他继续血量这些误差贡献中有多少来自前一个隐藏层中的每一个神经元,这个过程一直持续到输入层(也就是第一层)这个反向传递过程通过在网络中向后传播误差梯度有效的测量网络中所有连接权重的误差梯度(这也是它名字的来源)
计算图
在学习反向传播之前,我们需要了解一下计算图
计算图的导数
神经网络的梯度下降
神经网络的传播过程
神经网络的传播过程的公式推导
总结
神经网络: 正向传播:利用输入值算出预测值 对神经网络逐层进行计算 步骤: (1)对神经网络第一层计算 1. 对第一层第一个神经元计算 1)应用线性函数计算 2)应用非线性函数计算(激活函数:Sigmod,Tanh,Relu,Leaky Relu) 2. 对第一层第二个神经元计算... 3... (2) 对神经网络第二层计算... 反向传播:通过损失函数(真实值-预测值),应用梯度下降,来计算出当w[1],b[1],w[2],b[2]为何值时,损失函数值最小 导数的意义:通过导数,我们能知道损失函数的损失值的来源; 反向传播的核心:通过导数,得到损失函数的来源,然后减少/增大来源,来调式w,b 步骤: (1)对最后一层求导 1.我们已知的,不用求的有损失函数;所以我能要拿损失函数进行求导 2.dL/da, a = sigmod(z) 3.dL/dz = dL/da * da/dz 4.dL/dw = dL/da * da/dz * dz/dw; dL/db = dL/da * da/dz * dz/db (2)对倒数第二层求导 1. dL/w[1] = dL/dz[2] * dz[2]/da[1] * da[1]/dz[1] * dz[1]/dw[1] 2. dL/b[1] = dL/dz[2] * dz[2]/da[1] * da[1]/dz[1] * dz[1]/db[1] (3)...直到第一层
神经网络的优化
DropOut正则化
Inverted DropOut反向随机失活
d3 = np.randm.rand(a3.shape[0], a3.shape[1]) < keep_prob
a3 = np.multiply(a3, d3)
a3 /= keep-prob
假设有50个神经元, keep-prob = 0.8, 也就意味着10个左右的神经元要设为0
在这种情况下, z = wa + b 就要减少20%, 这样呢,z会越来越小
为了弥补这种情况,我们需要对a进行弥补,弥补的方式就是用a/keep_prob
梯度下降的优化算法
指数加权平均
指数加权平均(exponentially weighted averges),也叫指数加权移动平均,是一种常用的序列数据处理方式。
它的计算公式如下:
其中:- θ_t:为第 t 天的实际观察值,
- V_t: 是要代替 θ_t 的估计值,也就是第 t 天的指数加权平均值,
- β: 为 V_{t-1} 的权重,是可调节的超参。( 0 < β < 1 )
例如:
我们有这样一组气温数据,图中横轴为一年中的第几天,纵轴为气温:
直接看上面的数据图会发现噪音很多,
这时,我们可以用 指数加权平均 来提取这组数据的趋势,
按照前面的公式计算:
这里先设置 β = 0.9,首先初始化 V_0 = 0,然后计算出每个 V_t:
将计算后得到的 V_t 表示出来,就得到红色线的数值:
可以看出,红色的数据比蓝色的原数据更加平滑,少了很多噪音,并且刻画了原数据的趋势。
指数加权平均,作为原数据的估计值,不仅可以- 抚平短期波动,起到了平滑的作用,
- 还能够将长线趋势或周期趋势显现出来。
所以应用比较广泛,在处理统计数据时,在股价等时间序列数据中,CTR 预估中,美团外卖的收入监控报警系统中的 hot-winter 异常点平滑,深度学习的优化算法中都有应用。
动量梯度算法
RMSprop
Adam
Softmax(归一化)
-
TensorFlow深度学习:深度神经网络在机器学习任务中的应用
2021-01-28 17:45:06基于Python的Jupyter笔记本中提供了克服常见陷阱的技巧,以及实际可操作可运行的代码,通过应用这些技巧和代码,掌握这种基础知识,可使那些以前不了解神经网络的人能够构建强大的最先进的深度学习模型。 -
写给人类的机器学习 四、神经网络和深度学习
2017-10-18 22:50:10四、神经网络和深度学习 原文:Machine Learning for Humans, Part 4: Neural Networks & Deep Learning 作者:Vishal Maini 译者:飞龙 协议:CC BY-NC-SA 4.0 深度神经网络的工作地点、原因和方式。...四、神经网络和深度学习
原文:Machine Learning for Humans, Part 4: Neural Networks & Deep Learning
作者:Vishal Maini
译者:飞龙
深度神经网络的工作地点、原因和方式。从大脑中获取灵感。卷积神经网络(CNN)和循环神经网络(RNN)。真实世界中的应用。
使用深度学习,我们仍然是习得一个函数
f
,将输入X
映射为输出Y
,并使测试数据上的损失最小,就像我们之前那样。回忆一下,在 2.1 节监督学习中,我们的初始“问题陈述”:Y = f(X) + ϵ
训练:机器从带标签的训练数据习得
f
测试:机器从不带标签的测试数据预测
Y
真实世界很乱,所以有时
f
很复杂。在自然语言问题中,较大的词汇数量意味着大量特征。视觉问题设计大量的像素相关的视觉信息。玩游戏需要基于复杂场景做决策,也带有许多可能的未知。当我们处理的数据不是很复杂时,我们目前涉及的学习机制做的很好。但是,它们如何推广到像这样的场景,还不清楚。深度学习非常善于习得
f
,特别是在数据很复杂的场景中。实际上,人工神经网络也被成为通用函数近似器,因为它们能够学习任何函数,无论多么扭曲,都只需要一个隐藏层。让我们看看图像分类的问题。我们选取一张图片作为输入,并输出一个分类(例如狗、猫、车)。
通过图解,深度神经网络的图像分类解决方式,类似于这样:
图片来自 Jeff Clune 在 YouTube 上的一小时深度学习概览
但是说真的,这是个巨大的数学方程,有数百万个项和大量参数。假设输入
X
是灰度图像,由w*h
的像素亮度矩阵表示。输出Y
是每个分类的概率的向量。也就是说,我们输出“每个分类是正确标签”的概率。如果这个神经网络能用的话,最高的概率就是正确的分类。然后,中间的层仅仅计算大量的矩阵相同,通过在每个隐藏层之后,使用非线性变换(激活函数),对激活值x
的权重求和,来让神经网络习得非线性函数。难以置信的是,你可以使用梯度下降,以 2.1 节中我们对线性回归所做的相同方式,使损失最小。所以使用大量样本和大量梯度下降,模型可以习得如何正确分类动物图片。这个,简单来说,就是“深度学习”。
深度学习做得好的地方,以及一些历史
人工神经网络实际上有很长时间了。它们的应用可追溯到控制论(cybernetics,1940s~1960s),连接机制(connectionism,1980s~1990s),之后变成了流行的深度学习。大约在 2006 年,神经网络开始变得“更深”(Goodfellow 等,2016)。但是最近我们才开始触及它们的全部潜能。
就像 Andrej Karpathy(特斯拉的 AI 总监,它被认为是深度学习的 Shaman)描述的那样,有四个“将 AI 带回来”的不同因素:
- 计算(最明显的一个:摩尔定律,GPU,ASIC)
- 数据(以不错的形式,并不在互联网上某处,也就是 ImageNet)
- 算法(研究和理念,也就是 backprop, CNN, LSTM),以及
- 基础设施(你下面的软件,Linux, TCP/IP, Git, ROS, PR2, AWS, AMT, TensorFlow, 以及其它)(Karpathy, 2016)。
在过去的十年当中,深度学习的全部潜能,最红被(1)和(2)的进步解锁,它反过来产生了(3)和(4)的突破。并且这个循环仍在继续,成倍的人们不断参与到深度学习研究的前线中,沿着这条路(想想你现在做的事情)。
由 NVIDIA 演示,它是一家
核弹GPU 领导厂商。GPU 最开始为游戏构建,但是最终很好地顺应了深度学习所需的并行计算。在这一章的剩余部分中,我们提供一些来自生物和统计的被寂静,来解释神经网络里面发生额了什么,之后讨论深度学习的一些神奇应用。最后,我们链接到一些资源,所以你可以自行应用深度学习,甚至穿着睡衣坐在沙发上,拿着笔记本,在特定种类的问题上快速实现超越人类级别的表现。
从大脑中(或者只是统计?)获取灵感:神经网络中发生了什么
神经元、特征学习和抽象层次
当你阅读这些词汇的时候,你并没有检查每个词的每个字,或者组成字的每个像素,来获得单词的含义。你从细节中将东西抽象、组装成高阶的概念:词、短语、句子、段落。
Yuor abiilty to exaimne hgiher-lveel fteaures is waht aollws yuo to unedrtsand waht is hpapening in tihs snetecne wthiout too mcuh troulbe (or myabe yuo sned too mnay dnruk txets).
(你检测高阶特征的能力,让你理解句子中发生的东西,而不会太麻烦(或者可能你发送了大量的乱序文本)。
视觉上发生的事情相同,这并不仅仅在人类,也在动物的视觉系统中。
大脑由神经元组成,它们在足够“激活”之后,通过向其他神经元发送电信号来“触发”。这些神经元都是可塑的,根据有多少来自神经元的信号添加到当前神经元的激活水平上(大概来说,将神经元彼此连接的权重最后会被训练,使神经连接更加有用,就像线性回归中的参数可以被训练,来改进输入到输出的映射)。
生物和人工神经网络的端到端的演示,来自斯坦福 CS231n。这个比喻不是很严谨,生物神经元可以做人工神经元不能做的事,反之亦然。但是理解生物中的灵感十分有用。更多细节请见生物和人工神经元的维基百科的描述。
我们的生物网络以层次方式排列,以便特定神经元最终检测我们周围的世界的,不是极其特定的特征,而是更加抽象的特征,也就是,更低阶的特征的规律或者分组。例如,人类视觉系统中的纺锤状脸部区域可特别用于人脸识别。
持续学习抽象特征的演示,来自 NVIDIA。
人工神经网络如何选取原始像素输入,开发中介“神经元”来检测高阶特征(也就是鼻子的存在),以及组合它们的输出来创建最终输出。来自《神经网络和深度学习》(Nielsen, 2017)。
生物神经网络表现出的层次结构最早于 1950s 发现,当研究员 David Hubel 和 Torsten Wiesel 研究猫的视觉皮层中的神经元的时候。在给猫大量刺激之后,它们不能观察到神经活动:暗点、亮点、挥手、甚至是杂志上的女性照片。但是在它们的失望中,它们从投影仪中移除了对角线处的照片,它们注意到了一些神经活动。结果是,位于某个特定角度的,对角线上的边能够导致特定的神经元被激活。
这样就逐渐有意义了,因为自然环境通常是嘈杂和随机的(想想草原和荒野)。所以当野外的猫感知到一条“边”的时候,也就是一条不同于背景的线,这可能表明,一个物体或者生物进入了视野范围。当边缘的神经元的特定组合被激活时,这些活动会集体产生更加抽象的活动,以此类推,直到最终的抽象是个有用的概念,比如“鸟”或者“狼”。
深度神经网络背后的概念就是,使用人工神经网络的层次来模拟类似的结构。
为什么线性模型不能用
为了提炼斯坦福的优秀的深度学习课程,CS231n:卷积神经网络和视觉识别,想象我们打算训练一个神经网络,使用下列标签的正确的那个来分类图像:
["plane", "car", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]
。一种方式可能是,使用训练样本为每个分类构造一个“模板”,或者平均图像,之后使用最近邻算法,在测试期间来度量每个未分类图像的像素值,到每个模板的距离。总的来说是这样。这个方法不涉及任何抽象层次。这是个线性模型,将每个图像类型的所有不同的方向组合为一个平均的影子。
例如,它可以选取所有的车,无论它们面向左边、右边、中间,也无论它们的颜色,只是将它们平均。模板最终看起来非常模糊。
来自斯坦福 CS231n 第二篇讲义的样本。
要注意,上面的马的模板出现了两个头。这对我们并没什么帮助:我们想要能够分别检测头朝右边或者头朝左边的马,并且如果这些特征的任何一个被检测到了,我们就说我们看到了一匹马。深度神经网络提供给我们这种灵活性,我们会在下一节中看到。
深度神经网络使用抽象层来解决图像分类问题。
为了重复我们在这一节之前解释的东西:输入层接受图像的原始像素亮度。最终的层级会是类概率的输出向量(也就是图像是猫、车子、马,以及其他的概率)。
但是我们不习得一个简单的,和输入输出相关的线性模型。我们构造网络中间的隐藏层,它们会渐进学习抽象特征,这让我们不会丢失复杂数据中的所有细微差异。
就像我们描述的动物大脑检测抽象特征,隐藏层中的人工神经元会学着检测抽象概念,无论哪个概念,只要它对于捕捉最多信息,以及使网络输出的准确度中的损失最小非常实用(这是个发生在网络中的,无监督学习的实例)。
这损失了模型的可解释性,因为当你添加更多隐藏层时,神经元开始表示越来越多的抽象和无法理解的特征。在这个层面上,你可能听说,深度学习也被称作“黑箱优化”,其中你基本上只是随机尝试一些东西,然后观察出现了什么,而无需真正理解里面发生了什么。
线性回归是可解释的,因为你决定了模型中包含哪个特征。深度神经网络难以解释,因为习得的特征在任何地方都不能用自然语言解释。它完全在机器的想象中。
一些值得注意的扩展和深层概念
深度学习软件包。你很少需要从零开始实现神经网络的所有部分,因为现有的库和工具使深度学习更加易于实现。有许多这类东西:TensorFlow, Caffe, Torch, Keras, 以及其它。
卷积神经网络(CNN)。CNN 特地为接受图像输入而设计,并且对于计算机视觉任务非常高效。它们也有助于深度增强/强化学习。CNN 的灵感特别来源于动物的视觉皮层的工作方式,并且它们是深度学习课程的热点。我们已经在文章中引用它了,就是斯坦福 CS231n。
循环神经网络(RNN)。RNN 拥有内建记忆的概念,并且非常适合语言问题。它们在强化学习中也很重要,因为它们让智能体能够跟踪东西在哪里,以及之前发生了什么,甚至在那些东西不能一次性看到的时候。Christopher Olah 编写了一个非常棒的,在语言问题的语境中的, RNN 和 LSTM 的参考文献。
深度增强/强化学习。这是深度学习研究中的最刺激的领域之一,处在近期研究的核心位置,例如 OpenAI 击败了 Dota2 职业玩家,以及 DeepMind 的 AlphaGo 在围棋竞技中胜过人类。我们在第五章会深度,但是本质上的目标是将这篇文章中的所有技术,应用于一个问题,教会智能体使回报最大。这可以用于与任何可以游戏化的环境,从真实的游戏,例如反恐精英或者吃豆人,到无人驾驶的汽车,或者股票交易,最终到真实生活和真实世界。
深度学习应用
深度学习正在重构世界的几乎每个领域。这里是深度学习可以做的无法置信的事情的示例:
Fackbook 训练了一个神经网络,由短时记忆加持,来智能地回答《指环王》情节中的问题。
来自 FAIR(Facebook AI 实验室)的研究,将加持了分离的短时记忆的深度神经网络,应用于回答 LOTR 情节的问题。这是史诗级的定义。
无人驾驶的汽车依赖深度学习,用于解决视觉任务,例如理解路面标志,检测道路和识别障碍。
深度学习可以用于有趣的东西,例如艺术生成。一个叫做 Neural Style(神经风格)的工具可以模拟艺术家的风格,并且用它来重新组合另一幅图片,令人难以置信。
梵高的《星夜》的风格应用于斯坦福校园的图像上,通过 Justin Johnson 的 neural style 实现:https://github.com/jcjohnson/neural-style
其它值得注意的示例包括:
预测药物发现中的分子的生物活性。
用于照片和视频标注的人脸识别。
增强谷歌搜索的结果。
自然语言理解和生成,也就是谷歌翻译
火星探索者机器人“好奇号”,基于视觉检测,自动选取值得检查的土壤目标。
…以及很多,非常多,太多了。
现在开始去做吧!
对于神经网络如何实际建立,我们这里没有涉及太多细节。因为你通过自己实现,更易于理解细节。这里是一些非常棒的实践资源,用于起步。
使用谷歌的 Neural Network Playground 玩转神经网络的架构,来看看不同的配置如何影响网络的性能。
使用这篇谷歌的教程快速准备好并起步:TensorFlow 和深度学习。以超过 99% 的准确度分类手写数字,你不需要是 PhD,只需要在三个小时内,熟悉 TensorFlow 以及学习深度学习概念。
之后,浏览斯坦福 CS231n 的至少前几篇讲义,以及第一个作业,从零开始构建双层的神经网络,来实际强化这篇文章中涉及的概念。
更多资源
深度学习是个非常广阔的领域。因此,我们也编译了一些最佳资源,我们在这个话题中遇到过它们,以便你打算深入了解。
CS231n:卷积神经网络和视觉识别,斯坦福的深度学习课程。我看过的最佳课程,带有不错的讲义和演示性问题集。
神经网络和深度学习,易读,但很严谨。
深度学习圣经,基础,更加数学化。
Fast.ai,不是很理论化,更加应用和黑箱。
查看 Greg Brockman 对“作为工程师,什么是修炼深度学习技能的最佳方式?”问题的回答,在 Quora 上。
下一章:到了玩游戏的时候了!
最后是第五章:强化/增强学习。
-
随机森林优于神经网络的三个理由——对比机器学习和深度学习
2020-03-06 17:59:33有证据显示神经网络优于许多领域的机器学习算法。后者不断学习,直到得出满足预测值的最佳功能集。 然而神经网络将变量放大成一系列的数字,一旦它完成了学习阶段,对我们来说,特征就变得无法区分了。 如果只...全文共1716字,预计学习时长5分钟
来源:ijava
有证据显示神经网络优于许多领域的机器学习算法。后者不断学习,直到得出满足预测值的最佳功能集。
然而神经网络将变量放大成一系列的数字,一旦它完成了学习阶段,对我们来说,特征就变得无法区分了。
如果只考虑预测,神经网络就是一直使用的事实上的算法。但是在行业环境中需要模型,它可以为利益相关者赋予特性或变量意义。这些利益相关者可以是任何人,不只是懂深度学习或机器学习知识的人。
随机森林和神经网络最大的区别是什么?
随机森林和神经网络是不同的技术,学习方式不同,但可以在类似的领域使用。随机森林是机器学习的技术,而神经网络则是深度学习的技术。
什么是神经网络?
神经网络是计算模型网络,它大体上模拟了人类大脑皮层功能,可以复制出和人类一样的思维和感知方式。神经网络是由相互连接的节点组成的层次结构,这些节点包含计算网络输出的激活函数。
神经网络是机器学习的另一种方法,计算机通过分析训练样本学习执行任务。因为神经网络大致模拟人脑,所以会包括成千上万个相互连接的节点。一个节点可以连接到它下级层中接收数据的几个节点,以及它上级层接收数据的几个节点。每个输入数据点接收一个权值,会对其进行加减乘除运算。如果加权和等于零,就会增加一个偏差,然后传递给激活函数。
神经网络的结构
神经网络有3个基本结构
1. 单层前馈网络
· 它是感知器的扩展,是最简单的网络。输入层和输出层之间有额外的隐藏节点。
2. 多层前馈网络
· 除了输入和输出外,这种类型的网络还有一个或多个隐藏层。它负责输入层和输出层之间的数据传输。
3.递归网络
· 递归神经网络与上述两者类似,但广泛应用于文本和时间等序列数据的预测。最有名的递归神经网络就是“长短记忆”模型(LSTM)。
什么是随机森林?
随机森林是决策树的集合,因此,最终节点/叶节点将是分类问题的多数类或回归问题的平均类。
一个随机森林会长出许多分类树,对于树的每个输出,称之为该树为该类的“投票”。树是这么生长起来的:
1. 每棵树行的随机样本从训练数据中抽取。
2. 从步骤1选出样本后,利用特征子集在选出的树上进行拆分。
3. 每棵树都按照参数指定的最大范围生长,直到它对类进行投票。
为什么推荐随机森林?
使用随机森林而非决策树的根本,是将多个决策树的预测组合成一个模型。逻辑就是一个由许多平庸的模型组成的模型,仍然优于一个单一的好模型。看看随机森林的主流表现,就知道这是有道理的。因此,随机森林不易产生过拟合。
在决策树这样的柔性模型中,可能会出现过拟合,模型会记住训练数据,并学习数据中的任何干扰。这将使它无法预测测试数据。
随机森林可以将多棵树组合成一个集合模型,这能降低决策树等柔性模型的高方差。
来源:tuxi
相比于神经网络,什么时候该使用随机森林?
随机森林计算成本较低,不需要依靠GPU完成培训。随机森林可以提供决策树的不同解释,并且具有更好的性能。神经网络需要普通人手头更多的数据才能真正有效。神经网络只会简单地破坏特征的可解释性,以至于为了性能而变得毫无意义。虽然听起来有些道理,但还是要看每个项目具体分析。
如果目标是创建预测模型,不考虑变量的影响,强烈推荐神经网络,但是需要资源来实现这一点。如果需要了解变量,那么不管个人喜好,在这种情况下通常会发生的情况是:性能受到轻微的影响,以确保仍然可以了解每个变量是如何为预测模型作贡献。
如果你还有什么补充,欢迎在评论区留言哟~
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)
-
自然语言处理、人工智能、机器学习、深度学习和神经网络之间的介绍
2018-12-12 20:33:24人工智能:建立能智能化处理事物的系统。...深度学习:在大型数据集上,建立使用深度神经网络的系统,机器学习的一个分支。 1.如何快速入门NLP自然语言处理概述 http://www.duozhishidai.com/arti... -
深度随机森林_随机森林优于神经网络的三个理由——对比机器学习和深度学习...
2020-12-06 00:22:57全文共1716字,预计学习时长5分钟来源:ijava有证据显示神经网络优于许多领域的机器学习算法。后者不断学习,直到得出满足预测值的最佳功能集。然而神经网络将变量放大成一系列的数字,一旦它完成了学习阶段,对我们... -
人工智能,神经网络,机器学习,深度学习和大数据小抄来了,快打印出来贴在桌子上吧
2019-12-16 02:41:23Stefan Kojouharov 在网上分享了一份很不错的AI资料。 在过去的几个月中,我一直在收集AI备忘单。...神经网络 神经网络图 机器学习概述 机器学习:Scikit学习算法 机器学习:算法备忘单 数据科学P... -
NLP、人工智能、机器学习、深度学习和神经网络之间的关系,它们之间有什么区别?
2019-09-10 19:47:33人工智能:建立能智能化处理事物的系统。 自然语言处理:建立能够理解语言的系统,人工智能的一个分支。 机器学习:建立能从经验中进行学习的系统,...人工智能,机器学习和深度学习之间,主要有什么差异? 人工智能... -
人工智能、机器学习、深度学习和神经网络的区别
2019-09-18 19:05:12深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。 深度学习与神经网络 ... -
深度学习 2 机器学习 神经网络 卷积神经网络
2017-06-08 22:11:44机器学习 无监督学习 监督学习 半监督学习 强化学习 经验中总结提升 遗传算法 适者生存不是者淘汰什么是神经网络 Neural Network 人工神经元 数学模型 计算机模型 人工神经网络在外界信息的基础上改变内部... -
β的深度学习笔记(二)机器学习和神经网络
2020-05-14 16:21:56两个博客:关于机器学习和神经网络的: 博主:计算机的潜意识 链接: https://www.cnblogs.com/subconscious/p/5058741.html https://www.cnblogs.com/subconscious/p/4107357.html#first 一、机器学习: ... -
机器学习和深度学习.ppt
2020-06-29 07:46:51机器学习与深度学习 口机 神经元网 口深层神经元网络 口延伸和应用 口深层学习实现架构 口未来和思考 3+b=10 a=? b=? x7=(X1,X2,Xp) Y=A+X3B3 -
一文搞定人工智能、机器学习、深度学习和人工神经网络的关系
2020-06-03 13:57:37大数据、云计算、机器学习的技术应用,已经使得IT从业者的门槛越来越高。套用一句樊登读书会的宣传口号“keep learning”,保持对新鲜技术的好奇心,保持对技术应用的责任心,持续关注、学习是每个IT从业者的必备... -
区分机器学习和深度学习
2020-02-21 01:41:34区分机器学习和深度学习 机器学习是人工智能的一种子集,它为机器提供了自动学习和改进的能力,无需任何明确的编程。而深度学习,机器学习的子集,能够做出直觉得人工神经网络。 ... -
机器学习、深度学习、神经网络、目标检测、卷积神经网络等相关名词解释、理解和含义
2021-02-07 21:40:41几大名词范围: 机器学习: -
机器学习中的深度学习与神经网络
2018-10-18 14:56:021. 目标 在本教程中,我们将重点介绍深度学习。...而且,机器学习通过神经网络完成。这旨在模仿人类的决策能力。 机器学习工具和技术是两个关键的窄子集。这只关注深度学习。此外,我们需要应用它来解决任何问... -
机器学习和深度学习综述
2020-06-10 09:04:14机器学习1:机器学习的实现2:机器学习的方法论3:案例:牛顿第二定律4:确定模型参数5:模型结构介绍三:深度学习1:神经网络的基本概念2:深度学习的发展历程3:深度学习的研究和应用蓬勃发展4:深度学习改变了AI应用... -
机器学习——深度学习之卷积神经网络(CNN)——LeNet卷积神经网络结构
2020-06-15 15:06:22图 LeNet卷积神经网络结构前接:《机器学习——深度学习之数据库和自编码器》 一、LeNet卷积神经网络结构 1、卷积神经的作用 由手工设计卷积核转换为自动学习卷积核 卷积公式有很多:如傅里叶变换、小波变换等 ... -
人工智能、机器学习、深度学习、神经网络的区别
2020-03-15 17:14:29人工智能、机器学习、深度学习、神经网络的区别 人工智能、机器学习、深度学习的包含关系如上图所示 1 人工智能 人工智能是计算机科学的一个分支, 它试图让人们了解智能的实质,并生产出一种新的能以与人类智能相似... -
非深度学习的机器学习库_最好的机器学习和深度学习库
2020-07-09 10:18:30非深度学习的机器学习库 如果您要开始一个新的机器学习或深度学习项目,则可能会对选择哪种框架感到困惑。 正如我们将要讨论的,这两种... [理解机器学习的意义: 人工智能,机器学习和深度学习:您需要知道的一切 ... -
人工智能、机器学习、神经网络和深度学习的关系
2019-01-03 16:21:03但是大家在关注或研究人工智能领域的时候,总是会遇到这样的几个关键词:深度学习、机器学习、神经网络。那他们之间到底是什么样的关系呢? 先说人工智能,人工智能是在1956年一个叫达特茅斯会议上提出的。更准确的... -
深度学习和神经网络介绍
2021-01-05 17:44:45深度学习和神经网络介绍 文章目录深度学习和神经网络介绍深度学习的介绍目标1. 深度学习的概念2. 机器学习和深度学习的区别2.1 区别1 :特征提取2.2 区别2:数据量3. 深度学习的应用场景4. 常见的深度学习框架神经... -
人工智能,神经网络,机器学习,深度学习和大数据备忘单
2019-12-22 16:58:50我不时与朋友和同事们分享它们,最近我受到很多询问,所以我决定组织和分享整个系列。 为了使事情变得更有趣并提供上下文,我为每个主要主题添加了描述和/或摘录。 这是最完整的列表,Big-O在最后,请享受… >&... -
深度神经网络算法机器学习深度学系列教程
2019-01-04 22:14:00深度神经网络算法机器学习深度学系列视频教程 (基础1)Python程序入门视频课程Python介绍_压缩环境配置配置Python环境以及数据类型字符串String和变量数据类型2整型_字符串数据结构列表列表List元组tuple对比元组...
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
springboot rabbitmq不同交换机类型实战
-
在SpringBoot项目中创建mybatis项目
-
在 Linux 上构建企业级 DNS 域名解析服务
-
如何设计一个通用的权限管理系统
-
access应用的3个开发实例
-
python+uiautomator2+pytest自动化测试框架(一)
-
win10批处理优化.bat
-
Scala常见错误: error: unclosed character literal
-
MaxScale 实现 MySQL 读写分离与负载均衡
-
快速复制工具ExtremeCopy-2.3.4-pro J9I95-83JUN-8PD2H-ARTGF.msi
-
实验11:直流电机实验.docx
-
MAC上Git安装
-
华为1+X认证——网络系统建设与运维(初级)
-
基于Qt的LibVLC开发教程
-
Windows系统管理
-
vue3从0到1-超详细
-
DingTalk_v3.3.3-RC.1.exe
-
Windows下批处理(BAT)修改文件名.txt