热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Deeplearning深度学习

深度学习的步骤与机器学习一致:深度学习第一步里定义的函数,就是神经网络。定义把多个逻辑回归前后连接在一起,然后把连接好的里面的一个逻辑回归成为神经元,整体称为神经网络。我们可以用不

深度学习的步骤与机器学习一致:

深度学习第一步里定义的函数,就是神经网络。
定义
把多个逻辑回归前后连接在一起,然后把连接好的里面的一个逻辑回归成为神经元 ,整体称为神经网络。

我们可以用不同的方法连接这些neuron,就可以得到不同的structure,neural network里的每一个Logistic Regression都有自己的weight和bias,这些weight和bias集合起来,就是这个network的参数,我们用θ来描述。
如何连接,可以自己设计,常见的连接方式:
Fully Connect Feedforward Network(全连接前馈网络)
如果一个neural network的参数weight和bias已知的话,它就是一个function,它的input是一个vector,output是另一个vector,这个vector里面放的是样本点的feature,vector的dimension(尺寸)就是feature的个数:

如果今天不知道参数,只是定出了这个network的structure,决定好这些neuron该怎么连接在一起,这样的一个network structure其实是定义了一个function set(model),我们给这个network设不同的参数,它就变成了不同的function,把这些可能的function集合起来,我们就得到了一个function set。

下图中,每一排表示一个layer,每个layer里面的每一个球都代表一个neuron
1、layer和layer之间neuron是两两互相连接的,layer 1的neuron output会连接给layer 2的每一个neuron作为input。
2、对整个神经网络来说,它需要一个input,这个input就是一个feature的vector,而对layer 1的每一个neuron来说,它的input就是input layer的每一个特征(dimension)
3、最后的layer L,它的output就是整个network的output
4、layer的名字:
input的地方,叫做input layer,输入层(严格来说input layer其实不是一个layer,它跟其他layer不一样,不是由neuron所组成的)
output的地方,叫做output layer,输出层
其余的地方,叫做hidden layer,隐藏层
每一个neuron里面的sigmoid function,在Deep Learning中被称为activation function(激励函数),事实上它不见得一定是sigmoid function,还可以是其他function(sigmoid function是从Logistic Regression迁移过来的,现在已经较少在Deep learning里使用了)
层数较多的神经网络称为DNN深层神经网络(deep Neural Network)。

由于上述网络layer和layer之间,所有的neuron都是两两连接,所以它叫Fully connected的network。
有多个隐层的网络,可以称为deep,称为深度学习:

不仅需要多个层数,也需要有特殊的结构,才能得到较好的网络。

矩阵运算
用矩阵运算来表示,网络的运作过程,如下图所示,假设第一层隐层(hidden layers)的两个神经元,它的权重(weight)分别是,

w

1

=

1

,

w

2

=



2

,

w

1



=



1

,

w

2



=

1

w_{1}=1,w_{2}=-2,w_{1}^{'}=-1,w_{2}^{'}=1

w1=1,w2=2,w1=1,w2=1
把他们排成一个矩阵是:

[

1



2



1

1

]

\begin{bmatrix} 1 & -2\\ -1 & 1 \end{bmatrix}

[1121]
而输入是一个21的矩阵设为:

[

1



1

]

\begin{bmatrix} 1\\ -1 \end{bmatrix}

[11]
,将w和x相乘,再加上bias的向量

[

1

0

]

\begin{bmatrix} 1\\ 0 \end{bmatrix}

[10]
,可以得到该层的向量z,在经过激励函数(activation function)就可以得到这层的输出(output)(激励函数类型很多,此处以sigmoid函数为例)

把所有的变量都以matrix的形式表示出来,注意

W

i

W^{i}

Wi
的matrix,每一行对应的是一个neuron的weight,行数就是neuron的个数,而input x,bias b和output y都是一个列向量,行数就是feature的个数(也是neuron的个数,neuron的本质就是把feature transform到另一个space)

输出层(output layer)
我们可以把隐层(hidden layers)看作是特征提取器(feature extractor),输出层相当于一个多元分类器,它拿经过特征提取器转换后的一组比较好的特征进行分类的,由于输出层看作为多元分类器,所以再最后一层需要加上softmax。

手写字识别举例
手写字的input是一张image,对机器来说一张image实际上就是一个vector,假设这是一张16
16的image,那它有256个pixel,对machine来说,它是一个256维的vector,image中的每一个都对应到vector中的一个dimension,简单来说,我们把黑色的pixel的值设为1,白色的pixel的值设为0
1、Neural Network

input 256维,output 10维,以及自己design的network structure,function set(model)
2、模型的好坏判别

图象的256个像素点(pixel)通过这个神经网络之后,会得到一个输出,称为y,从这张图像的标签中转化而来的target称为

y

^

\hat{y}

y^
,跟之前的多分类一样,计算他们之间的交叉熵:

3、找出***的模型
调整参数使得,交叉熵最小,如果有多个数据集合,需要把所有数据集合的交叉熵相加,得到一个总的损失

L

=



n

=

1

N

l

n

L= \sum_{n=1}^{N}l^{n}

L=n=1Nln
,找到一组该网络的参数(parameters):

θ



\theta ^{*}

θ
,使得总的损失值最小,这组参数对应的函数就是训练好的模型。

找出使得总损失最小的方法,可以使用梯度下降的方式。
θ里面有大量的weight,bias参数,可以随机选取一个初始值,然后计算每一个参数对总损失的偏微分,把这些偏微分全部集合起来,叫做梯度,然后采用这些偏微分对参数进行更新:



推荐阅读
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 浅层神经网络解析:本文详细探讨了两层神经网络(即一个输入层、一个隐藏层和一个输出层)的结构与工作原理。通过吴恩达教授的课程,读者将深入了解浅层神经网络的基本概念、参数初始化方法以及前向传播和反向传播的具体实现步骤。此外,文章还介绍了如何利用这些基础知识解决实际问题,并提供了丰富的实例和代码示例。 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 本文详细介绍了定时器输入捕捉技术的原理及其应用。通过配置定时器通道的引脚模式为输入模式,并设置相应的捕获触发条件,可以实现对外部信号的精确捕捉。该技术在实时控制系统中具有广泛的应用,如电机控制、频率测量等场景。文中还提供了具体的配置步骤和示例代码,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 中国学者实现 CNN 全程可视化,详尽展示每次卷积、ReLU 和池化过程 ... [详细]
  • 基于OpenCV的图像拼接技术实践与示例代码解析
    图像拼接技术在全景摄影中具有广泛应用,如手机全景拍摄功能,通过将多张照片根据其关联信息合成为一张完整图像。本文详细探讨了使用Python和OpenCV库实现图像拼接的具体方法,并提供了示例代码解析,帮助读者深入理解该技术的实现过程。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 超分辨率技术的全球研究进展与应用现状综述
    本文综述了图像超分辨率(Super-Resolution, SR)技术在全球范围内的最新研究进展及其应用现状。超分辨率技术旨在从单幅或多幅低分辨率(Low-Resolution, LR)图像中恢复出高质量的高分辨率(High-Resolution, HR)图像。该技术在遥感、医疗成像、视频处理等多个领域展现出广泛的应用前景。文章详细分析了当前主流的超分辨率算法,包括基于传统方法和深度学习的方法,并探讨了其在实际应用中的优缺点及未来发展方向。 ... [详细]
  • 本文介绍了一种基于最大匹配算法的简易分词程序的设计与实现。该程序通过引入哈希集合存储词典,利用前向最大匹配方法对输入文本进行高效分词处理,具有较高的准确率和较快的处理速度,适用于中文文本的快速分词需求。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
author-avatar
加QQ873759613
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有