机器学习(7):吴恩达笔记

为何要研究神经网络算法

  • 神经网络是一种古老的算法,但是又是许多机器学习的首选技术。
  • 我们已经有线性回归和逻辑回归算法了,为啥还要研究神经网络算法呢?

机器学习(7):吴恩达笔记_第1张图片

接下来我们看一下计算机视觉问题。加入我们想通过机器学习训练分类器,看图像是不是汽车。在计算机看来,它看车门把手,实际上看到的是包含像素点亮度的数据矩阵,不能像人类那样直接看出门把手来。

所以我们先提供两类图片,一类是各种图片,一类是其他东西,让计算机进行学习后,再输入图片,让他判定图片是不是汽车

机器学习(7):吴恩达笔记_第2张图片
这里要处理的数据也是非常多的,假设只有50*50个像素点,那么特征向量要包含所有像素点的亮度,也有2500维;要是用rgb三原色表示的话,就成了7500维。如果我们仍然想通过包含所有二次项或者三次项的假设函数解决问题的话,样本数据太大,计算成本太高(理解:神经网络就是把原始特征转化成了更高级更抽象的特征)

  • 为了解决这些数据量非常大(假设函数的参数非常多)的非线性回归,我们引入了神经网络

神经网络的来生前世

  • 人们想设计出模仿人类大脑的算法。开始,人们以为模仿似乎要写上千个程序来做五花八门的事情(看、听、触觉);但是后来人们发现,大脑做那么多事情似乎只需要一个单一的算法。尽管这只是一种假设,但是目前有相关的证据:

机器学习(7):吴恩达笔记_第3张图片
(1)神经重接实验。听觉皮层依靠耳朵接受信号,传递到听觉皮层,做出反应。神经学家将耳朵和听觉皮层的神经切断,而将眼睛连到听觉皮层上,发现能看到东西。

这表明,人类的脑组织能处理光、声、触觉等多种信号。所以我们假设,存在一种算法,能同时处理这些信号,而不是运行各种不同的程序

神经网络模型的表示

  • 我们先看单个神经元:

机器学习(7):吴恩达笔记_第4张图片
单个神经元包含三部分,胞体负责计算,输入神经接受其他神经元的信息,输出神经则负责给其他神经元传递信号。神经元的工作就是,接受其他神经元信息,做一些计算,然后将结果传送到其他节点

  • 接着我们用一个简单的模型模拟神经元:

机器学习(7):吴恩达笔记_第5张图片
黄圈类似神经元,通过接受参数,计算输出一个类似逻辑回归的函数。值得注意的是,每层的神经网络都有一个偏置参数0,这个参数恒为1,可以画出来也可以不画出来;这个类似逻辑回归函数的函数称为激励函数,它与逻辑回归函数完全相同

  • 下边来看神经网络:

机器学习(7):吴恩达笔记_第6张图片
神经网络就是许多神经元组合在一起的集合。例如上图,有三个输入单元(每一层的参数0不算),一个隐藏层,隐藏层含有三个隐藏节点,一个输出节点。第一层称为输入层,输入特征;最后一层称为输出层,输出神经网络的最终计算结果。隐藏层可能有多个,我们称为隐藏层,是因为我们在最终的输入输出中,看不到隐藏层的输入输出(不是x不是y)

  • 神经网络的计算过程:

机器学习(7):吴恩达笔记_第7张图片
(1)a表示激励,即一个神经元读入数据经过计算后,输出的值。a的上标j表示第j层,a的下标i表示第i个神经元
(2)神经网络每一层的参数通过矩阵表示,即参数矩阵表示从一层到另外一层的作用。如我们有三个输入单元,三个隐藏单元,那么参数矩阵就是(3+1)*3维的矩阵.这些参数又称为权重
(3)g激励函数,与逻辑回归函数完全相同,将参数范围固定在0~1间

如何高效计算,用向量化方法实现神经网络模型

前向传播算法:从输入层到最后一层计算出输出层的激励

机器学习(7):吴恩达笔记_第8张图片

  • 神经网络模型先在输入层输入特征,然后一层层的计算隐藏单元的激励值,最后得到假设函数的输出。每个神经元的激励值,都是上一层的激励值(第一层则是特征值)和参数两两相乘,然后外边套一个激励函数得到
  • 将过程向量化:

(1)将输入层用n*1矩阵表示(不要忘了恒为1的参数0),与输入层到隐藏层的参数矩阵相乘,外边套上激励函数得到隐藏层三个单元的激励值;
(2)然后加入参数0,将隐藏层用矩阵表示,与隐藏层到输出层的参数矩阵相乘,外边套上激励函数得到输出值

  • 对比逻辑回归:

我们可以看出,前向传播算法(从隐藏层到输出层)的过程和逻辑回归算法很相似。只是逻辑回归输入输出层的值是原始特征,而前向传播算法则是经过训练学习的更抽象的特征。这也进一步印证了神经网络将特征由原始向抽象、高级加工的过程
机器学习(7):吴恩达笔记_第9张图片

你可能感兴趣的:(机器学习)