李宏毅 机器学习(2017)学习笔记——6-深度学习

目录

 

1. 深度学习的历史

2. 深度学习的三个步骤

2.1 步骤一:定义一个函数集(神经网络)

2.2 步骤二:评估函数好坏

2.3 步骤三:挑选出最好


1. 深度学习的历史

    ↑1958:感知机(线性模型)

    ↓1969:感知机有局限性

    ↑1980年代:多层感知机(和现在的深度神经网络DNN没有明显的差别)

    ↑1986:反向传播算法(超过3层帮助不大)

    ↓1989:一个隐藏层就够强大了,还需要什么深度学习呢?

    ↑2006:RBM初始化(改名为深度学习)

    ↑2009:GPU(加速)

    ↑2011:被引入到语音辨识中

    ↑2012:赢了ILSVRC图形比赛

2. 深度学习的三个步骤

2.1 步骤一:定义一个函数集(神经网络

  •     神经网络的神经元是怎么连接起来的呢?

    ① 全连接神经网络

    我们可以把已知参数的神经网络看做一个函数,其输入是一个向量,输出也是一个向量。

    

    如果一个神经网络的参数不确定,只确定了如何架构如何连接,那么我们就定义了一个函数集合。

    相邻层之间的神经元两两之间都有连接,所以称为是全连接层。

    输入的地方称为输入层,输出的地方称为输出层,其余的称为隐藏层

    

    因为有很多隐藏层,所以称为深度。

    神经网络的运算,我们常用矩阵运算表示。如下图所示

    

    在神经网络中这样计算输出,如下图,其实就是一连串的矩阵运算。写成矩阵运算就可以用GPU加速

    

隐藏层是对特征进行提取,输出层可以看做一个多类别的分类器,最终结果是得到类别。因为我们把输出层看做一个多类别分类器,所以这个多类别分类器要通过一个Softmax函数。

    

    举例来说,输入一个手写数字,输出这个数字是什么。对于机器来说,输入的图片就是向量。如图所示,输入的是16*1的图片,那么输入可以看做是一个256维的向量,每一个像素对应一个维度。如果激活函数用softmax,那么输出代表这个数字对应一个数字的几率。

    

    解决手写数字识别问题的关键,是我们需要确定一个函数,这个函数的输入是一个256维的向量,输出是一个10维的向量。这个函数就是神经网络。这个神经网络就是一个可以进行手写数字识别的函数。

    

    我们需要自行决定神经网络的结构,每一个隐藏层中有几个神经元。

    决定一个好的函数集是很重要的,我们需要尽可能使得最好的函数被包括在这个函数集当中。

2.2 步骤二:评估函数好坏

    我们通过计算y和真实值之间的交叉熵作为损失值用以评价一个函数的好坏。随后调整这个神经网络的参数使得交叉熵越小越好。

   

    我们把所有训练数据的交叉熵求和,得到一个总的损失值L。我们要做的事情就是在函数集里面找到一个函数使得L最小。或者是找一组超参数可以使得L最小。

     

2.3 步骤三:挑选出最好

    

  怎么找到一组可以最小化L的超参数呢?使用梯度下降法

    

    θ是超参数向量,先随机找一个初始值,然后计算每一个参数对L的偏微分,把偏微分写成一个梯度向量,有了之后,用原始值减去学习率与偏微分的积来进行参数的更新。反复进行得到最优参数。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值