0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习算法神经网络入门

电子工程师 来源:fqj 2019-06-03 10:58 次阅读

眼下最热门的技术,绝对是人工智能人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。

什么是神经网络呢?网上似乎缺乏通俗的解释。

前两天,我读到 Michael Nielsen 的开源教材《神经网络与深度学习》(Neural Networks and Deep Learning),意外发现里面的解释非常好懂。下面,我就按照这本书,介绍什么是神经网络。

这里我要感谢优达学城的赞助,本文结尾有他们的《前端开发(进阶)》课程的消息,欢迎关注。

一、感知器

历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。

机器学习算法神经网络入门

外部刺激通过神经末梢,转化为电信号,转导到神经细胞(又叫神经元)。

无数神经元构成神经中枢。

神经中枢综合各种信号,做出判断。

人体根据神经中枢的指令,对外部刺激做出反应。

既然思考的基础是神经元,如果能够"人造神经元"(artificial neuron),就能组成人工神经网络,模拟思考。上个世纪六十年代,提出了最早的"人造神经元"模型,叫做"感知器"(perceptron),直到今天还在用。

机器学习算法神经网络入门

上图的圆圈就代表一个感知器。它接受多个输入(x1,x2,x3...),产生一个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。

为了简化模型,我们约定每种输入只有两种可能:1 或 0。如果所有输入都是1,表示各种条件都成立,输出就是1;如果所有输入都是0,表示条件都不成立,输出就是0。

二、感知器的例子

下面来看一个例子。城里正在举办一年一度的游戏动漫展览,小明拿不定主意,周末要不要去参观。

他决定考虑三个因素。天气:周末是否晴天?同伴:能否找到人一起去?价格:门票是否可承受?

这就构成一个感知器。上面三个因素就是外部输入,最后的决定就是感知器的输出。如果三个因素都是 Yes(使用1表示),输出就是1(去参观);如果都是 No(使用0表示),输出就是0(不去参观)。

三、权重和阈值

看到这里,你肯定会问:如果某些因素成立,另一些因素不成立,输出是什么?比如,周末是好天气,门票也不贵,但是小明找不到同伴,他还要不要去参观呢?

现实中,各种因素很少具有同等重要性:某些因素是决定性因素,另一些因素是次要因素。因此,可以给这些因素指定权重(weight),代表它们不同的重要性。

天气:权重为8

同伴:权重为4

价格:权重为4

上面的权重表示,天气是决定性因素,同伴和价格都是次要因素。

如果三个因素都为1,它们乘以权重的总和就是 8 + 4 + 4 = 16。如果天气和价格因素为1,同伴因素为0,总和就变为 8 + 0 + 4 = 12。

这时,还需要指定一个阈值(threshold)。如果总和大于阈值,感知器输出1,否则输出0。假定阈值为8,那么 12 > 8,小明决定去参观。阈值的高低代表了意愿的强烈,阈值越低就表示越想去,越高就越不想去。

上面的决策过程,使用数学表达如下。

机器学习算法神经网络入门

上面公式中,x表示各种外部因素,w表示对应的权重。

四、决策模型

单个的感知器构成了一个简单的决策模型,已经可以拿来用了。真实世界中,实际的决策模型则要复杂得多,是由多个感知器组成的多层网络

机器学习算法神经网络入门

上图中,底层感知器接收外部输入,做出判断以后,再发出信号,作为上层感知器的输入,直至得到最后的结果。(注意:感知器的输出依然只有一个,但是可以发送给多个目标。)

这张图里,信号都是单向的,即下层感知器的输出总是上层感知器的输入。现实中,有可能发生循环传递,即 A 传给 B,B 传给 C,C 又传给 A,这称为"递归神经网络"(recurrent neural network),本文不涉及。

五、矢量化

为了方便后面的讨论,需要对上面的模型进行一些数学处理。

外部因素x1、x2、x3写成矢量,简写为x

权重w1、w2、w3也写成矢量(w1, w2, w3),简写为w

定义运算w⋅x = ∑ wx,即w和x的点运算,等于因素与权重的乘积之和

定义b等于负的阈值b = -threshold

感知器模型就变成了下面这样。

机器学习算法神经网络入门

六、神经网络的运作过程

一个神经网络的搭建,需要满足三个条件。

输入和输出

权重(w)和阈值(b)

多层感知器的结构

也就是说,需要事先画出上面出现的那张图。

机器学习算法神经网络入门

其中,最困难的部分就是确定权重(w)和阈值(b)。目前为止,这两个值都是主观给出的,但现实中很难估计它们的值,必需有一种方法,可以找出答案。

这种方法就是试错法。其他参数都不变,w(或b)的微小变动,记作Δw(或Δb),然后观察输出有什么变化。不断重复这个过程,直至得到对应最精确输出的那组w和b,就是我们要的值。这个过程称为模型的训练。

机器学习算法神经网络入门

因此,神经网络的运作过程如下。

确定输入和输出

找到一种或多种算法,可以从输入得到输出

找到一组已知答案的数据集,用来训练模型,估算w和b

一旦新的数据产生,输入模型,就可以得到结果,同时对w和b进行校正

可以看到,整个过程需要海量计算。所以,神经网络直到最近这几年才有实用价值,而且一般的 CPU 还不行,要使用专门为机器学习定制的 GPU 来计算。

七、神经网络的例子

下面通过车牌自动识别的例子,来解释神经网络。

所谓"车牌自动识别",就是高速公路的探头拍下车牌照片,计算机识别出照片里的数字。

机器学习算法神经网络入门

这个例子里面,车牌照片就是输入,车牌号码就是输出,照片的清晰度可以设置权重(w)。然后,找到一种或多种图像比对算法,作为感知器。算法的得到结果是一个概率,比如75%的概率可以确定是数字1。这就需要设置一个阈值(b)(比如85%的可信度),低于这个门槛结果就无效。

一组已经识别好的车牌照片,作为训练集数据,输入模型。不断调整各种参数,直至找到正确率最高的参数组合。以后拿到新照片,就可以直接给出结果了。

八、输出的连续性

上面的模型有一个问题没有解决,按照假设,输出只有两种结果:0和1。但是,模型要求w或b的微小变化,会引发输出的变化。如果只输出0和1,未免也太不敏感了,无法保证训练的正确性,因此必须将"输出"改造成一个连续性函数。

这就需要进行一点简单的数学改造。

首先,将感知器的计算结果wx + b记为z。

z=wx+b

然后,计算下面的式子,将结果记为σ(z)。

σ(z)=1/(1+e^(-z))

这是因为如果z趋向正无穷z → +∞(表示感知器强烈匹配),那么σ(z) → 1;如果z趋向负无穷z → -∞(表示感知器强烈不匹配),那么σ(z) → 0。也就是说,只要使用σ(z)当作输出结果,那么输出就会变成一个连续性函数。

原来的输出曲线是下面这样。

机器学习算法神经网络入门

现在变成了这样。

机器学习算法神经网络入门

实际上,还可以证明Δσ满足下面的公式。

机器学习算法神经网络入门

即Δσ和Δw和Δb之间是线性关系,变化率是偏导数。这就有利于精确推算出w和b的值了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98748
  • 人工智能
    +关注

    关注

    1776

    文章

    43845

    浏览量

    230601

原文标题:机器学习---算法---神经网络入门

文章出处:【微信号:www_51qudong_com,微信公众号:机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    神经网络教程(李亚非)

    神经元  第3章 EBP网络(反向传播算法)  3.1 含隐层的前馈网络学习规则  3.2 Sigmoid激发函数下的BP
    发表于 03-20 11:32

    分享机器学习卷积神经网络的工作流程和相关操作

    机器学习算法篇--卷积神经网络基础(Convolutional Neural Network)
    发表于 02-14 16:37

    【专辑精选】人工智能之神经网络教程与资料

    电子发烧友总结了以“神经网络”为主题的精选干货,今后每天一个主题为一期,希望对各位有所帮助!(点击标题即可进入页面下载相关资料)人工神经网络算法学习方法与应用实例(pdf彩版)卷积
    发表于 05-07 19:18

    神经网络资料

    基于深度学习神经网络算法
    发表于 05-16 17:25

    机器学习神经网络参数的代价函数

    吴恩达机器学习笔记之神经网络参数的反向传播算法
    发表于 05-22 15:11

    基于赛灵思FPGA的卷积神经网络实现设计

    FPGA 上实现卷积神经网络 (CNN)。CNN 是一类深度神经网络,在处理大规模图像识别任务以及与机器学习类似的其他问题方面已大获成功。在当前案例中,针对在 FPGA 上实现 CN
    发表于 06-19 07:24

    【案例分享】基于BP算法的前馈神经网络

    }或o koko_{k})的误差神经元偏倚的变化量:ΔΘ ΔΘ Delta Theta=学习步长η ηeta × ×imes 乘以神经元的误差BP神经网络
    发表于 07-21 04:00

    如何设计BP神经网络图像压缩算法

    ,并能在脑海中重现这些图像信息,这不仅与人脑的海量信息存储能力有关,还与人脑的信息处理能力,包括数据压缩能力有关。在各种神经网络中,多层前馈神经网络具有很强的信息处理能力,由于其采用BP算法,因此也
    发表于 08-08 06:11

    神经网络和反向传播算法

    03_深度学习入门_神经网络和反向传播算法
    发表于 09-12 07:08

    反馈神经网络算法是什么

    反馈神经网络算法
    发表于 04-28 08:36

    【AI学习】第3篇--人工神经网络

    `本篇主要介绍:人工神经网络的起源、简单神经网络模型、更多神经网络模型、机器学习的步骤:训练与预测、训练的两阶段:正向推演与反向传播、以Te
    发表于 11-05 17:48

    卷积神经网络简介:什么是机器学习

    抽象人工智能 (AI) 的世界正在迅速发展,人工智能越来越多地支持以前无法实现或非常难以实现的应用程序。本系列文章解释了卷积神经网络 (CNN) 及其在 AI 系统中机器学习中的重要性。CNN 是从
    发表于 02-23 20:11

    不可错过!人工神经网络算法、PID算法、Python人工智能学习等资料包分享(附源代码)

    为了方便大家查找技术资料,电子发烧友小编为大家整理一些精华资料,让大家可以参考学习,希望对广大电子爱好者有所帮助。 1.人工神经网络算法学习方法与应用实例(pdf彩版) 人工
    发表于 09-13 16:41

    BP神经网络模型与学习算法

    BP神经网络模型与学习算法
    发表于 09-08 09:42 10次下载
    BP<b class='flag-5'>神经网络</b>模型与<b class='flag-5'>学习</b><b class='flag-5'>算法</b>

    卷积神经网络算法机器算法

    卷积神经网络算法机器算法吗  卷积神经网络算法机器
    的头像 发表于 08-21 16:49 526次阅读