《python深度学习》笔记---3.1、神经网络剖析
一、总结
一句话总结:
|||-being
训练神经网络主要围绕以下四个方面,构建好架构,还是非常简单的
|||-end
层,多个层组合成网络(或模型)。
输入数据和相应的目标。
损失函数,即用于学习的反馈信号。
优化器,决定学习过程如何进行。
1、层:深度学习的基础组件 ?
输入张量转化为输出张量:层是一个数据处理模块,将一个 或多个输入张量转换为一个或多个输出张量。
有状态的层表示有权重:有些层是无状态的,但大多数的层是有状态的, 即层的权重。
权重是张量:权重是利用随机梯度下降学到的一个或多个张量,其中包含网络的知识。
2、简单的向量数据保存?
2D张量:简单的向量数据保存在 形状为 (samples, features) 的 2D 张量中,
密集连接层dense层处理2D张量:通常用密集连接层[densely connected layer,也 叫全连接层(fully connected layer)或密集层(dense layer),对应于Keras 的 Dense 类]来处 理。
3、keras中序列数据表示?
3D张量:序列数据保存在形状为 (samples, timesteps, features) 的 3D 张量中,
LSTM层用来处理3D张量:通常用循环 层(recurrent layer,比如Keras 的 LSTM 层)来处理。
4、keras中图像数据表示?
4D张量:图像数据保存在4D 张量中,
Conv2D层用来处理4D张量:通常用二维 卷积层(Keras 的 Conv2D)来处理。
5、神经网络层兼容性(layer compatibility)?
只接受特定形状的输入张量:层兼容性(layer compatibility)具体指的是每一层只接受特定形状的输入张量,并返回特定形状的输出张量。
6、密集连接层dense层处理2D张量 实例?
手写数字识别:layer = layers.Dense(32, input_shape=(784,))
2D张量:第0轴是批量维度:我们创建了一个层,只接受第一个维度大小为784 的 2D 张量(第0 轴是批量维度,其大 小没有指定,因此可以任意取值)作为输入。
输出为32:这个层将返回一个张量,第一个维度的大小变成 了 32。
7、深度学习模型 图方面的解释?
有向无环图:深度学习模型是层构成的有向无环图。最常见的例子就是层的线性堆叠,将单一输入映射 为单一输出。
8、神经网络的拓扑结构定义了一个假设空间(hypothesis space)?
可能性空间:机器学习的定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找输入数据的有用表示
限定为一系列特定的张量运算:选定了网络拓扑结构,意味着将可能性空间(假设空间)限定为一系列特定的张量运算,将输入数据映射为输出数据。
找合适的值:然后,你需要为这些张量运算的权重张量找到一组合适的值。
9、多个输出的神经网络可能具有多个损失函数?
每个输出对应一个损失函数:具有多个输出的神经网络可能具有多个损失函数(每个输出对应一个损失函数)。但是,梯 度下降过程必须基于单个标量损失值。
损失函数取平均:因此,对于具有多个损失函数的网络,需要将所有损失 函数取平均,变为一个标量值。
10、一定要明智地选择目标函数,否则你将会遇到意想不到的副作用?
|||-begin
对于分类、回归、序列预测等常见问题,你可以遵循一些简单的指导原则来选 择正确的损失函数。
|||-end
二分类问题,你可以使用二元交叉熵(binary crossentropy)损 失函数;
多分类问题,可以用分类交叉熵(categorical crossentropy)损失函数;
回归 问题,可以用均方误差(mean-squared error)损失函数;
序列学习问题,可以用联结主义时序分类(CTC,connectionist temporal classification)损失函数
11、常见的损失函数选择依据?
二分类问题,你可以使用二元交叉熵(binary crossentropy)损 失函数;
多分类问题,可以用分类交叉熵(categorical crossentropy)损失函数;
回归 问题,可以用均方误差(mean-squared error)损失函数;
序列学习问题,可以用联结主义时序分类(CTC,connectionist temporal classification)损失函数
二、内容在总结中
博客对应课程的视频位置: