美文网首页Data science想法
神经网络和深度学习(Neural Networks and De

神经网络和深度学习(Neural Networks and De

作者: Cache_wood | 来源:发表于2021-07-11 00:09 被阅读0次

    @[toc]

    1.1欢迎

    1.2 什么是神经网络

    最简单的神经网络
    size(x)\rightarrow \bigcirc(neuron)\rightarrow price(y)

    在这里插入图片描述
    input \quad layer\rightarrow hidden\quad layer \rightarrow output \quad layer

    1.3 用神经网络进行监督学习

    CNN:适合于图像数据

    RNN:适合(一维)时间序列数据

    structured data结构化数据与unstructured data非结构化数据

    1.4 为什么深度学习会兴起?

    data(big data)

    computer(CPU、GPU)

    algorithms

    好的算法的提升和计算机性能的改进都是为了计算速度的提升,使得程序可以在可接受的时间内完成。而大数据更大的作用在于得到结果的准确性的提升。

    activation function激活函数

    sigmoid函数:有部分区域梯度趋于0,参数变化会很慢,机器学习会很慢

    ReLU函数:rectified linear unit 修正线性单元,可以解决上述问题

    idea、code和experiment的循环

    2.1 二分分类

    logistic回归:二分分类算法

    图片的矩阵表示:RGB通道 3\times64\times64参数
    X.shape = (nx,m)\\ nx =3\times64\times64\\ nx是把一个矩阵matrix拉平flatten\\ X = (x^{(1)},x^{(2)},……x^{(m)})\\ Y = (y^{(1)},y^{(2)},……y^{(m)})\\ Y.shape = (1,m)
    forward propagation正向传播

    backward propagation反向传播

    2.2 logistic回归

    二分分类问题,所以希望输出值是介于0到1之间的值
    given\quad x, want \quad \hat y = P(y=1|x)\\ x\in R^{nx}\\ parameters:w\in R^{nx},b\in R\\ output:\hat y =\textcolor{blue} \sigma(w^Tx+b)\\ sigmoid函数:\sigma(z) = \frac{1}{1+e^{-z}}

    在这里插入图片描述

    2.3 logistic回归损失函数 logistic regression cost function

    loss function/error function:L(\hat y,y)=-[(ylog\hat y)+(1-y)log(1-\hat y)]

    损失函数应用于单个样本,成本函数是所有样本的总和。

    cost \quad function:J(w,b) = \frac{1}{m}\sum_{i=1}^{m}L(\hat y^{(i)},y^{(i)})

    表示的是1到m项损失函数的平均

    2.4 梯度下降法 gradient descent

    J(w):repeat \\ w:=w-\alpha\frac{dJ(w)}{dw}\\ J(w,b) repeat\\ w:=w-\alpha \frac{\partial J(w,b)}{\partial w}\\ b:=b-\alpha \frac{\partial J(w,b)}{\partial b}

    2.5 导数

    2.6 更多导数的例子

    2.7计算图 computation graph

    2.8 使用计算图求导

    链式求导法则

    2.9 logistic回归中的梯度下降法

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PmoTCKpQ-1625930799955)(../AppData/Roaming/Typora/typora-user-images/image-20210709112838403.png)]

    2.10 m个样本的梯度下降

    在这里插入图片描述

    2.11 向量化 vectorization

    2.12 向量化的更多例子

    python的numpy库

    np.dot() np.exp() np.log() np.zeros() np.abs() np.maximum()

    2.13 向量化logistic回归

    numpy的广播函数 broadcasting

    import numpy as np
    z = np.dot(w.T,X)+b  #向量加实数b,b会自动扩展成一个一维向量
    

    2.14 向量化logistic回归的梯度输出

    Z = w^TX+b=np.dot(w.T,X)+b\\ A = \sigma(Z)\\dZ = A-Y\\ dw = \frac{1}{m}XdZ^T\\ db = \frac{1}{m}np.sum(dZ)\\ w:=w-\alpha dw\\ b:=b-\alpha db

    2.15 python中的广播

    2.16 python numpy向量的说明

    a = np.random.randn(5)
    a
    array([-1.29892536,  0.63302139,  1.49281709,  0.90560309,  1.3649011 ])
    
    a,shape
    (5,)
    a.reshape(5,1)
    array([[-1.29892536],
           [ 0.63302139],
           [ 1.49281709],
           [ 0.90560309],
           [ 1.3649011 ]])
    
    b = np.random.randn(5,1)
    b
    array([[-0.50337928],
           [ 0.34076192],
           [ 0.16021539],
           [ 0.4894436 ],
           [ 0.4527971 ]])
    b.shape
    (5,1)
    

    2.17 Jupyter_ipython的快速指南

    shift+Enter 运行一段代码

    cell run cell把文本语言变正常

    2.18 (选修)logistic损失函数的解释

    if\quad y=1:p(y|x) = \hat y\\ if\quad y=0:p(y|x) = 1-\hat y\\ so \quad p(y|x) = \hat y^y(1-\hat y)^{1-y}\\ log p(y|x) = ylog\hat y+(1-y)log(1-\hat y) = -L(\hat y,y)

    最小化损失函数就是最大化logP(y|x)\quad(i.i.d)
    p(labels\quad in \quad target \quad set) = \prod_{i=1}^{m}p(y^{(i)}|x^{(i)})\\ log\quad p(labels\quad in \quad target \quad set) = log \quad\prod_{i=1}^{m}p(y^{(i)}|x^{(i)})\\=\sum_{i=1}^{m} log \quad p(y^{(i)}|x^{(i)})=- \sum_{i=1}^m L(\hat y^{(i)},y^{(i)})

    最大似然估计maximum likelihood function
    cost:J(w,b) = \frac{1}{m}\sum_{i=1}^m L(\hat y^{(i)},y^{(i)})

    3.1神经网络概览

    3.2 神经网络表示

    一般标准的话不把输入层input layer看做标准的层

    所以一个三层神经网络一般叫做标准的双层神经网络

    3.3 计算神经网络的输出

    [] : 方括号代表同一样本的不同层layer

    ():圆括号代表不同样本的同一层layer

    在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述

    3.4 多个样本的向量化

    3.5 向量化实现的解释

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ycUwobxo-1625930799961)(../AppData/Roaming/Typora/typora-user-images/image-20210709225154841.png)]

    3.6激活函数

    tanh激活函数几乎总比sigma函数表现更好,使得数据的平均值接近0,有标准化的效果。

    但是输出层要求值为0或1,所以输出层建议用sigma函数。

    选择激活函数的经验法则

    sigma函数:二元分类,输出值要求是0或者1(输出层)

    ReLU函数:其他单元都用

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3C8Xbi5-1625930799962)(../AppData/Roaming/Typora/typora-user-images/image-20210709230639393.png)]

    3.7 为什么需要激活函数?

    可以理解成激活函数实际上是把输出值控制在一定的范围内。

    3.8 激活函数的导数

    sigma函数
    g(z) = \sigma(z) = \frac{1}{1+e^{-z}}\\ a = g(z)\\ g'(z) = \frac{1}{1+e^{-z}}(1-\frac{1}{1+e^{-z}})=a(1-a)\\
    tanh函数
    g(z) = tanh(z) = \frac{e^x-e^{-x}}{e^x+e^{-x}}\\ g'(z) = 1-( \frac{e^x-e^{-x}}{e^x+e^{-x}})^2 = 1-a^2\\
    ReLU函数

    g'(z) = \left\{ \begin{aligned} 0, & z<0\\ 1, &z>0\\ undefined,&z = 0 \end{aligned} \right.

    3.9 神经网络的梯度下降法

    3.10 直观理解反向传播

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ObeON5ay-1625930799963)(../AppData/Roaming/Typora/typora-user-images/image-20210710153249133.png)]

    3.11 随机初始化

    W初始化不能选择0,b可以

    初始化选择的参数应该小一些,不然会减慢学习速度。

    4.1 深层神经网络

    4.2 前向和反向传播

    4.3 深层网络中的前向传播

    4.4 核对矩阵的维数

    样本中各个量的维度
    W^{[l]}:(n^{[l]},n^{[l-1]})\\ b^{[l]}:(n^{[l]},1)\\ dW^{[l]}:(n^{[l]},n^{[l-1]})\\ db^{[l]}:(n^{[l]},1)

    z^{[0]} = \quad w^{[0]}\quad \quad x\quad+b^{[0]}\\ (n^{[1]},1) (n^{[1]},n^{[0]})(n^{[0]},1) (n^{[1]},1)\\ Z^{[0]} = \quad W^{[0]}\quad X+\quad b\\ (n^{[1]},m) (n^{[1]},n^{[0]})(n^{[0]},m) (n^{[1]},m)\\ dZ^{[l]},dA^{[l]}:(n^{[l]},m)

    4.5 为什么使用深层表示

    4.6 搭建深层网络神经块

    4.7 参数VS超参数

    W、b:参数

    影响W、b的参数叫做超参数

    4.8 这和大脑有什么关系?

    相关文章

      网友评论

        本文标题:神经网络和深度学习(Neural Networks and De

        本文链接:https://www.haomeiwen.com/subject/ljghpltx.html