中年技术分享——深度学习的基础入门


在深入研究激活函数的细节之前 , 让我们快速浏览一下神经网络的概念以及它们如何工作 。 神经网络是一种非常强大的机器学习机制 , 基本上可以模仿人脑的学习方式 。
大脑从外界接收刺激 , 对输入进行处理 , 然后生成输出 。 随着任务的复杂化 , 多个神经元形成一个复杂的网络 , 在彼此之间传递信息 。
中年技术分享——深度学习的基础入门
本文插图
人工神经网络试图模仿类似的行为 。 在下面看到的网络是由相互连接的神经元组成的神经网络 。 每个神经元的特征在于其重量 , 偏见和激活功能 。
中年技术分享——深度学习的基础入门
本文插图
输入被馈送到输入层 , 神经元使用权重和偏差对该输入执行线性变换 。
x =(重量*输入)+偏差 在此之后 , 激活功能将应用在上述结果中 。
最后 , 激活函数的输出移至下一个隐藏层 , 并重复相同的过程 。 信息的这种前向运动称为前向传播 。
如果生成的输出与实际值相去甚远怎么办?使用前向传播的输出 , 可以计算误差 。 基于此误差值 , 将更新神经元的权重和偏差 。 此过程称为反向传播 。
那没有激活功能可以做吗?
我们知道 , 使用激活函数会在正向传播过程中在每一层引入一个额外的步骤 。 现在的问题是–如果激活函数增加了复杂性 , 那么如果没有激活函数就可以做吗?
中年技术分享——深度学习的基础入门
本文插图
想象一下没有激活功能的神经网络 。 在那种情况下 , 每个神经元将仅使用权重和偏差对输入执行线性变换 。 尽管线性变换使神经网络更简单 , 但是该网络的功能将减弱 , 并且将无法从数据中学习复杂的模式 。
没有激活函数的神经网络本质上只是线性回归模型 。
因此 , 我们对神经元的输入使用了非线性变换 , 并且网络中的这种非线性是由激活函数引入的 。
【中年技术分享——深度学习的基础入门】常用类型的激活功能
1.二进制步进功能
当我们具有激活函数时 , 我们想到的第一件事就是基于阈值的分类器 , 即是否应基于线性变换的值来激活神经元 。
换句话说 , 如果激活函数的输入大于阈值 , 则激活神经元 , 否则将其禁用 , 即 , 对于下一个隐藏层不考虑其输出 。
2.线性函数
我们看到了阶跃函数的问题 , 函数的梯度变为零 。 这是因为二进制步进函数中没有x的分量 。 除了二元函数 , 我们可以使用线性函数 。
3.乙状结肠
我们要看的下一个激活函数是Sigmoid函数 。 它是使用最广泛的非线性激活函数之一 。 Sigmoid会转换介于0和1之间的值 。
4. ReLU
ReLU函数是另一种非线性激活函数 , 已在深度学习领域流行 。 ReLU代表整流线性单位 。 与其他激活功能相比 , 使用ReLU功能的主要优势在于它不会同时激活所有神经元 。
这意味着仅当线性变换的输出小于0时 , 神经元才会被停用 。 下面的图将帮助您更好地理解这一点-
f(x)=最大值(0 , x)
中年技术分享——深度学习的基础入门
本文插图
对于负输入值 , 结果为零 , 这意味着神经元未激活 。 由于仅激活一定数量的神经元 , 因此与S型和tanh函数相比 , ReLU函数的计算效率要高得多 。
还有包括泄漏的ReLU、参数化ReLU、指数线性单位、Swish、Softmax等
怎么选择正确的激活功能
现在我们已经看到了很多激活函数 , 我们需要一些逻辑/试探法来知道在哪种情况下应该使用哪个激活函数 。 好与坏没有经验法则 。


推荐阅读