数据蛙数据分析每周作业机器学习专题

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

2019-04-02  本文已影响2人  Spareribs

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

背景

深度学习的发展趋势

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


image

深度学习的发展史

回顾一下deep learning的历史:

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

深度学习的三个步骤

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

在这里插入图片描述

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

Step1:神经网络(Neural Network)

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


在这里插入图片描述

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

完全连接前馈神经网络

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


在这里插入图片描述 在这里插入图片描述

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

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


在这里插入图片描述

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

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

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

全链接和前馈的理解

深度的理解

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


在这里插入图片描述
在这里插入图片描述

随着层数变多,错误率降低,随之运算量增大,通常都是超过亿万级的计算。对于这样复杂的结构,我们一定不会一个一个的计算,对于亿万级的计算,使用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,也会引入相关的问题:

Step2: 模型评估(Goodness of function)

损失计算

image.png

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

总体损失

image.png

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

梯度下降(Gradient Descent)

如何找呢?Gradient Descent方法:

image

现在有很多架构工具了:

反向传播

image

思考

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

隐藏层越多越好?

image

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

普遍性定理

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


image

参考文档

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

上一篇下一篇

猜你喜欢

热点阅读