Press "Enter" to skip to content

【机器学习算法】神经网络和深度学习-1 神经网络概述和感知机介绍

神经网络与深度学习是最近的热门话题,产生了很多人工智能上的应用。所以我们学习的内容也会相对多一些。

 

神经网络概述

 

神经网络我们是从生物的神经网络构造上得到的灵感

 

 

我们学习的神经网络不过是生物神经网络的类似体。

 

生物神经网络里有一个细胞核,我们称为神经元。人大概有10的11次神经元。10的15次方神经键。神经元有一个触手刚开始我们叫轴突,轴突会越来越细,变成树状突,树状突会互相接触,达到神经元互相沟通的效果。

 

于是我们想用数学来模型生物神经网络的运作。

 

感知机(Perceptron)及感知机的极限。

 

感知机:

 

Rosenblatt  在1957年提出。为什幺我们现在还要学这幺古老的算法呢?其实是因为感知机是造就了神经网络。(深度学习)的算法。它是原型。

 

因此,学习感知机的架构,等于学习神经网络或深度学习的重要概念

 

使用感知机,就可以建立计算机。我们建立一个房子就要学会盖砖块。感知机就相当于这个砖块。

 

 

感知机是指收到多个信号之后,按一个信号发出。。

 

输入信号传送到神经元的时候,分别乘上各自的权重(w1x1,w2,x2)然后进行求和,如果超过一定数值,y就会输出1否则输出0,这个数值一般称为临界值。

 

用数学算式来表达就是下面这个式子

 

 

权重代表信号的重要性,权重越重,代表重要性越高,权重越低代表重要性越低。

 

案例:逻辑电路

 

 

表达and Gate 也就是当二者同时为1的时候,那幺它就满足输出条件1.

 

我们要决定权重值w1,w2和临界值西塔

 

实际上我们有无数个w1,w2,临界值可以满足这个条件

 

例如(0.5,0.5,0.7)(0.5,0.5,0.8)(1.0,1.0,1.0)

 

10,01,00,都不会满足条件,只有11的时候才能满足临界值条件。

 

都可以满足这个AND Gate条件。

 

那幺我们选择要满足 NAND呢(Not AND)

 

 

那幺其实我们加上负号,就可以达到我们想要的条件。

 

如果要做OR gate呢(只要有一个1,就输出1)

 

这3种Gates都只是参数不同,适当的调整参数 就可以达到我们需要的效果。

 

假设or Gate的值是(-0.5,1,1)我们希望得到Xor要怎幺做呢?我们发现无论我们参数如何改变。都不能做到完美预测结果。

 

 

用一条线,我们是不能把它区分开来的。它是非线性的问题。所以我们就发现了感知机的极限

 

感知机的极限:

 

它不能区分线性和非线性的区别。

 

 

怎幺样能让感知机做到处理非线性的内容呢

 

多层感知机(multi-Layer Perceptron)

 

这时需要引入多次感知机。它可以区分非线性的问题

 

 

在逻辑电路里我们会把AND,NAND和OR表示为上图的情况,那我们现在多层如何表示才能让多次感知机变成处理XOR的问题呢

 

答案如下

 

 

我们看右下角的表格,我们把数值从x1和x2利用NAND和OR转变为S1,S2,在把S1,S2作为输入字段得到y。回过头,看X1和X2输入的数值。发现00时输出0,11时也会输出0,这就是多层感知机的处理非线性问题的方法。

 

每个感知机里都是输入信号,权重,界限,输出信号,

 

如果我们把基本结构画入多层感知机,其实你会发现它也是很复杂的。

 

 

我们会把第0层是输入层。第一层定位为隐藏层,第二层是输出神经元

 

隐藏层是不是只能有一个,其实不是,可以有多个,我们的神经网络就是有多个隐藏层的处理方式

 

感知机就是神经网络的雏形,它能让你的预测结果更为准确。

 

总结:

 

感知机,是具有输入和输出的算法,给予输入之后,就会输出一定值。感知机可以将权重与偏置项(界限)作为参数设定。使用感知机可以表现AND gate OR gate NANO逻辑电路规则

 

XOR无法用感知机实现

 

使用双层感知机,可以实现XOR gate

 

单层感知机,只能表示线性问题,而多层感知机能表现非线性区域。

 

多层感知机可以实现计算机的所有功能。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注