1,条件表达式
if x > 0:
y = math.log(x)
else:
y = float(‘nan’)
等价于
y = math.log(x) if x > 0 else float(‘nan’)
2,列表式推导式
l1 = []
for i in range(1000):
if i % 2 == 0:
l1.append(i)
等价于
[i for i in range(1000) if i % 2 == 0]
3,科学计算库NumPy(三个属性分别是什么)
1.ndim属性,维度个数
2.shape属性,各维度大小
3.dtype属性,数据类型
4,转置
arr.transpose() 或arr.T
数据叠加
1.vstack()(垂直叠加)
2.hstack()(水平叠加)
5,卷积神经网络(CNN)
CNN卷积层
3D滤波器/卷积核的超参数
滤波器/卷积核数量(output number)
核尺寸(kemel size)
步长(stride)
零填充(zero padding)
尺寸计算(W,H,D)
1.W = (W - size + 2 * padding)/stride +1
2.H = (H - size + 2 * padding)/stride +1
3.D = output.number
6,优化算法(梯度下降在深度学习中被广泛使用)
在求数值解的优化算法中,小批量随机梯度下降在深度学习中被广泛使用。它的算法很简单:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量B,然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘机作为模型参数在本次迭代的减小量。
“调参” 调节超参数
7,NumPy优点(运算单元的依据)
向量化(vectorization)
1,获得执行速度更快、更紧凑的代码策略
2,基本思路:“一次”在一个复杂对象上进行操作,或者向其应用某个函数,而不是通过在对象的单个元素上循环来进行
3,在Python级别上,函数式编程工具map,filter和reduce提供了向量化的手段
4,在NumPy级别上,在ndarray对象上进行的循环由经过高度优化的代码负责,大部分代码用C语言编写,远快于纯Python
5,矢量间运算,相同大小的数组间的运算应用在元素上
6,矢量和标量运算,“广播” 一 将标量“广播”到各个元素
8,softmax回归 相同点和不同点
线性回归模型适用于输出为连续值的情景。在另一类情景中,模型输出可以是一个像图像类别这样的离散值。对于这样的离散值预测问题,我们可以使用诸如 softmax回归在内的分类模型。和线性回归不同, softmax回归的输出单元从一个变成了多个,且引入了 softmax运算使输出更适合离散值的预测和训练。
Softmax运算解决的两个问题,为什么要解决?
一方面,输出层的输出值的范围不确定,我们难以直观上判断这些值的意义
另一方面,真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量
Softmax运算解决了以上两个问题,它通过下式将输出值变换成值为正且和为1的概率分布。
9,为什么使用交叉熵作为损失函数
使用softmax运算后可以更方便地与离散标签计算误差。想要预测分类结果正确,我们其实并不需要预测概率完全等于标签概率。改善上述问题的一个方法是使用更合适衡量两个概率分布差异的测量函数。其中,交叉熵是一个常用的衡量方法。交叉熵只关心对正确类别的预测概率,因为只要其值足够大,就可以确保分类结果正确。当然,遇到一个样本只有一个标签时,例如图像里含有不止一个物体时,我们并不能做这一步简化。但即便对于这种情况,交叉熵同样只关心对图像中出现的物体类别的预测概率。
10,三类**函数(叫什么,每类的输出图形,是什么)
ReLU函数
ReLU函数提供了一个很简单的非线性变换
sigmoid函数/sigmoid函数可以将
元素的值变换到0和1之间
tanh函数
tanh(双曲正切)函数可以将元素的值变换到-1和1之间
11,什么是模型的欠拟合、过拟合(概念),以及模型判断的依据
模型无法得到较低的训练误差,这一现象称作欠拟合;模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合。
模型判断的依据:模型复杂度和训练数据集大小。
12,什么是权重衰减,以及权重衰减的方法是什么
权重衰减等价于L2范数正则化。正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。L2范数正则化在模型原损失函数基础上添加L2范数惩罚项,从而得到训练所需要的最小化的函数。L2范数惩罚项指的是模型权重参数每个元素的平方和与一个正的常数的乘积。以线性回归损失函数为例:
13,丢弃法在深度学习中的作用是什么?为什么
深度学习模型常常使用丢弃法来应对过拟合问题。丢弃法只在训练模型时使用。
网络分析题
14,深度卷积神经网络AlexNex网络特性及其构成
网络特性:
1,AlexNet包含8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。2,AlexNet将sigmoid**函数改成了更加简单的ReLU**函数。
3,AlexNet通过丢弃法来控制全连接层的模型复杂度。
4,AlexNet引入了大量的图像增广,如翻转、裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合。
构成
AlexNet包含8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。
Alexnet第一层中的卷积窗口形状是1111.因为ImageNet中绝大多数图像的高和宽均比MINIST图像的高和宽大10倍以上,ImageNet图像的物体占用更多的像素,所以需要更大的卷积窗口来捕获物体。第二层的卷积窗口形状减小到55,之后全采用33。此外,第一、第二和第五个卷积层之后都使用了窗口形状为33、步幅为2的最大池化层。而且,AlexNet
使用的卷积通道数也大于LeNet中的卷积通道数数十倍。最后一个卷积层的是两个输出个数为4096的全连接层。
简要说明AlexNet(深度卷积神经网络)采用LeNet(卷积神经网络)实现的关键代码
15,使用重复元素的网络(VGG) 的网络结构及特性,尝试写出VGG关键实现代码