李宏毅机器学习(2017版)_P13:深度学习

这篇博客介绍了深度学习的基础,包括神经网络的概念和全连接前馈网络,强调隐藏层在特征转换中的作用。模型评估部分讲解了如何通过交叉熵函数计算损失,并寻找最优函数。此外,讨论了隐藏层数量与过拟合的关系,以及反向传播在优化过程中的应用。关键词涵盖深度学习、特征提取、模型评估和优化策略。
摘要由CSDN通过智能技术生成


在这里插入图片描述

相关资料

开源内容:https://linklearner.com/datawhale-homepage/index.html#/learn/detail/13

开源内容:https://github.com/datawhalechina/leeml-notes

开源内容:https://gitee.com/datawhalechina/leeml-notes

视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef

官方地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html

1、深度学习的三个步骤

1.1、神经网络(Neural Network)

1.1.1、概念

神经网络(Neural network)里面的节点,类似我们的神经元。
在这里插入图片描述
神经网络:不同的连接方式会产生不同的结构(structure)。
神经网络里面有很多逻辑回归函数,其中每个逻辑回归都有自己的权重和自己的偏差,这些权重和偏差就是可以优化的参数。

1.1.2、全连接前馈神经网络(Fully Connect Feed forwardNetwork)

前馈or前向(feedforward):输入信号进入网络后,信号流动是单向的,无反馈流动。即信号从前一层流向后一层,一直到输出层。
在这里插入图片描述
神经网络如果权重和偏差都知道的话就可以看成一个函数。这个函数输入是一个向量(输入层维度),对应的输出也是一个向量(输出层维度)。不论是做回归模型(linear model)还是逻辑回归(logistics regression)都是定义了一个函数集(function set)。

1.1.3、隐藏层

在这里插入图片描述
结构:

  • 输入层(Input Layer):1层
  • 隐藏层(Hidden Layer):N层
  • 输出层(Output Layer):1层
  • 全连接:layer之间两两都有连接,所以叫做Fully Connect;
  • 前馈or前向:传递的方向是由后往前传,所以叫做Feedforward。

通过隐藏层进行特征转换
使用隐藏层进行特征提取,替代原来的特征工程。最后一个隐藏层输出的就是一组新的处理过的特征;对于输出层,其实是把前面的隐藏层的输出(最好的特征)当做输入,然后通过一个多分类器(可以是softmax函数)得到最后的输出y。

Example:Minist
在这里插入图片描述

输入:一个16*16=256维的向量,每个pixel对应一个dimension,有颜色用(ink)用1表示,没有颜色(no ink)用0表示
输出:10个维度,每个维度代表一个数字的置信度。

Tips:

  1. 对于有些机器学习相关的问题,一般用特征工程来提取特征。但是对于深度学习,我们只需要设计神经网络模型来进行就可以了。对于语音识别和影像识别,深度学习是个好的方法,因为特征工程提取特征并不容易。
  2. 有很多设计方法可以让机器自动找到神经网络的结构的,比如进化人工神经网络(Evolutionary Artificial Neural
    Networks)但是这些方法并不是很普及 。
  3. 可以自己设计网络结构,例如 CNN卷积神经网络(Convolutional Neural Network)

2、模型评估(Goodness of function)

2.1、单个数据损失

在这里插入图片描述
对于神经网络来说,采用交叉熵(cross entropy)函数来对 y y y y ^ \hat{y} y^​​的损失进行计算,接下来就是调整优化参数,让交叉熵越小越好。

2.2、模型数据总体损失

在这里插入图片描述
对于总损失,计算整体所有训练数据的损失,然后把所有的训练数据的损失都加起来,得到一个总体损失L。接下来就是在function set里面找到一组函数能最小化这个总体损失L,即是找一组神经网络的参数 θ \theta θ,来最小化总体损失L。

3、选择最优函数(Pick best function)

在这里插入图片描述
使用梯度下降找到最优的函数和最好的一组参数,计算偏微分,并不断自身迭代优化参数。
在神经网络中计算损失最好的方法就是反向传播,可以用很多框架来进行计算损失,比如说TensorFlow,Pytorch等。
深度学习框架,核心是对于反向传播的计算。

4、思考

  • 理论上,隐藏层越多越好。我认为实际可能不是。一方面是会存在过拟合问题,另一方面,例如ResNet,隐藏层过多,如果不采用残差结构,可能无法训练计算。
  • 对于任何一个连续的函数,都可以用足够多的隐藏层来表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值