热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

DL记录1:《浅谈深度学习》

   通过浅读几本书籍(《图解深度学习》、《统计学习方法》、《动手学深度学习》),我对机器学习及深度学习有了浅薄的了解及对该领域有了大概的轮廓认知,此文仅作学习记录

      通过浅读几本书籍(《图解深度学习》、《统计学习方法》、《动手学深度学习》),我对机器学习及深度学习有了浅薄的了解及对该领域有了大概的轮廓认知,此文仅作学习记录,不当之处还请斧正,后续再精学的时候也会复盘、更改。本篇以《图解深度学习》为主概述。



 

 对于机器学习的定义:

  我对该专业名词的字面意思理解:机器能够(像人一样)实现学习的功能以完成某个目标,

  但书中介绍到的广义概念:指从已知的数据中获得规律、并利用规律对未知数据进行预测的方法。

机器学习其实就是一种统计学习方法,需要大量数据进行学习,方式分为监督学习无监督学习。二者都是需要大量数据训练网络对这两个概念的深入理解可以看《统计学习方法》第一章节,此处不再赘述

而深度学习就是是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据。

二者的关联可借鉴此篇科普文章:
《深度学习和机器学习有什么差别?》https://ai.baidu.com/forum/topic/show/492744



 


深度学习

定义:

一般是指具有多重结构的网络,不过对于网络的层数没有严格定义,有很多种网络生成方法


快速发展原因:

  a.功能强大,在各个领域的基准测试中均打破了原有的性能极限

  b.可以轻松获得大量训练数据、多种性能方法提升、GPU(图形处理器、Graphics Processing Unit)、内存等硬件

  c.能模仿人脑机制获取知识

  d.相比较以往机器学习,能够通过学习大量数据自动确定需要提取的特征信息,甚至能自动获取一些人类无法想象的由颜色、边缘等组合起来的特征信息。


起源:

  A感知器:是将多个感知器组合得到的多层感知器,然后加入类似人类视觉皮质的结构得到的卷积神经网络(多应用于图像识别领域);是一种有监督学习,根据期望输出训练网络。

  B玻尔兹曼机:将多个受限玻尔兹曼机组合一起得到的深度玻尔兹曼机、深度信念网络;是一种无监督学习。


发展历程

  第一阶段(1940-1970):1943年提出形式神经元模型、1958年提出感知器、1969年提出“感知器无法解决线性不可分问题”

  第二阶段(1980-1990):1980年提出神经认知机、1982年提出霍普菲尔德模型、1986年提出误差反向传播算法、1989年提出卷积神经网络

  第三阶段(2000-2010):2006年提出将预训练和自编码器与深度神经网络结合的方法、2011年在语音识别领域测试的突破性效果、2012年在卷积神经网络中引入ReLU(保留正值)作为激活函数,又在图像识别基准测试中获得压倒性优势


神经网络(Neural Networks,NNs)

下面记录随着时间发展的神经网络


1、M-P模型:

  多个输入结点Xi对应一个输出结点y,不同的结点Xi有不同的权重Wi假设二者皆为矩阵(前(后)者为单行横(纵)向矩阵),则二者内积的结果key与预先设置的值goal比较,key>goal则输出1,否则为0,输入、输出均是0/1。

  此模型可以用于表示 AND、OR 等逻辑运算。


2、感知器(/机):

  M-P模型局限性过大,以罗森布拉特提出了感知器,能够根据训练样本自动获取样本的组合。相比前者,它能通过训练(有监督学习)自动确定参数

  训练过程:需要设定训练样本和期望输出,然后调整  实际输出 和  期望输出之差(误差修正

感知器训练过程:

  1)准备N个训练样本xi和期望输出ri、随机的初始参数wi和goal;

  2)调参:逐个加入样本,计算实际结果key,当key=goal时,参数不变,否则根据误差修正方法调整参数,直至误差为0或者小于某指定数值。

相比较M-P,它有了较大改进,但仍只能解决线性可分问题,无法解决线性不可分问题,想解决后者则需要多层感知器。


3、多层感知器:

  由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或者正向传播网络

  一般由输入层、中间层、输出层组成。

  中间层与二者的连接都是通过权重关系与二者连接,由于因果是多对一的关系,所以从前至后每层的数目逐渐减少。

  但是初期的多层感知器在输入层与中间层使用随机数作为连接权重(现象:输入数据不同,但中间层输出值相同,导致无法精确分类),而去迭代中间层与输出层的权重数据(也是通过误差修正方法),为训练好连接权重,提出了误差反向传播算法。


4、误差反向传播算法(此部分内容需个人能够完成推导):

  通过比较实际输出key与期望输出goal得到误差信号,由输出层逐层向前传播得到各层的误差信号,再调整各层的连接权重(调整权重的方法主要使用的是:梯度下降法)

误差计算方法:最小二乘法;

权重调整方法:梯度下降法(推导可参考花书P258页)

  结论为:权重调整值的计算是对误差函数、激活函数、连接权重分别求导的过程。对连接权重求导就是对上一层的连接权重、中见层与输入层的激活函数及连接权重作求导的过程。

这种从后向前逐层求导的过程成为链式法则(chain rule)


5、误差函数和激活函数:

  误差函数作为机器学习/深度学习中误差下降的指标,应根据不同的情况作不同的选择,

  常见的误差函数根据不同的任务有:

  分类问题的误差函数有:Classification Accuracy - 分类准确性、Logarithmic Loss - 对数损失、Confusion Matrix - 混淆矩阵、Area Under Curve (AUC)- 曲线下面积、 F1 Score - F1得分;多分类的问题使用的Cross-entropy cost function交叉墒代价函数、softmax函数、sigmoid二分类函数

  回归问题的误差函数有:Mean Absolute Error - 平均绝对误差、Mean Squared Error - 均方误差

激活函数类似于人类神经元,对输入信号作(非)线性变换


6、似然函数(需要对数理统计知识做深入复习)

  似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性

  概率用于在已知一些参数的情况下,预测接下来的观测所得到的结果,而似然性则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计


7、随机梯度下降法(花书P264页)

  随机梯度下降法只使用了部分训练样本进行迭代计算

  此处简单概述:根据训练样本的输入方式不同,选择不同种类的误差反向传播算法。

  有批量学习(batch learning)、小批量梯度下降方法(mini-batch learning)[目前使用的主流算法]、在线学习(online learning)


8、学习率η

  学习率是用来确定权重连接调整程度的系数。

  直接体现:权重调整值=学习率*随机梯度下降法的计算结果,学习率过大易导致修正过头、过小则收敛速度很慢、训练时间过长。

  需要学习一下“自适应调整学习率”,如AdaGrad方法,熟练之后可根据经验设置一个较大的初始值在逐渐减小。


卷积神经网络(Convolutional Neural Networks,CNN)[不知道什么是CNN的话,应该不用学DL了吧]:

  组成:输入层、卷积层、激活层、池化层、全连接层、输出层。可根据情况增加卷积层与池化层。


卷积层(concolution layer):

  直白讲,输入样本与卷积核的内积运算,原理上其实是对两张像素矩阵进⾏点乘求和的数学操作,其中⼀个矩阵为输⼊的数据矩阵,另⼀个矩阵则为卷积核(滤波器或特征矩阵),求得的结果表⽰

为原始图像中提取的特定局部特征。根据需求,有不同的卷积方案及填充方案。


激活层((Activation Layer):

  负责对卷积层抽取的特征进⾏激活,由于卷积操作是由输⼊矩阵与卷积核矩阵进⾏相加的线性变化关系,需要激活层对其进⾏⾮线性的映射,激活层主要由激活函数组成,即在卷积层输出结果的基

础上嵌套⼀个⾮线性函数,让输出的特征图具有⾮线性关系。卷积⽹络中通常采⽤ReLU来充当激活函数(还包括tanh和sigmoid等)。


池化层(pooling layer):

  池化层的作用是减小卷积层产生的特征图尺寸,是对感受域内的特征进⾏筛选,提取区域内具代表性的特征,能够有效降低输出特征尺度,进⽽减少模型所需要的参数量。按操作类型通常分为

最⼤池化(Max Pooling)平均池化(Average Pooling)求和池化(Sum Pooling),它们分别提取感受域内最⼤、平均与总和的特征值作为输出,最常⽤的是最⼤池化。


全连接层(fully connected layer):

  类似多层感知机,全连接层也需要计算激活值,需要对卷积神经⽹络学习提取到的特征进⾏汇总,将多维的特征输⼊映射为⼆维的特征输出,⾼维表⽰样本批次低位常常对应任务⽬标

 



推荐阅读
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文深入探讨了基于Pairwise和Listwise方法的排序学习,结合PaddlePaddle平台提供的丰富运算组件,详细介绍了如何通过这些方法构建高效、精准的排序模型。文章不仅涵盖了基础理论,还提供了实际应用场景和技术实现细节。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 解决PyCharm中安装PyTorch深度学习d2l包的问题
    本文详细介绍了如何在PyCharm中成功安装用于PyTorch深度学习的d2l包,包括环境配置、安装步骤及常见问题的解决方案。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 深入理解K近邻分类算法:机器学习100天系列(26)
    本文详细介绍了K近邻分类算法的理论基础,探讨其工作原理、应用场景以及潜在的局限性。作为机器学习100天系列的一部分,旨在为读者提供全面且深入的理解。 ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合Python编程语言和深度学习框架,详细展示了从数据预处理到模型训练的完整流程,并提供了代码示例。 ... [详细]
  • 随着生活节奏的加快和压力的增加,越来越多的人感到不快乐。本文探讨了现代社会中导致人们幸福感下降的各种因素,并提供了一些改善建议。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 本文旨在探讨如何利用决策树算法实现对男女性别的分类。通过引入信息熵和信息增益的概念,结合具体的数据集,详细介绍了决策树的构建过程,并展示了其在实际应用中的效果。 ... [详细]
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • LambdaMART算法详解
    本文详细介绍了LambdaMART算法的背景、原理及其在信息检索中的应用。首先回顾了LambdaMART的发展历程,包括其前身RankNet和LambdaRank,然后深入探讨了LambdaMART如何结合梯度提升决策树(GBDT)和LambdaRank来优化排序问题。 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
author-avatar
O臭煊儿O
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有