Keras – 深度学习的概述

Keras – 深度学习的概述

深度学习是机器学习的一个不断发展的子领域。深度学习涉及到以逐层的方式分析输入,每一层都会逐步提取关于输入的更高层次的信息。

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

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

人工神经网络

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

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

基于这个模型,第一个人工神经网络(ANN)是由心理学家 弗兰克-罗森布拉特 在1958年发明的。ANN是由多个节点组成的,与神经元相似。节点之间紧密相连,并组织成不同的隐藏层。输入层接收输入数据,数据依次经过一个或多个隐藏层,最后由输出层预测输入数据的有用信息。例如,输入可能是一张图片,输出可能是图片中识别的东西,比如说一只 “猫”。

一个单一的神经元(在ANN中称为感知器)可以表示如下

Keras - 深度学习的概述

这里、

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

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

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

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

多层感知器

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

Keras - 深度学习的概述

卷积神经网络(CNN)

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

  • 卷积层– 它是主要构件,根据卷积函数执行计算任务。

  • 池化层– 它被安排在卷积层旁边,用于通过去除不必要的信息来减少输入的大小,从而使计算可以更快地进行。

  • 全连接层– 它被安排在一系列卷积层和池化层的旁边,将输入分为各种类别。

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

Keras - 深度学习的概述

这里、

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

  • 一个单一的全连接层被使用,它被用来输出数据(如图像的分类)。

递归神经网络(RNN)

递归神经网络(RNN)对于解决其他ANN模型的缺陷很有用。那么,大多数的ANN不记得以前的步骤,并学会在训练中根据背景做出决定。同时,RNN存储了过去的信息,它的所有决定都来自于它从过去学到的东西。

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

ANN的工作流程

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

收集所需数据

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

分析数据

分析数据并获得对数据的良好理解。对数据的更好理解是选择正确的ANN算法所必需的。

选择一个算法(模型)

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

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

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

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

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

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

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

  • 冻结、修改或选择新算法 – 检查模型的评估是否成功。如果是,为将来的预测目的保存该算法。如果不是,则修改或选择新的算法/模型,最后,再次训练、预测和评估模型。重复这个过程,直到找到最佳算法(模型)。

上述步骤可以用以下流程图来表示

Keras - 深度学习的概述

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程