本文主要摘自吴恩达的深度学习课堂
https://mooc.study.163.com/smartSpec/detail/1001319001.htm
目录
1.2.1、Rectified Linear Unit (ReLU)
1.3.2、Stuctrured 和 unstuctrured data。
1.4.1、支持向量机(Support Vector Machine, SVM)
第一周、深度学习概论
1.1、欢迎来到深度学习工程师微专业
省略,以后用*来表示。
1.2、什么是神经网络?
1.2.1、Rectified Linear Unit (ReLU)
线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元, 是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。
https://www.cnblogs.com/xueqiuqiu/articles/7606293.html
https://blog.csdn.net/zxrttcsdn/article/details/79817322
1.2.2、房子价格预测神经网络
1.3 、用神经网络进行监督学习
1.3.1、监督学习常常包括了下面的几种神经网络。
- Stand NN(Neunal NetWork)——标志神经网络:价格预测、广告、用户信息
- CNN(Convolution Neunal NetWork)——卷积神经网络:图像处理
- RNN(Recurrent Neunal NetWork)——循环神经网络:语音、文本处理,适合处理一维序列号序化的数据。
- Hybrid Neunal NetWork——混合神经网络:无人驾驶、雷达信号。
1.3.2、Stuctrured 和 unstuctrured data。
- Stuctrured data结构化数据——数据库的数据。
- unstuctrured data结非构化数据——图片数据、声音数据、文本数据。
1.4、为什么深度学习会兴起?
1.4.1、支持向量机(Support Vector Machine, SVM)
支持向量机,适合小规模的数据量。
1.4.2、神经网络
神经网络,适合大规模的数据量。许多算法的创新,都是为了神经网络能快速够训练大量的数据,从而运行得更快或效果更好。
1.5、关于这门课
*
1.6、课程资源
第二周、神经网络基础
2.1、二分分类
2.1.1、二分分类的定义
输出结果有两种状态,不是0就是1。这就是二分分类算法。
2.1.2、二分分类的应用举例
如果输入一张car,其像素为64*64,那么经过计算机计算,就三个64*64字节的矩阵,分别对应红、绿、蓝三种颜色。每个矩阵的格子的数值,分别对应了该颜色的色度或亮度。分别对应了颜色二分分类若能识别这个Car,那么就输出1。
2.2、logistic回归
线性函数经过约束后,与Sigmoid函数的结构相同:
2.3、logistic回归损失函数
2.4、梯度下降法
这里的梯度下降法,主要用来更新2.3节中,目标函数J(w,b)的w、b参数,让目标函数J(w,b)随着w、b梯度发变化而逐步趋向最优值。
2.5、导数
*
2.6、更多的导数例子
*
2.7、计算图
也是讲导数,可以省略。
2.8、计算图的导数计算
*
2.9、logistic回归中的梯度下降法
2.10、m个样本的梯度下降
*
2.11、向量化(Vectorization)
2.11.1、向量化计算
矩阵计算为典型的例子。向量化计算可以实现并行的计算方式,比如计算机的SIMD方式。此外,GPU更擅长SIMD计算。c = np.dot(a,b)是Pathon语言的内积。
2.11.2、非向量化计算
for循环计算就是典型的例子,其会导致计算机运行效率变慢。
https://blog.csdn.net/qq_39575835/article/details/81907604
2.12、向量化的更多例子
2.13、向量化的logistic回归
2.14、向量化logistic回归的梯度输出
2.15、Python中的广播
Python中的广播计算,即矩阵运算。
2.16、关于Python/numpy向量的说明
没有看
第三周、浅层神经网络
3.1、神经网络预览
3.2、神经网络表示
3.3、计算神经网络的输出
3.4、多个例子中的向量化
3.5、向量化实现的解释
3.6、激活函数
- 激活函数用在隐藏层、输出单元。
- 在本节之前,常用Sigmoid作为激活函数。Sigmoid作为激活函数当然有它的价值。比如你希望输出{0,1}作为二元分类,Sigmoid作为其激活函数函数更好。
- Relu和tanh,常常作为隐藏层的激活函数。
3.7、为什么需要非线性激活函数?
- 如果你的隐藏都用线性函数作为激活函数,输出结果还是线性的。那么,无论你的隐藏层有多少层,输出都是线性的。也就说,你还不如把所有的隐藏层都去掉呢,直接输出线程结果呢!!!!所以,我们不用线性激活函数。线性函数来预测房价,根本就不合适(请看我前面的图)场景的应用。这就是我们为什么不用线性激活函数作为激活函数的原因。
- 线性函数往往用在输出层作为激活函数。
- 线性函数函数可以用来做压缩方面的处理。
3.8、激活函数的导数
*
3.9、神经网络的梯度下降法
神经网络的反向转播,典型的代表,就是梯度下降法。
3.10、直观理解反向传播
*
3.11、随机初始化
随机初始化神经网络的权重,非常重要。单层隐藏层,常用的权重为0.01,比较好。多层隐藏层,这个参数可能更小。
第四周、深层神经网络
4.1、深层神经网络
4.2、深层网络的前向传播
4.3、核对矩阵的维数
*
4.4、为什么使用深层表示
神经网络用在人脸,每层的可以用来探测人脸的不同部位,最后逐步组合成一个人脸。
4.5、搭建深度神经网络块
4.6、前向和反向传播
*
4.7、参数VS超参数
参数:w、b
超参数(可以控制w、b的参数,叫做超参数):激活函数、衰减因子、隐层数、每个隐层的神经元数目n、循环的数量等等。
因为,当前的超参数的设定,还经验阶段,理论上尚缺完美的解释。所以,当我们要取得最优的超参数时,还需要不断地尝试、不断地计算或迭代,从而保证当前信息或数据的最新化。
4.8、这和大脑有什么关系?
第五周、【人工智能行业大师访谈】
5.1、吴恩达采访 Geoffrey Hinton
- Geoffrey Hinton是到目前为止,发明最多深度学习核心理论的人。被称为深度学习之父。
- 不懂的人要多读论文。有创意的人要少读论文,然后开始自己的研究。
- 找一个导师,然后找一个自己和导师都敢兴趣的研究点,然后才能从导师那里得到很多的建议。
- 智力的本质是推理。AI的演进 = 符号化 + 推理(Geoffrey Hinton认为AI演进,不应单单用符号来表示)。
5.2. 吴恩达采访 Pieter Abbeel
- 监督学习可以提升效率、减少工作量。
- 现在是进入AI的时机
- AI课程:Andrew机器学习课程、Andrej Karpathy的深度学习课。
- 看了课程视频,要动手去做、去证明。可以用TensorFlow、Chainer、Theano、PyTorch等等开源库去学习。
- 深度增强学习已经用在机器人,但Pieter Abbeel表示安全性还没得到完全保证。
5.3. 吴恩达采访 Ian Goodfellow
- 支持向量机,训练数据越大,速度或性能不能得到显著的提高。
- 搭建了自己的一台深度学习机器。
- Ian Goodfellow发明“生成式对抗网络(GAN)”,可以用在半监督学习、可以生成其他模型的训练数据、甚至模拟科学实验。
- 受限玻尔兹曼机(英语:restricted Boltzmann machine, RBM)是一种可通过输入数据集学习概率分布的随机生成神经网络。RBM最初由发明者保罗·斯模棱斯基于1986年命名为簧风琴(Harmonium),但直到杰弗里·辛顿及其合作者在2000年代中叶发明快速学习算法后,受限玻兹曼机才变得知名。受限玻兹曼机在降维、分类、协同过滤、特征学习和主题建模中得到了应用。根据任务的不同,受限玻兹曼机可以使用监督学习或无监督学习的方法进行训练。
- GitHub、OpenAI