白话机器学习-感知机

在机器学习里面,有一大类叫做神经网络。神经网络里面,大名鼎鼎的有卷积神经网络CNN,循环神经网络RNN。其中,卷积神经网络在图形图像处理方面,有着很出色的成果。例如识别图像的功能,通过基于CNN的深度学习技术,现在机器已经可以识别出很多东西了。下面这个图是电视剧《三生三世 十里桃花》的剧照,使用Tensorflow和ImageNet,机器告诉我们,这张图是 kimono(和服)的可能性是 0.86。gown(长外衣;外罩)0.05.

如果是一些简单的图片,例如键盘,鼠标,水杯等,识别准确度还是蛮靠谱的。

神经网络的如果要用图来表示的话,应该就是下面这个样子的。最左边的是输入,最右边的是输出。然后中间有很多隐藏层。

这个图中隐藏层只有一层,但是大部分用于真实计算的神经网络,都会有很多隐藏层。

无论是简单的,还是复杂的神经网络,其中最小的单元就是感知器。

对于感知器的介绍,可以参考网络上的文章:

既然是白话,那么我们就用讲故事的方法来说一下。(假设读者已经阅读了上面的文章) 假设有一次考试,分为语文,数学,英语,满分都是100分。但是,语文,数学,英语占的权重(weight)不一样。同时,我们还需要根据考试难度,在最后总分上面,进行一些加分或者减分的调整(bias)。最后,根据一个标准(激活函数 Step Function)来定考试合格或者不合格(output)。

如果教务处说,我们是外国语学校,对于英语成绩比较看重,则我们给予这样的英语比较高的权重。

X1:语文成绩 W1:0.3

X2:数学成绩 W2:0.2

X3:英语成绩 W3: 0.5

然后,由于这次考试难度比较高,则每个人都加5分 (这个其实叫做 偏置项 bias)

X0=1 W0=5

成绩=X0 * W0 + X1 * W1 + X2 * W2 + X3 * W3

然后,如果成绩为60分及以上则为合格。(激活函数 Step Function)

如果 成绩 >=60 ,则合格

成绩 合格

语文成绩 80 * 0.3=24

数学成绩 50 * 0.2=10

英语成绩 40 * 0.5=20

附加分 5

成绩 24 + 10 + 20 + 5=59=> 不合格

当然,一般来讲,感知机往往是激活函数(StepFunction)是事先决定的,作为训练数据的输入,输出是已知的,权重则是需要通过机器学习来获得的。我们的例子中,合格标准是事先决定的,60分及格,然后给出一部分数据:某些人的语文成绩,数学成绩,英语成绩 ,是否合格,然后通过机器学习,将各科的权重计算出来,获得一个模型。然后利用这个模型,通过输入 语文成绩,数学成绩,英语成绩,来判定是否合格。

当然,如果在训练数据比较少的时候,这个权重可能计算的不是很准确,数据越多,权重越准确。

语文成绩 50 数学成绩 40 数学成绩 40 附加分 5 合格 语文成绩 80 数学成绩 50 数学成绩 40 附加分 5 不合格

能够满足这样条件的权重有很多很多,所以机器学习的结果可能不是很好。 但是如果有足够的数据,则权重的计算结果则会非常理想。

最后再回来说一下,为什么叫感知机,其实最简单的,最原始的时候,感知机的输出就是 0(不合格) 或者 1(合格).结果能被感知,或者不能被感知。当然,随着研究的深入,则输出形式也越来越丰富了,不仅限于是否,也可以是数值或者其他形式的东西。例如,感知机做线性回归的时候,则是数值作为输出。

关注公众号 TensorFlow教室 深度学习,机器学习,自然语言处理。