IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【吴恩达Deep Learning】初学者学习记录2 -> 正文阅读

[人工智能]【吴恩达Deep Learning】初学者学习记录2

目录

1.神经网络

1)神经网络的概述

2)神经网络的本质?

3)向量化的解释

?2.激活函数

1)sigmoid函数和tanh函数

2)ReLU函数(修正线性单元)和Leaky ReLU函数

3)神经网络的梯度下降法计算

3.代码中的前后向传播


1.神经网络

1)神经网络的概述

显而易见 ,神经网络分为三层。输入层,输入特征X(也可以用a^{[0]}表示,能向下传递激活值a^{[1]},它是一个四维向量,python中表示为4*1的矩阵)。中间为隐藏层,“隐藏”就是输入到输出中的值,我们在训练中是看不见啊的。最后一层只带有一个节点,这个就是输出层,它负责输出并预测y帽的值(隐藏层维度举例(4,3)前面一个数表示隐藏层节点4,后面的数表示输入层特征3;输出层也有相关的向量维度(1,4)前者为输出层的节点数1,后者为隐藏层的节点数4)。

一般符号的约定是输入层不看作一个标准的层,只记隐藏层和输出层,因此上图的也称之为双层神经网络,第一层也指的是第一层的隐藏层。所以{\color{DarkOrange} }{\color{DarkOrange} a^{[0]}}的右上角含义为第0层,即输入层。

2)神经网络的本质?

这个图代表了回归计算的两个步骤,而神经网络的本质就是重复这些步骤很多次,所以神经网络的本质是为函数。下面附带如何在python代码中实现定义sigmoid函数:

def sigmoid(z):
    """
    参数:
        z  - 任何大小的标量或numpy数组。

    返回:
        s  -  sigmoid(z)
    """
    s = 1 / (1 + np.exp(-z))
    return s

3)向量化的解释

?图中右侧上部为单个样本实现向量化(实现正向传播)的四个公式,需从1到m遍历,下部为多个样本向量化实现的公式(在符号表示中,大写的为多样本的符号,小写为单样本符号)。a^{[1]}=z^{[1]}=w^{[1]}x+b^{[1]}推导a^{[2]}=w'x+ba^{[2]}=w^{[2]}(w^{[1]}x+b^{[1]})+b^{[2]}=(w^{[2]}w^{[1]})x+(w^{[2]}b^{[1]}+b^{[2]})=w'x+b'

此图为Z^{[1]}的吴恩达老师的推导过程,上部的b^{[1]}划掉以0作为特殊值方便理解。Z^{[1]}等号前中的z^{[1](1)}一系列值还需要加上b^{[1]}才是真正的值。

?2.激活函数

1)sigmoid函数和tanh函数

sigmoid函数的图像在上面,tanh是下面的。但用老师的话tanh函数几乎在所有场合都比sigmoid函数更优越,例外是输出层(使得y帽的值介于0到1之间不是-1到1)和在制作二分类的时候?。

sigmoid函数的导数可以简化为:a'=a(1-a)? ?tanh函数导数:a'=1-a^{2}

两个函数的缺点:当z值很大或很小的时候,梯度值会接近于零(ReLU函数能很好解决这个问题)。

2)ReLU函数(修正线性单元)和Leaky ReLU函数

ReLU函数的公式为a=max(0,z) 在代码运行中z几乎很难达到0。当不确定隐层用什么函数是可以选择ReLU函数。

Leaky ReLU函数 :a=max(0.01z,z)

ReLU函数和Leaky ReLU函数可以使,在z=0处,令g'(z)为0.01或1(可以自己设置)

总而言之,当不知道用什么函数的时候,可以都试一试看哪个好。g(z)=z可以用于房地产价值预测

3.神经网络的梯度下降法计算

?

a = np.random.randn(4,3)
b = np.sum(a, axis = 1,keepdims = True) 
b.shape = (4,1)

其中keepdims = True 的目的是使得b.shape =(4,1)而不是(4,)?

3.代码中的前后向传播

根据课堂中所教内容可以在代码中实现以下代码

前向传播:

def linear_forward(X,parameters):
    """
    向前传播 + 激活
    :param X:
    :param parameters:
    :return A2:
    :return A_cache: 缓存
    """
    # 数据接收
    W1 = parameters["W1"] 
    b1 = parameters["b1"]
    W2 = parameters["W2"]
    b2 = parameters["b2"]
    # 向前传播并激活
    Z1 = np.dot(W1, X) + b1
    A1 = np.tanh(Z1)
    Z2 = np.dot(W2, A1) + b2
    A2 = sigmoid(Z2)

    A_cache = {"A1": A1,
               "A2": A2}

    return A2, A_cache

反向传播:

def linear_backward(parameters,A_cache,X,Y):
    """
    向后传播,计算梯度
    :param parameters:
    :param A_cache:
    :param X:
    :param Y:
    :return grads: 字典 - dW1,db1,dW2,db2
    """
    m = X.shape[1]

    W1 = parameters["W1"]
    W2 = parameters["W2"]

    A1 = A_cache["A1"]
    A2 = A_cache["A2"]

    dZ2 = A2 - Y
    dW2 = (1 / m) * np.dot(dZ2, A1.T)
    db2 = (1 / m) * np.sum(dZ2, axis=1, keepdims=True)
    dZ1 = np.multiply(np.dot(W2.T, dZ2), 1 - np.power(A1, 2))
    dW1 = (1 / m) * np.dot(dZ1, X.T)
    db1 = (1 / m) * np.sum(dZ1, axis=1, keepdims=True)

    grads = {"dW1": dW1,
             "db1": db1,
             "dW2": dW2,
             "db2": db2}

    return grads

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-07 13:43:59  更:2022-02-07 13:46:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:35:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码