张量
张量=容器
张量是现代机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。
0维张量=数字;1维张量=向量;2维张量=矩阵;3维张量=公用数据存储在张量,彩色图片等…

one-hot vector
独热编码,用于分类标记。比如(猫,狗,鼠)对应(1,0,0)代表猫,(0,1,0)代表狗…将离散型特征采用独热编码,会使得特征之间的距离计算更加合理。
softmax函数
softmax函数的作用主要是:1.通过将模型的预测结果转化到指数函数上将预测结果转化为非负数;2.归一化处理,使各种结果概率之和等于1.


交叉熵

对于单标签多分类问题,p(x)表示是否为标记的类,如果用独热编码表示分类,则取值0或1;q(x)则是预测结果为该类的概率。用交叉熵做损失函数,值越小,表示模型预测结果与实际情况一致性越高。
单标签多分类问题所有类别概率和为1,多标签二分类问题所有类别和不为1,交叉熵的计算针对的是单个类别(即二分类),然后单张样本计算多个二分类交叉熵的和。
欧式空间
欧几里得空间就是在对现实空间的规则抽象和推广(从n<=3推广到有限n维空间)。
欧几里得几何就是中学学的平面几何、立体几何,在欧几里得几何中,平行线任何位置的间距相等。
而中学学的几何空间一般是2维,3维(所以,我们讨论余弦值、点间的距离、内积都是在低纬空间总结的),如果将这些低维空间所总结的规律推广到有限的n维空间,那这些符合定义的空间则被统称为欧几里得空间(欧式空间,Euclidean Space)。而欧几里得空间主要是定义了内积、距离、角(没错,就是初中的那些定义),理解了这些再去理解数学定义就很明确了。
梯度弥散与梯度爆炸

靠近输出层的hidden layer 梯度大,参数更新快,所以很快就会收敛;
而靠近输入层的hidden layer 梯度小,参数更新慢,几乎就和初始状态一样,随机分布。
在上面的四层隐藏层网络结构中,第一层比第四层慢了接近100倍!!
这种现象就是梯度弥散(vanishing gradient problem)。而在另一种情况中,前面layer的梯度通过训练变大,而后面layer的梯度指数级增大,这种现象又叫做梯度爆炸(exploding gradient problem)。
总的来说,就是在这个深度网络中,梯度相当不稳定(unstable)。
batch_size

batch的选择首先决定的是下降的方向,batch_size越大,下降的方向越准确。
综合考虑数据集的大小,数据集比较小的时候,用整个数据集作为batch_size就可以,这时候下降的方向也是最精准的,数据集比较大的时候,相对小的batch可以达到和用整个数据集相似的全局学习率,综合考量学习的效果以及电脑内存是否撑得住,目的是尽量让学习效果和效率同时最大化。
在合理范围内,增大 Batch_Size 有何好处?
- 内存利用率提高了,大矩阵乘法的并行化效率提高。
- 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
- 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。
batch_size增大到一定程度后,再增大则效率变差,下降方向也基本不再变化。
学习率
梯度下降的伪代码如下:
重复已下过程,直到收敛为止{ωj=ωj-λF(ωj) /ωj}
λ就是学习率,学习率过小,优化效率可能很低,学习率过大则有可能越过最优值,收敛到局部最优解。
关于解决学习率的一些问题,如选择合适的学习率,动态调整学习率,归一化等参考:
如何通俗地解释欧氏空间? – 知乎https://www.zhihu.com/question/27903807/answer/699570097