1、什么叫模型收敛?什么叫模型欠拟合和过拟合?
什么叫模型收敛?------模型收敛是指在训练过程中,模型的损失函数逐渐减小并且趋于稳定的状态。简而言之,当模型的训练过程达到一个稳定的点,使得进一步的训练不会显著改变模型的参数或性能时,我们就说模型已经收敛。
模型要避免过拟合------过拟合是指机器学习模型在新的、以前未曾见过的输入上的表现不如在训练数据上的表现。过拟合的模型会"记住"训练数据集中的噪声和细节,从而对模型在新数据上的表现产生负面影响;欠拟合------在训练集和测试集效果都不佳------模型训练还不足。
2、TensorFlow和PyTorch中的张量tensor是什么?干什么用的?
Tensor 是最基本的数据结构之一------多维矩阵。
张量可以有不同的维度(也称为秩或轴的数量),例如:
- 标量(Scalar):零维张量,只有一个数值。
- 向量(Vector):一维张量,可以看作是一列或一行数值。
- 矩阵(Matrix):二维张量,可以看作是由行和列组成的表格。
- 更高维的张量:具有三个或更多维度的张量,可以用来表示更复杂的数据结构,例如图像或视频帧。
张量的形状(Shape)定义了每个维度的大小,而张量的大小(Size)则是张量中元素的总数。
Tensor 的用处
- 数据表示:Tensor 用于表示输入数据、权重、偏置等,可以是一维向量、二维矩阵或更高维度的数据结构。
- 数学运算:Tensor 支持各种数学运算,如加法、减法、乘法、点积等。
- 自动求导:Tensor 支持自动求导,这对于训练神经网络至关重要,因为它可以自动计算梯度用于反向传播。
- GPU 加速:如果系统配置了 NVIDIA GPU 并且 PyTorch 被正确配置为使用 CUDA,那么 Tensor 可以在 GPU 上进行计算,显著加快训练过程。
3、神经网络能够更好的拟合数据的原因是?感觉隐藏层中通过权重和偏置不应该都属于线性变换吗?怎么实现的非线性变换?为什么多层感知机MLP就可以实现捕捉非线性变换?不理解怎么实现的呢?
因为神经网络的工作原理就是通过权重和偏置计算数据,所以不断训练每一层神经网络连接层上的权重和偏置直到找到最合适的可以更好拟合训练数据的参数们,该神经网络就可以将没识别过的数据计算后较为准确判断。
在神经网络中,每一层的输出通常是由线性变换(权重乘以输入加上偏置)和非线性激活函数组成的。线性变换本身确实是线性的,但通过添加非线性激活函数,整个模型就能够捕获非线性关系。这些激活函数引入了非线性,使得神经网络能够学习复杂的函数映射。如果没有非线性激活函数,无论神经网络有多少层,其输出都是输入的线性组合,因此无法捕获非线性关系。这种非线性激活函数有助于打破线性关系,使得神经网络能够学习和逼近复杂的非线性函数。
4、激活函数是什么?交叉熵是什么?
2.1、sigmoid------二分类问题中的输出层或作为隐藏层的激活函数------将连续实数映射到(0,1)------也可以和交叉熵损失函数一起使用,以评估模型预测的概率分布与真实标签之间的差异
2.2、relu------ReLU(x)=max(0,x)
2.3、softmax------多分类问题的输出层------输出一个概率分布------通常与交叉熵损失函数一起使用,以评估模型预测的概率分布与真实标签之间的差异
2.4、交叉熵(Cross-Entropy)是一种常用的损失函数,尤其适用于分类问题,包括二分类和多分类任务,用来衡量两个概率(真实数据概率分布和预测概率分布)分布之间的差异,差距越小则交叉熵越小,用来指导梯度下降优化模型。
5、常见模型评估指标
- 较低的损失值表明模型在数据集上的预测效果较好------损失值衡量了模型预测值与真实值之间的差距------Logloss
- 精确率衡量了被模型标记为正类的样本中真正为正类的比例;召回率衡量了所有实际为正类的样本中有多少被模型正确识别为正类------PR AUC 是 Precision-Recall 曲线下面积的缩写,衡量了模型在不同阈值下的精确率和召回率的表现。
- ROC AUC 是 ROC 曲线下面积的缩写,衡量了模型区分正类和负类的能力。