01神经网络基础

参考文章:https://zhuanlan.zhihu.com/p/29688927

整体处理流程:

  • 初始化参数w、b
  • 正向传播,计算损失函数J
  • 反向传播,计算dw、db
  • 梯度下降优化w、b
  • 预测y

1.二分类问题

这一节主要讲了定义数据格式

例:

对于下面这张图片,把它看作64*64个像素点,那么对每个像素点,又可以分为红黄蓝三色:

我们可以得出需要的

而y=1/0 可以代表图片中有无猫

2.logistic regression

上面的 Y^ = [0,1]表示的是一种概率。

z趋于无穷大,y趋于1;z变小,y变小

控制z,即要获得w、b的值

符号惯例:θo 代表 b;其他的代表w(不同神经)

3.logistic regression损失函数 Loss Function

一般经验来说是用平方错误衡量损失函数

但是,对于logistic regression 来说,一般不适用平方错误来作为Loss Function,这是因为上面的平方错误损失函数一般是非凸函数(non-convex),其在使用梯度下降算法的时候,容易得到局部最优解,而不是全局最优解。因此要选择凸函数。

4.梯度下降法

即以梯度下降的方式最小化代价函数cost function,最终得出w、b

每次迭代更新的修正表达式:

程序中分别用dw、db分别表示上面的偏导部分

5.逻辑回归中的梯度下降法

最后是通过梯度下降法中的修正表达式,得出w1、w2、b的值

6.m个样本的梯度下降

$$ \frac{\partial J}{\partial w} = \frac{1}{m}X(A-Y)^T\tag{7}$$

$$ \frac{\partial J}{\partial b} = \frac{1}{m} \sum_{i=1}^m (a^{(i)}-y^{(i)})\tag{8}$$

7.向量化

向量化就是把原始的for循环用矩阵来代替,使用numpy中的矩阵运算直接算出来。

单次迭代梯度下降算法流程:

Z = np.dot(w.T,X) + b
A = sigmoid(Z)
dZ = A-Y
dw = 1/m*np.dot(X,dZ.T)
db = 1/m*np.sum(dZ)

w = w - alpha*dw
b = b - alpha*db

8.关于numpy说明

当不确定矩阵的维度时,可以使用assert保证安全

assert(a.shape == (5,1))

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2470290795@qq.com

文章标题:01神经网络基础

文章字数:555

本文作者:runze

发布时间:2020-02-06, 10:43:34

最后更新:2020-02-23, 08:29:02

原始链接:http://yoursite.com/2020/02/06/%E5%90%B4%E6%81%A9%E8%BE%BE%20%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/01%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%92%8C%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/01%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E5%9F%BA%E7%A1%80/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏