吴恩达深度学习:从logistic回归到深层神经网络

注意:这篇文章需要有logistic回归基础,可以参考我的这一篇文章
吴恩达机器学习:从单变量线性回归到Logistic回归

1. 神经网络概念

首先我们要了解神经网络的形式,之所以被叫做神经网络,是因为它的工作原理和人的大脑神经相似。
吴恩达深度学习:从logistic回归到深层神经网络_第1张图片
这是一个房屋预测的案例,我们输入房屋的大小,卧室的个数,邮政编码,财富,经过神经元的一系列计算,得到预测值price(房屋的价格)

2. 前向传播和反向传播

1.1. 前向传播

假设我们有个神经网络,有这样一个代价函数
J ( a , b , c ) = 3 ( a + b c ) = 3 ( 5 + 3 × 2 ) = 33 J(a,b,c) = 3(a + bc)=3(5+3×2)=33 J(a,b,c)=3(a+bc)=3(5+3×2)=33
设 : u = b c 设:u=bc :u=bc
v = a + u v=a+u v=a+u
J = 3 v J=3v J=3v
前向传播就是下面的蓝色的线,可以简单理解为输入数据 a , b , c a,b,c a,b,c求出输出值 J J J
吴恩达深度学习:从logistic回归到深层神经网络_第2张图片

1.2. 反向传播

反向传播其实就是一个反向求导的一个过程
吴恩达深度学习:从logistic回归到深层神经网络_第3张图片
吴恩达深度学习:从logistic回归到深层神经网络_第4张图片

1.3. logistic回归看成一个神经网络

吴恩达深度学习:从logistic回归到深层神经网络_第5张图片
将logistic回归看成是一个神经网络,我们要进行梯度下降
吴恩达深度学习:从logistic回归到深层神经网络_第6张图片通过反向传播,计算出 d w 1 dw_1 dw1 d w 2 dw_2 dw2,这样就可以进行一轮梯度下降了

小技巧:python的np.dot(θ,x)相当于 θ T x θ^Tx θTx

3. 浅层神经网络

3.1. 神经网络的表示

吴恩达深度学习:从logistic回归到深层神经网络_第7张图片
神经网络的每一个神经元都可以看成是由两部分组成,左半端是 z = w t + b z=w^t+b z=wt+b右半段是一个sigmod函数 a = g ( z ) a=g(z) a=g(z)

当神经元变多的时候,我们可以这样计算每一个神经元的 z j [ i ] z^{[i]}_j zj[i] i i i是层数, j j j是这一层的第几个,那么要是我们的神经网络只有一个隐藏层的话,可以这样表示
吴恩达深度学习:从logistic回归到深层神经网络_第8张图片
提醒: w j [ i ] T {w^{[i]}_j}^T wj[i]T其实就是一条向量,相当于向量 θ θ θ,我们把这几个式子用矩阵来表示
吴恩达深度学习:从logistic回归到深层神经网络_第9张图片
下面的计算更加清晰,神经网络要重复多次这样的计算来最小化目标函数
吴恩达深度学习:从logistic回归到深层神经网络_第10张图片

3.2. 向量化

对于一个有m条数据的数据集,我们要写以下语句
吴恩达深度学习:从logistic回归到深层神经网络_第11张图片
但是向量化后,我们可以避免写循环语句
我们把输入数据全部向量化,也就是矩阵 X X X就是输入的全部数据集,每一列是一个数据,横坐标是特征
吴恩达深度学习:从logistic回归到深层神经网络_第12张图片
z [ 1 ] z^{[1]} z[1]也进行向量化,也是每一列代表一个数据 [ 1 ] [1] [1]表示第一层隐藏层, ( 1 ) (1) (1)表示这是第1个的 z z z
吴恩达深度学习:从logistic回归到深层神经网络_第13张图片
再来把 A [ 1 ] A^{[1]} A[1]进行向量化,和z差不多
吴恩达深度学习:从logistic回归到深层神经网络_第14张图片
这样的话,我们可以实现下面这个图
吴恩达深度学习:从logistic回归到深层神经网络_第15张图片

3.3. 激活函数

神经网络为什么要用激活函数?
答:让模型能够更加复杂化,因为经过推算,要是没有用激活函数,神经网络其实一直都是在做一个线性回归

激活函数有很多种
吴恩达深度学习:从logistic回归到深层神经网络_第16张图片
我们常用的是ReLU(修正线性单元)

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