吴恩达机器学习--神经网络

文章目录

  • 1.神经网络概述
    • 1.1基本组成
    • 1.2示例
      • 1.2.1.需求预测
      • 1.2.2. 图像感知
    • 1.3 网络层
    • 1.4. 神经网络前向传播
    • 1.5 Tensorflow中数据形式
    • 1.6 构建神经网络的方法
      • 1.6.1. 逐步
      • 1.6.2. 构建神经网络密集负载
    • 1.7 前向传播代码
  • 2 Optional
    • 2.1.人工智能
    • 2.2 向量化
  • 3.Tensorflow
    • 3.1 模型训练步骤
    • 3.2 激活函数
      • 3.2.1选择激活函数
      • 3.2.2为什么神经网络中要用激活函数
  • 4 多分类问题
    • 4.1 softmax回归算法
      • 4.1.1 概述
      • 4.1.2 cost函数
      • 4.1.3 output
      • 4.1.4 改进实现
    • 4.2. 多标签分类问题
  • 5. 高级优化方法
  • 6.其他的网络层模型

1.神经网络概述

1.1基本组成

  1. 输入层:数据
  2. 隐藏层:可以访问每个功能,即从上一层到输出层的每个值。当某些特征无关重要时,可以通过设置适当的参数进行适当的忽略;隐藏层在训练集中是看不到的,训练集中只有x,y,即输入层,输出层
  3. 输出层:输出的概率就是神经网络预测的输出概率

x向量:输入特征组成
a向量:x计算所得的激活值组成的向量
a:概率、最终的激活、神经网络的最终预测

在一般的逻辑方程中,我们需要手动特征工程,例如预测房屋价格,我们需要已知X1X2,并手动决定如何将他们组合在一起,以提供更好地功能;
神经网络不需要手动特征工程,他可以学习其要制作的功能,即当我们从数据中训练它时,不需要明确决定还有哪些功能,神经网络会自行计算

可能会遇到多隐藏层的模型,这样的多层被称为多层感知器。
神经网络架构问题:决定有多少个隐藏层以及每个隐藏层有多少个神经元,从而选择一个好的架构
吴恩达机器学习--神经网络_第1张图片

1.2示例

1.2.1.需求预测

吴恩达机器学习--神经网络_第2张图片

1.2.2. 图像感知

吴恩达机器学习--神经网络_第3张图片

1.3 网络层

上标[i]表示第i层网络层
第i层网络层的输出是第i+1网络层的输入
对于每一层输入,对其应用一堆逻辑回归单元g函数
吴恩达机器学习--神经网络_第4张图片
吴恩达机器学习--神经网络_第5张图片
神经向量的输入层,一般不算在神经网络的总层数中,称作第0层。如下图为四层网络神经结构。
x向量定义为a[0]
g函数被定义为激活向量,其作用是计算某一层的激活值,如sigmoid函数。
吴恩达机器学习--神经网络_第6张图片

1.4. 神经网络前向传播

f(x)表示线性回归或逻辑回归的输出;
这种模式也叫做前向传播算法,从左向右依次传播神经元的激活;
随着靠近输出层,隐藏单元的数量会逐渐减少,直到剩一个
吴恩达机器学习--神经网络_第7张图片

1.5 Tensorflow中数据形式

先用Numpy数据形式表现,是两个[],代表是二维数组,当只有一个[]时,表示是一个一维数组;
二维数组形式可以让TensorFlow计算更高效
吴恩达机器学习--神经网络_第8张图片

#在TensorFlow中表示矩阵的方式:
#变为tf.Tensor([],)的形式;
tf.Tensor([],)的形式 也被称为张量

#在NumPy中表示矩阵的方式:
np.array([[]])

#从TensorFlow方式变回NumPy的方式:
a1.numpy()

执行顺序:NumPy以自己的方式存储二维数据,然后将数组传递给TensorFlow,传递过来时,TensorFlow喜欢将其转换为自己的内部格式–张量,然后使用张量有效运行,当读回数据时,可将数据保留为张量,或转换回NumPy数组
吴恩达机器学习--神经网络_第9张图片

1.6 构建神经网络的方法

1.6.1. 逐步

吴恩达机器学习--神经网络_第10张图片

1.6.2. 构建神经网络密集负载

  1. 顺序函数密集流的作用—>自动将两层串在一起形成一个神经网络 张量流顺序函数的新编码约定:model
  2. 然后将训练集中的数据存储在矩阵x或数组y中; 然后再运行编译功能model.compile();
  3. 然后再把x,y数据进行模型拟合model.fit();
  4. 最后进行推理或预测,可以使用模型预测model.predict()对新给的x进行预测;
    吴恩达机器学习--神经网络_第11张图片

1.7 前向传播代码

吴恩达机器学习--神经网络_第12张图片
吴恩达机器学习--神经网络_第13张图片

2 Optional

2.1.人工智能

吴恩达机器学习--神经网络_第14张图片
ANI:狭隘人工智能,专注于实现某一个方面
AGI:人工智能,模拟人大脑的行为

2.2 向量化

神经网络高效的原因:可矢量化,可以使用矩阵乘法有效实现
吴恩达机器学习--神经网络_第15张图片
向量点乘
吴恩达机器学习--神经网络_第16张图片
矩阵点乘
吴恩达机器学习--神经网络_第17张图片
Numpy中矩阵相乘
吴恩达机器学习--神经网络_第18张图片
网络层向量化
吴恩达机器学习--神经网络_第19张图片

3.Tensorflow

在tensorflow中训练神经网络的代码
吴恩达机器学习--神经网络_第20张图片

3.1 模型训练步骤

以逻辑回归为例
吴恩达机器学习--神经网络_第21张图片
1.指定如何在给定输入x和参数的情况项目,计算输出
吴恩达机器学习--神经网络_第22张图片
2.指定损失和成本
指定什么是损失函数,同时定义我们用来训练神经网络的成本函数
损失函数:二元交叉熵
吴恩达机器学习--神经网络_第23张图片
3.最小化成本函数,其中最重要的是计算偏导数,那么此时调用tensorflow库中的fit函数,就可利用反向传播的方法计算
吴恩达机器学习--神经网络_第24张图片
吴恩达机器学习--神经网络_第25张图片

3.2 激活函数

最常用的激活函数
吴恩达机器学习--神经网络_第26张图片

3.2.1选择激活函数

1、输出层的激活函数,取决于输出层要预测的y标签是什么
Y=0/1(二进制分类问题):Sigmoid
Y=+/-:线性激活函数
Y>=0:ReLU
吴恩达机器学习--神经网络_第27张图片

2、隐藏层的激活函数,一般用ReLU作为默认激活函数
ReLU更快,且只有一部分是平坦的,sigmoid有两处平坦。平坦部分会使得梯度下降很慢,效果不明显
吴恩达机器学习--神经网络_第28张图片

3.2.2为什么神经网络中要用激活函数

如果使用线性激活函数,或者不使用激活函数时,那么大型的神经网络计算出的值就等于线性回归函数的输出

4 多分类问题

当输出的y值不止为0/1时,而是有多个输出;即只输出一个数字,但这个数字取少量离散值而不是任何数字
吴恩达机器学习--神经网络_第29张图片

4.1 softmax回归算法

4.1.1 概述

~Softmax模型是逻辑回归模型的泛化
吴恩达机器学习--神经网络_第30张图片

4.1.2 cost函数

当aj越小,则L越大;
所以当aj无限接近1时,则说明与准确值越来越接近了,L越小
吴恩达机器学习--神经网络_第31张图片

4.1.3 output

吴恩达机器学习--神经网络_第32张图片
代码实现示例,但实际不推荐,在4.1.4课程中会讲到
吴恩达机器学习--神经网络_第33张图片

4.1.4 改进实现

舍入误差改进–更准确的计算
不再用中间值a代替了,直接将最原始的公式代入式中,让tensorflow可以重新排列术语,使计算这种数值更准确;也就是说不计算中间值
此时,则改变了激活函数,不再用softmax,而使用线性激活函数
吴恩达机器学习--神经网络_第34张图片
吴恩达机器学习--神经网络_第35张图片
吴恩达机器学习--神经网络_第36张图片

4.2. 多标签分类问题

三个二分类问题
吴恩达机器学习--神经网络_第37张图片
1、将三类问题放在一个神经网络中时:对于输出层的每一个结点,分别使用一次sigmoid激活函数;即将三类问题放在一个向量中输出
2、当然也可以按图中第一行所示,分为三个神经网络分别输出检测
吴恩达机器学习--神经网络_第38张图片

5. 高级优化方法

代替梯度下降,更快的降低成本函数,找到参数值-----Adam(自适应矩估计)
即改变学习率
当α过小,朝一个方向下降速度太慢时,可自动增大尔法;
当α过大,使方向来回摇摆时,可自动减小尔法;
α在全程并不是唯一值,可自动变化
吴恩达机器学习--神经网络_第39张图片
该方法的代码,与原来相比,仅是多了一步选择Adam优化器:
但是该方法需要默认初始尔法值,图中举例为10^-3
吴恩达机器学习--神经网络_第40张图片

6.其他的网络层模型

之前我们见到的都是密集层神经网络,即下一层都会受到上一层的激活

~卷积层:每个神经元都只能看到输入的局部信息(可重叠),是一个有限的局部输入窗口
为什么只看一部分信息?

  1. 计算更快
  2. 需要更少的训练数据
  3. 不易过拟合

此时会涉及架构参数的选择如:每个神经元可以看到的输入窗口有多大、一层有几个神经元。。。
由卷积层构成的网络:卷积神经网络
吴恩达机器学习--神经网络_第41张图片

你可能感兴趣的:(深度学习,深度学习,神经网络)