前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Neural Networks and Deep Learning》的理论知识点

《Neural Networks and Deep Learning》的理论知识点

作者头像
夜雨飘零
发布2020-05-06 11:19:01
3740
发布2020-05-06 11:19:01
举报
文章被收录于专栏:CSDN博客CSDN博客

原文博客:Doi技术团队 链接地址:https://blog.doiduoyi.com/authors/1584446358138 初心:记录优秀的Doi技术团队学习经历

目录

文章目录

深度学介绍

  1. AI比喻新电是是因为AI就像大约100年前的电力一样,正在改变多个行业,如: 汽车行业,农业和供应链。
  2. 深度学习最近起飞的原因是:硬件的开发,特别是GPU的计算,是我们获得更多的计算能力;深度学习已在一些重要的领域应用,如广告,语音识别和图像识别等等;目前数字化的时代使得我们拥有更多的数据。
  3. 关于迭代不同ML思想的图:
image
image
  • 这个思维图能够快速尝试想法,可以让深度学习工程师更快速地迭代自己的想法;
  • 可以加快团队迭代一个主意的时间;深度学习算法的新进展使得我们能更好地训练模型,即使不改变CPU或者GPU硬件。
  1. 寻找模型的特征是获取良好性能的关键,虽然经验可以提供帮助,但是需要多次迭代来建立一个良好的模型。
  2. ReLU激活函数的图表如下:
image
image
  1. 猫的识别是一个“非结构化”的数据例子;统计不同城市人口,人均GDP,经济增长的人口统计数据集是反映图像,音频或者文本数据集的“结构化”数据的一个例子。
  2. 为什么使用RNN(循环神经网络)作为机器翻译,这是因为RNN是一个可以被训练的监督学习的问题;RNN的输入和输出是一个序列,翻译就是从一种语言序列映射到另一种语言的序列。
  3. 这张手工绘制的图像,x轴是指数据量,y轴是指算法的性能
image
image
  • 同时在图像中可以看出增加训练数据是不会影响算法的性能的,引入更多的数据对模型总是有益的;
  • 有知道增加神经网络的大小通常不会影响算法的性能,大型的网络通常比小网络表现要好。

神经网络基础

  1. 神经元计算一个线性函数(z = Wx + b),后跟一个激活函数(sigmoid,tanh,ReLU,…)
  2. 使用numpy直接计算矩阵,这跟np.dot(a,b)不同,直接运算时按照广播的方式运算的,使员工np.dot(a,b)是按照平时矩阵的计算方式的。
  3. 假设img是一个(32,32,3)的数组,代表具有3个颜色通道红色,绿色和蓝色的3232的图像,重塑这个成为列向量应该为:x = img.reshape((3232*3,1))
  4. "Logistic Loss"函数应该是:
image
image
  1. 以下图像的计算过程
image
image

浅层神经网络

  1. a[12](2)a^{[12](2)}a[12](2)表示激活向量的第2层的第12个的训练样本。
  2. XXX每列都是一个训练样本的矩阵
  3. a4[2]a_4^{[2]}a4[2]​表示第2层的第4个的激活输出
  4. a[2]a^{[2]}a[2]表示第2层激活向量
  5. tanh激活函数通常比隐层单元的sigmoid激活函数效果要好,因为tanh的输出范围在(-1,1),其平均值更接近零,因此它能把数据更集中传到下一层,使学习变得更简单。
  6. Sigmoid函数的输出在0和1之间,这使得它是二分类的非常好的一个选择,当输出低于0.5时,可以归类为0;当输出高于0.5时,可以归类为1。使用tanh函数也可以,但是tanh的函数在-1和1之间,操作不太方便。
  7. Logistic回归因为没有隐层,如果将权重初始化为零,则Logistic回归中的第一个样本输出将是零,但是Logistic回归的导数取决于不是零,而是输入的x(因为没有隐层)。因此在第二次迭代中,如果x不是常量向量,则权重值遵循x的分布且彼此不同。
  8. 当tanh激活函数的输入远离零时,其梯度就非常接近于零,因为此时的tanh斜率接近零。
  9. 一个隐藏层的神经网络:
image
image

b[1]b^{[1]}b[1]的形状应该是(4,1);b[2]b^{[2]}b[2]的形状应该是(1,1);W[1]W^{[1]}W[1]的形状应该是(4,2);W[2]W^{[2]}W[2]形状应该是(1,4)

  1. 在lll层中,其中1<=l<=L1<=l<=L1<=l<=L,对lll层前向传播正确矢量化的公式是:
image
image

深度神经网络

  1. 在前向传播和反向传播中使用“cache”,是为了记录前向传播单元计算的值,然后传送给反向传播的单元,因为在使用链式法则计算导数时使用到。
  2. 属于超参数的是:迭代次数,学习率,神经网络LLL的层数,隐层的数量。
  3. 深层神经网络比浅层神经网络计算更加复杂的输入特征。
  4. 以下这个网络是4层的神经网络,有3个隐层
image
image

计算层数的方式:层数=隐层+1,输入层和输出层不属于隐层。

  1. 在前向传播中,前向函数需要知道使用的是什么激活函数(Sigmoid,tanh,ReLU,等等),因为在反向传播中需要知道是使用了什么激活函数才能正确计算导数。
  2. 使用浅层网络电路进行计算,需要一个大型的网络(我们通过网络的逻辑门数来测量大小),但是计算深层的电路的话,只需要一个指数规模比较小的网络。
  3. 以下是一个2层隐层的神经网络结构图: [外链图片转存失败(img-ggjHJvwx-1563949655959)(https://note.youdao.com/yws/api/personal/file/AE2D93A09BC54E4AB3A986056C2B4DDB?method=download&shareKey=2e6f6ed04ebd0c5c7e5e3fa21d71b3f2)] 它具有:(i)、W[1]W^{[1]}W[1]的形状是(4,4)(计算方式是:W[l]=(n[l],n[l−1])W^{[l]} = (n^{[l]},n^{[l-1]})W[l]=(n[l],n[l−1])),同样W[2]W^{[2]}W[2]的形状是(3,4),W[3]W^{[3]}W[3]的形状是(1,3);(ii)、b[1]b^{[1]}b[1]的形状是(4,1)(计算方式是:b[l]=(n[l],1)b^{[l]} = (n^{[l]},1)b[l]=(n[l],1)),同样b[2]b^{[2]}b[2]的形状是(3,1),b[3]b^{[3]}b[3]的形状是(1,1)
  4. 假设我们存储的值n[l]n^{[l]}n[l]在一个名为layers的数组中,如下所示:layer_dims = [nxn_xnx​,4,3,2,1]。因此,第1层有四个隐藏单元,第2层有三个隐藏单元,依此类推。则使用下面的for循环初始化模型的参数:
代码语言:javascript
复制
for(i in range(1, len(layer_dims))):
  parameter[‘W’ + str(i)] = np.random.randn(layers[i], layers[i-1])) * 0.01
  parameter[‘b’ + str(i)] = np.random.randn(layers[i], 1) * 0.01

该笔记是学习吴恩达老师的课程写的。初学者入门,如有理解有误的,欢迎批评指正!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
    • 文章目录
    • 深度学介绍
    • 神经网络基础
    • 浅层神经网络
    • 深度神经网络
    相关产品与服务
    语音识别
    腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档