美文网首页数据蛙数据分析每周作业机器学习专题
李宏毅机器学习入门学习笔记(六) Brief Introduct

李宏毅机器学习入门学习笔记(六) Brief Introduct

作者: Spareribs | 来源:发表于2019-04-02 22:09 被阅读2次

    本文主要学习深度学习的一些基础知识,了解入门

    背景

    深度学习的发展趋势

    下图是Google使用深度学习的项目变化趋势:


    image

    深度学习的发展史

    回顾一下deep learning的历史:

    • 1958: Perceptron (linear model)
    • 1969: Perceptron has limitation
    • 1980s: Multi-layer perceptron
      • Do not have significant difference from DNN today
    • 1986: Backpropagation
      • Usually more than 3 hidden layers is not helpful
    • 1989: 1 hidden layer is “good enough”, why deep?
    • 2006: RBM initialization (breakthrough)
    • 2009: GPU
    • 2011: Start to be popular in speech recognition
    • 2012: win ILSVRC image competition

    感知机(Perceptron)非常像我们的逻辑回归(Logistics Regression)只不过是没有sigmoid激活函数。09年的GPU的发展是很关键的,使用GPU矩阵运算节省了很多的时间。

    深度学习的三个步骤

    我们都知道机器学习有三个step,那么对于deep learning呢?其实也是3个步骤~~如下图所示:

    在这里插入图片描述
    • Step1:神经网络(Neural network)
    • Step2:模型评估(Goodness of function)
    • Step3:选择最优函数(Pick best function)

    那对于深度学习的Step1就是神经网络(Neural Network)

    Step1:神经网络(Neural Network)

    神经网络(Neural network)里面的节点,类似我们的神经元。


    在这里插入图片描述

    神经网络也可以有很多不同的连接方式,这样就会产生不同的结构(structure)。
    那都有什么连接方式呢?其实连接方式都是你手动去设计的:

    完全连接前馈神经网络

    概念:前馈(feedforward)也可以称为前向,从信号流向来理解就是输入信号进入网络后,信号流动是单向的,即信号从前一层流向后一层,一直到输出层,其中任意两层之间的连接并没有反馈(feedback),亦即信号没有从后一层又返回到前一层。


    在这里插入图片描述
    • 当已知权重和阈值时输入(1,-1)的结果
    • 当已知权重和阈值时输入(0,0)的结果
    在这里插入图片描述

    所以可以把整个神经网络(neural network)看成是一个函数(function),如果神经网络中的权重和阈值都知道的话,就是一个已知的函数(也就是说,如果我们把参数都设置上去,这个神经网络其实就是一个函数)。他的输入是一个向量,对应的输出也是一个向量。

    如果只是定义了一个神经网络的结构,但是不知道权重还有阈值怎么办呢?


    在这里插入图片描述

    给了结构就相当于定义了一个函数集(function set)

    不论是做回归模型(linear model)还是逻辑回归(logistics regression)都是定义了一个函数集(function set)。我们可以给上面的结构的参数设置为不同的数,就是不同的函数(function)。这些可能的函数(function)结合起来就是一个函数集(function set)。这个时候你的函数集(function set)是比较大的,是以前的回归模型(linear model)等没有办法包含的函数(function),所以说深度学习(Deep Learning)能表达出以前所不能表达的情况。

    我们通过另一种方式显示这个函数集:

    全链接和前馈的理解

    • 输入层(Input Layer):1层
    • 隐藏层(Hidden Layer):N层
    • 输出层(Output Layer):1层


      在这里插入图片描述
    • 为什么叫全链接呢?
      • 因为layer1与layer2之间两两都有连接,所以叫做Fully Connect;
    • 为什么叫前馈呢?
      • 因为现在传递的方向是由后往前传,所以叫做Feedforward。

    深度的理解

    那什么叫做Deep呢?Deep = Many hidden layer。那到底可以有几层呢?


    在这里插入图片描述
    在这里插入图片描述
    • 2012 AlexNet:8层
    • 2014 VGG:19层
    • 2014 GoogleNet:22层
    • 2015 Residual Net:152层
    • 101 Taipei:101层

    随着层数变多,错误率降低,随之运算量增大,通常都是超过亿万级的计算。对于这样复杂的结构,我们一定不会一个一个的计算,对于亿万级的计算,使用loop循环效率很低。

    引入矩阵计算(Matrix Operation)能使得我们的运算的速度以及效率高很多:

    矩阵计算

    如下图所示,输入是 (1,-1),输出是(0.98,0.12)。
    计算方法就是:sigmod(权重w【黄色】 * 输入【蓝色】+ 偏移量b【绿色】)= 输出

    在这里插入图片描述
    如果有很多层呢?
    在这里插入图片描述

    计算方法就像是嵌套,这里就不列公式了,结合上一个图更好理解。


    在这里插入图片描述

    从结构上看每一层的计算都是一样的,在计算机里面使用并行计算技术加速矩阵运算。
    这样写成矩阵运算的好处是,你可以使用GPU加速。那我们看看本质是怎么回事呢?

    本质:通过隐藏层进行特征转换

    疑问:PPT里面特征提取替代特征工程(Feature extractor replacing feature engineering),这句话没有看明白


    在这里插入图片描述

    示例:手写数字识别

    举一个手写数字体识别的例子


    在这里插入图片描述

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


    在这里插入图片描述
    从输出结果看,是数字2的置信度为0.7,比较高。
    在这里插入图片描述

    将识别手写数字的问题转换,输入是256维的向量,输出是10维的向量,我们所需要求的就是隐藏层神经网络的函数


    在这里插入图片描述
    神经网络的结构,决定了函数集(function set),所以说网络结构(network structured)很关键。

    了解Step1,也会引入相关的问题:

    • 多少层? 每层有多少神经元?
      • 尝试发现错误 + 直觉
    • 结构可以自动确定吗?
      • 进化人工神经网络(Evolutionary Artificial Neural Networks)
    • 我们可以设计网络结构吗?
      • CNN卷积神经网络(Convolutional Neural Network )


        image

        讲完了step1之后就要将step2(怎么定义参数的好坏):

    Step2: 模型评估(Goodness of function)

    损失计算

    image.png

    我们需要把所有的data算起来:

    总体损失

    image.png
    • 把所有的损失求和
    • 在函数集(function set)中查找最小化总损失L的函数
    • 找到最小化总损失L的网络参数 θ^*

    Step3:选择最优函数(Pick best function)

    梯度下降(Gradient Descent)

    如何找呢?Gradient Descent方法:

    image

    现在有很多架构工具了:

    反向传播

    image

    思考

    为什么要用深度学习,深层架构带来哪些好处?那是不是隐藏层越多越好?

    隐藏层越多越好?

    image

    从图中展示的结果看,毫无疑问,层次越深效果越好~~

    普遍性定理

    参数多的model拟合数据很好是很正常的。下面有一个通用的理论:
    为什么“深层”神经网络不是“胖”神经网络?可以通过具有一个隐藏层的网络实现(给定足够的隐藏神经元)


    image

    参考文档

    神经网络和深度学习之——前馈神经网络

    相关文章

      网友评论

        本文标题:李宏毅机器学习入门学习笔记(六) Brief Introduct

        本文链接:https://www.haomeiwen.com/subject/owowbqtx.html