深度学习为什么要从感知机学起?

    感知机是作为神经网络(深度学习)起源的算法,学习感知机的构造是通向深度学习的一种重要思想。

概念:

    感知机是一种算法,更或者说是一种数学表达式,它能接受多个输入信号(x1、x2、x3….),而输出一个信号(y)。

                                        

    感知机的信号只有两种取值,传递信息对应1,不传递信息对应0。如上面公式所示,每个信号都有一个各自的权重(w1、w2、w3….),只有当所有信号的加权和超过某个界限时(称为阀值),才输出1(传递信号),否则输出0(不传递信号)。显然每个信号的权重大小决定着该信号的重要性,权重越大,该信号的重要性就越高(如果你还没有明白,打个比方,有三位面试官参与一位大学生的面试,面试结束后他们给出了自己的打分(用x1、x2、x3表示),由于他们的资历不同(用w1、w2、w3表示),该学生最终的成绩是三位面试官的打分并乘以其权重,如学生果最终成绩超过80分则面试通过(1),否则面试失败(0)。可知,在打分不变的情况下,如果资历越高的人的权重越大,那么他对学生最后面试结果影响也越大)。

直观地,用一幅图来表示有两个输入信号的感知机:

                                                     

图中的圆圈0称为“神经元”或“节点”。输入信号x1、x2被送到神经元然后乘以各自的权重(w1、w2)。接着神经元计算传过来的信号的总和y。当然信号y也可以作为输入信号继续传下去。

转换:

    上面的表达式是为了方便大家理解感知机的概念,实际上,我们更多采用另一种表示方式:

                                   

    仔细观察发现,这种方式表示的内容和前面是一样的,只不过进行了左移动并将参数修改成了b(就像线性函数中的截距b),这里b称为偏置,其他参数意思不变。因此感知机会计算输入信号和权重的乘积,然后加上偏置,如果这个值大于0则输出1,否则输出0。需要理解的是,偏置的作用和权重不一样,偏置是调整神经元被激活(输出为1)的容易程度的参数。比如b为-2,则只要输入信号的加权和超过2,神经元就被激活。如果b为-20,则输入信号的加权和必须超过20,神经元才被激活。

知道吗?感知机可以实现简单的逻辑电路:

    回顾一下逻辑电路与门、与非门、或门。这里我们用感知机来实现与非门,其他门的感知机的构造是一样的,读者可自己实现。与非门表明,只要有一个输入信号为0,则输出就为1,真值表如下:

                                        

    这里,我们人为设置参数(w1,w2,b)=(-0.5,-0.5,0.7),这样输入的信号就可以根据上面的表达式知道输出信号为0还是1。用Python编程如下图所示。

def yufei(x1,x2):
    """与非门的实现"""
    x=np.array([x1,x2])
    w=np.array([-0.5,-0.5])
    b=0.7
    value=np.sum(w*x)+b
    if value<=0:
        return 0
    else:
        return 1

    需要强调的是,这里决定感知机参数的是我们人,真值表就像“训练数据”,我们人为地赋予了参数值。实际上机器学习的课题就是将这个决定参数值的工作交由计算机自动进行。学习就是确定合适的参数的过程,而人要做的是思考感知机的构造(模型),并把训练数据(真值表中x1、x2的四种取值)交给计算机。y是训练数据提供的已知的输出。这样一旦机器学到了参数,那么对于输入的任何值(x1、x2),模型都会输出一个预测值0或者1(因为训练数据中y的值只有0和1两种输出)。本文就给大家介绍到这里

猜你喜欢

转载自blog.csdn.net/u012132349/article/details/86166324