机器学习\深度学习面试八股记录
本文记录总结了博主在面试中遇到的常见八股拷打,供大家参考。不出意外本文会持续更新,欢迎大家关注和指点。打了*的是频繁出现,且我认为多数方向和项目都会涉及到的考点。
监督式学习和无监督式学习
监督式学习(Supervised Learning)是一种使用带标签的数据来训练模型的学习方法。每个训练样本由特征和对应的标签组成,模型的目标是学习特征与标签之间的映射关系,从而能够对新数据进行比较准确的预测。常见的算法有支持向量机SVM、深度学习神经网络等。
无监督式学习是一种无需已标注数据,可自动对输入数据进行分类或分群的机器学习方法。常见的算法有K-means聚类算法、GAN对抗网络等。
前馈神经网络FNN
前馈神经网络FNN是最早的人工神经网络之一,它由三部分组成:
1、输入层:接受外部输入数据。每个节点代表一个输入特征。
2、隐藏层:由一个或多个层组成,每层包含若干神经元(节点),负责执行特征提取和数据变换。隐藏层的数量和每层神经元的数量由程序员指定,是模型的超参数。
3、输出层:生成最终的输出结果。输出层的节点数由程序员指定,取决于任务目标。例如,回归问题里输出层的节点只有一个,而分类问题里输出层的节点数目等于分类类别的数目。
FNN隐藏层每个神经元的净输入:
z=∑i=1nwixi+b z = \sum_{i=1}^n w_i x_i + b z=i=1∑nwixi+b
a=ϕ(z) a = \phi(z) a=ϕ(z)
大致结构:
卷积神经网络CNN
简介
卷积神经网络(CNN)是最基础的神经网络之一,具有局部连接、权重共享等特点,广泛运用于图像检测、图像生成等情景,是CV领域最常用的神经网络之一。
卷积神经网络一般由卷积层、池化层和全连接层组成。
卷积层:通过卷积操作提取图像的局部特征。
池化层:也被称作汇聚层,通过减少特征图的大小来减少计算量和防止过拟合。常用的池化方法有最大池化(选取池化窗口的最大值为池化结果)、平均池化(选取池化窗口内所有值的平均值为池化结果)。
全连接层:将卷积层、池化层提取出的特征进行映射和输出,结构和FNN中的全连接层类似。
卷积层结构如下:
卷积的计算方式:
循环神经网络RNN
简介
循环神经网络(RNN)是一中具有短期记忆功能,用于处理序列数据的神经网络,常用于自然语言处理、时间序列预测(如天气预报)等情景。RNN和FNN结构类似,都由输入层、隐藏层、输出层组成。但不同的是,RNN的隐藏层连接了延迟器(上下文单元)。这些延时器保存了隐藏层最近一次或几次的活性值。RNN层的活性值(隐状态)为:
ht=σ(Whhht−1+Wxhxt+bh) h_t = \sigma(W_{hh} h_{t-1} + W_{xh} x_t + b_h) ht=σ(Whhht−1+Wxhxt+bh)
*常见激活函数
Sigmoid函数:Sigmoid 函数将输入映射到 0 和 1 之间,常用于输出层的二分类问题。
σ(x)=11+e−x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1
Tanh函数:Tanh 函数将输入映射到 -1 和 1 之间,通常用于隐藏层。
tanh(x)=ex−e−xex+e−x \text{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+e−xex−e−x
Relu函数:ReLU 函数是最常用的激活函数之一,它将负值部分映射为 0,正值部分保持不变。
ReLU(x)=max(0,x) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)
SoftMax函数:Softmax 函数将一组实数转换为概率分布,常用于多分类问题的输出层。
softmax(xi)=exi∑jexj \text{softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} softmax(xi)=∑jexjexi
*常见损失函数
均方误差MSE:MSE 是回归问题中最常用的损失函数之一,衡量预测值与真实值之间的平均平方误差。
MSE=1n∑i=1n(yi−y^i)2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1∑n(yi−y^i)