深度学习总结(stage1)

2023-10-18 14:10
文章标签 学习 总结 深度 stage1

本文主要是介绍深度学习总结(stage1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.线性分类与感知机

1 线性回归问题

(1) 回归定义: 回归是能为⼀个或多个⾃变量与因变量之间关系建模的⼀类⽅法。在机器学习领域中的⼤多数任务通常都与预测有关。当我们想预测⼀个数值时,就会涉及到回归问题。常⻅的例⼦包括:预测价格(房屋、股票等)、预测住院时间(针对住院病⼈等)、预测需求(零售销量等).

(2) 回归要素:训练集输出数据假设函数,举一个实际例子,我们希望根据房屋的⾯积和房龄来估算房屋价格,为此需要收集一个真实的数据集,这个数据集包括了房屋的销售价格、面积和房龄。这个数据集就是训练集,训练集中的每一行数据称为样本,我们把试图预测的房屋价格称为输出数据,这个例子中的假设函数可以表征为下面的式子:

(3) 问题拓展:在机器学习中,通常使用的是高维数据,建模时采用线性代数表示方法会比较方便。当我们的输入包含d个特征时预测结果通常可以表示为:

将所有的特征放到向量x中,并将所有的权重放到向量w中,可以采用点积的形式来简洁的表示模型:

(4) 损失函数:损失函数就是用来确定模型拟合数据的度量。损失函数能够量化目标的实际值与预测值之间的差距,通常选择非负数作为损失函数,且数值越小表示损失越小,完美预测时的损失为0.在回归问题中常用的损失函数时平方误差损失函数(MSELoss)。当样本i的预测值为yˆ(i),其相应的真实标签为y(i),平方误差可以定义为以下公式:

找到一组权重w使得损失函数最小就是我们的目标,这样模型的预测值可以达到比较精确的程度。

2 线性二分类问题

(1) 定义:线性分类器通过特征的线性组合来做出分类决定,以达到此种目的。简单说,样本通过直线可分。以苹果分类为例:

其中有两个特征,横轴是苹果的直径,纵轴是苹果的外观评价。对于线性分类器来说,输入的是特征向量,输出的是类别,如果是二分类问题,则输出为0或1,或者是属于某类的概率,即0-1之间的数

(2) 与线性回归的区别:

输出意义不同:属于某类的概率<->回归具体值

参数意义不同:最佳分类直线<->最佳拟合直线

(3) sigmoid函数:在二分类问题中,为了最终获得0-1之间的概率,我们构造了sigmoid函数如下:

其中z就是输入的线性组合,不难看出sigmoid函数的值域在0-1之间,模型输出的z越大,经过sigmoid的映射后输出越接近1。

(4) 二分类问题的损失函数:对于二分类问题一般使用交叉熵当损失函数,交叉熵简化为Binary Cross Entropy即:

同时采用sigmoid对输出z进行映射,并且损失函数选择为BCELoss,此时的二分类模型称为Logistic Regression(逻辑回归),虽然叫做回归,但实际上是一种分类模型。

3 多分类问题

对于多分类问题,模型的输出单元一下变成了多个,通过引入softmax运算使得输出更适合离散值的预测和训练。如果不使用softmax,直接使用输出有两个问题。一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。另一方面,由于真实的标签值都是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。因此softmax的使用很有必要。softmax的运算如下式:

其中o代表模型的输出值,经过softmax的映射变为y,并且根据下面这个式子可以知道softmax运算是不改变预测类别的输出的

损失函数的选择上依然选择交叉熵损失函数,此时多分类的模型就叫softmax回归,虽然名字依然是回归,但是是一种分类模型,可以看到与Logistic Regression(逻辑回归)的区别是,对模型输出之后映射函数的选择不同,二分类模型使用sigmoid,而多分类模型使用softmax

4 多层感知机

上文介绍了线性回归、logistic回归和softmax回归,但它们都是单层的神经网络,这些模型能通过单个的仿射变换将我们的输入映射到输出,如果我们的标签通过仿射变化后确实与我们的输入相关,那么这种方法确实足够了。但是,仿射变换中的线性是一个很强的假设,在很多时候,线性假设是荒谬的。我们可以在网络中加入一个或多个隐藏层来克服线性模型的限制,使其能处理更普遍的函数关系类型,这种架构通常称为多层感知机(MLP),如下图:

这个多层感知机有4个输入,3个输出,其隐藏层包含5个隐藏单元。输入层不涉及任何计算,因此使用此网络产⽣输出只需要实现隐藏层和输出层的计算。因此,这个多层感知机中的层数为2。注意,这两个层都是全连接的。每个输入都会影响隐藏层中的每个神经元,而隐藏层中的每个神经元⼜会影响输出层中的每个神经元。为了发挥这种架构的潜力,还需要一个额外的关键要素,在仿射变换之后对每个隐藏单元应用非线性的激活函数,有了激活函数之后,我们的多层感知机就不会退化成线性模型,通过这种一层又一层的堆叠隐藏层,就可以获得更有表达能力的模型。

二. BP网络

1 多层前馈网络及BP算法概述

(1) BP算法简介:多层前馈网络的反向传播(BP)学习算法,简称BP算法,他是梯度下降法在多层前馈网络中的应用。

(2) BP神经网络结构:见图,u、y是网络的输入、输出向量,神经元用节点表示,网络由输入层、隐层和输出层节点组成,隐层可一层,也可多层(图中是单隐层),前层至后层节点通过权联接。由于用BP学习算法,所以常称BP神经网络.

(3) 反向传播和正向传播:正向传播是输入信号从输入层经隐藏层,传向输出层,若输出层得到了期望的输出,则学习算法结束,否则转至反向传播。反向传播是将误差(样本与网络输出之差)按原连接通路反向计算,由梯度下降法调整各层节点的权值,使误差减小。

2 BP算法详细介绍

BP算法基本思想:

BP算法的基本流程:

BP算法评述:

优点:学习完全自主,可以逼近任意的非线性函数

缺点:算法非全局收敛,收敛速度比较慢,学习率的选择以及神经网络的设计都是问题。

三.性能优化(优化器)

上面介绍了通过BP算法获得了梯度信息,接下来就要使用梯度实现对各层权重的更新,这也正是优化器的作用,一言以蔽之,优化器就是在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数让损失函数(目标函数)值不断逼近全局最小。接下来介绍常见的优化器。

1 SGD优化器

随机梯度下降法(SGD)每次从训练集随机选择一个样本来进行学习,SGD没有动量的概念,SGD的参数更新公式如下:

优点:由于每次只用一个样本更新模型参数,更新速度快;SGD所带来的波动有利于优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点,这样对于非凸函数,最终收敛于一个较好的局部极值点,甚至全局极值点。

2 动量法(Momentum算法)

Momentum算法在原有的梯度下降法中引入了动量,从物理学上看,引入动量比起普通梯度下降法主要能够增加两个优点。首先,引入动量能够使得物体在下落过程中,当遇到一个局部最优的时候有可能在原有动量的基础上冲出这个局部最优点;并且,普通的梯度下降法方法完全由梯度决定,这就可能导致在寻找最优解的过程中出现严重震荡而速度变慢,但是在有动量的条件下,物体运动方向由动量和梯度共同决定,可以使得物体的震荡减弱,更快地运动到最优解。

更新公式如下:

3 自适应梯度算法(AdaGrad算法)

我们使用自适应的学习率就可以帮助算法在梯度大的参数方向减缓学习速率,而在梯度小的参数方向加快学习速率,这就可以促使神经网络的训练速度的加快。

参数更新公式如下:

4 RMSProp算法

RMSProp算法主要是用来改进AdaGrad算法在训练后期,学习率过小的问题。先来看参数更新公式:

可以看到,对于一个变换较大的方向其dw会很大,导致dw2很大,所以分母会变大,所以整个分式会变小,可以减缓这种变化,同理,若变换较小的方向,dw很小,可以加速这种变化。

5 Adam算法

Adam算法就是结合了momentum梯度下降法和RMSprop梯度下降法的方法,更加的适用于大多数的情况,参数更新过程如下:

一般的,让β1=0.9,β2=0.999即可。当然学习率α要自己调整。

这篇关于深度学习总结(stage1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233081

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter