概述
吴恩达老师的深度学习课程讲解详细,很适合入门,这份笔记是我学习该课程的总结
课程序列
- 神经网络与深度学习
- 改善深层神经网络:超参数调试,正则化以及优化
- 结构化机器学习项目
- 卷积神经网络
- 序列模型
神经网络与深度学习
第一周:深度学习概论
什么是神经网络
神经网络模型是受到人脑神经元工作原理启发而发展起来的一个强有力的机器学习算法。
例1:单层神经网络
给定一个数据集,该数据集是一些房子的面积与售价数据,要求建立一个模型,在给定房子面积的情况下,预测房子售价。
因为售价一定是非负的,而且通常二者呈现出线性关系,所以可以建立如下模型:
- x是输入,表示房子面积
- y是输出,表示房子售价
- ReLU 称为整流线性单元(
Rectified Linear Unit
)。其公式如下:
g ( x ) = m a x ( x 0 , x ) g(x)=max(x_0,x) g(x)=max(x0,x)
图像及代码:import matplotlib.pyplot as plt import numpy as np x0 = 1 x1 = np.array([-1, x0]) y1 = np.array([0, 0]) x2 = np.array([x0, 3]) y2 = x2 - x0 plt.figure() plt.plot(x1, y1, color='b') plt.plot(x2, y2, color='b') plt.xticks([x0], ['x0']) plt.yticks([]) plt.title('ReLU') plt.show()
- 模型拟合图像:
例2:多层神经网络
仍然是房价预测问题,我们多取几个影响因素作为特征,如size
, #bedrooms
, zip code
, wealth
- 输入有四个特征,构成
input layer
- 中间是三个神经元构成的第一个隐藏层和一个神经元构成的第二个隐藏层
- 最后是输出层,输出一个标量y 表示房价
- 每一个神经元接收上一层神经元的输出作为输入,经由激活函数作用后输出给下一层神经元
- 神经网络示意图:
深度学习爆发的原因
- 数据
社会的发展使得数据规模越来越大 - 算力
CPU/GPU的发展,尤其是GPU的并行计算能力使得计算机算力提升,可以训练深度神经网络模型 - 算法
一些算法的改进,如用ReLU
替换sigmoid
函数作为激活函数,避免梯度消失,使得梯度下降法能更好得找到最优参数
数据量越大,网络层数越多,效果越好
结构化数据与非结构化数据
-
结构化数据
-
非结构化数据