围绕神经网络知识和网络应用方式展开Python和R语言实战编码.doc
《围绕神经网络知识和网络应用方式展开Python和R语言实战编码.doc》由会员分享,可在线阅读,更多相关《围绕神经网络知识和网络应用方式展开Python和R语言实战编码.doc(5页珍藏版)》请在三一文库上搜索。
1、围绕神经网络知识和网络应用方式展开Python和R语言实战编码编者按:当你面对一个新概念时,你会怎么学习和实践它?是耗费大量时间学习整个理论,掌握背后的算法、数学、假设、局限再亲身实践,还是从最简单的基础开始,通过具体项目解决一个个难题来提高你对它的整体把握?在这系列文章中,论智将采用第二种方法和读者一起从头理解机器学习。“从零学习”系列第一篇从Python和R理解和编码神经网络来自Analytics Vidhya博主、印度资深数据科学开发人员SUNIL RAY。本文将围绕神经网络构建的基础知识展开,并集中讨论网络的应用方式,用Python和R语言实战编码。目录神经网络的基本工作原理多层感知器
2、及其基础知识神经网络具体步骤详解神经网络工作过程的可视化如何用Numpy实现NN(Python)如何用R语言实现NN反向传播算法的数学原理神经网络的基本工作原理如果你是一名开发者,或曾参与过编程项目,你一定知道如何在代码中找bug。通过改变输入和环境,你可以用相应的各种输出测试bug位置,因为输出的改变其实是一个提示,它能告诉你应该去检查哪个模块,甚至是哪一行。一旦你找到正确的那个它,并反复调试,你总会得到理想的结果。神经网络其实也一样。它通常需要几个输入,在经过多个隐藏层中神经元的处理后,它会在输出层返回结果,这个过程就是神经网络的“前向传播”。得到输出后,接下来我们要做的就是用神经网络的输
3、出和实际结果做对比。由于每一个神经元都可能增加最终输出的误差,所以我们要尽可能减少这个损耗(loss),使输出更接近实际值。那该怎么减少loss呢?在神经网络中,一种常用的做法是降低那些容易导致更多loss的神经元的权重/权值。因为这个过程需要返回神经元并找出错误所在,所以它也被称为“反向传播”。为了在减少误差的同时进行更少量的迭代,神经网络也会使用一种名为“梯度下降”(Gradient Descent)的算法。这是一种基础的优化算法,能帮助开发者快速高效地完成各种任务。虽然这样的表述太过简单粗浅,但其实这就是神经网络的基本工作原理。简单的理解有助于你用简单的方式去做一些基础实现。多层感知器及
4、其基础知识就像原子理论中物质是由一个个离散单元原子所构成的那样,神经网络的最基本单位是感知器(Perceptron)。那么,感知器是什么?对于这个问题,我们可以这么理解:感知器就是一种接收多个输入并产生一个输出的东西。如下图所示:感知器示例中的它有3个输入,却只有一个输出,由此我们产生的下一个合乎逻辑的问题就是输入和输出之间的对应关系是什么。让我们先从一些基本方法入手,再慢慢上升到更复杂的方法。以下是我列举的3种创建输入输出对应关系的方法:直接组合输入并根据阈值计算输出。例如,我们设x1=0,x2=1,x3=1,阈值为0。如果x1+x2+x30,则输出1;反之,输出0。可以看到,在这个情景下上
5、图的最终输出是1。接下来,让我们为各输入添加权值。例如,我们设x1、x2、x3三个输入的权重分别为w1、w2、w3,其中w1=2,w2=3,w3=4。为了计算输出,我们需要将输入乘以它们各自的权值,即2x1+3x2+4x3,再和阈值比较。可以发现,x3对输出的影响比x1、x2更大。接下来,让我们添加bias(偏置,有时也称阈值,但和上文阈值有区别)。每个感知器都有一个bias,它其实也是一种加权方式,可以反映感知器的灵活性。bias在某种程度上相当于线性方程y=ax+b中的常数b,可以让函数上下移动。如果b=0,那分类线就要经过原点(0,0),这样神经网络的fit范围会非常受限。例如,如果一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 围绕 神经网络 知识 网络 应用 方式 展开 Python 语言 实战 编码
链接地址:https://www.31doc.com/p-3407246.html