算法葫芦书(笔试面试)

一、特征工程

1.特征归一化:所有特征统一到一个区间内

线性函数归一化(0到1区间)、零均值归一化(均值0,标准差1)

2.类比型特征->数值性特征

序号编码、独热编码、二进制编码(010,110)

3.高维数组组合特征处理:为了提高拟合能力

降维:用k维向量表示,再运算

4.组合特征:找到哪些特征应该组合,决策树

5.文本数据表示:词袋模型(只记录出现频率、TF-IDF、n-gram)、主题词、词嵌入

6.Word2Vec(两种网络结构:CBOW-上下文预测当前、skip-gram当前预测上下文)、LDA(隐狄利克雷-主题变概率分布)

7.图像数据不足处理方法:随机旋转、平移、缩放等、添加噪声、颜色变化、改变清晰度

二、模型评估

1.混淆矩阵:T对不对、P是不是

1.分类问题:准确率(TP/总样本)、精确率(查准率-TP/TP+FP)、召回率(查全率TP/TP+FN)、F1、PR曲线(精确率和召回率-两难全,平衡点即F1)、ROC(越陡越好-遍历所有阈值如>0.9,0.8来绘制-FP率和TP率)、AUC(曲线下的面积-越高越好)

2.回归问题:MAE(L1损失函数,绝对值)、MSE(L2损失函数,平方,对异常更敏感,但丢失部分正常)

3.余弦相似度(方向上的一致性)、欧氏距离(具体数值的一致性)

4.过拟合(更多数据、降低模型复杂度、正则化约束-对模型参数进行约束L1L2、drop)和欠拟合(添加新特征、加模型参数、多训练轮数)

三、经典算法

1.支持向量机:一种二类分类模型,在特征空间中寻找间隔最大的分离超平面,泛化性更好。

感知机是找到一个平面使误差点最小。

核函数:当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分

对偶问题:最小化一个包含正则化项的损失函数--->为一个无约束的求最大值的凸二次优化。

k分类:1-训k个,取最高。2-训Ck2个。

2.逻辑回归(输出概率值、预测二分类是否患病)、线性回归(输出实数值、预测房价、温度等)

3.决策树:ID3、C4.5、CART等算信息增益和选择

四、降维

1.PCA(主成分分析、无监督):投影新坐标系、最大程度保留方差。根据特征值大小选前k个

2.LDA(线性判别分析、有监督):投到一条直线上,同类的尽可能近。最大化类间最小化类内。

五、无监督学习

1.k均值。调优:数据归一化和离群点处理,合理选择k值(手肘法),欧氏距离变核函数

kmeans++:越远的点越可能成为下一个聚类中心

自底向上层次聚类:指每次找质心之间距离最小的类。最后是多个{}

2.高斯混合模型:比kemans可以给出样本属于类的概率,一个复杂的事务分为几个高斯函数模型,均值、方差和权重来合成总的

3.自组织映射神经网络,二维网格,将输入数据样本聚类到不同的网格单元。

和kmeans区别:不用定义k值,k只更新本类,网格更新相邻的

4.聚类算法评估:聚类的数量、紧凑情况等、模型复杂度

六、概率图模型

1.贝叶斯公式

P(A|B)=P(AB)|P(B)

先验概率:直接的概率。后验概率:观察到某些数据后更新

2.生成式模型(如何生成)和判别式模型(如何区分)

生成式:朴素贝叶斯、贝叶斯网络、pLSA、LDA、隐马尔可夫

判别式:最大熵模型、条件随机场(CRF)

3.模型详解:

朴素贝叶斯(特征独立):先验概率、后验概率来预测

贝叶斯网络(有向无环图):推断算法查询

pLSA(概率潜在语义分析):主题词和文档概率分布、EM算法迭代(E期望,M最大似然函数。计算在当前参数下隐变量的期望值,最大化参数的似然函数)

LDA(每个文档多个主题词):pLSA扩展

隐马尔可夫(观测序列来推测):隐层状态转移,寻找最可能的状态序列

最大熵模型(最大化熵来避免过拟合):通过梯度上升法

条件随机场(CRF-直接建模条件概率预测)

七、优化算法

1.损失函数

适用回归:适用输出连续,最后一层无sigmoid

均方误差:对大误差敏感

绝对误差:更加稳健

适用分类:

交叉熵损失:计算预测概率分布与实际标签分布之间的差异,对错误分类的惩罚较大

对数似然损失:常用于概率模型

KL散度:衡量两个概率分布之间的差异

2.梯度下降

通过计算损失函数相对于参数的梯度,调整参数使损失函数最小

随机梯度下降:每次只使用一个样本来计算梯度

mini-batch梯度下降:每次使用小批量样本计算梯度

动量方法:纸球下落和铁球下落不一样

自适应调整(Adam):结合动量和加权平均更新学习率

八、采样

1.MCMC(马尔可夫链蒙特卡洛采样法)

通过构建一个马尔科夫链来逼近目标概率分布(p(x)),并从中生成样本。

马尔科夫链-蒙特卡洛抽样-接收拒绝采样(Metropolis-Hastings-根据正态分布生成一个新的候选状态,并计算接受概率是否大于某个数进而是否接收)

马尔科夫链是一个随机过程,其中每个状态仅依赖于前一个状态,即具有无记忆性。

九、前向神经网络

1.多层感知机(MLP)

输入层,隐藏层,输出层

每个神经元接收前一层的输出,进行加权和和激活函数运算

2.激活函数

常用:sigmoid(0,1)、Tanh-sigmoid的平移,减轻偏向,在两头会梯度消失(-1,1)、ReLu(在正区间内输出等于输入,负区间内输出为零,神经元可能死亡)、Leaky ReLU(负区间有较小输出,防止死亡)、softmax-通过对原始分数进行指数化和归一化处理,确保所有类别的概率之和为1

1-引入非线性变换,否则退化成简单线性模型

2-缓解梯度消失,如ReLu在正区间上导数为常数1

3-正规化输出信号,将神经元的输出信号映射到特定的范围内,如sigmoid(0,1)

4-激活神经元,通过比较神经元的输入和阈值,来确定要激活哪个神经元

3.梯度消失和梯度爆炸

1-梯度消失解决

使用合适的激活函数ReLu等

批归一化,对每一层输入进行归一化处理,使分布稳定

残差连接:直接跳过连接,梯度能更快反向传播

学习率调整

2-梯度爆炸解决

梯度裁剪:梯度的模大到一定阈值时,裁剪到较小范围

权重衰减:L1或L2范数的正则化项来限制参数的取值范围

使用自适应学习率调整能力的优化器

4.CNN(深度卷积神经网络)

稀疏交互(卷积核尺度远小于输入维度,优化时间复杂度和过拟合,只提取重要特征)和参数共享(同模型不同模块卷积核参数相同,只需要学习一组参数,降低存储需求)

池化:均值池化mean pooling、最大池化max pooling等,区域内选最大的,降低参数量

cnn用于文本分类:类似于一个滑动窗口来卷积

5.RNN(循环神经网络)

循环结构,不是前馈,能够捕捉序列信息。参数共享(隐藏层在不同时间步的参数是相同的)

有梯度消失和梯度爆炸,LSTM和GRU通过加入门控机制可以解决

6.LSTM(一种特殊的RNN)

输入门、输出门、遗忘门和记忆细胞(是LSTM的核心,用于保存长期记忆)组成

门控机制选择性记忆和遗忘,具有处理长序列数据的能力,并能够有效记住长期依赖关系

7.Seq2Seq

解决问题:传统方法编码时基于规则,泛化性很差。于是出现seq2seq

向量长度知道时补零,不知道时可以用这个

历史信息-->大纲-->考试时作答

从一个输入序列到另一个输出序列的映射任务。编码器和解码器,两个RNN

改进:

注意力机制:允许解码器在生成每个输出元素时动态地关注输入序列的不同位置,并根据这些位置的重要性分配权重。

Transformer模型:放弃了循环结构,实现了并行化训练和更高效的序列建模。

Copy机制:用于解决生成文本时的OOV(Out-of-Vocabulary)问题。Copy机制允许模型在生成单词时从原文本中直接拷贝单词而非仅从预定义的词汇表中生成单词。

相关推荐
GocNeverGiveUp3 分钟前
机器学习2-NumPy
人工智能·机器学习·numpy
古希腊掌管学习的神43 分钟前
[搜广推]王树森推荐系统笔记——曝光过滤 & Bloom Filter
算法·推荐算法
qystca44 分钟前
洛谷 P1706 全排列问题 C语言
算法
浊酒南街1 小时前
决策树(理论知识1)
算法·决策树·机器学习
就爱学编程1 小时前
重生之我在异世界学编程之C语言小项目:通讯录
c语言·开发语言·数据结构·算法
B站计算机毕业设计超人1 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条1 小时前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客1 小时前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon1 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5201 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉