吴恩达机器学习系列11:神经网络

697 阅读2分钟

什么是神经网络(Neural Networks)呢?最开始科学家想用算法去模拟大脑达到人工智能。通过一系列的实验发现,大脑是通过神经元进行工作的,神经元之间通过电信号传递信息。于是他们就开始模拟神经元的工作过程,用算法去模拟神经元,这就形成了神经网络。神经网络可以用来学习复杂的非线性假设模型


如下图,蓝色圈模拟输入信息,黄色圈模拟神经元,假设函数 h_θ(x) 模拟输出信息,该函数就是我们之前学过的逻辑函数(Logistic Function),又称为 Sigmoid Function

未命名图片.png

那么现在一个神经元模拟好了,但是大脑肯定不是靠一个神经元工作的,现在开始模拟多个神经元的工作过程,如下图:

未命名图片.png

其中 Layer 1 层模拟输入信号,连线代表信号传递的方向。Layer 2 层表示隐藏层,这一层的输入输出都是不可见的,因此叫隐藏层,这一层通常会有很多层。 Layer 3 层为输出层,这一层会输出结果。按照从 Layer 1 层到 Layer 3 层这个方向传播叫做前向传播


通常会在每一层都加上一个偏置单元,如下图:

未命名图片.png


每一个神经元也就是假设函数 h_θ(x) 的构造如下:

未命名图片.png


未命名图片.png

表示第 j 层第 i 个神经元。

未命名图片.png

表示第 j 层神经元的参数矩阵。



在逻辑回归中,求最佳的参数可以用最小化代价函数来求,那么神经网络中也有参数,这些参数我们可以用同样的办法进行求解。先用我们最熟悉的逻辑回归代价函数来进行类比,逻辑回归的代价函数如下(其中红线部分为对参数进行正则化,θ_0 不需要正则化):

未命名图片.png

类似地,神经网络的代价函数如下:

未命名图片.png

其中:

L = 神经网络的层数;

S_l= l 层有多少个单元;

K = 输出单元的数目。


乍一眼看上去挺复杂,其实类比逻辑回归的代价函数来看,思想都是一样的。



ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。如果想要一起学习机器学习,可以关注微信公众号「SuperFeng」,期待与你的相遇。

请关注公众号.PNG