什么是神经网络,它的原理是啥?(2)

参考:https://www.youtube.com/watch?v=mlk0rddP3L4\&list=PLuhqtP7jdD8CftMk831qdE8BlIteSaNzD

视频3:什么是激活函数?为什么我们需要激活函数?它的类型有哪些?

为什么需要激活函数?如果没有激活函数,那么神经网络的向前传播就会变成线性的。一个隐藏层和多个隐藏层实际上没有区别,如下图

因此,我们需要 非线性 的激活函数。(除了上面的原因,还有一个原因,那就是现实世界,一个物品的特征之间的关系通常也是非线性的,所以要用非线性的激活函数才能更好的去模拟它们)

接下来介绍激活函数的类型,首先是 sigmoid 函数,如下图

sigmoid 函数的特点是,定义域是负无穷到正无穷,而值域是 (0, 1)

sigmoid 函数很适合用来作为 二元分类 模型的 output nero 的激活函数。

但 sigmoid 函数不适合用作 隐藏层 的激活函数

随后是 Tanh 函数,如下图

当我们在用梯度下降法做训练时,我们会计算激活函数的导数,下图是 sigmoid 和 tanh 的导数图像

可以看到 tanh 的斜率变化远强于 sigmoid,因此使用 tanh 作为隐藏层的激活函数,模型训练速度会比 sigmoid 快很多

tanh 还有其它好的特性,那就是它的输出值是 (-1, 1)。相当于一个自动的 "正则化"。这样一来在训练时,隐藏层之间的数据传输会简单很多。

不过 tanh 也有缺点,从导数图像来看,当 x 的绝对值大时,斜率很低,这会导致训练速度极其缓慢,这也叫做 "vanishing gradient problem"

为了解决 vanishing gradient problem,我们提出了下面这种激活函数 ReLU 函数

tanh 是 piece-wise linear,因此它包含了 Linear 和 non-linear 的性质和优势

TODO:感觉这里有问题,如果 x > 0 则 f(x) = x,那感觉后边会出现 "线性退化"

以下是 ReLU 的变种

在遇到多分类问题的时候,我们不能使用 sigmoid 函数,它不合适

适用于多分类问题的激活函数是 softmax 函数,如下图


如上图,使用 e^x 的原因是,指数函数会随着 x 的增加爆炸性增长,从而让我们的最大可能性的可能性变得更加突出

如下图是 softmax 函数的一个更加严格的定义

在面对回归问题的时候,通常我们不对 output neuron 使用任何激活函数

接下来做个总结

对于二元分类问题,我们通常使用 sigmoid 函数作为 output neuron 的激活函数,而使用 ReLU/tanh 作为隐藏层的激活函数,如下图

sigmoid 和 tanh 都有一个问题:vanishing gradient problem。这个问题可以由 ReLU 函数解决,ReLU 函数还有很多变种

在解决多分类问题的时候,我们通常使用 tanh/ReLU 作为隐藏层的激活函数,使用 Softmax 作为 output layer 的激活函数

而面对回归问题时,通常 output layer 没有激活函数

视频4:TODO

TODO: here

相关推荐
殇者知忧8 小时前
【论文笔记】若干矿井粉尘检测算法概述
深度学习·神经网络·算法·随机森林·机器学习·支持向量机·计算机视觉
红衣小蛇妖11 小时前
神经网络-Day45
人工智能·深度学习·神经网络
weixin_4487816218 小时前
DenseNet算法 实现乳腺癌识别
pytorch·深度学习·神经网络
啥都会一点的研究生1 天前
仅需一行代码即可提升训练效果!
神经网络
rit84324991 天前
基于BP神经网络的语音特征信号分类
人工智能·神经网络·分类
vlln1 天前
2025年与2030年AI及AI智能体 (Agent) 市场份额分析报告
人工智能·深度学习·神经网络·ai
红衣小蛇妖2 天前
神经网络-Day44
人工智能·深度学习·神经网络
Lilith的AI学习日记2 天前
什么是预训练?深入解读大模型AI的“高考集训”
开发语言·人工智能·深度学习·神经网络·机器学习·ai编程
聚客AI2 天前
PyTorch玩转CNN:卷积操作可视化+五大经典网络复现+分类项目
人工智能·pytorch·神经网络
Q同学2 天前
TORL:工具集成强化学习,让大语言模型学会用代码解题
深度学习·神经网络·llm