为什么我们需要机器学习?
机器学习可以解决人类不能直接用编程来应对的复杂难题,因此,我们喂给机器学习算法大量的数据,以期得到想要的答案。
我们来看看这两个例子:
编写解决问题的程序是非常困难的,比如在杂乱的场景中,在新的照明条件下从新的角度来识别三维物体。我们不知道要如何通过代码来解决这个问题,因为这个识别过程在大脑中完成情况对我们来说还是未解之谜。 即使我们知道该怎么做,要编写的程序可能会非常复杂。
再比如,编写一个程序来预测信用卡交易欺诈发生的概率也是很难的,这可能也不存在任何简单而可靠的规则。因为欺诈是一个动态的目标,但程序需要不断变化。我们需要做的是结合大量的弱项规则来进行欺诈预测。
再者是机器学习方法。我们并不需要为每个特定的任务手动编写程序,而是收集大量的例子,为给定的输入指定正确的输出。然后,机器学习算法拿这些例子,并产生一个程序来完成这项工作。
学习算法产生的程序可能与典型的手写程序看起来非常不同。它可能包含数百万的数字。如果方法得当,该计划将适用于新案例以及我们训练的案例。如果数据改变,程序也可以通过对新数据进行训练来改变。你应该注意到,现在大量的计算比支付某人编写任务特定的程序来的更廉价。
鉴于此,机器学习能够很好地解决一些任务,包括:
模式识别:真实场景中的对象,面部识别或面部表情,口语等;
异常情况识别:信用卡交易的异常顺序,核电厂传感器读数的异常模式等;
预测:未来的股票价格或货币汇率,一个人会喜欢的电影等。
什么是神经网络?
神经网络是一般机器学习中的一类模型,它是一套特定的算法,受到生物神经网络的启发,彻底改变了机器学习的领域。目前所谓的深度神经网络的出现就已经证明它能够工作得非常好。
神经网络本身就是一般泛函数的逼近,这就是为什么它们几乎可以应用于任何机器学习问题,因为所有的机器学习都是学习从输入到输出空间的复杂映射。
以下是说服你学习神经计算的三个理由:
能够理解大脑是如何工作的:这是非常大且复杂的问题,并且是个令人绞尽脑汁去思考的问题,因此我们需要使用计算机来模拟。
能够了解受神经元和自适应连接启发的并行计算风格:这是一种与顺序计算非常不同的风格。
通过使用受大脑启发的新颖学习算法来解决实际问题:即使这不是大脑实际工作的方式,但这样的学习算法也是非常有用的。
在这篇文章中,我想分享八种神经网络架构,这是每一位从事机器学习的研究人员都应该熟悉的。
一般来说,这些体系结构可以分为以下三类:
1 - 前馈神经网络
这是在实际应用中最常见的一种神经网络类型。第一层是输入,最后一层是输出。如果有多个隐藏层,我们称之为“深度”神经网络。它们计算出一系列改变案例之间相似性的转换。各层后紧接着的非线性函数用于各层神经元的激活。
2 - 循环神经网络
在神经网络结构的连接图中决定了循环的方向。这意味着你有时可以按照箭头回到你开始的地方。循环神经网络的结构更接近生物的实际情况,其结构有很复杂的动态过程,这使得这种神经网络有时候难以训练。但是,目前已经有大量有趣的研究已经找到一些有效的方式来训练循环神经网络结构。
循环神经网络是一种非常自然地模拟连续数据的方式,类似每个时间片都具有一个隐藏层的深层神经网络。除了能在每个时间片上获得输入并使用相同的权重进行训练外,循环神经网络还能长时间地记住隐藏状态的信息。但目前还很难训练循环神经网络来使用这些隐藏的状态信息。
3 - 对称连接网络
对称连接网络是一种类似循环神经网络结构的神经网络,但是其单元之间的连接是对称的(它们在两个方向上具有相同的权重)。对称连接网络的结构比循环神经网络更容易分析,因为其遵循能量函数。
没有隐藏单元的对称连接网络被称为“Hopfield网络”。有隐藏单元的对称连接网络被称为“Boltzmann机”。
2020-02-15 11128
2018-01-03 10315
2021-03-18 7569
2018-06-01 6573
2019-06-22 6019
2019-05-03 5756