【.com原稿】人工智能是近几年很火的一项技术,从九十九到刚走路,大家对人工智能都有或多或少的了解。神经网络是人工智能的核心,也就是说没有神经网络就没有人工智能,那么本文就带大家来了解一下神经网络相关知识。本文无数学公式,无代码,旨在帮助读者快速掌握神经网络核心知识。1、什么是神经网络的概念所谓神经网络简单来说就是一个包含多个简单且高度连接的元素的系统,每个元素根据输入处理相关信息。神经网络由节点(神经元)组成,这些节点相互连接。信息传入输入层后,经过多个隐藏层的处理,再传给输出层进行最后的处理。这里所说的最终处理可能是输出结果,也可能作为输入数据传递给另一个神经网络或节点进行下一轮处理。我们在上面的内容中多次提到了节点,那么什么是节点呢?节点,也称为神经元,是神经网络的基本单元。它通过接收可能来自其他节点或外部输入源的输入数据来计算输出数据。每个输入数据都会有一个权重,权重是根据输入数据的重要性来分配的。当节点接收到输入数据时,对输入信息进行加权后传递给激活函数,然后激活函数通过计算输出最终的输出数据。训练简介前面我解释了神经网络和节点的概念。让我们看看神经网络是如何训练的。简单的说就是修改输入层的输入权重,通过隐藏层对数据进行处理,最后通过激活函数进行处理。神经网络最常见的学习方式称为增量。delta是一种监督规则,每当将学习到的模式发送到神经网络时都会调用该规则,这种情况称为循环。神经网络训练中还涉及到一个概念:错误率。当我们将图片输入神经网络时,错误率只是它识别的内容与正确答案之间的差异。我们训练神经网络最根本的目的就是降低错误率,让每次识别都无限接近于0。梯度下降说到错误率,就不得不提到梯度下降。它是一种一阶优化算法,也称为最速下降法。最小化损失函数时,可以通过梯度下降法逐步求解,得到最小化的损失函数和模型参数值,这个算法很重要,所以需要详细说明。比如我们想从某座山的深处下山,但是不知道下山的路在哪里,所以我们决定一步一步来,求解当前的梯度position我们每走到一个位置,然后按照当前最陡的位置走下一步,然后继续解当前的位置阶梯,然后走到最陡最容易下坡的位置。就这样一步步往下走,直到我们觉得已经到了山脚下。但是再这样下去,我们可能下不了山,只能到一个局部的最低点。从这个描述我们可以看出,梯度下降不一定能找到全局最优解,有可能找到局部最优解。CommonNeuralNetworks目前已知的神经网络有几千种,其中很大一部分是不通用的,这部分我们就不提了。最常用的神经网络有27种,其中最常用的有:RNN、感知器网络和前馈网络。下面让我做一个简单的解释。RNNRNN中文称为循环神经网络。它对序列中的每个元素执行相同的任务。输出的数据依赖于之前的计算,也可以记录之前的步骤,形成短期记忆。它的形象是这样的:PerceptronNetwork这是最简单的神经网络,它不包含任何隐藏层,只有输出和输出层。图像大致是这样的:一个前馈网络包含多个节点,相邻层的节点之间有边,每条边都有一个权重。他是这样的:2.神经网络的学习型孩子的父母要教他很多东西,但父母不能教他一切,有时他需要通过其他方式学习。在人工智能中也是如此,所以神经网络中存在三种不同类型的学习,即监督学习、非监督学习和强化学习。监督学习监督学习的先决条件是您拥有一个结果已知的数据集。神经网络从给定的训练数据集中学习模型参数,当新数据到来时,它可以根据这个函数预测结果。数据集要求包括输入和输出,里面的数据输出信息是人工标注的。监督学习一般用于分类问题。通过现有数据集训练得到最优模型,然后利用该模型将所有输入映射到对应的输出,对输出进行简单判断,达到分类的目的。常见的监督学习算法包括KNN和SVM无监督学习当你的数据集没有节点时,那么你就适合无监督学习。它根据数据之间的相似性对数据集进行分类,试图最小化每个类内的差距,最大化每个类之间的差距。它的目标不是告诉人工智能做什么,而是让它自己学会如何做事。无监督学习一般分为两类:基于概率密度函数估计的直接方法和基于数据间相似性度量的简明聚类方法。基于概率密度函数估计的直接方法试图找到每个类在特征空间中的分布参数,然后进行分类。基于数据间相似性度量的简单聚类方法是尝试指定不同类别的核心和初始核,然后根据数据与核心之间的相似性将数据划分为不同的类别。强化学习强化学习通常被称为胡萝卜加大棒。简单来说,如果错误率识别成功,我们将获得胡萝卜,否则将受到大棒的惩罚。它是机器学习中的一个领域,强调如何根据环境采取行动以最大化预期收益。受心理学中行为主义理论的启发,生物体在环境给予的奖赏或惩罚的刺激下,会逐渐形成对刺激的预期,从而产生能使利益最大化的习惯性行为。在人工智能中,环境通常被设置为马尔可夫决策过程,因此许多强化学习算法在这种情况下使用动态规划技术。3.激活函数和感知器如果说节点是神经网络的核心,那么激活函数和感知器就是神经网络核心的核心。在几乎所有的神经网络中都可以看到它们。我将解释这一部分。让我们看看激活函数和感知器。激活函数激活函数被添加到神经网络的输出中以确定输出。它的输出范围通常在-1到1之间,具体取值范围取决于选择的激活函数。它最终用于确定神经元是否正在运行。激活函数是数据输出前的最后一部分,可以看作是输出值的提供者。激活函数有两种,一种是线性激活函数,一种是非线性激活函数。简单的说,线性函数就是在一条直线上或者几乎在一条直线上的函数,非线性函数就是不在一条直线上的函数(哈哈,解释的够简单)感知器是一种特殊的节点,当输入为正或0时,函数返回1,否则返回0,具有这种激活函数的节点称为感知器。现在让我们用一个例子来解释感知器。我们有一个感知器,它有两个输入x1和x2,这两个输入的权重分别是w1和w2,我们要对这两个输出进行加权,所谓加权就是将权重相乘,权重是随机分配的,权重值在-1到1之间,加权后需要对所有权重求和。求和后会作为激活函数的输入传递给激活函数做进一步的处理。激活函数处理完后,会告诉感知器是否执行。4、后向传播我们之前讲的就是前向传播。与前向传播相反的是反向传播。反向传播是提高神经网络精度的重要内容。反向传播,也称为误差反向传播,是一种使用梯度下降的监督学习神经网络算法。反向传播通过在神经网络中向后移动来计算梯度。先计算最后一层权重的梯度,最后计算第一层的梯度。反向传播计算依赖于前向阶段的激活函数和输出数据。这些值必须在反向传播开始之前计算出来,所以正向计算必须在反向传播之前完成。前向传播和反向传播对于很多刚进入人工智能领域的人来说是比较难理解的。我来说说它们的区别。数据被前向传播得到输出,然后与期望值进行比较得到误差。为了最小化这个误差,还需要计算每个权值的误差导数进行反向传播,然后从权值中减去误差导数。通过前向传播,可以可视化神经网络的行为并发现错误。找到错误率后,您可以反向传播并使用梯度下降来更新权重值。4.小结本文旨在引导读者快速入门神经网络,讲解神经网络的各种概念,方便读者深入理解神经网络的概念。作者简介:朱刚,化名苗叔,国内某技术博客认证专家,.NET高级开发工程师。曾就职于初创公司,从事企业级安全监控系统开发。【原创稿件,合作网站转载请注明原作者和出处为.com】
