矩阵求导总结
基础部分基本法则根据$df=f’(x)dx$,我们定义向量微分和矩阵微分 df=\sum_{i=1}^n\frac{\partial f}{\partial x_i}dx_i=\frac{\partial f}{\partial\mathbf{x}}^Td\mathbf{x}=\frac{\partial f}{\partial \mathbf{x}}\cdot d\mathbf{x} df=\sum_{i=1}^{m}\sum_{j=1}^{n}\frac{\partial f}{\partial X_{ij}}dX_{ij}=\mathrm{tr}\left(\frac{\partial f}{\partial \mathbf{X}}^{T}d\mathbf{X}\right)=\mathbf{X}\cdot...
Acoustic Toolbox和Arlpy配置
python的arlpy包是调用Acoustic Toolbox,利用fortran进行仿真计算,首先需要下载Acoustic Toolbox 下载Acoustic Toolbox下载链接: http://oalib.hlsresearch.com/AcousticsToolbox/at_2024_12_25.zip (Mac/Linux/Windows – 必须要手动进行编译) http://oalib.hlsresearch.com/AcousticsToolbox/atWin10_2020_11_4.zip (旧版本,涵盖了MATLAB I/O) 下载后,将工具包解压,打开命令行,进行配置1234cd at/at #访问解压文件所在路径make clean #清除之前的编译文件make all #进行编译sudo make install ...
论文随笔-CFARnet
介绍本人最近受够代码了,下定决心来点不一样的,do some math(如果能在下方打赏就更好了,码文不易,希望能赞助 买奶茶钱 买可乐钱) 恒虚警率这个约束是经典符合假设检验中的标准要求,随着科技进步,机器学习这一方法已经开始被人们使用在各个领域 这篇文章的主要内容: 定义了一个可以用于贝叶斯和机器学习的CFAR检测器框架:将CFAR约束应用于贝叶斯最优检测器,可以用于任意复合假设检验 提出learning-based CFAR检测器的性能门限,证明CFAR-constrained Bayes检测器渐进收敛于GLRT 提出了CFARnet,一种深度学习的恒虚警检测 将CFARnet与GLRT进行性能对比 相同性能下:CFARnet计算复杂度<GLRT GLRT表现不佳时:CFARnet仍有很好的性能,且仍能保持恒虚警特性 检测器经典检测器似然比检验(Likelihood Ratio Test,LRT)[1]: T_{LRT}(\boldsymbol{x}) = 2 \log \frac{p(\boldsymbol{x} \mid z...
序列模型与循环神经网络
序列介绍现实生活中,有许多数据并不是像图片一样,看一眼就能了解全部信息. 举个简单的例子: 一句话中,词语的出现顺序可能也会影响这句话的信息量:“狗咬人”所带来的信息远没有“人咬狗”带来的信息量大…… 序列数据已经存在了人们的生活中当中: 音乐、语言和视频 地震:大地震后,往往伴随小的余震 如何对序列进行统计上述提到了信息量,而信息量这个词往往就和概率相关了 在时间$t$观察到$x_t$,那么得到$T$个不独立的随机变量$(x_1,…x_T) - p(\boldsymbol x)$ 使用条件概率展开$p(a,b)=p(a)p(b|a)=p(b)p(a|b)$ 所以$p(\boldsymbol...
微调
介绍神经网络除了最后一部分,其余部分都是在做特征提取,如果目标数据集属于原数据集,那么训练好的模型就可以直接拿来用了. 实际上Chatgpt就是属于这种(一句话总结:让你的模型站在巨人的肩膀上……) 假设使用数据集已经训练出了一个模型,那这个对目标数据集仍有很好的适用性(最后一层因为label的原因,往往发生改变) 微调的方式训练 是一个目标数据集上的正常训练任务,但使用更强的正则化 使用更小的学习率 使用更少的数据迭代 源数据集远复杂于目标数据,通常微调效果更好 重用分类器权重 固定一些层 神经网络通常学习有层次的特征表示 低层次的特征更加通用 高层次的特征则更跟数据集相关 可以固定底部一些层的参数,不参与 更新 更强的正则 代码这里的代码比较复杂,所以没有全部放入文章中建议认真看 https://courses.d2l.ai/zh-v2/assets/notebooks/chapter_computer-vision/fine-tuning.slides.html 123pretrained_net =...
图像增广
介绍在不同场景下,图片很可能环境中其他因素干扰,比如噪声 如果在训练数据时引入噪声,模型往往有更好的鲁棒性 数据增强 增加一个已有数据集,使得有更多的多样性 在语言里面加入各种不同的背景噪音 改变图片的颜色和形状 翻转: 12345678import torchvision #图片,图片增广的办法,生成结果两行四列,scale图片画多大def apply(img, aug, num_rows=2, num_cols=4, scale=1.5): Y = [aug(img) for _ in range(num_rows * num_cols)] d2l.show_images(Y, num_rows, num_cols, scale=scale)apply(img, torchvision.transforms.RandomVerticalFlip()) #上下翻转apply(img, torchvision.transforms.RandomHorizontalFlip()) ...
使用python进行Monte Carlo实验
Monte Carlo实验方法一:使用multiprocessing包使用python进行monte carlo实验,如下图所示,有16个进程可以设置 使用模板: 12345678910111213141516171819202122232425262728293031323334from multiprocessing import Poolimport argparsedef run_trial(trial_idx): """ 此处填写实验内容,需要在之前global变量 """ return 1 if success else 0if __name__ =="__main__": total_epochs = #TODO: 导入terminal参数 parser = argparse.ArgumentParser(description='Process some arguments.') ...
Resnet残差网络
思考模型越复杂,是不是带来的好处就越多呢? 结构 残差块家族也有许多成员 Resnet块 重复多次,就得到了resnet网络 总结 残差块使得很深的网络更加容易训练 甚至可以训练一千层的网络 残差网络对随后的深层神经网络设计产生了深远影响,无论是卷积类网络还是全连接类网络
batch norm批量归一化
介绍在训练模型的时候,对于一个网络来说: 前部:数据集中在前部,网络前面的层变化,则会导致后面的层也跟着变化->收敛速度慢 后部:损失是集中在网络后面的,所以往往后面的层训练较快那有没有一种方式,使网络后面的层尽量保持不变呢?批量归一化定义通过固定小批量数据的均值和方差,再引入可学习参数 γ 和 β 对数据进行调整,有助于加速模型的训练收敛,提高模型的稳定性 。计算小批量均值和方差的公式: \mu_B = \frac{1}{|B|} \sum_{i\in B} x_i \text{ and } \sigma_B^2 = \frac{1}{|B|} \sum_{i\in B} (x_i - \mu_B)^2 + \epsilon然后对其做额外的调整: x_{i + 1} = \gamma \frac{x_i - \mu_B}{\sigma_B} + \beta不再学习均值和方差,转而学习参数 γ 和 β 作用位置 作用在 全连接层和卷积层输出上,激活函数前 全连接层和卷积层输入上 对全连接层,作用在特征维 对于卷积层,作用在通道维 实现1234567net =...
模糊函数
介绍 窄带模糊函数 在脉冲雷达和声纳信号处理过程中,模糊函数是传播延迟$\tau$和多普勒频率$f$, $\chi(\tau,f)$的二维函数。它表示由于接收机匹配滤波器[1] \chi(\tau,f)=\int_{-\infty}^{\infty}s(t)s^{*}(t - \tau)e^{i2\pi ft}dt 宽带模糊函数给出的定义为[2] [6] WB_{ss}(\tau,\alpha)=\sqrt{|\alpha|}\int_{-\infty}^{\infty}s(t)s^{*}(\alpha(t - \tau))dt其中 $\alpha$是接收信号相对于发射信号的时间尺度因子,计算公式为: \alpha=\frac{c + v}{c - v} 实际上宽带模糊函数才是广义形式,因为当介质中的波速远快于目标速度时(这在雷达/声纳中很常见)频率上的这种压缩可通过频率偏移 $f_d = f_c \cdot v/c$(称为多普勒偏移)来近似。而窄带信号可以用这种近似,于是才得出了窄带模糊函数,可以通过利用 FFT...