用python写算法题遇到的问题
1.字母和字母之间不能像c语言一样直接进行加减操作 使用ord()函数将字母转acsll,使用chr()函数将acsll转成字母 2.在类内创建方法并使用这个方法,需要使用self. 的方式调用 3.python不使用&&和||表示并 或 而是使用and or 4.sorted函数返回值是一个列表,如 sr=‘cba’ sorted…
RNN初学容易弄混的一些点
1.假如batch size=2 那么这两批是使用同一套权重的,在时间步走完后一起更新同一套权重,但是这两批使用的是不同的H,更新权重时使用的梯度是两批梯度的平均。 2.RNN的数据输入时需要进行转置在one_hot的原因是一开始的输入是batchsize*timestep那么这样直接进行one_hot的结果是batchsize*timestep*…
RNN梯度更新BPTT
1.损失函数 对于分类任务来说,rnn使用交叉熵损失。 其中: T为序列长度 C为类别数 yt,i​为真实标签的one-hot表示 yhat t,i​为模型预测的概率分布 预测的输出是C维张量,每个数值代表这个类别的概率。真实标签也是一个C维张量,但是只有一个值为1。 对于回归任务来说,rnn使用均方损失。 2.梯度更新过程 假设我们使用一个时间步…
特征工程(持续更新)
1.类别数据 方法:one-hot encoding 由于存在很多特征出现的次数非常少,全部热独立编码会使列表非常宽,可以把这些类别标记成unknown 2.时间数据 需要考虑的因素很多,如工作日休息日不同,新年也会有很大不同。这部分后续更新。 3.特征组合 类似热独立编码,不过使用了多个特征作为一列。 4.文本训练 1.将文本标记为属性标记 -实…
集成学习
1.bagging 每次从N个样本中抽取m个样本,使用这m个样本训练一棵决策树,最终得到多课决策树。 在预测时使用这n棵决策树同时预测,对每棵决策树的结果使用投票法统计出一个得票最多的来作为结果。 2.随机森林 基本思想同bagging一致,不过在生成每棵决策树时在抽取样本基础上增加了抽取特征来训练决策树的操作。 3.boosting 和baggi…
正则化总结(未完结)
1.Batch Normalization 训练时的处理流程: 假设总共有n个样本,每批有m个样本,每个样本存在d个特征,在训练时就是对一批样本的同一个属性进行标准正太分布化处理。其中γ和β为待学习的scale和shift参数,用于控制输出的方差和均值。μ是一批样本的均值。σ是一批样本的标准差。 预测时的处理流程: 在预测阶段,所有参数的取值是固定…
梯度消失和梯度爆炸小总结
在深度学习中,梯度消失和梯度爆炸是训练深层神经网络时常见的两大问题,它们会严重影响网络的训练过程和性能。梯度消失,梯度趋零难更新;梯度爆炸,梯度过大不稳定。 为了解决这些问题,可以采取多种策略,包括选择合适的激活函数、采用合适的权重初始化方法、引入批量归一化、使用残差连接、实施梯度裁剪以及使用更稳健的优化器*等。这些策略可以有效地提高模型的训练效率…
感知机学习算法与其对偶形式的联系与差异
1. 核心思想对比 原始形式 (Primal Form):直接优化模型参数。算法直接对权重向量 w 和偏置 b 进行更新。我们的目标是找到一个超平面 w·x + b = 0。 对偶形式 (Dual Form):将参数表示为样本的线性组合。算法不直接更新 w 和 b,而是…
Python *和**使用总结
1.数学*和列表重复 2.使用*将多个值打包成列表或者将一个列表解包成多个值 在函数参数中使用*号将多个参数打包成一个列表 在函数参数中使用*号将一个列表解包成多个参数 3.使用**将多个键值对打包成字典或者将一个字典解包成多个键值对 在函数参数中使用**号将多个键值对打包成一个字典 在函数参数中使用**号将一个字典解包成多个键值对