李宏毅机器学习系列-深度学习简介

李宏毅机器学习系列-深度学习简介

  • 深度学习的概况
  • 深度学习的步骤
  • 前馈神经网络
  • 全连接神经网络
  • 数字识别分类
  • 总结

深度学习的概况

深度学习从2012年的图像识别比赛开始就复苏了,发展越来越快,越来越好,具体他的发展历史可以百度下,可以追溯到很早时期,还有几个大起大落的阶段:
李宏毅机器学习系列-深度学习简介_第1张图片
可以看看这些时间点的重要发展:
李宏毅机器学习系列-深度学习简介_第2张图片

深度学习的步骤

那深度学习的步骤是怎么样的呢,其实跟我们前面说的机器学习差不多,就跟把大象放冰箱里的步骤差不多:
李宏毅机器学习系列-深度学习简介_第3张图片
我们上次讲到了神经网络就是深度学习的重要部分,是由对个逻辑回归单元组合起来的:
李宏毅机器学习系列-深度学习简介_第4张图片

前馈神经网络

先介绍下这个,其实就是前向传播,从输入计算到输出,输入的是向量,每个向量的每个特征都与后一层的每个神经元相连,通过激活函数计算输入,然后继续往后面的层输入,最后到输出层,是一个向量,比如图上的例子输入是[1,-1],经过第一层的计算后,得到[0.98,0.12],很明显经过了sigmoid的非线性作用:
李宏毅机器学习系列-深度学习简介_第5张图片
那我们继续这样计算,知道计算到最后的输出:
李宏毅机器学习系列-深度学习简介_第6张图片
那这整一个网络结构就可以看做是一个模型集合,输入是一个向量,输出也是一个向量:
在这里插入图片描述

全连接神经网络

我们来定义下这个网络,输入的向量也看做一层,叫做输入层,最后输出的向量叫输出层,中间的都叫隐藏层,每个层之间的神经网络都是相互连接的,所以叫做全连接神经网络:
李宏毅机器学习系列-深度学习简介_第7张图片
所以深度学习的深度可以看做隐藏层的层数很多,所以看上去很深,比如经典的一些模型AlexNet,VGG,GoogleNet:
李宏毅机器学习系列-深度学习简介_第8张图片
当然还有残差神经网络Residual Net:
李宏毅机器学习系列-深度学习简介_第9张图片
其实神经网络的计算,我们可以用矩阵,这样就可以在GPU上计算,可以大大缩短时间,比如:
李宏毅机器学习系列-深度学习简介_第10张图片
上面的值是一层,其实每一层都是这么计算的,计算出的结果向量又作为下一层的输入:
李宏毅机器学习系列-深度学习简介_第11张图片
所以输出可以看成一个个sigmoid函数叠起来的结果,有点像递归调用啊:
李宏毅机器学习系列-深度学习简介_第12张图片
通常我们把最后的输出层当做多分类器,中间的隐藏层其实就变成了特征提取器了:
李宏毅机器学习系列-深度学习简介_第13张图片

数字识别分类

我们来举一个识别数字的例子:
我们希望输入一张数字的图片,输出是一个数字:
在这里插入图片描述
我们的输入是16x16像素的图,如果是填充颜色的就是1,没有就是0,因此有256个点也就是256个特征输入:
李宏毅机器学习系列-深度学习简介_第14张图片
我们的输出是一个10维的向量,每一个维度代表一个数字的概率,取概率最大的为分类的数字,如下,2的概率有0.7,所以这个图片的数字被预测为2:
李宏毅机器学习系列-深度学习简介_第15张图片
然后我们需要设计一些隐藏层来组成这个模型:
李宏毅机器学习系列-深度学习简介_第16张图片
那么问题来了,隐藏层多少层好呢,每一层的神经元个数多少好呢,这个没有很准确的答案,很多的是根据经验试错和直觉得来的,也就是实际结果得出来的,当然也有让机器自动选择要多少层,另外网络的结构能不能变呢,可以的,可以用CNN或者RNN或者其他的:
李宏毅机器学习系列-深度学习简介_第17张图片
接下来要定义模型的好坏了,我们拿真实的预测值和预测的值做交叉熵作为损失函数,为什么不用均方差前面一篇将过了,梯度为0的地方可能是远离最小点的:
李宏毅机器学习系列-深度学习简介_第18张图片
于是我们拿很多的样本来进行训练,计算总的损失,我们希望损失越小越好,最小的损失的参数模型就是我们要找的:
李宏毅机器学习系列-深度学习简介_第19张图片
那怎么样找出这个损失最小的模型呢,还是我们的梯度下降法:

李宏毅机器学习系列-深度学习简介_第20张图片
其实这个过程就是反向传播,具体是用链式法则求导的,也就是一个计算梯度更新参数的过程,当然当参数很复杂的时候我们不可能手动去算,现在有很多的框架,当然下面列的可能是比较老的了,现在一般有keras,pytorch,tensorflow,mxnet等等:
李宏毅机器学习系列-深度学习简介_第21张图片
至此,深度学习怎么训练最基本的步骤讲完了。

总结

本篇简单介绍了深度学习的基本框架,介绍全连接神经网络的架构,介绍了前向传播和反向传播,其实如果考虑特征空间问题,那么隐藏层在做的是就是把原始的特征空间不断的进行扭曲变形,生成新的特征空间,也就是特征被映射到新的特征空间,就是坐标变换,用来做分类或者回归,而每一层的神经元的个数就是特征空间的维度,维度越高越容易区分。附上思维导图:
李宏毅机器学习系列-深度学习简介_第22张图片
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,图片来自李宏毅课件,侵删。

你可能感兴趣的:(机器学习,李宏毅机器学习,深度学习)