深度学习的一些个人学习(1)
首先我们从感知机开始说起。
通常感知机的形式如下图:
其中 x1 x2 x3 是输入,output是输出。
当我们想由输入得到输出时,可以按照如下的公式得到:
你可以这样理解: x1,x2,x3 是衡量结果、影响最终结果判断的因素,而 wj 则是用来判断这些因素在对结果的影响中,能占多大的权重,也就是会多大程度上影响结果。通过(1)式我们也可以看出来,通过调节不同的threshold,我们可以获得不同的判断结果。
但是很明显的,这么简单的模型不能理解我们这个世界,于是我们让中间再加两层:
在这里,输入的的因素不仅仅做出一个判断,而是三个。而这三个输出结果,又成为下一层的输入,综合这一次的权重,影响第三层的结果判断。以此类推,我们可以增加好多层的感知机结构。
虽然这种情况下还是不能很好的描述我们这个世界,但是起码朝着理解世界更前进了一步。
从上面的结构来看,我们会以为多层的感知机有多个输出结果,但是实际上只有一个。我们这样画,只是为了表明一个感知机的多种不同的可能结果,作为下一层的输入来说,是怎么样组合起来,是怎样影响下一层的输出的。这样看起来比较方便些。
我们简化下公式(1):
我们用向量点乘来代替 ∑jwjxj :
w⋅x=∑jwjxj将thresh_hold进行转化,放到方程里面去 b≡−thresh_hold
通过上面的转化,我们可以重写(1)
output={ 01if w⋅x+b≤0if w⋅x+b>0(2)
b我们称之为偏差,可以理解为我们让结果输出为1的难易程度:b越大,结果为1就越难;b越小,结果为1就越简单。
这样一看,公式是不是清爽了好多。
通过感知机,我们可以“制作”简单的与门,或门,或者与非门。
例如我们看下面的例子:
我们可以看到:输入(0,0) ,(-2)* 0 + (-2)*0 +3 = 3 ,结果输出为正;
我们输入(1,0)(0,1),都会输出结果1;而如果输入(1,1),就会输出结果-1;
这样,我们就实现了一个与非门!
利用这个与非门,我们可以实现一些更复杂的逻辑,比如:
计算bitwise sum,也就是bit和;还可以用来标识当x1 x2都设定为1时进行标识:
可以自己看下结果:当x1, x2均为输入1时, x1x2结果为1,其余为0;
然后可以自己再设定下x1 x2分别为0,1,看下 x