通过案例直观理解神经网络之1—ML Note 48

Posted 讲编程的高老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过案例直观理解神经网络之1—ML Note 48相关的知识,希望对你有一定的参考价值。

本文是吴恩达《机器学习》视频笔记第48篇,对应第4周第5个视频。

“Neural Networks: Representation——Examples and intuitions I”



01

笔记


接下来的两个小节,将通过例子讲解神经网络是如何对输入进行运算的,在此基础上搞明白神经网络为什么能够学习复杂的非线性问题。


学过数字电路的同学,经常会做一些逻辑运算。比如:(1)异或(XOR),当a和b的取值不同的时候,a XOR b得1;否则得0.(2)同或(XNOR),与异或相反,当a和b取值相同的时候,a XNOR b得1.


除此职位,还有取与运算、或运算等,这些逻辑运算是非常典型的非线性运算。那我们的神经元能不能实现这些逻辑运算呢?如果能够实现的话,那就像数字电路一样,我们将这些简单的逻辑运算的神经元组合起来构成网络就可以解决很多复杂的逻辑问题了。

一个分类的例子

假设我们要对下面的这样一些数据进行分类:

要把上图中的数分为两类,该怎么分呢?我们将这个看上去有点复杂的问题给简化一下,我们把这些点呢,给简化成4个。怎样简化呢?我们让x1、x2这两个坐标轴的取值只有2个(0,或者是1)。如下图:x2轴上对应箭头上面的坐标为1,下面的坐标为0;x1轴上类似,红色箭头左边取0,右边取1.

通过案例直观理解神经网络之1—ML Note 48

这样,上边的一堆点就只剩下4个了,如下图:

通过案例直观理解神经网络之1—ML Note 48

上图中的4个点分2类,红色叉叉的一类、蓝色圈圈的一类。那要用什么样的逻辑表达式来表示这种分类呢?


如果我们用逻辑表达式来写目标函数,大概有这3种备选:

通过案例直观理解神经网络之1—ML Note 48

根据下面图中已知的分类结果,再去对照上面的三个式子,明显应该选择(2)。

通过案例直观理解神经网络之1—ML Note 48

上面的例子可以看出,逻辑运算是可以进行分类的。如果我们神经元(或者简单的网络)能够实现这样的逻辑运算,那我们是不是也就可以解决分类问题了呢?

一个简单的例子:与(AND)

先从一个简单的例子入手,x_1和x_2取与(AND)运算。


根据前面2个小节的学习,我们知道神经元由输入、及其对应的激活函数(假设函数)构成,那我们来看看怎样设计这个神经元。

通过案例直观理解神经网络之1—ML Note 48

我们把上图中左边输入、偏移量对应的参数分别设置为+20、+20、-30,那么对应于神经元的输入就变成+20x_1+20x_2-30, 那我们把激活函数g(*)设置为sigmoid函数,如下图:

通过案例直观理解神经网络之1—ML Note 48

上图中的这个函数比较有意思,当输入大于4的时候,函数的取值近似于1;当输入小于-4的时候,函数取值近似于0.


那,我们来看看x1、x2对应于神经元的激活函数的取值的真值表。

通过案例直观理解神经网络之1—ML Note 48

上图的真值表,确实是x1和x2取与(AND)的计算结果。也就是说,通过适当的设置神经元的激活函数、及其输入的系数,就可以通过神经元实现一个与运算了。

一个简单的例子:或(OR)

类似的,改变一下\theta,激活函数g()保持不变,就可以实现一个或了。

通过案例直观理解神经网络之1—ML Note 48

是不是很巧妙?神经元可以实现简单的逻辑运算。


但是更复杂一点的逻辑运算(XOR、XNOR)我们还没有通过神经网络实现,能实现么?且听下回。



02

视频



关注公众号:
加作者好友,进入学习群:


以上是关于通过案例直观理解神经网络之1—ML Note 48的主要内容,如果未能解决你的问题,请参考以下文章

神经网络的模型表示之1—ML Note46

神经网络的反向传播算法—ML Note 52

ML之FE:VIF(方差膨胀系数)指标的简介计算逻辑判断标准案例应用之详细攻略

ML-Agents案例之蠕虫

ML-Agents案例之机器人学走路

ML-Agents案例之推箱子游戏