《吴恩达深度学习工程师系列课程之——神经网络和深度学习》学习笔记

吴恩达先生的机器学习工程师系列课程共分为五个自课程,包括:

  1. 神经网络和深度学习
  2. 改善深层神经网络:超参数调试、正则化以及优化
  3. 结构化机器学习项目
  4. 卷积神经网络
  5. 序列模型

如今,我刚学完第一个课程,神经网络这一部分,由于我数学功底较好,大一大二期间学过概率论与数理统计、线性代数、高等数学、复变函数与积分变换这些课程,入门还是比较容易。因为神经网络的基础就是矩阵计算以及相关函数。此外,我的MATLAB程序设计这门课还考了97分的成绩,MATLAB的基础知识很大一部分就是矩阵方面的函数计算等等,因此我学的比较容易。
但是,入门虽容易,更重要的是对神经网络相关知识的积累。因此我会将学习到的新名词和相关原理性的内容,做好记录,做好复习。
这节课程分为四周学习时间,第一周讲深度学习概论,第二周讲神经网络基础,第三周讲浅层神经网络,第四周讲深层神经网络,在课程的最后还有吴恩达先生对人工智能行业大师的访谈。

WEEK1 深度学习概论

  1. 深度学习
    指的是训练神经网络。
  2. 神经网络(房价预测模型聚类说明)
    Input:Size,Neuron(ReLU Function),Output:Price
    神经网络,类似映射函数,是一个基于监督学习,由大脑运转激发的强有力的学习算法。
  3. 监督学习应用:
Input(x) Output(y) Application Neural Network form
HOme feature Price Real Estate SNN标准神经网络
Ad, user info Click on ad?(0/1) Online Advertising SNN
Image Object(1,….1000) Photo tagging CNN卷积神经网络
Audio Text transcript Speech recognition RNN循环神经网络,时间序列模型
English Chinese Machine translation RNNs
Image,Radar info Position of others cars Autonomous driving GNN图网络,CHNN复杂高阶神经网络

4. 机器学习的数据类型:结构化数据和非结构化数据(Audio,Image,Text)
5. 深度学习兴起的原因:神经网络的规模和海量的数据(带标签)规模的增长,包括计算能力的提升。大多数算法创新的目的是为了让神经网络运行得更快。
6. 神经网络的一个巨大突破:激活函数从sigmoid函数转换到ReLU函数。sigmoid函数的缺点:当自变量很大时,斜率接近0,参数变化很小,因而学习过程变得很缓慢。而ReLU函数与此相反,可以使“梯度下降法”运行得更快。
7. 训练神经网络的过程
这里写图片描述

WEEK2 神经网络基础

  1. 二元分类:0和1,yes和no的问题,目标是训练处一个分类器,
  2. logistic回归,是一个在监督学习中用于输出标签y是0或1,即二元分类的学习算法。参数W,b.
  3. 定义一个成本函数,是为了训练logistic回归模型的参数w和b。
    使用梯度下降法,可能找不到全局最优值,而是多个局部最优值。
    用成本函数衡量y和yhat的接近程度,值越小,则误差越小。单个样本为L,整体样本为J。
    这里写图片描述
  4. 损失函数,是衡量单一训练样例的效果的函数。
  5. 梯度下降法,是为了更新产生W和b的一种函数。
  6. 导数、偏导的计算,以及链式法则这里不赘述。
  7. 计算图,分为正向传播和反向传播两个过程。以及向量化logistic回归,Python中的广播。

WEEK3 浅层神经网络基础

  1. 神经网络概览,首先先有一个直观的印象,如下图所示:
    这里写图片描述
  2. 神经网络层数的计算,不统计输入层,从隐藏层开始;隐藏层和输出层,是带有参数的;计算过程向量化可简化计算过程。
  3. 激活函数
    这里写图片描述
  4. 根据输出值得范围,选择激活函数不一样的激活函数,线性或者非线性。修正线性单元函数和有泄漏的修正线性单元函数如下图:
    这里写图片描述
  5. 梯度下降法更新参数如下:正向传播和反向传播
    这里写图片描述
  6. 训练神经网络时,需要随机初始化权重,初始化为0,则无效,处logistic回归可初始化为0。

WEEK4 深层神经网络基础

  1. 只是隐藏层的层数比浅层神经网络更多而已,重点在于各参数矩阵维度得计算。如下:
    这里写图片描述
  2. 使用深层网络的原因:在面对高维数据时,浅层神经网络需要每个隐藏层有多个隐藏的神经单元,计算时间更长,而深层神经网络每个隐藏层神经单元较少,层数较多,便于计算,节省时间。
  3. 深层神经网络的模块搭建和前向后向传播同浅层神经网络。
  4. 神经网络中的超参数是W,b,其余为参数。
  5. 应用深度学习是一个凭借经验的过程,有长有短。包括层数,参数的经验选择等。
  6. 深度学习应用:计算机视觉Vision、语音识别Speech、自然语言处理NLP、结构化数据应用(包括网页搜索Seed,产品推荐Recommendation、广告Ad)

人工智能行业大师访谈

大概看了一下,有几点感悟: 学习之余,要做一些项目,并把自己觉得合适的程序或算法长传到GitHub平台上,分享自己的学习和感悟。 其次,要讲机器学习的知识和某些领域结合起来,而不是单单纯粹学习机器学习。 最后,我的英文要好好学习,听力和阅读能力有待提升。