【数据分析】从零开始带你了解商业数据分析模型——深度学习之多层感知器(上)

简介: 深度学习可以看作是机器学习领域中的一个前沿分支。现如今,深度学习在图像处理、自然语言处理、搜索技术、数据挖掘等领域都取得了不菲的成果。

01 摘要

深度学习可以看作是机器学习领域中的一个前沿分支。现如今,深度学习在图像处理、自然语言处理、搜索技术、数据挖掘等领域都取得了不菲的成果。

简单来说,目前几乎所有的深度学习模型都可以用下图的模式总结。模型的最前面一层是输入层,代表了模型的输入(自变量)数据。模式的最后是一个输出层,代表了模型的输出(因变量)数据。中间包含一个或多个隐藏层,代表了模型中间训练过程的每一步的逐步结果。
微信图片_20200813095837.jpg

笔者根据实用案例,粗略的将深度学习分为五类:

前馈网络:最简单,也是目前应用最广泛的一种人工神经网络,常见于面部识别案例;

RBF网络:一种三层的神经网络,常用于电力恢复系统领域;

多层感知器:前馈网络的一种,隐藏层可包含多层网络,常用于多种机器学习案例;

卷积网络:常用于图像处理和模式识别;

循环网络:常用于自然语言处理。

本篇我们将主要讨论多层感知器的相关细节。后续我们也会陆续推出卷积网络,循环网络等相关文章,欢迎持续关注Altair微信公众号(AltairChina)。

02 必要的前情介绍

2.1深度学习伊始

深度学习的模型框架其实要归结到人脑的决策过程。

人在做决策的时候,从外界接收到的影像,声音或触感等信息,通常会被转换成生物电的形式,流入不同的神经元,经过不同神经元的处理后,会有相应的生物电产生并流出当前的神经元,然后再准备流入下一个神经元。经过若干次处理后,最后的生物电会抵达大脑皮层,人也在那个时候做出相应的决策。

通过模拟人脑的运作机制,研究人员探索出了现如今这套深度学习的模型架构。
微信图片_20200813095841.jpg

2.2什么是感知机

多层感知器中最重要的组成元素就是单层感知机。简单来说,单层感知机就是一次线性权重相加和一次非线性分类

如下图所示,我们将输入自变量数据x1, x2,…,xn 通过一定的权重相加,随后将对应的计算值带入一个非线性分类的计算中,最终我们可以得到一个因变量的相应取值。这里的非线性分类计算有个专有称呼,叫做激活函数

微信图片_20200813095850.jpg

读到这里,大家是不是回想到了上两篇文章。没错,线性权重相加其实就很类似于线性回归,而非线性分类则相似于逻辑回归。

简单来说,多层感知器就是多个单层感知机叠加在一起的深度学习模型,每一层运算的输出值都会作为下一层运算的输入值。而训练多层感知器的实质其实就是找到每一层最适当的权重占比,激活函数和神经元个数的过程。

2.3随机梯度下降

当我们需要优化一个函数时,或者说我们需要找到某个函数的最大/小值时,我们通常会用到随机梯度下降这个方法。

在机器学习领域中,待优化的函数我们称为损失函数。损失函数是用来估量模型预测值和真实值之间不一样程度的非负值函数。该函数通常与模型的参数息息相关。

如下图例子所示,我们假设模型的只包含两个参数θ=(θ1,θ2)。在一个三维空间中,模型的损失函数L(θ)可以视为随θ值变化而变化的曲面。我们的目标是一步步调整参数θ的取值,使得我们的损失函数达到最小值

为达到最优值,随机梯度下降方法遵循了下面的步骤:

随机初始化或自定义初始参数值,得出起始模型

进入循环:

随机抽取若干输入值样本,基于损失函数计算梯度

根据下图迭代规则更新参数值

重复步骤,直至停止条件满足
微信图片_20200813095854.jpg

这里的α,也叫做学习率。它调控着每一次参数更新中的步长。能否找到一个合适的学习率决定了当前神经网络收敛速度的快慢以及该模型能否收敛到局部最小值

03 多层感知器

3.1预设模型

接下来,我们将通过一个三层感知器的案例来详细了解多层感知器的建模过程。如下图所示:
微信图片_20200813095856.jpg

输入层是模型的输入数据,用x来表示;

中间是四层隐藏层,其中的:

线性权重相加分别由g1,g2,w1,w2表示其权重;

激活函数用f来表示;这里需要注意的是,每一层的激活函数都可以是不相同的,但是为了演示,这个例子中的激活函数都是一样的;

中间的三层步骤结果由a1,a2,a3来分别表示;

输出层则为模型的预测结果,由ŷ来表示。

模型的最后是真实结果,由y来表示。整个模型训练的过程就是,我们通过调节各个权重g1,g2,w1,w2以及各个激活函数f,来使得模型的预测结果ŷ能够尽可能的接近真实结果y

这里我们需要注意的是,模型的训练一般是从前往后的,即我们从x到a1,到a2,再一直到ŷ。而参数的优化则是从后往前的,既我们先调节w2,再调节w1,再g2,最后是g1。

3.2权重调节的数学细节

将上面的预设模型,用公式的方法抽象出来的话,我们可以得到以下几行模型训练公式:

a1 = f(g1(x))

a2 = f(g2(a1))

a3 = f(w1(a2))

ŷ = f(w2(a3))

我们选取一种较常见的目标函数作为损失函数:
微信图片_20200813095858.png

随后,我们就可以根据2.3章节中提到的随机梯度下降方法优化调节我们的四个权重参数了。

我们从w2开始,根据微积分中的链式法则,我们可以知道:
微信图片_20200813095901.png

随后,根据不同模型预先设定好的,不同激活函数与权重相加公式,我们可以分别求出

微信图片_20200813095904.png


微信图片_20200813095908.png

的相关公式。

最后,我们将得到梯度结果
微信图片_20200813095911.png

重新带入回参数更新公式中:

微信图片_20200813095913.png

我们便完成了一次w2权重的更新。

我们随后再更新w1,根据链式法则,我们可以得出:
微信图片_20200813095916.png

以及相应的参数更新公式:

微信图片_20200813095918.png

类似的,我们接下来继续更新g2与给g1。

当四个的权重参数都更新过一次之后,我们就完成了一次循环的参数更新

通常来说,一个深度学习模型都会跑成百上千次的循环或者是参数达成收敛条件。

因为深度学习的数据量和计算复杂度的原因,每一次循环都会花费不少的计算时间和资源。所以如何优化一个深度学习模型变得极为重要

相关文章
|
11天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品市场预测的深度学习模型
使用Python实现智能食品市场预测的深度学习模型
50 5
|
5天前
|
机器学习/深度学习 数据采集 运维
使用 Python 实现深度学习模型:智能食品生产线优化
使用 Python 实现深度学习模型:智能食品生产线优化
42 13
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
18 5
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的Transformer模型
探索深度学习中的Transformer模型
22 1
|
13天前
|
机器学习/深度学习 算法 开发者
探索深度学习中的优化器选择对模型性能的影响
在深度学习领域,优化器的选择对于模型训练的效果具有决定性作用。本文通过对比分析不同优化器的工作原理及其在实际应用中的表现,探讨了如何根据具体任务选择合适的优化器以提高模型性能。文章首先概述了几种常见的优化算法,包括梯度下降法、随机梯度下降法(SGD)、动量法、AdaGrad、RMSProp和Adam等;然后,通过实验验证了这些优化器在不同数据集上训练神经网络时的效率与准确性差异;最后,提出了一些基于经验的规则帮助开发者更好地做出选择。
|
12天前
|
机器学习/深度学习 算法 数据可视化
使用Python实现深度学习模型:智能食品配送优化
使用Python实现深度学习模型:智能食品配送优化
34 2
|
11天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
40 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
11天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
52 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
14天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品储存管理的深度学习模型
使用Python实现智能食品储存管理的深度学习模型
37 2
|
2天前
|
机器学习/深度学习 数据采集 人工智能
探索人工智能中的深度学习模型优化策略
探索人工智能中的深度学习模型优化策略
下一篇
无影云桌面