深度学习入门(未完待续)

深度学习入门(未完待续)


写给自己看的,也分享给大家,欢迎交流指正,大神轻喷
by xiaoy990 20190501
参考课程:吴恩达《深度学习》,马士兵老师神经网络公开课

1.神经网络基础

1.1 二元分类

  • 举个例子:希望算法输出标签0或者标签1来代表一张图上有猫或者没有猫
  • 在二元分类问题中我们的目标是学习到一个分类器
  • 介绍几个以后会用到的符号表示:
    • 单个样本由一对(x,y)来表示,x是一个n(x)维的特征向量,y是lable 取值为0或者1
    • 训练集包含m个训练样本,所以训练集表示为(x(m),y(m))表示第m个样本的输入输出。所以以后用m(train)和m(test)表示训练集和测试集的样本综述
    • 为了将样本写的更紧凑,定义矩阵X来表示训练集。X=[x(1),x(2),…,x(m)]。输出集Y=[y(1),y(2),…,y(m)]

1.2 逻辑回归

1.2.1 logistic回归
  • 这是一种针对二分类问题的算法,输出得到的是标签y,y在监督学习问题中全是0或者1
  • 给出x,想要得到y^hat(标签y的计算值)
    x和w都是n(x)维向量,w代表权重,b是一个实数,代表偏置
    如果使用线性回归 则 y^hat = w^t + b。但是y^hat 应该在(0,1)之间,所以对y^hat 应用sigma函数。σ(z)=1/(1+e^(-z))
1.2.1 logistic回归损失函数
  • loss function(损失函数) L(y^hat ,y)=-(y*logy^(hat) +(1-y)log(1-y^(hat)))。 损失函数实际上代表了测试集中一个计算结果和测试集中一个实际结果的误差。不用方差的原因是代价函数想要得到一个凸函数。
  • 为了优化模型中的w和b,需要定义一个cost function(代价函数) J(w,b),代价函数实际上对损失函数求了平均值
1.2.2 梯度下降法
  • 我们的目的实际上是寻找合适的w和b使得代价函数的值尽可能小(事实上也需要考虑过拟合问题)。这就是上面为什么使用特殊的损失函数的原因。这里的代价函数是一个凸函数,它具有唯一的最优解
  • w和b可以被初始化为任意的数,因为不论在哪里被初始化最终都会向着最低点接近。
    梯度下降事实上是一步一步向(全局)最低点靠近的过程
logistic回归中的梯度下降算法
  • 可以了解一下computation graph
  • 首先引入上面提到的一些函数
    z=w^t*x+b
    y^hat = a = σ(z)
    L(a,y) = -(ylog(a) +(1-y)log(1-a))
  • 框图
x1 w1 x2 w2 b -> z = w1x1 + w2x2 + b -> a = σ(z) -> L(a,y)
  • 正向传播计算单个样本的损失函数值,反向传播计算导数
    反向传播时首先要做的是 计算损失函数对于a的导数 使用da来表示dL(a,y)/da 后续类似处理,然后计算dz(计算结果:dz=a-y)——链式法则
    进而计算dw1 dw2 db
  • 然后更新w1 w2 b
    w1 := w1 - αdw1
    w2 和 b处理与w1相同,α代表学习率(即梯度下降的速率)
m个样本的梯度下降
  • 事实上是对单个样本的情况进行了取平均值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值