📅  最后修改于: 2020-12-11 04:52:49             🧑  作者: Mango
深度学习是机器学习的一个不断发展的子领域。深度学习涉及逐层分析输入,其中每一层逐步提取有关输入的更高级别的信息。
让我们以分析图像的简单场景为例。让我们假设您的输入图像被分成像素的矩形网格。现在,第一层提取像素。第二层了解图像中的边缘。下一步层从边缘构造节点。然后,下一个将从节点中找到分支。最后,输出层将检测到整个对象。在这里,特征提取过程从一层的输出转到下一个下一层的输入。
通过使用这种方法,我们可以处理大量功能,这使深度学习成为非常强大的工具。深度学习算法对于非结构化数据的分析也很有用。让我们在本章中学习深度学习的基础知识。
深度学习最流行和最主要的方法是使用“人工神经网络”(ANN)。它们的灵感来自人类大脑的模型,这是人体最复杂的器官。人脑由超过900亿个称为“神经元”的微小细胞组成。神经元通过称为“轴突”和“树突”的神经纤维相互连接。轴突的主要作用是将信息从一个神经元传递到与其连接的另一神经元。
同样,树突的主要作用是接收与之相连的另一个神经元的轴突传递的信息。每个神经元处理少量信息,然后将结果传递给另一个神经元,此过程继续进行。这是人脑处理大量信息(如语音,视觉等)并从中提取有用信息的基本方法。
基于此模型,心理学家Frank Rosenblatt于1958年发明了第一个人工神经网络。人工神经网络由类似于神经元的多个节点组成。节点紧密互连,并组织成不同的隐藏层。输入层接收输入数据,数据依次经过一个或多个隐藏层,最后输出层预测有关输入数据的有用信息。例如,输入可以是图像,而输出可以是图像中标识的东西,例如“猫”。
单个神经元(在ANN中称为感知器)可以表示如下-
这里,
多个输入以及重量代表树突。
输入和激活函数的总和代表神经元。 Sum实际上意味着所有输入的计算值,并且激活函数表示一个函数,它将Sum值修改为0、1或0到1。
实际输出代表轴突,输出将被下一层的神经元接收。
让我们在本节中了解不同类型的人工神经网络。
多层感知器是ANN的最简单形式。它由一个输入层,一个或多个隐藏层以及最后一个输出层组成。一层由感知器集合组成。输入层基本上是输入数据的一个或多个特征。每个隐藏层由一个或多个神经元组成,并处理特征的某些方面,并将处理后的信息发送到下一个隐藏层。输出层进程从最后一个隐藏层接收数据,最后输出结果。
卷积神经网络是最流行的人工神经网络之一。它广泛应用于图像和视频识别领域。它基于数学概念卷积的概念。它几乎与多层感知器相似,不同之处在于它在完全连接的隐藏神经元层之前包含一系列卷积层和池化层。它具有三个重要的层-
卷积层-它是主要的构建块,并基于卷积函数执行计算任务。
池层-它位于卷积层旁边,用于通过删除不必要的信息来减小输入的大小,从而可以更快地执行计算。
完全连接的层-安排在一系列卷积和池化层的旁边,并将输入分类为各种类别。
一个简单的CNN可以表示如下-
这里,
使用2系列卷积和池化层,它接收并处理输入(例如图像)。
使用单个完全连接的层,并用于输出数据(例如,图像分类)
递归神经网络(RNN)对于解决其他ANN模型中的缺陷很有用。好吧,大多数ANN都不记得以前的情况,而是学会根据训练中的情境做出决策。同时,RNN存储了过去的信息,其所有决策都是从过去的经验中学到的。
该方法主要用于图像分类。有时,我们可能需要展望未来以修正过去。在这种情况下,双向RNN有助于从过去学习和预测未来。例如,我们有多个输入的手写样本。假设我们在一个输入中有混淆,然后我们需要再次检查其他输入以识别做出过去决定的正确上下文。
首先让我们了解深度学习的不同阶段,然后了解Keras在深度学习过程中如何提供帮助。
深度学习需要大量输入数据才能成功学习和预测结果。因此,首先要收集尽可能多的数据。
分析数据并获得对数据的良好理解。选择正确的ANN算法需要对数据有更好的了解。
选择一种最适合学习过程类型(例如图像分类,文本处理等)和可用输入数据的算法。算法由Keras中的模型表示。算法包括一层或多层。 ANN中的每个层都可以用Keras中的Keras层表示。
准备数据-处理,过滤和仅从数据中选择所需的信息。
拆分数据-将数据拆分为训练和测试数据集。测试数据将用于评估算法/模型的预测(一旦机器学习),并交叉检查学习过程的效率。
编译模型-编译算法/模型,以便可以通过训练进一步学习,最后进行预测。这一步需要我们选择损失函数和优化器。损失函数和优化器用于学习阶段,以查找错误(与实际输出的偏差)并进行优化,以使错误最小化。
拟合模型-实际的学习过程将在此阶段使用训练数据集完成。
预测未知值的结果-预测未知输入数据的输出(现有培训和测试数据除外)
评估模型-通过预测测试数据的输出并将预测与测试数据的实际结果进行交叉比较来评估模型。
冻结,修改或选择新算法-检查模型评估是否成功。如果是,则保存算法以供将来预测之用。如果不是,则修改或选择新的算法/模型,最后再次训练,预测和评估模型。重复该过程,直到找到最佳算法(模型)为止。
可以使用以下流程图表示以上步骤-