| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习总结 - 副本 -> 正文阅读 |
|
[人工智能]深度学习总结 - 副本 |
文章目录马上要找工作了,学习了差不多两年的深度学习,但是现在我对于深度学习还是有一点迷茫,一直在调参当中渡过,即将找工作之际一点信心都没有。因此,撰写这篇文章,测试自己的知识有哪些掌握了,哪一些没有掌握。 A.词语定义什么叫深度学习,神经网络,机器学习? 由于以前没有聚焦于这个问题,我到现在都对深度学习与神经网络的区别都不知道,现在开始重新梳理自己的知识架构。 包含关系:人工智能<<机器学习<<神经网络<<深度学习 人工智能(英语:artificial intelligence,缩写为AI)亦称智械、机器智能,指由人制造出来的机器所表现出来的智能,通常是指通过普通计算机程序来呈现人类智能的技术【1】。 机器学习是人工智能的一个分支。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。【2】 神经网络一般是人工神经网络(Artificial Neural Network,即ANN )的简称,是模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构与功能,设计的数学模型与计算模型,用于对未知函数进行估计与逼近【3】。 深度学习(英语:deep learning)是机器学习的分支,是一种以人工神经网络为架构,对资料进行表征学习的算法,由2006年Geoffrey Hinton深度信念网络率先提出“深度”一词,指代一系列训练深层神经网络的方法。有时候深度学习代表的是最少5层的多层神经网络,一般正确命名为深度神经网络。因为存在不是神经网络的深度模型,例如级联森林和多粒度扫描。。【4】 特征学习或表征学习是学习一个特征的技术的集合:将原始数据转换成为能够被机器学习来有效开发的一种形式。它避免了手动提取特征的麻烦,允许计算机学习使用特征的同时,也学习如何提取特征:学习如何学习。【5】 感知器是Frank Rosenblatt在1957年所发明的一种人工神经网络,可以被视为一种最简单形式的前馈式人工神经网络,是一种二元线性分类器。感知器是激活函数为阶跃函数的神经元,如果存在激活函数不是阶跃的,那么这个网络就不是感知器。 误差反向传播算法(Error Back Propagation Training),简称BP,发展于20世纪80年代中期,由David Runelhart、Geoffrey Hinton和Ronald W-llians、DavidParker等人分别独立发现,解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。【6】 MLP= 神经网络(2层,输入,隐藏,输出,但是输入层不涉及计算),BP神经网络(实际并没有)=采用BP算法进行训练的神经网络。 神经网络类别包括【7】:
B.神经网络超参数超参数分类【1,3】
超参数类型多,但是不是每一类都需要通过实验查看确定大小,有些超参数是网络超参数,有些是训练超参数。 训练超参数:学习率 η,正则化参数 λ,学习的回合数Epoch,小批量数据 minibatch 的大小,代价函数的选择,参加训练模型数据的规模 网络超参数:神经网络的层数 L,每一个隐层中神经元的个数 j,神经元激活函数的种类,输出神经元的编码方式,权重初始化的方法 超参数选择的优化顺序: 1.网络超参数(网络超参数一般是通过阅读论文,参考github代码进行基础模型设计) 2.训练超参数(1.根据任务要求与时间要求选择训练数据、代价函数、Epoch;2.根据自己台式电脑显存大小选择minibatch;3.学习率η根据梯度下降法的优化器进行选择(一般选择Adam优化器(10e-4,10e-7),SGD(10e-1,10e-3),之后设置一个余弦下降法);4.正则化参数 λ有默认值为0(主要看训练结果而决定更改)) 默认无需更改超参数:学习率η,正则化参数 λ,学习的回合数Epoch,小批量数据 minibatch 的大小,参加训练模型数据的规模,神经元激活函数的种类,输出神经元的编码方式,权重初始化的方法, 着重更改:神经网络的层数 L,每一个隐层中神经元的个数 j,代价函数的选择 综上:在超参数优化这一块,在得到一个可以正常工作的训练基准之后,主要调整的是网络结构参数。以上观点仅仅代表我的浅陋观点,我的主要研究方向是图像去模糊,因此可能是有错。
C.过拟合原因以及解决方法定义:训练的模型在训练数据集表现好,在测试集表现差 原因:(1)数据有噪声,质量差;模型记住了噪音特征而忽略了真实数据的输入输出关系; (2)数据量太小;训练集的数量级和模型的复杂度不匹配。训练集的数量级要小于模型的复杂度; (3)训练模型过渡;权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。 (4)训练集与测试集分布不一致; 训练集与测试集特征分布不一致; (5)模型复杂度太大;数据规律简单,使用了复杂模型导致拟合过度 解决方案:(simpler model structure、 data augmentation、 regularization、 dropout、early stopping、ensemble、重新清洗数据) 模型层面:
数据层面:
训练层面:
过拟合(定义、出现的原因4种、解决方案7种)_NIGHT_SILENT的博客-CSDN博客 深度学习和机器学习中过拟合的判定、原因和解决方法_HUSTHY的博客-CSDN博客_深度学习过拟合的原因 D.梯度爆炸和梯度消失定义: 反向传播过程中需要对激活函数进行求导,如果导数大于1,那么随着网络层数的增加,求出的梯度更新将以指数形式增加,这就是梯度爆炸;同样如果导数小于1,那么随着网络层数的增加,梯度更新信息将以指数形式减少,这就是梯度消失。 注意:梯度消失、爆炸,根本原因在于反向传播的链式求导法则,属于先天不足,一般随着网络层数的增加会越来越明显。 产生原因:
解决方案
详解机器学习中的梯度消失、爆炸原因及其解决方法_Double_V的博客-CSDN博客_梯度消失 网络权重初始化方法总结(上):梯度消失、梯度爆炸与不良的初始化 - shine-lee - 博客园 (4 封私信) LSTM如何来避免梯度弥散和梯度爆炸? - 知乎 深度学习—梯度消失和爆炸、权重初始化 - 深度机器学习 - 博客园 常用激活函数定义:激活函数(Activation Function)是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。 作用:增加模型非线性表示能力 为什么使用激活函数:
性质:
饱和分类:硬饱和,软饱和,左饱和和右饱和
类别与功能:常用:sigmoid;tanh;ReLU;LReLU, PReLU, RReLU;ELU(Exponential Linear Units);softplus;softsign,softmax等 sigmoid函数f ( x ) = 1 1 + e ? x = σ ( x ) f(x)= \frac{1}{1+e^{?x}}=\sigma(x) f(x)=1+e?x1?=σ(x) sigmoid函数又称 Logistic函数,用于隐层神经元输出,取值范围为(0,1),可以用来做二分类。 它的导数为: 可以看出sigmoid的导数最大值为0.25,在进行反向传播时,各层的梯度(均小于0.25)相乘很容易造成梯度为0,也就是“梯度消失”。 优点:
缺点:
tanh函数f ( x ) = tanh ? ( x ) = e x ? e ? x e x + e ? x = 2 σ ( 2 x ) ? 1 f(x)=\tanh (x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}=2\sigma(2x)-1 f(x)=tanh(x)=ex+e?xex?e?x?=2σ(2x)?1 导数 Tanh函数是 sigmoid 的变形,本质上是 sigmoid 向下平移和伸缩后的结果,是 0 均值的,因此实际应用中 Tanh 会比 sigmoid 更好。但是仍然存在梯度饱和、梯度消失与指数计算的问题。 ReLU函数:线性整流函数(Rectified Linear Unit, ReLU)
优点:
缺点:
选择:
常见激活函数,及其优缺点 - 面试篇_GreatXiang888的博客-CSDN博客_常见激活函数优缺点 激活函数中的硬饱和,软饱和,左饱和和右饱和。_donkey_1993的博客-CSDN博客_软饱和 E其他神经网络BP反向传播算法原理和详细推导流程_Z_y_forever的博客-CSDN博客_bp反向传播 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/2 22:15:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |