前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过案例直观理解神经网络之1—ML Note 48

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

作者头像
讲编程的高老师
发布2020-09-01 10:59:38
3340
发布2020-09-01 10:59:38
举报

本文是吴恩达《机器学习》视频笔记第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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

02

视频

http://mpvideo.qpic.cn/0bf2eyadmaaagiafri2gcjpvajwdgytaanqa.f10004.mp4?dis_k=f7037314cac1239410034eed97a050fa&dis_t=1598929152

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 讲编程的高老师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一个分类的例子
  • 一个简单的例子:与(AND)
  • 一个简单的例子:或(OR)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档