学界 | 从数学概念入手,一文带你理解感知机是什么

AI科技评论按:神经网络已经成为了人工智能最火的领域,是源于大脑结构的计算模型。 属于信息处理结构,其最重要的属性是其从数据中学习的能力。 这些技术在营销、工程等诸多领域取得了巨大的成功。

感知机是一种人工神经网络,由Frank Rosenblatt于1957年发明,他也提出了相应的感知机学习算法。

神经网络类型众多,其中最为重要的是多层感知机。 多层感知机中的特征神经元模型称为感知机。本文将解释从数学概念上理解感知机模型。

感知机元件

神经元是神经网络的主要组成部分,感知机是最常用的模型。 如下图所示。

上述神经元包含下列元素:

  • 输入(x1 ,...,xn )。
  • 偏移b和突触权重(w1 ,...,wn )。
  • 组合函数c(·)。
  • 激活函数a(·)。
  • 输出y。

如下图所示的神经元有三个输入。 它将输入集合x =(x1 ,x2 ,x3 )变换为单个输出y。

上图中的神经元,包含下列元素:

  • 输入(x1 ,x2 ,x3 )。
  • 神经元参数,为集合b = -0.5和w =(1.0,-0.75,0.25)。
  • 组合函数c(·),将输入与偏移和突触权重合并。
  • 激活函数设置为双曲正切tanh(·),通过该组合生成神经元输出。
  • 输出y。

神经元参数

神经元参数由偏移和一组突触权重组成。

  • 偏置b是实数。
  • 突触权重w =(w1 ,...,wn )是大小为输入数量的向量。

因此,该神经元模型中的参数的总数是1 + n,其中n是神经元中输入的数量。

上图所示的感知机。 其神经元模型包含1个偏移和3个突触权重:

  • 偏移为b = -0.5。
  • 突触权重向量是w =(1.0,-0.75,0.25)。

该神经元参数数量为1 + 3 = 4。

组合功能

组合函数通过输入向量x生成组合值或净输入c。 感知机中,组合由偏移加上突触权重和输入的线性组合计算得到,

c = b +Σwi·x i i = 1,...,n。

注意,偏置对激活函数净输入的增减取决于其正负。 偏移有时被表示为连接到固定为+1的输入的突触权重。

上例中的神经元,输入向量x =(-0.8,0.2,-0.4)的感知机的组合值为

c = -0.5 +(1.0·-0.8)+(-0.75·0.2)+(0.25·-0.4) = -1.55

激活功能

激活函数通过组合来定义神经元的输出。实践当中,可以考虑多种适用的激活函数。 三个最常用的是逻辑,双曲正切和线性函数。 在此不考虑不可导出的其他激活函数,如阈值。

逻辑函数具有S形形状。 该激活是单调的新月形函数,其在线性和非线性行为之间表现出良好的平衡。 定义为

a = 1 /(1 + exp(-c))

逻辑函数如下图所示。

逻辑函数的取值区间为(0,1)。 特别适合分类应用,因为输出可以根据概率解释。

双曲正切也是神经网络领域中常用的S形函数。 它非常类似于逻辑函数。 主要区别是双曲正切的取值区间为(-1,1)。 双曲正切由

a = tanh(c)

双曲正切如下图所示。

超实体正切函数非常适用于近似应用。

线性激活函数满足下列等式

a = c

因此,具有线性激活函数的神经元的输出等于其组合。 线性激活函数图形如下图所示。

线性激活函数也非常适用于近似应用。

本文给出的例子中,组合值为c = -1.55。 因该函数为双曲正切,所以该神经元的激活如下:

a = tanh(-1.55) = -0.91

输出功能

输出计算是感知机中最重要的功能。 对于特定的一组神经元输入信号,通过组合生成输出信号。 输出函数以组合和激活函数的组成表示。 下图说明了感知机中信息是如何传播的。

因此,神经元的输出最终表述为其输入的函数

y = a(b + w·x)

本文中的感知机, 如果输入x =(-0.8,0.2,-0.4),输出y如下

y = tanh(-0.5 +(1.0·-0.8)+(-0.75·0.2)+(0.25·-0.4)) = tanh(-1.55) = -0.91

显而易见,输出函数合并了组合和激活函数。

结论

神经元是生物神经系统中单个神经元行为的数学模型。

单个神经元可以完成一些非常简单的学习任务,但是许多神经元构成的网络威力巨大。人工神经网络的结构是指神经元的数量和它们之间的连接关系。 下图显示了神经元的前馈网络架构。

虽然通过本文读者能够了解感知机的功能,但是存在特征各异并且用途不同的神经元模型。如可伸缩神经元,主成分神经元,非伸缩神经元或概率神经元。上图中,可伸缩神经元为黄色,非伸缩神经元为红色。

via neuraldesigner

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏拭心的安卓进阶之路

Java 集合深入理解(6):AbstractList

今天心情比天蓝,来学学 AbstractList 吧! ? 什么是 AbstractList ? AbstractList 继承自 AbstractCollec...

19110
来自专栏聊聊技术

原 初学图论-Kahn拓扑排序算法(Kah

2878
来自专栏alexqdjay

HashMap 多线程下死循环分析及JDK8修复

1K4
来自专栏Hongten

ArrayList VS Vector(ArrayList和Vector的区别)_面试的时候经常出现

1692
来自专栏ml

朴素贝叶斯分类器(离散型)算法实现(一)

1. 贝叶斯定理:        (1)   P(A^B) = P(A|B)P(B) = P(B|A)P(A)   由(1)得    P(A|B) = P(B|...

3437
来自专栏Phoenix的Android之旅

Java 集合 Vector

List有三种实现,ArrayList, LinkedList, Vector, 它们的区别在于, ArrayList是非线程安全的, Vector则是线程安全...

662
来自专栏xingoo, 一个梦想做发明家的程序员

Spark踩坑——java.lang.AbstractMethodError

百度了一下说是版本不一致导致的。于是重新检查各个jar包,发现spark-sql-kafka的版本是2.2,而spark的版本是2.3,修改spark-sql-...

1200
来自专栏刘君君

JDK8的HashMap源码学习笔记

3008
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1716
来自专栏desperate633

LeetCode Invert Binary Tree题目分析

Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9 to4 / \ 7 2 / \ / \9 6 3 1 Tri...

841

扫码关注云+社区