为什么需要一个激励函数


图片发自简书App

各位小伙伴们大家好,好久不见,今天让我们来一起聊一聊现代神经网络中必不可少的一个组成部分激励函数以及我们在机器学习中为什么少不了激励函数.

那首先第一个问题,什么是激励函数呢?首先用简单的语句进行概括,就好比我们的现实总是残酷的,而我们周围的生活也是时刻发生这变化的,那其实所谓的激励函数就是来去解决我们在机器学习中无法用线性方程去解决的问题,那么这个时候你可能会想,什么是线性方程呢?

当我们提到线性方程的时候,我们会不得不想到非线性方程,在这个时候我们可以假设,女生长得越漂亮,越多的男生越喜欢,其实这个问题就可以当做一个线性问题,但是如果我们假设这个问题发生在校园里,现在校园里的男生是有限的,现在就算女生再漂亮,女生再漂亮,也不会有无穷多的男生去喜欢他,所以,在这个时候,这个问题就变成了一个非线性问题.再说,女生也不可能是无穷漂亮的吧,(对于我们男生来说,这个问题有时间我们好好的讨论下)

那这个时候,我们其实就可以讨论如何在神经网络中描述线性和非线性任务了,在这个时候,其实我们可以把整个神经网络写成一个式子Y=Wx W是我们需要的参数,x是输入值, Y是我们预测得到的结果.用这个式子,我们就可以很好地来去描述刚才我们提出的那个线性问题,因为W提出来的是一个固定的数,但是这样似乎并不能符合我们想让这个直线扭动起来成为非线性方程的一个结果,这个时候,就需要我们这个文章的主人公激励函数了,这个时候激励函数就拔刀相助,出来说,让我来掰弯他吧(y=AF(Wx)),这里的AF就是所说的激励函数.激励函数这时候掏出了自己的掰弯利器,用力套在了原函数上,这样原函数就被掰弯了.

其实这个激励函数AF()并不是什么高深的东西,本质上他也是一个非线性的方程,大概有relu,sigmoid,tanh这样的非线性方程,将这些掰弯利器强行把原有的数据结果给掰弯了,这样线性结果Y也就有了非线性的特征.

现在举个例子:假设现在我使用了relu这个掰弯利器,如果此时wx的结果是1,y还将是1,wx的结果是-1的时候,y的结果这个时候就可能是0,你甚至可以创造自己的激励函数来去处理自己的数据问题.不过要确保的是这些激励函数是必须要可以微分的.因为在误差反向传递的时候,只有这些可微分的激励函数才可以把这些误差反射回去.

想要恰当的使用这些激励函数还是有窍门的,比如当你的神经层不是很多的时候,比如只有两三次四五层的时候.这个时候使用任意的激励函数去掰弯这个时候都是可行的,都不会有很大的影响,但是当你的神经网络层数很多的时候,就不要随便使用激励函数了,就必须要谨慎的思考和考虑.因为这个时候就会涉及到梯度爆炸,梯度消失的情况.等将来有机会我们可以好好聊聊梯度爆炸,梯度消失的问题.

那么这个时候你就会想问,在很多的例子中,我们使用的最多的激励函数是那些?最好用的激励函数是那些?在我自身总结和结合前人的教训中可以得出经验.在少层的神经网络中,我们可以尝试使用很多种不同组合的激励函数.在卷积神经网络的卷积层中,推荐的激励函数是relu.在循环神经网络中,推荐的是relu或者是tanh.这个以后具体怎么选,在我认真学习总结后会写出来分享给大家.

好了,这就是最近的我的一些收获和总结,如果大家想获得更多的关于机器学习方面的知识和有想和我交流的问题,欢迎简书私信我.我也很高兴能够和大家可以一起进步.谢谢阅读.


<think>嗯,用户的问题是关于音频处理算法激励函数的设计和应用,需要示例代码或理论解释。首先,我需要明确激励函数在音频处理中的具体应用场景,比如非线性失真效果、动态范围控制或者特征增强等。 激励函数通常用于引入非线性特性,比如在吉他失真效果器中,通过硬削波或软削波来改变波形。常见的激励函数可能有硬限幅、软限幅、指数型或者Sigmoid型。这些函数在时域中对音频信号进行处理,改变其波形形状,从而产生谐波或压缩动态范围。 接下来要考虑数学表达,比如硬限幅函数可以表示为当输入超过阈值时输出固定值,否则保持线性。软限幅可能使用双曲正切或者多项式逼近。例如,tanh函数可以将信号限制在[-1,1]之间,产生平滑的失真效果。 在频域应用方面,激励函数可能用于增强特定频段,比如通过带通滤波后对信号进行非线性处理,再混合回原信号,这样可以增强高频细节。动态范围控制方面,激励函数可以结合包络跟踪,根据信号电平调整增益,比如在低电平部分增加增益,高电平部分压缩。 示例代码部分,用户可能需要Python的实现。比如定义一个硬限幅函数,使用numpy的clip方法;软限幅可以用tanh,或者多项式近似。还需要展示如何处理音频文件,使用librosa读取,应用函数,然后播放或保存结果。 需要注意的问题包括防止削波失真带来的高频噪声,可能需要后续的低通滤波;实时处理时的延迟问题;参数调整的主观性,比如音乐制作中的听觉调整。 引用部分,虽然用户提供了CNN、MFCC等引用,但激励函数可能更多涉及信号处理的基础理论,比如动态范围压缩和非线性失真。可能需要参考数字信号处理的教材或相关论文,但用户提供的引用中没有直接相关的,所以需要根据现有知识回答。 用户可能的应用场景包括音乐制作中的效果器、语音增强、助听器中的动态处理等。潜在的问题可能还有不同激励函数对音质的影响,如何选择参数,实时处理的优化方法等。 需要确保回答结构清晰,分点说明设计方法、应用场景、示例代码,以及注意事项。数学公式用$$...$$,代码用Python示例。最后生成相关问题,比如不同激励函数的比较、实时处理挑战、与压缩器的区别等。</think>### 音频处理算法激励函数的设计与应用 #### 一、激励函数的核心作用 激励函数(Excitation Function)在音频处理中主要用于引入非线性特性,常见于动态范围控制、谐波增强和失真效果生成。其核心数学定义为: $$y = f(x) \cdot g(x) + x \cdot (1 - g(x))$$ 其中$g(x)$为非线性增益函数,$f(x)$为非线性变换函数[^4]。 #### 二、典型设计方法 1. **硬限幅(Hard Clipping)** 数学表达式: $$ f(x) = \begin{cases} x & |x| \leq T \\ T \cdot \text{sign}(x) & |x| > T \end{cases} $$ 示例代码: ```python import numpy as np def hard_clip(signal, threshold=0.8): return np.clip(signal, -threshold, threshold) ``` 2. **软限幅(Soft Clipping)** 采用双曲正切函数: $$ f(x) = \tanh(\alpha x) $$ 参数$\alpha$控制非线性程度,$\alpha=3$时效果显著: ```python def soft_clip(signal, alpha=3): return np.tanh(alpha * signal) ``` 3. **多项式近似(Wave Shaping)** 三阶奇次多项式实现温和失真: $$ f(x) = x - \frac{x^3}{3} $$ 代码实现: ```python def wave_shaping(signal): return signal - (signal**3)/3 ``` #### 三、应用场景与实现 1. **谐波激励器** 高频增强典型结构: ```python def exciter(signal, drive=0.5, mix=0.3): high_pass = signal - lowpass_filter(signal) distorted = np.tanh(3 * drive * high_pass) return (1-mix)*signal + mix*distorted ``` 2. **动态处理器** 结合包络检测的智能激励: ```python def dynamic_exciter(signal, attack=0.01, release=0.1): envelope = compute_envelope(signal, attack, release) return signal * (1 + 2 * envelope) ``` #### 四、关键注意事项 1. 相位失真控制:需配合线性相位滤波器使用 2. 噪声抑制:建议在激励后接入降噪模块 3. 参数调节:驱动量(Drive)通常控制在0.2-0.8范围 #### 五、评估指标 1. THD(总谐波失真):$$THD = \frac{\sqrt{\sum_{n=2}^\infty A_n^2}}{A_1}$$ 2. 动态范围改进比:$$DRIR = 20\log_{10}\frac{DR_{out}}{DR_{in}}$$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值