吴恩达机器学习笔记(八):神经网络

吴恩达机器学习笔记(八):神经网络

前言:毫无疑问这是新的一章,算是机器学习的一步向上的台阶,也算深度学习的入门预备,所以说我们应该感谢那个一直在坚持学习的自己,并一鼓作气,一直走下去!

神经网络基本结构

神经网络应该是计算机仿生的一个很好的实例。
下面是一个人体神经的结构,用我们幼儿园就学过的生物知识,不难看出其包含一个神经元和很多突触,并且神经元之间通过突触传播信息(微观上可能是神经递质,但是这里剧只看宏观上的表现)
吴恩达机器学习笔记(八):神经网络_第1张图片
把这个信息传播的方式抽象成图像,我们从特殊到一般,从单个的系统入手,可以很直观的看出来其工作模式:神经元之间通过树突来传播信息,神经元再来加工信息。
吴恩达机器学习笔记(八):神经网络_第2张图片
再抽象,直接快进到抽象成数学表形式,也就是我们的计算机仿生的Neural Network(神经网络)。
圆形的我们视为神经元,而期间的连线就可以看成树突,下面便是一个简易的神经网络,共包含了3层:
输入层、隐藏层和输出层。其中输入层和隐藏层都有3个常规单元(或者元素)和一个偏重(bias,可以理解何为一个函数的常数项),而这里输出层只有一个单元(这个是受具体的分类的问题影响,可以多个也可以单个)。所有的这些便组成了一个简单的神经网络。
吴恩达机器学习笔记(八):神经网络_第3张图片

activation(激活项)和权重矩阵

每一条突出上都有一个对应的参数θ,而后面的每一个单元都要由前面的units+1个的参数和输入值影响,或者说每一个激活项就是前面单元的参数所决定的,所以有:
吴恩达机器学习笔记(八):神经网络_第4张图片
这就是第二层也就是隐藏层的激活项的计算方法。
从其中,我们可以抽象出它的权重矩阵,也就是由参数组成的一个矩阵。
这里有这样一个定义:如果有Sj个单元在第j层,有Sj+1个单元在j+1层,那么权重矩阵θ^(j)就是一个维度为S(j+1)*(S(j)+1)的矩阵。
吴恩达机器学习笔记(八):神经网络_第5张图片

前向传播

前面已经说过如何去计算下一层的激活项,即下图所示;
吴恩达机器学习笔记(八):神经网络_第6张图片
每一层的激活项都是用上述的方法去计算,按照这样一层一层计算下去,我们便可以算出所有的激活项,以及输出值,我们称这种从前往后一层一层推进的算法为前向传播吴恩达机器学习笔记(八):神经网络_第7张图片

神经网络自我学习特征

事实上,在我们初始化参数后,再给出输入值,然后我们的输出也就是激活项就相当于我们的特征值,是在根据参数的调整而不停的变化着的,也就是说特征在不停的根据输出而自我学习优化适应(个人暂时的理解,这里还是有一些不懂)
吴恩达机器学习笔记(八):神经网络_第8张图片

神经网络的架构

神经网络有许多不同的加高,因为其可根据不用的需求而做出不同的改变,我们前面看见的三层的神经网络就是一个比较简单的架构,除此之外,还有一些其他的架构,类似于下图:吴恩达机器学习笔记(八):神经网络_第9张图片

例子-非线性逻辑回归

我们从简单的动手,尝试用神经网络的架构来做出一个异或非门(XNOR)
首先了解XNOR,课简单理解为x1 x2相同则输出1,否则就是0
而XOR(异或)就是 x1 x2相异输出为1,否则就是0.
有这样的关系:x1 XNOR x2 = NOT(x1 XOR x2)
很明显,下图表达的是XNOR。
吴恩达机器学习笔记(八):神经网络_第10张图片
好,现在我们就开始构造。
首先我们先构造一个更简单的,只有输出输出两层结构的:AND(和运算)
也就是只有同为1才是1,其他都是0.
所以我们调整参数,赋予θ10 = -30, θ11=20, θ12=20
提醒一下这里的函数h(x)事实上就是sigmoid函数,所以g(10)≈ 1
所以有如下关系

x1--------- x2 hθ(x)
0 -------------0 g(-30)≈ 0
0 -------------1 g(-10)≈ 0
1 -------------0 g(-10)≈ 0
1 -------------1 g(10)≈ 1

据此我们可以建立起我们神经网络:
吴恩达机器学习笔记(八):神经网络_第11张图片
同理,我们稍稍替换参数,便可以得到OR(只要有一个成立,那么总体便成立的关系)的神经网络结构:
吴恩达机器学习笔记(八):神经网络_第12张图片

然后将两者进行整合,架起一个三层的神经网络:第一层书输入层,第二层也是隐藏层:由AND和OR两个单元组成,第三层是输出层,废话不多说,直接看图,一键理解!

2022.3.9

你可能感兴趣的:(吴恩达机器学习笔记,神经网络,机器学习,深度学习)