热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

神经网络_机器学习算法简介人工神经网络算法

篇首语:本文由编程笔记#小编为大家整理,主要介绍了机器学习算法简介人工神经网络算法相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了机器学习算法简介人工神经网络算法相关的知识,希望对你有一定的参考价值。













人工神经网络(Artificial Neural Network,即ANN )算法是一种模仿生物神经网络运行机制,进行分布式并行信息处理的算法模型。神经网络模型由大量的节点(或称神经元)相互联接构成,每个节点代表一种特定的函数,即激励函数(activation function);输入信号被赋予不同的权重,并汇总到相应节点;人工神经网络的输出信号则因网络的连接方式、权重值和激励函数的不同而不同。



















机器学习算法简介(5)人工神经网络算法


一、从神经元到人工神经网络



人工神经网络是建立在模仿大脑活动的基础上的,因此,在理解人工神经网络算法之前,我们首先需要了解生物神经的运作机制。如下图所示,首先,神经元细胞通过树突接收到输入信号;然后,神经元会根据信号的相对重要程度或频率判断信号的重要程度,并不断积累信号;当信号累积达到一定的阈值后,神经元细胞就会被激活,产生一个输出信号,并通过轴突向外传递。



机器学习算法简介(5)人工神经网络算法


单层的人工神经网络模型和神经元细胞的运行机制十分相似。


机器学习算法简介(5)人工神经网络算法


图2结构描述了单层人工神经网络模型中,输入信号(x1,x2,x3)和输出信号y之间的传递机制。和神经元的运行原理一样,不同的输入信号x被赋予不同的权重w后,汇总到一个节点,通过激活函数f判断后,产生一个输出信号y。


上述内容就是简单的人工神经网络算法的运行机制,实际运用中,人工神经网络算法更加复杂,如可能拥有更多的层、更多的节点等,但总体上,人工神经网络算法都是由以下三个要素组成:


1.激活函数,根据输入信号判断并产生输出信号;


2.网络拓扑结构,体现人工神经网络中的节点数量、层级数量以及它们的联系结构;


3.训练算法,用于决定不同输入信号的权重如何确定。





机器学习算法简介(5)人工神经网络算法

二、激活函数




激活函数是人工神经网络处理和传递信号的机制,常见的激活函数由以下几种:


 机器学习算法简介(5)人工神经网络算法


除上述3中激活函数外,较为常用的还用ReLU函数、ELU函数和PReLU函数等。





机器学习算法简介(5)人工神经网络算法


三、网络拓扑结构



网络拓扑结构决定了人工神经网络算法的学习能力,一般来说,拥有越庞大、越复杂的拓扑结构的算法具有越强的学习能力,能够识别更加细微的特征。虽然人工神经网络模型可以有无数种拓扑结构,但其基本要素仅以下三种:(1)层数;(2)信息是否可以反向传播;(3)每一层中节点的数量。


如图4所示,从样本数据中获得输入信号的节点成为输入节点,由其组成的层称为输入层;对外输出信号的节点称为输出节点,其对应的层称为输出层。图4的拓扑结构中仅含有一组权重,因此,称该结构为单层人工神经网络。单层人工神经网络主要用于简单的图片识别,尤其是用于线性可分的图形。


机器学习算法简介(5)人工神经网络算法


为了创建更复杂的拓扑结构,我们经常使用的方法就是加入更多的层,即加入隐含层,如下图所示。


机器学习算法简介(5)人工神经网络算法


根据信息传播方向,人工神经网络算法可以分为前馈式神经网络,即仅允许信息从输入节点至输出节点的单向传播;以及回归神经网络,即允许信息反向传播。其中,回归神经网络的发展和运用还不成熟,目前最常用的人工神经网络算法主要是前馈式神经网络。


除了层数和信息传播方向之外,人工神经网络的拓扑结构还会随着每一层中节点数量的变化而变化。输入节点的数量取决于样本数据,输出节点的数量取决于事先预设的结果数量,因此,节点数量的改变主要是指隐含层中节点数量的变化。不幸的是,实际操作中,我们没有办法确定最佳的节点数量。虽然,增加节点的数量可以使人工神经网络算法的学习能力提高,但过多的节点数量可能会导致过度拟合的问题,而且会增加训练的难度。因此,为了避免上述问题,常用的标准是在模型结果足够好的基础上,采用尽量少的节点。





机器学习算法简介(5)人工神经网络算法


四、训练方法:反向传播



反向传播(Backpropagation,BP)方法是最常用的人工神经网络训练方法。通常,BP人工神经网络算法采用重复迭代的方式进行计算,其步骤如下:


1.由于神经网络结构中没有先验知识,初始权重通常是随机设定的;


2.利用该权重,计算获得输出信号;


3.将计算得出的输出信号与训练组中的实际值进行比较,利用输出信号与实际值之间的误差反向追溯,修改权重,从而减小误差。


4.重复步骤2和3,直到达到预先设定的标准。


那么,在BP方法中,如何修改权重才能够达到减小误差的目的?我们通常采用的办法就是梯度下降法。梯度下降法的原理跟探险者在丛林中寻找水源的方法相似,检查地形并沿着倾斜度最大的斜坡向下走,最终到达地势最低的山谷,从而找到水源。


机器学习算法简介(5)人工神经网络算法


BP方法通过计算激活函数的导数来确定输入信号与误差之间的斜率,该斜率代表了输入信号的变化所引起误差的变化,同时该斜率也是权重的函数。因此,BP方法试图通过改变权重达到最大程度地降低误差的目的。









  往期精彩


  ▼














推荐阅读
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
author-avatar
流寇仏翔_609
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有