
今天小编给大家分享的文章是:为什么我们的神经网络需要激活函数。神经网络是机器学习里极为重要的一门技术。学习神经网络不仅能让让我们掌握一门强大的机器学习方法,还有利于我们理解深度学习技术。希望通过这篇文章能让大家对神经网络有一个更深刻的理解,对大家的机器学习有所帮助。
文章来源: DeepHub IMBA微信公众号
作者:P**nHub兄弟网站
如果你正在读这篇文章,那么很可能你已经知道什么是神经网络,什么是激活函数,但是,一些关于机器学习的入门课程并不能很清楚地说明,为什么我们需要这些激活函数。我们需要它们吗?没有它们,神经网络还能工作吗?
首先让我们回顾一下关于神经网络的一些事情。它们通常被可视化地表示为一个类似图表的结构,如下图所示:
如上图所示,神经网络有3层:输入层、隐藏层、输出层,共3、4、2个神经元。输入层的节点数量与数据集的特性数量相同。对于隐藏层,您可以自由选择需要多少节点,并且可以使用多个隐藏层。
网络中的每个神经元,除了那些在输入层的神经元,可以被认为是一个线性分类器,它将前一层神经元的所有输出作为输入,并计算这些输出加上一个偏置项的加权和。然后,下一层的神经元将前一层线性分类器计算的值作为输入,然后计算这些值的加权和,依此类推。我们希望,通过以这种方式结合线性分类器,我们可以构建更复杂的分类器,可以代表我们的数据中的非线性模式。
让我们看看下面的例子数据集:
这个数据集不是线性可分的,我们不能将一个类从另一个通过一条线分开。但我们可以通过使用两条线作为决策边界来实现这种分离。
所以,我们可能认为两个中间神经元可以完成这个工作。这两个神经元将学习上图中的两条分离线。然后我们需要一个输出神经元它将之前的两个神经元作为输入,这样它就能正确地进行分类。
对于最后一个做正确分类的神经元,它需要n1和n2隐藏神经元的输出是线性可分的,如果我们把它们画在一个二维平面上。上面画的两条线有方程:
这意味着这两个隐藏的神经元正在计算输入x1和x2的如下线性组合:
我们画出n1和n2看看它们是否有用。
我们对我们的小神经网络感到失望。n1和n2的输出仍然不是线性可分的,因此输出神经元不能正确分类。那么,问题是什么呢?
问题是,任何线性函数的线性组合仍然是线性的,在一张纸上证明它是正确的并不难。这一事实的证据在本文的结尾。所以,不管我们用了多少层或多少神经元,按照我们目前的方式,我们的神经网络仍然只是一个线性分类器。
我们需要更多的东西。我们需要将每个神经元计算出的加权和传递给一个非线性函数,然后将这个函数的输出看作那个神经元的输出。这些函数称为激活函数,它们在允许神经网络学习数据中的复杂模式时非常重要。
[1] 已经证明,具有2层(输入层除外)和非线性激活函数的神经网络,只要在这些层中有足够多的神经元,就可以近似任何函数。那么,如果只有两层就够了,为什么人们现在还在使用更深层次的网络呢?嗯,仅仅因为这两层网络“能够”学习任何东西,这并不意味着它们很容易优化。在实践中,如果我们的网络产能过剩,他们就会给我们提供足够好的解决方案,即使他们没有尽可能地优化。
还有更多种类的激活函数,我们想在上面的示例中使用其中的两种。它们分别是ReLU(直线单元)和tanh(双曲正切),如下图所示。
如果我们在示例中使用ReLU激活,将会发生什么?下图是应用ReLU激活后n1和n2神经元的输出。
现在,我们的这两类点可以用直线分开,这样输出神经元就可以正确地对它们进行分类。
如果我们使用tanh激活,也会发生类似的事情,但这次我们的点之间的差距更大。
同样,输出神经元可以正确地分类这些点。
这里有一个简单的数学证明,证明任何线性函数的线性组合仍然是线性的:
其中a0, a1,…,an是不依赖于输入x1,…,xn的常数。
我希望这篇文章对你有用,谢谢阅读!
参考
[1] Cybenko, G.V. (2006). “Approximation by Superpositions of a Sigmoidal function”. In van Schuppen, Jan H. (ed.). Mathematics of Control, Signals, and Systems. Springer International. pp. 303–314.
作者:Dorian Lazar
deephub翻译组
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
MySQL 执行计划中 rows 数量的准确性解析:原理、影响因素与优化 在 MySQL SQL 调优中,EXPLAIN执行计划是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 对象的 text 与 content:区别、场景与实践指南 在 Python 进行 HTTP 网络请求开发时(如使用requests ...
2025-09-15CDA 数据分析师:激活表格结构数据价值的核心操盘手 表格结构数据(如 Excel 表格、数据库表)是企业最基础、最核心的数据形态 ...
2025-09-15Python HTTP 请求工具对比:urllib.request 与 requests 的核心差异与选择指南 在 Python 处理 HTTP 请求(如接口调用、数据爬取 ...
2025-09-12解决 pd.read_csv 读取长浮点数据的科学计数法问题 为帮助 Python 数据从业者解决pd.read_csv读取长浮点数据时的科学计数法问题 ...
2025-09-12CDA 数据分析师:业务数据分析步骤的落地者与价值优化者 业务数据分析是企业解决日常运营问题、提升执行效率的核心手段,其价值 ...
2025-09-12用 SQL 验证业务逻辑:从规则拆解到数据把关的实战指南 在业务系统落地过程中,“业务逻辑” 是连接 “需求设计” 与 “用户体验 ...
2025-09-11塔吉特百货孕妇营销案例:数据驱动下的精准零售革命与启示 在零售行业 “流量红利见顶” 的当下,精准营销成为企业突围的核心方 ...
2025-09-11CDA 数据分析师与战略 / 业务数据分析:概念辨析与协同价值 在数据驱动决策的体系中,“战略数据分析”“业务数据分析” 是企业 ...
2025-09-11Excel 数据聚类分析:从操作实践到业务价值挖掘 在数据分析场景中,聚类分析作为 “无监督分组” 的核心工具,能从杂乱数据中挖 ...
2025-09-10统计模型的核心目的:从数据解读到决策支撑的价值导向 统计模型作为数据分析的核心工具,并非简单的 “公式堆砌”,而是围绕特定 ...
2025-09-10CDA 数据分析师:商业数据分析实践的落地者与价值创造者 商业数据分析的价值,最终要在 “实践” 中体现 —— 脱离业务场景的分 ...
2025-09-10机器学习解决实际问题的核心关键:从业务到落地的全流程解析 在人工智能技术落地的浪潮中,机器学习作为核心工具,已广泛应用于 ...
2025-09-09SPSS 编码状态区域中 Unicode 的功能与价值解析 在 SPSS(Statistical Product and Service Solutions,统计产品与服务解决方案 ...
2025-09-09CDA 数据分析师:驾驭商业数据分析流程的核心力量 在商业决策从 “经验驱动” 向 “数据驱动” 转型的过程中,商业数据分析总体 ...
2025-09-09R 语言:数据科学与科研领域的核心工具及优势解析 一、引言 在数据驱动决策的时代,无论是科研人员验证实验假设(如前文中的 T ...
2025-09-08T 检验在假设检验中的应用与实践 一、引言 在科研数据分析、医学实验验证、经济指标对比等领域,常常需要判断 “样本间的差异是 ...
2025-09-08在商业竞争日益激烈的当下,“用数据说话” 已从企业的 “加分项” 变为 “生存必需”。然而,零散的数据分析无法持续为业务赋能 ...
2025-09-08随机森林算法的核心特点:原理、优势与应用解析 在机器学习领域,随机森林(Random Forest)作为集成学习(Ensemble Learning) ...
2025-09-05Excel 区域名定义:从基础到进阶的高效应用指南 在 Excel 数据处理中,频繁引用单元格区域(如A2:A100、B3:D20)不仅容易出错, ...
2025-09-05