Keras - 深度学习概述


深度学习是机器学习的一个不断发展的子领域。深度学习涉及以逐层的方式分析输入,其中每一层逐步提取有关输入的更高级别的信息。

让我们看一个分析图像的简单场景。让我们假设您的输入图像被划分为矩形像素网格。现在,第一层抽象像素。第二层了解图像中的边缘。下一层从边缘构造节点。然后,下一步将从节点中找到分支。最后,输出层将检测完整的对象。在这里,特征提取过程从一层的输出进入下一层的输入。

通过使用这种方法,我们可以处理大量特征,这使得深度学习成为一个非常强大的工具。深度学习算法对于非结构化数据的分析也很有用。让我们在本章中回顾一下深度学习的基础知识。

人工神经网络

深度学习最流行和主要的方法是使用“人工神经网络”(ANN)。它们的灵感来自人脑模型,人脑是我们身体最复杂的器官。人类大脑由超过 900 亿个称为“神经元”的微小细胞组成。神经元通过称为“轴突”和“树突”的神经纤维相互连接。轴突的主要作用是将信息从一个神经元传输到与其连接的另一个神经元。

同样,树突的主要作用是接收与其连接的另一个神经元的轴突传输的信息。每个神经元处理一个小信息,然后将结果传递给另一个神经元,这个过程继续进行。这是我们人脑处理语音、视觉等大量信息并从中提取有用信息的基本方法。

基于这个模型,心理学家Frank Rosenblatt于 1958 年发明了第一个人工神经网络(ANN)。人工神经网络由多个类似于神经元的节点组成。节点紧密互连并组织成不同的隐藏层。输入层接收输入数据,数据依次经过一个或多个隐藏层,最后输出层预测有关输入数据的有用信息。例如,输入可能是图像,输出可能是图像中识别的事物,例如“猫”。

单个神经元(在人工神经网络中称为感知器)可以表示如下 -

人工神经网络

这里,

  • 多个输入和权重代表树突。

  • 输入与激活函数的总和代表神经元。Sum实际上是所有输入的计算值,激活函数代表一个函数,它将Sum值修改为0、1或0到1。

  • 实际输出代表轴突,输出将被下一层的神经元接收。

让我们在本节中了解不同类型的人工神经网络。

多层感知器

多层感知器是最简单的 ANN 形式。它由单个输入层、一个或多个隐藏层和最后一个输出层组成。一层由感知器的集合组成。输入层基本上是输入数据的一个或多个特征。每个隐藏层由一个或多个神经元组成,处理特征的某些方面并将处理后的信息发送到下一个隐藏层。输出层过程接收最后一个隐藏层的数据并最终输出结果。

多层感知器

卷积神经网络(CNN)

卷积神经网络是最流行的人工神经网络之一。广泛应用于图像、视频识别领域。它基于数学概念——卷积的概念。它几乎与多层感知器相似,只是它在全连接的隐藏神经元层之前包含一系列卷积层和池化层。它有三个重要的层 -

  • 卷积层- 它是主要构建块,基于卷积函数执行计算任务。

  • 池化层- 它布置在卷积层旁边,用于通过删除不必要的信息来减少输入的大小,以便可以更快地执行计算。

  • 全连接层- 它被布置在一系列卷积层和池化层旁边,并将输入分类为各种类别。

一个简单的 CNN 可以表示如下 -

美国有线电视新闻网

这里,

  • 使用2系列卷积和池化层,它接收并处理输入(例如图像)。

  • 使用单个全连接层并用于输出数据(例如图像分类)

循环神经网络 (RNN)

循环神经网络 (RNN) 可有效解决其他 ANN 模型中的缺陷。嗯,大多数人工神经网络不记得以前情况下的步骤,并学会根据训练中的上下文做出决策。同时,RNN 存储过去的信息,它的所有决策都是根据过去学到的知识做出的。

这种方法主要用于图像分类。有时,我们可能需要展望未来来解决过去的问题。在这种情况下,双向 RNN 有助于学习过去并预测未来。例如,我们在多个输入中有手写样本。假设我们对一个输入感到困惑,那么我们需要再次检查其他输入以识别从过去做出决定的正确上下文。

人工神经网络的工作流程

让我们首先了解深度学习的不同阶段,然后了解 Keras 在深度学习过程中如何提供帮助。

收集所需数据

深度学习需要大量输入数据才能成功学习和预测结果。因此,首先收集尽可能多的数据。

分析数据

分析数据并充分理解数据。选择正确的 ANN 算法需要更好地理解数据。

选择算法(模型)

选择最适合学习过程类型(例如图像分类、文本处理等)和可用输入数据的算法。算法在 Keras 中用Model来表示。算法包括一层或多层。ANN 中的每一层都可以用 Keras 中的Keras Layer来表示。

  • 准备数据- 处理、过滤并仅从数据中选择所需的信息。

  • 分割数据- 将数据分割为训练和测试数据集。测试数据将用于评估算法/模型的预测(一旦机器学习)并交叉检查学习过程的效率。

  • 编译模型- 编译算法/模型,以便可以进一步用于通过训练学习并最终进行预测。这一步需要我们选择损失函数和优化器。损失函数和优化器用于在学习阶段找到误差(与实际输出的偏差)并进行优化,使误差最小化。

  • 拟合模型- 实际的学习过程将在此阶段使用训练数据集完成。

  • 未知值的预测结果- 预测未知输入数据的输出(现有训练和测试数据除外)

  • 评估模型- 通过预测测试数据的输出并将预测与测试数据的实际结果进行交叉比较来评估模型。

  • 冻结、修改或选择新算法- 检查模型评估是否成功。如果是,请保存算法以供将来预测之用。如果没有,则修改或选择新的算法/模型,最后再次训练、预测和评估模型。重复该过程,直到找到最佳算法(模型)。

上述步骤可以使用下面的流程图表示 -

神经网络