吴恩达给你的人工智能第一课 学习笔记一 神经网络基础

网易云课堂 课程链接: https://mooc.study.163.com/smartSpec/detail/1001319001.htm

课程架构

一.、神经网络和深度学习(https://mooc.study.163.com/course/2001281002#/info

1 深度学习概论

2 神经网络基础

3 浅层神经网络

4 深层神经网络

二. 改善深层神经网络:超参数调试、正则化以及优化

三、 结构化机器学习项目

四、卷积神经网络

五、序列模型

本文是博主对 神经网络基础 部分的学习笔记,记录了重要公式、推导过程,用于分享、便于复习。

2.1 Binary Classification(二分分类)

训练样本:(x, y), x \in R^{n_{x}}, y \in \left \{ 0, 1 \right \}

m个样本的训练集:\left \{ \left ( x^{\left ( 1 \right )}, y^{\left ( 1 \right )}\right ), \left ( x^{\left ( 2\right )}, y^{\left ( 2 \right )}\right ), ..., \left ( x^{\left ( m \right )}, y^{\left ( m\right )}\right ) \right \}

更紧凑的写法: X \in R^{n_{x}\times m} (nx行,m列的矩阵),y \in R^{1\times m}

2.2 Logistic Regression (logistic 回归)

输入一个特征向量x, \hat{y} 是对y的预测值:Given \ x, \ want \ \hat{y} = P \(y=1|x), \ x \in R^{n_{x}} , \ 0 \leqslant y \leqslant 1

    Parameters: w \in R^{n_{x}}, b \in R

    Output: \hat{y} = \sigma \(w^{T}x + b) = \sigma\(z) = \tfrac{1}{1+e^{-z}}, \ \sigma \ is \ Sigmoid \ function

设参数 \theta 由b和w组成,则公式简化: x_{0}=1, \ x\in R^{n_{x}+1}, \ \theta^T=[b,w_1,w_2,...w_n],\ \theta \in R^{1+n_x},\ \hat{y}=\sigma(\theta ^{T}x)

2.3 Logistic Regression cost function(为了训练w和b,需要定义一个成本函数/损失函数)

    Given \left \{ \left ( x^{\left ( 1 \right )}, y^{\left ( 1 \right )}\right ), \left ( x^{\left ( 2\right )}, y^{\left ( 2 \right )}\right ), ..., \left ( x^{\left ( m \right )}, y^{\left ( m\right )}\right ) \right \}, want\ \hat{y}^i\approx y^i .

对单个样本定义损失函数 Loss(error) function:

    L(\hat{y},y)=-(ylog\hat{y} + (1-y)log(1-\hat{y}))

对全体样本定义成本函数 Cost function (是个凸函数):

    J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\hat{y}^{(i)}, y^{(i)}) = \frac{1}{m}\sum_{i=1}^{m}[y^{(i)}log(\hat{y}^{(i)})+(1-y^{(i)})log(1- \hat{y}^{(i)})]

2.4 Gradient Descent(梯度下降法)

α 为自定义的学习率,对J求w的偏导, 重复 w := w - α dw, dw为导数/斜率,逐步向最优点。

2.5-2.8 讲了导数和导数计算的计算图,数学基础知识。

2.9 Logistic Regression Gradient descent(logistic回归中的梯度下降 —— 单个样本)

定义符号:z=w^Tx+b,\ \hat{y}=a=\sigma(z),\ L(a,y)=-(ylog(a) + (1-y)log(1-a))

计算图(反向计算导数):x_1,w_1,x_2,w_2,b \rightarrow z= w_1x_1 +w_2x_2+b\rightarrow a=\sigma(z)=\tfrac{1}{1+e^{-z}}\rightarrow L(a,y)

    da=\frac{dL(a,y)}{da} =-\frac{y}{a}+\frac{1-y}{1-a},  \frac{da}{dz}=\frac{e^{-z}}{(1+e^{-z})^2}=a(1-a)

    dz =\frac{dL}{dz}=\frac{dL(a,y)}{dz}=\frac{dL}{da}\frac{da}{dz}=(-\frac{y}{a}+\frac{1-y}{1-a})(a(1-a))=a-y

    dw_1=x_1\cdot dz, \ dw_2=x_2\cdot dz,\ db=dz

梯度下降:w_1 := w_1 - \alpha dw_1, \ w_2 := w_2 - \alpha dw_2, \ b :=b - \alpha db

2.10 Gradient descent on m examples (m个样本的梯度下降)

    J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(a^{(i)}, y^{(i)}) , a^{(i)}=\hat{y}^{(i)}=\sigma(z^{(i)})=\sigma(w^Tx^{(i)}+b)

    \tfrac{\partial}{\partial w_1}J(w,b)=\tfrac{1}{m}\sum_{i=1}^{m}\tfrac{\partial}{\partial w_1}L(a^{(i)},y^{(i)})=\tfrac{1}{m}\sum_{i=1}^{m}dw_{1}^{(i)}

算法:

Init \ J=0; \ dw_1=0; \ dw_2=0;\ db=0

For\ i=1 \ to \ m

    z^{(i)} = w^Tx^{(i)}+b;

    a^{(i)}=\sigma(z^{(i)});

    J_t=-[(y^{(i)}log(a^{(i)}) + (1-y^{(i)})log(1-a^{(i)}))];

    dz^{(i)} = a^{(i)}-y^{(i)};\ dw_1\ +=\ x_1^{(i)}dz^{(i)}; \ dw_2 \ +=\ x_2^{(i)}dz^{(i)}; \ db \ +=\ dz^{(i)};

J\ /=\ m; \ dw_1\ /= \ m; \ dw_2\ /= \ m; \ db\ /= \ m;

2.11 - 2.12  Vectorization (向量化,验证了python中向量运算比for循环快很多。)

2.13 - 2.14 Vectorizing Logistic Regression (向量化logistic回归,梯度下降的一次回归计算)

    Z=[z^{(1)}, z^{(2)}... z^{(m)}]=w^TX+[b,b,...b]=np.dot(w.T,x)+b; 

    A=[a^{(1)},a^{(2)}...a^{(m)}]=\sigma(Z);

    dZ=[a^{(1)}-y^{(1)},a^{(2)}-y^{(2)}...] = A-Y;

    db=\frac{1}{m}\sum_{i=1}^m dz^{(i)}=\frac{1}{m} np.sum(dZ);

    dw=\frac{1}{m}[x^{(1)}dz^{1}+...+x^{(m)}dz^{m}]=\frac{1}{m}XdZ^T;

    w:=w-\alpha dw; \ b := b-\alpha db;

说明:w是[n,1]数组,X是[n,m]数组,Z是[1,m]数组,b会从一个实数自动转化为[1,m]数组(python中的broadcasting)

2.15 Broadcasting in Python (Python中的广播)

一个 [m,n] 矩阵, +-*/ 一个 [1,n] 或者 [m,1] 矩阵,则自动扩充为 [m,n] 矩阵,逐个元素 +-*/。

2.16 A note on python/numpy vectors (关于 python/numpy 向量的说明)

不建议使用秩为1的数组

2.17 Jupyter/ lpython 笔记本的快速指南

2.18 logistic损失函数的解释

测试和作业

https://github.com/stormstone/deeplearning.ai

https://blog.csdn.net/u013733326/article/details/79827273

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值