吴恩达《Machine Learning》精炼笔记 4:神经网络基础

2022-01-20 12:17:05 浏览数 (1)

作者 | Peter

编辑 | AI有道

今天带来第四周课程的笔记:神经网络基础。

  • 非线性假设
  • 神经元和大脑
  • 模型表示
  • 特征和直观理解
  • 多类分类问题

非线性假设Non-linear Hypotheses

线性回归和逻辑回归的缺点:特征太多的时候,计算负荷会非常大

假设我们希望训练一个模型来识别视觉对象(例如识别一张图片上是否是一辆汽车),我们怎样才能这么做呢?一种方法是我们利用很多汽车的图片和很多非汽车的图片,然后利用这些图片上一个个像素的值(饱和度或亮度)来作为特征。

假设采用的是50*50像素的小图片,将所有的像素视为特征,则有2500个特征。普通的逻辑回归模型不能处理的,需要使用神经网络

神经元和大脑

模型表示

模型表示1

每个神经元是可以被认为一个处理单元/神经核processing unit/Nucleus,主要包含:

  • 多个输入/树突input/Dendrite
  • 一个输出/轴突output/Axon

神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络

  1. 神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型
  2. 神经元称之为激活单元activation unit;在神经网络中,参数又可被成为权重(weight)
  3. 类似神经元的神经网络
神经网络

下图是逻辑回归模型作为自身学习模型的神经元示例

类似神经元的神经网络结构

  • x1,x2,x3是输入单元,将原始数据输入给它们
  • 几个比较基础的概念
    • 输入层:数据节点所在的层
    • 网络层:输出hihi连同它的网络层参数w,bw,b
    • 隐藏层:网络层中间的层
    • 输出层:最后一层
    • 偏置单元:bias unit,每层加上偏置单元

上面模型的激活单元和输出分别表示为:

三个激活单元的表达式:

输出的表达式为:

将特征矩阵的每行(一个训练实例)喂给了神经网络,最终需要将整个训练集都喂给神经网络。

这种从左到右计算的算法称之为:前向传播法FORWARD PROPAGATION

模型标记的记忆方法

其尺寸具体表示为:

  • 以第jj 层的激活单元数量为行数
  • 以第 j 1j 1层的激活单元数 1为列数的矩阵
模型表示2

FORWARD PROPAGATION相对于使用循环来编码,利用向量化的方法会使得计算更为简便,

假如现在有:

其中z满足:

也就是上面三个激活单元式子中的括号里面部分,那么有:

那么输出h可以表示为 :

特征和直观理解

神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)

实现逻辑”与AND”
实现逻辑"或OR"
实现逻辑“非not”

多类分类问题

当输出中不止有两种分类时,比如使用神经网络算法来识别路人、汽车、摩托车等。

  • 输入向量有3个维度,两个中间层
  • 输出层有4个神经元表示4种分类,也就是每一个数据在输出层都会出现[a,b,c,d]T[a,b,c,d]T,且[a,b,c,d][a,b,c,d]中仅有一个为1,表示当前类

TF中解决办法

上述多类分类问题和TF中手写数字问题类似,解决办法如下:

  1. 手写数字图片数据

总类别数是10,即输出节点总数值dout=10dout=10,假设某个样本的类别是i,即图片中的数字是ii,需要一个长度为10的向量yy,索引号为ii的位置设置为1,其余是0。

  • 0的one-hot编码是[1,0,0,0,….]
  • 1的one-hot编码是[0,1,0,0,….]
  • 其余类推

至此,第四周的课程笔记完毕!

0 人点赞