用户:
嗯哼君 渠源查看:0 回复:3 评论:0 创建时间:2019-02-25T19:45:22
嗯哼,我就系你们滴嗯哼君啦~~~
最近由于嗯哼君加入了小蓝研发团队的一员,因此就要努力学习AI了。
最近正在学习神经网络,因此想发几个教程见证一下嗯哼君的学习成果,顺带巩固巩固。
而今天,嗯哼君就给大家带来神经网络的入门——“权重”与“偏置”。
在学习神经网络之前,我们先来学习一下感知机,因为两者是层层递进的关系的。
我们首先来看一下感知机的基本结构:
我们首先要知道,上图中的“x”为输入,“w”为权重,“y”为输出,“○”为神经元(也叫节点),“→”为神经流。
它的流程是这样子的:用户输入两个值(即x1与x2),分别乘以分别的权重(w1与w2)。若加起来的和大于阈(yù)值,y则输出True(1);若小于等于阈值,y则输出False(0)。
另外,阈值是一开始设置的一个实数值,也可以理解为输出True的难易值。
阈值用θ(中文谐音“西塔”)表示,θ越大则说明输出True的困难度更大,反之更小。
就是这么简单,不是吗?
我们还可以将其变个方法表达出来,用“-b”来表示θ
这就和方程差不多,两边同减去一个数,最终等式仍成立。
b也就等于θ,只不过它来到了等式的左边,而右边则成了0。
我们将“b”叫做“偏置”,它其实就和阈值一个样,只不过叫法与看起来不同而已。
总结一下,公式是这样的:
感知机的各个输入都有其分别的权重,这些权重发挥着控制各个信号的作用。
我们也可以这么理解,权重越大,其信号的重要性就越大(输出量高)。
我们来举个例子,若w1为1,w2为2,b为-1,我们可以用下列的Python代码表达出来:
x1 = float(input('第一个输入?'))
x2 = float(input('第二个输入?'))
w1 = 1
w2 = 2
b = -1
z = x1 * w1 + x2 * w2 + b
if z > 0:
y = True
else:
y = False
我们可以从中获取什么信息呢?能获得的信息有很多很多。
比如说:1、输入x2比输入x1更容易被激活,也就是重要性更大。
2、就算输入x1为0,x2只要大于0.5就能输出True
诸如此类,我就不胜枚举了。而我们在看一个神经网络的代码时候最好能画下图来,这样子有助于理解。
而我们在关注一个神经网络的时候,首先就是要看神经元的数量,就是有几个输入等。
其次我们要看权重、阈值与偏置,这样子我们就对这个神经网络基本了解了。