神经网络15分钟入门!足够通俗易懂了吧

神经网络15分钟入门!足够通俗易-懂了吧

任务描述

如下图,我们已知四个数据点(1,1)(-1,1)(-1,-1)(1,-1),这四个点分别对应I~IV象限,如果这时候给我们一个新的坐标点(比如(2,2)),那么它应该属于哪个象限呢?(没错,当然是第I象限,但我们的任务是要让机器知道)

“分类”是神经网络的一大应用,我们使用神经网络完成这个分类任务。

这里我们构建一个两层神经网络,理论上两层神经网络已经可以拟合任意函数。这个神经网络的结构如下图:

是不是觉得有点复杂,没关系,我们一步步看,其实很容易理解。

首先去掉图1中一些难懂的东西,如下图(请仔细看一下图中的标注):

1.2.从输入层到隐藏层

连接输入层和隐藏层的是W1和b1。由X计算得到H十分简单,就是矩阵运算:

如果你学过线性代数,对这个式子一定不陌生。如上图中所示,在设定隐藏层为50维(也可以理解成50个神经元)之后,矩阵H的大小为(1*50)的矩阵。

1.3.从隐藏层到输出层

连接隐藏层和输出层的是W2和b2。同样是通过矩阵运算进行的:

1.4.分析

通过上述两个线性方程的计算,我们就能得到最终的输出Y了,但是如果你还对线性代数的计算有印象的话,应该会知道:一系列线性方程的运算最终都可以用一个线性方程表示。也就是说,上述两个式子联立后可以用一个线性方程表达。对于两次神经网络是这样,就算网络深度加到100层,也依然是这样。这样的话神经网络就失去了意义。

所以这里要对网络注入灵魂:激活层。

简而言之,激活层是为矩阵运算的结果添加非线性的。常用的激活函数有三种,分别是阶跃函数、Sigmoid和ReLU。不要被奇怪的函数名吓到,其实它们的形式都很简单,如下图:

阶跃函数:当输入小于等于0时,输出0;当输入大于0时,输出1。

Sigmoid:当输入趋近于正无穷/负无穷时,输出无限接近于1/0。

ReLU:当输入小于0时,输出0;当输入大于0时,输出等于输入。

其中,阶跃函数输出值是跳变的,且只有二值,较少使用;Sigmoid函数在当x的绝对值较大时,曲线的斜率变化很小(梯度消失),并且计算较复杂;ReLU是当前较为常用的激活函数。

激活函数具体是怎么计算的呢?

假如经过公式H=X*W1+b1计算得到的H值为:(1,-2,3,-4,7...),那么经过阶跃函数激活层后就会变为(1,0,1,0,1...),经过ReLU激活层之后会变为(1,0,3,0,7...)。

需要注意的是,每个隐藏层计算(矩阵线性运算)之后,都需要加一层激活层,要不然该层线性计算是没有意义的。

此时的神经网络变成了如下图所示的形式:

我们都知道(?)神经网络是分为“训练”和“使用”两个步骤的。如果是在“使用”的步骤,图4就已经完成整个过程了,在求得的Y(大小为1*4)矩阵中,数值最大的就代表着当前分类。

但是对于用于“训练”的网络,图4还远远不够。起码当前的输出Y,还不够“漂亮”。

在图4中,输出Y的值可能会是(3,1,0.1,0.5)这样的矩阵,诚然我们可以找到里边的最大值“3”,从而找到对应的分类为I,但是这并不直观。我们想让最终的输出为概率,也就是说可以生成像(90%,5%,2%,3%)这样的结果,这样做不仅可以找到最大概率的分类,而且可以知道各个分类计算的概率值。

具体是怎么计算的呢?

计算公式如下:

简单来说分三步进行:(1)以e为底对所有元素求指数幂;(2)将所有指数幂求和;(3)分别将这些指数幂与该和做商。

这样求出的结果中,所有元素的和一定为1,而每个元素可以代表概率值。

我们将使用这个计算公式做输出结果正规化处理的层叫做“Softmax”层。此时的神经网络将变成如下图所示:

4.如何衡量输出的好坏

通过Softmax层之后,我们得到了I,II,III和IV这四个类别分别对应的概率,但是要注意,这是神经网络计算得到的概率值结果,而非真实的情况。

比如,Softmax输出的结果是(90%,5%,3%,2%),真实的结果是(100%,0,0,0)。虽然输出的结果可以正确分类,但是与真实结果之间是有差距的,一个优秀的网络对结果的预测要无限接近于100%,为此,我们需要将Softmax输出结果的好坏程度做一个“量化”。

一种直观的解决方法,是用1减去Softmax输出的概率,比如1-90%=0.1。不过更为常用且巧妙的方法是,求对数的负数。

还是用90%举例,对数的负数就是:-log0.9=0.046

可以想见,概率越接近100%,该计算结果值越接近于0,说明结果越准确,该输出叫做“交叉熵损失(CrossEntropyError)”。

我们训练神经网络的目的,就是尽可能地减少这个“交叉熵损失”。

此时的网络如下图:

5.反向传播与参数优化

上边的1~4节,讲述了神经网络的正向传播过程。一句话复习一下:神经网络的传播都是形如Y=WX+b的矩阵运算;为了给矩阵运算加入非线性,需要在隐藏层中加入激活层;输出层结果需要经过Softmax层处理为概率值,并通过交叉熵损失来量化当前网络的优劣。

算出交叉熵损失后,就要开始反向传播了。其实反向传播就是一个参数优化的过程,优化对象就是网络中的所有W和b(因为其他所有参数都是确定的)。

神经网络的神奇之处,就在于它可以自动做W和b的优化,在深度学习中,参数的数量有时会上亿,不过其优化的原理和我们这个两层神经网络是一样的。

这里举一个形象的例子描述一下这个参数优化的原理和过程:

假设我们操纵着一个球型机器行走在沙漠中

我们在机器中操纵着四个旋钮,分别叫做W1,b1,W2,b2。当我们旋转其中的某个旋钮时,球形机器会发生移动,但是旋转旋钮大小和机器运动方向之间的对应关系是不知道的。而我们的目的就是走到沙漠的最低点。

此时我们该怎么办?只能挨个试喽。

如果增大W1后,球向上走了,那就减小W1。

如果增大b1后,球向下走了,那就继续增大b1。

如果增大W2后,球向下走了一大截,那就多增大些W2。

。。。

这就是进行参数优化的形象解释(有没有想到求导?),这个方法叫做梯度下降法。

当我们的球形机器走到最低点时,也就代表着我们的交叉熵损失达到最小(接近于0)。

6.迭代

神经网络需要反复迭代。

如上述例子中,第一次计算得到的概率是90%,交叉熵损失值是0.046;将该损失值反向传播,使W1,b1,W2,b2做相应微调;再做第二次运算,此时的概率可能就会提高到92%,相应地,损失值也会下降,然后再反向传播损失值,微调参数W1,b1,W2,b2。依次类推,损失值越来越小,直到我们满意为止。

此时我们就得到了理想的W1,b1,W2,b2。

此时如果将任意一组坐标作为输入,利用图4或图5的流程,就能得到分类结果。

好了,你已经了解了神经网络的典型结构了,有没有超过15分钟捏?

THE END
1.人工智能神经网络或更具体地说,人工神经网络,松散会基于在整个系统中枢的动物的生物神经网络的影响。时未一个算法本身,神经网络是框架的一种类型,用于算法来处理输入并生成"学习"的输出。神经网络已证明自己执行传统的编程方法必须解决严重困难的任务非常有用。虽然有几个不同的变体的神经网络,但它们都共享相同的核心结构和https://docs.microsoft.com/zh-cn/archive/msdn-magazine/2019/february/artificially-intelligent-a-closer-look-at-neural-networks
2.迁移学习与在线学习(2)而要入门深度学习,CNN和RNN作为最常用的两种神经网络是必学的。网上关于深度学习的资料很多,但大多知识点分散、内容不系统,或者以理论为主、代码实操少,造成学员学习成本高。本门课程将从最基础的神经元出发,对深度学习的基础知识进行全面讲解,帮助大家迅速成为人工智能领域的入门者,是进阶人工智能深层领域的基石。https://download.csdn.net/learn/30851/457658
3.BrilliantBrilliant是一个在线学习平台,提供Introduction to Neural Networks课程介绍神经网络知识,让学生理解神经网络的基础知识,学习构建和调节神经网络,并应用神经网络解决实际问题。 Introduction to Neural Networks是Brilliant平台上的一门神经网络入门课程。这门课程面向初学者,介绍神经网络的基本概念、模型与算法。学习者可以在这https://www.aizhinan.cn/tools/2320.html
4.在线深度学习:在数据流中实时学习深度神经网络机器之心在线深度学习:在数据流中实时学习深度神经网络 在线深度学习的主要困难是模型的容量、复杂度等设置很不灵活,即模型是静态的,而数据流是动态的。本论文提出了一种适应性的网络框架,结合 HBP 算法,使网络结构能随着数据的流入而逐渐扩展、复杂化。这使得模型同时拥有在线学习和深度学习的优点,并在多种在线学习模型和https://www.jiqizhixin.com/articles/2017-12-30
5.在线网课学习课堂《神经网络理论及应用(北工商)》单元测试考核在线网课学习课堂《神经网络理论及应用(北工商)》单元测试考核答案.docx,注:不含主观题 第1题 判断题 (1分) 人工神经元是一个多输入、多输出的信息处理单元 第2题 判断题 (1分) 人工神经元数学模型决定该节点本身的信息处理能力 第3题 单选题 (1分) 人工神经网络的激活函数https://max.book118.com/html/2022/0429/8132040142004075.shtm
6.2什么是神经网络(机器学习)易学在线课堂学员26、18.1 CNN 卷积神经网络 12:04 学员27、18.2 CNN 卷积神经网络 11:31 学员28、18.3 CNN 卷积神经网络 20:31 学员29、19 Saver 保存读取 13:10 学员30、什么是循环神经网络 RNN (深度学习)? 00:00 学员31、什么是 LSTM RNN 循环神经网络 (深度学习)? https://bbs.easyaiforum.cn/lesson-2863.html
7.资料《神经网络与深度学习中文版PDF》雷峰网《神经网络与深度学习 中文版 PDF》 该书是?本免费的在线书。作者 Michael Nielsen 是?位量?物理学家、科学作家、计算机编程研究 ?员。 本书会教会你:神经?络,?种美妙的受?物学启发的编程范式,可以让计算机从观测数据中进?学习;深度学习,?个强有?的?于神经?络学习的众多技术的https://www.leiphone.com/category/academic/JbL6ycjrYMcnFxND.html
8.神经网络是如何学习预测的?神经网络学习的目的,就是通过调整模型的参数使损失函数达到最小值,从而改善模型的预测性能,这个过程也称为模型的训练。梯度下降算法可以解决这一问题,通过该算法找到合适的w?(特征的权重)和b(阈值),梯度下降算法会一步一步地改变w和b?的值,使损失函数的结果越来越小,也就是使预测结果更精准。 https://zhuanlan.zhihu.com/p/674065012
9.神经网络与深度学习特别是最近这几年,得益于数据的增多、计算能力的增强、学习算法的成熟以及应用场景的丰富,越来越多的人开始关注这个“崭新”的研究领域:深度学习。深度学习以神经网络为主要模型,一开始用来解决机器学习中的表示学习问题。但是由于其强大的能力,深度学习越来越多地用来解决一些通用人工智能问题,比如推理、决策等。目前,http://nndl.github.io/
10.深度学习Loss合集:一文详解ContrastiveLoss/RankingLoss/Ranking Loss被用于很多领域和神经网络任务中(如 孪生网络Siamese Nets 或 Triplet Nets),这也是它为什么拥有 Contrastive Loss、Margin Loss、Hinge Loss 或 Triplet Loss 等这么多名字的原因。 下面我就带大家彻底区分清楚这几种损失函数的区别。 Ranking Loss函数:度量学习 https://cloud.tencent.com/developer/article/1970886
11.今我来思,堆栈泛化(StackedGeneralization)7. 其他, 在线学习, 神经网络,遗传学习, 群体智能 等: -在线学习 Online stacking (OS) Linear perceptron with online random tree Random bit regression (RBR) Vowpal Wabbit (VW) Follow the Regularized Leader (FTRL) -神经网络Artificial neural network (ANN) https://www.jianshu.com/p/46ccf40222d6
12.在线搭建神经网络神经网络环境搭建柳随风的技术博客在线搭建神经网络 神经网络环境搭建 Tensorflow是Google 的深度学习框架,非常流行,我自己学习深度学习就使用它。为了使代码更加简单,使用Keras做前端,Keras用目前很火的人工智能第一语言 Python 编写,是一个高度模块化的神经网络库,支持GPU和CPU。 Keras使用文档:http://keras.io/,中文文档:http://keras-cn.https://blog.51cto.com/u_14276/9150836
13.deeplearning.ai深度学习和人工智能学习平台DeepLearning.AI | Andrew Ng | Join over 7 million people learning how to use and build AI through our online courses. Earn certifications, level up your skills, and stay ahead of the industry.https://www.deeplearning.ai/
14.《图说深度学习:用可视化方法理解复杂概念AI人工智能基础Chat所属分类:图书>计算机/网络>人工智能>深度学习与神经网络 本商品暂无详情。 价格说明 当当价:为商品的销售价,具体的成交价可能因会员使用优惠券、银铃铛等发生变化,最终以订单结算页价格为准。 定价:是图书封底定价。 划线价:划线价为参考价,划线价格可能是图书封底定价或该商品曾经展示过的销售价等,由于地区、时间http://product.dangdang.com/29672484.html