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

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

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。

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

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

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

相关文章
|
7月前
|
机器学习/深度学习 算法 定位技术
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
本项目基于YOLOv8模型与C#界面,结合Baumer工业相机,实现裂缝的高效检测识别。支持图像、视频及摄像头输入,具备高精度与实时性,适用于桥梁、路面、隧道等多种工业场景。
943 27
|
6月前
|
机器学习/深度学习 数据可视化 算法
深度学习模型结构复杂、参数众多,如何更直观地深入理解你的模型?
深度学习模型虽应用广泛,但其“黑箱”特性导致可解释性不足,尤其在金融、医疗等敏感领域,模型决策逻辑的透明性至关重要。本文聚焦深度学习可解释性中的可视化分析,介绍模型结构、特征、参数及输入激活的可视化方法,帮助理解模型行为、提升透明度,并推动其在关键领域的安全应用。
590 0
|
5月前
|
机器学习/深度学习 存储 PyTorch
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
Neural ODE将神经网络与微分方程结合,用连续思维建模数据演化,突破传统离散层的限制,实现自适应深度与高效连续学习。
426 3
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
|
4月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
7月前
|
机器学习/深度学习 人工智能 PyTorch
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
本文以 MNIST 手写数字识别为切入点,介绍了深度学习的基本原理与实现流程,帮助读者建立起对神经网络建模过程的系统性理解。
748 15
AI 基础知识从 0.2 到 0.3——构建你的第一个深度学习模型
|
5月前
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
370 0
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
AI 基础知识从 0.3 到 0.4——如何选对深度学习模型?
本系列文章从机器学习基础出发,逐步深入至深度学习与Transformer模型,探讨AI关键技术原理及应用。内容涵盖模型架构解析、典型模型对比、预训练与微调策略,并结合Hugging Face平台进行实战演示,适合初学者与开发者系统学习AI核心知识。
594 15
|
6月前
|
机器学习/深度学习 算法 数据挖掘
【数据分析】基于matlab私家车充电模型(含私家车日行驶距离概率密度及累加函数,电动汽车出发时间(或者称开始充电的时间)概率)(Matlab代码实现)
【数据分析】基于matlab私家车充电模型(含私家车日行驶距离概率密度及累加函数,电动汽车出发时间(或者称开始充电的时间)概率)(Matlab代码实现)
153 0
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习模型、算法与应用的全方位解析
深度学习,作为人工智能(AI)的一个重要分支,已经在多个领域产生了革命性的影响。从图像识别到自然语言处理,从语音识别到自动驾驶,深度学习无处不在。本篇博客将深入探讨深度学习的模型、算法及其在各个领域的应用。
1445 3
|
8月前
|
机器学习/深度学习 存储 PyTorch
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统
本文通过使用 Kaggle 数据集训练情感分析模型的实例,详细演示了如何将 PyTorch 与 MLFlow 进行深度集成,实现完整的实验跟踪、模型记录和结果可复现性管理。文章将系统性地介绍训练代码的核心组件,展示指标和工件的记录方法,并提供 MLFlow UI 的详细界面截图。
363 2
PyTorch + MLFlow 实战:从零构建可追踪的深度学习模型训练系统