吴恩达机器学习笔记---神经网络实现XNOR功能
前言
我们通过神经网络模型实现XNOR(异或非)运算。当2个输入端中有且只有一个0时,输出为0,也就是当输入相同时,输出为1。
神经网络实现XNOR
(一)实现x1 AND x2
AND运算是当且仅当两者都为1时结果为1。我们使用如下的神经网络模型实现:
这时候,我们的输出函数hθ(x)h_\theta(x)hθ(x)即为:hΘ(x)=g(−30+20x1+20x2)h_\Theta(x)=g\left( -30+20x_1+20x_2 \right)hΘ(x)=g(−30+20x1+20x2),我们的Sigmoid函数是这样的:
所以,当x1和x2x_{1}和x_{2}x1和x2都为0时,hΘ(x)=g(−30)h_\Theta(x)=g\left(-30 \right)hΘ(x)=g(−30),结果约等于0;当x1和x2x_{1}和x_{2}x1和x2都为1时,hΘ(x)=g(10)h_\Theta(x)=g\left(10 \right)hΘ(x)=g(10),结果约等于1;当x1和x2x_{1}和x_{2}x1和x2有一个为0,另一个为1时,hΘ(x)=g(−10)h_\Theta(x)=g\left(-10 \right)hΘ(x)=g(−10),结果同样约等于0。我们可以得到如下结果:
所以这样一个模型实现了hΘ(x)≈x1ANDx2h_\Theta(x) \approx \text{x}_1 \text{AND} \text{x}_2hΘ(x)≈x1ANDx2。我们也可以看出,模型参数的值时可以更改的,能够实现功能就可以。
(二)实现x1 OR x2
OR运算是只要两者有一个或两个为1时结果就为1。我们使用如下的神经网络模型实现:
原理和AND相同,可以自行验证。
(三)实现 NOT (x)
NOT运算是输入为0则输出1,输入为1则输入0。我们使用如下的神经网络模型实现:
(四)实现(NOT x1) AND (NOT x2)
分析一下就可以得到,当且仅当x1和x2都为0时,输出才为1。我们使用如下的神经网络模型实现:
(五)实现x1 XNOR x2
我们实现以上四个功能一方面是为了熟悉神经网络运行过程,一方面就是为了实现XNOR功能。XNOR可以用以下组合表示出来:
XNOR=(x1,AND,x2)OR((NOT,x1)AND(NOT,x2))\text{XNOR}=( \text{x}_1, \text{AND}, \text{x}_2 ) \text{OR} \left( \left( \text{NOT}, \text{x}_1 \right) \text{AND} \left( \text{NOT}, \text{x}_2 \right) \right)XNOR=(x1,AND,x2)OR((NOT,x1)AND(NOT,x2))
先对x1和x2实现AND运算,再对NOT x1和NOT x2 实现AND运算,最后对两者进行OR运算,方法就是将上述介绍的实现过程组合起来,如图:
另外说明,XNOR运算不能像前面介绍的四个一样只用两层就能实现。由此我们初步感受了神经网络模型的运行过程。最后了解一下神经网络模型处理多分类问题是如何实现的。
(六)多类分类(Multiclass Classification)
结合上图进行说明。假设我们要实现一个区分行人、汽车、摩托车和卡车的功能,我们希望输出值是一个4维的向量,对应位置为1(或者是值最大的)说明预测结果为对应的物体。要想实现这样的输出对输入也有要求,我们要求输入也是4维的,对应的物体处标为1,其余标为0。例如,当第一个数字为1时对应行人,第二个数字为1的时候对应汽车,以此类推。
- 吴恩达机器学习笔记——参数的反向传播算法与神经网络的整体实现
- 吴恩达机器学习第三次作业(python实现):多分类与神经网络
- 吴恩达 机器学习 神经网络编程代码练习笔记
- 机器学习笔记——7 神经网络(一个BP神经网络的python实现:手写数字识别)
- 吴恩达机器学习笔记 —— 10 神经网络参数的反向传播算法
- 学习笔记——吴恩达-机器学习课程-1.3 用神经网络进行监督学习
- 吴恩达 机器学习笔记八(lecture 8)(神经网络一)
- 吴恩达机器学习笔记(八)神经网络的反向传播算法
- 吴恩达coursera机器学习个人向笔记——章节10神经网络参数的反向传播算法
- 吴恩达coursera机器学习个人向笔记——9章神经网络学习
- 吴恩达机器学习笔记 —— 9 神经网络学习
- 吴恩达深度学习笔记(3)-神经网络如何实现监督学习?
- 机器学习笔记:tensorflow实现卷积神经网络经典案例--识别手写数字
- 吴恩达老师深度学习视频课笔记:单隐含层神经网络公式推导及C++实现(二分类)
- 吴恩达机器学习 神经网络 作业1(用已经求好的权重进行手写数字分类) Python实现 代码详细解释
- 【吴恩达机器学习笔记】第八章 神经网络:表述
- 吴恩达机器学习笔记---神经网络反向传播
- 机器学习笔记——神经网络的实现
- coursera-斯坦福-机器学习-吴恩达-第4周笔记-神经网络
- 吴恩达机器学习笔记2-神经网络