菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
360
0

神经网络

原创
05/13 14:22
阅读数 24930

神经网络

在正式使用Keras之前,我们先来熟悉一下什么是神经网络,这样才能知道自己究竟在做什么。“神经网络”一词其实是对生物大脑打的比方,大脑里也有“神经网络”,神经网络的构成单元就是“神经元”。

感知器

感知器是最简单的一种神经网络,由单个神经元构成。就像生物神经元一样,具有树突和轴突。人工神经元呈树状结构,有多个输入节点和一个输出节点:

由图可见,人工神经网络有六大组件,从左至右分别为:

  • 输入节点: 输入节点(input node)关联着一个个数值,可以是任意实数:正数或负数,整数或小数。

  • 连接: 相似地,每一个出自输入节点的连接,都关联着一个权重值(weight),这个值也可以是任意整数。

  • 输入和权重的结合: 对输入求加权和y=f(∑wi∗xi):y=f(wixi)

  • 即y=f(w1∗x1+w2∗x2+...+wn∗xn)

y=f(w1x1+w2x2+...+wnxn)
  • 激活函数: 最简单的激活函数(activation function)`,就是输入输出相等(identity function),f(x)=xory=x

,这里的x就是输入与连接的加权和。就像生物神经元的突触只在特定条件下激活一样,人工神经元也只在x

  • 超过阈值时激活。假设这个阈值是0,那么激活函数就是:

f(x)=0 if x<0

f(x)=1 if x≥0

x0

这样的函数曲线不是平滑的,而是非连续的,这会带来很多数学处理上的问题,所以常用的还是连续函数,如S型函数(sigmoid function),最典型的sigmoid function是逻辑斯蒂函数(logistic function)。

  • 输出节点: 输出节点(output node)呈现了激活函数的结果。

  • 偏置: 偏置(bias)可以认为是一个值固定为1的输入节点,它可以左右移动激活函数,提高学习算法性能。

注意,感知器只能处理数值数据,也就是说,需要把字符等数据都转换为数值格式。现在你已经知道了,感知器控制的是阈值,那么将其用作分类目的也就不远了:高于特定阈值的输出,表示样本属于某一类;而低于阈值就归为另一类。输出=阈值的直线就是两个类别的决策边界。

多层感知器

感知器组成的网络就是多层感知器,这就是我们将用Keras实现的对象。多层感知器又叫前馈神经网络,你可能已经猜到了,还有比感知器更加复杂的网络,神经元以层级结构组织在一起。层数一般是二三层,但是理论上层数是无限的。网络的层就像生物神经元:一层的输出,是下一层的输入。

网络层分为输入层、隐藏层和输出层。多层感知器通常是全连接(fully-connected)的,一层之中的每一个感知器都与下一层的每一个感知器相连接,尽管这不是强制性,但通常是标配。感知器只能表征线性可分的问题,而多层感知器结合非线性的激活函数就突破了这一限制,可以表征更加复杂的决策边界。

发表评论

0/200
360 点赞
0 评论
收藏