zoukankan      html  css  js  c++  java
  • 初步了解神经网络

    初步了解神经网络

    【学习自http://www.ruanyifeng.com/blog/2017/07/neural-network.html】

    最早的神经元模型-感知器

    上图的圆圈就代表一个感知器。它接受多个输入(x1,x2,x3...),产生一个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。
    为了简化模型,我们约定每种输入只有两种可能:1 或 0。如果所有输入都是1,表示各种条件都成立,输出就是1;如果所有输入都是0,表示条件都不成立,输出就是0。

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

    比如是否出去玩由三个因素决定:

    • 因素一:明天的天气
    • 因素二:明天的心情
    • 因素三:有没有妹子一起去

    虽然是由这三个因素决定,但是每个因素的比重不一样,显然因素三最重要一些我们假设其是8,因素二第二位假设是4,因素三最不重要是第三位权值2,那么可以得出下表

    因素 权值 是否具有
    天气 4 1
    妹子 8 1
    心情 2 0

    总分=4+8+0=12

    最终是否去不去还是由阈值来决定,阈值的高低代表了意愿的强烈,阈值越低就表示越想去,越高就越不想去,当总分大于阈值的时候就会决定去,总分小于等于阈值,就不回去,这是一种决策过程。

    数学表达

    决策模型

    单个的感知器已经可以产生决策了,但是实际上,真实世界中,实际的决策模型则要复杂得多,是由多个感知器组成的多层网络。

    过程:

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

    矢量化

    对上面的过程进行数学化处理就得到了

    • 外部因素 x1、x2、x3 写成矢量 <x1, x2, x3>,简写为 x
    • 权重 w1、w2、w3 也写成矢量 (w1, w2, w3),简写为 w
    • 定义运算 w⋅x = ∑ wx,即 w 和 x 的点运算,等于因素与权重的乘积之和
    • 定义 b 等于负的阈值 b = -threshold

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

    神经网络的运作过程

    1.神经网络的搭建需要满足三个条件:

    • 输入和输出
    • 权重和阈值
    • 多层感知器的结构

    2.遇到的问题:

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

    3.解决问题的方法

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

    4.训练的过程

    • 确定输入和输出
    • 找到一种或多种算法,可以从输入得到输出
    • 找到一组已知答案的数据集,用来训练模型,估算w和b
    • 一旦新的数据产生,输入模型,就可以得到结果,同时对w和b进行校正

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

    输出的连续性

    上面的模型有一个问题没有解决,按照假设,输出只有两种结果: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的值了。

  • 相关阅读:
    AS3 CookBook学习整理(四)
    方维分享系统修改瀑布流页面,包括的文件
    PHP 采集淘宝店的评论插件使用说明
    方维系统,在tip.htm和inc\u\u_menu.htm调用账号绑定状态,已绑定的可链接到该用户在对应网站的地址
    php采集淘宝店的评论,php采集淘宝店铺的所有评论的实现
    方维分享系统二次开发,新加一个模块
    方维分享系统,个人中心杂志社显示我的、关注的、推荐的数量
    采集 淘宝店铺的所有评论内容 的思路
    方维分享系统写一个全局函数,能获取用户详情
    方维分享系统 全局变量 $_FANWE 的用处
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/11837978.html
Copyright © 2011-2022 走看看