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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 吴恩达深度学习课程学习笔记第三周 -> 正文阅读

[人工智能]吴恩达深度学习课程学习笔记第三周

2.7计算图:

一个神经网络的计算,都是按照前向或反向传播过程组织的。我们需要计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作。计算图解释了为什么我们用这种方式组织这些计算过程

如下图计算函数 J ,J是由三个变量 a , b , c? 组成的函数,这个函数是 3 ( a + b c ) 。计算这个函数实际上有三个不同的步骤,首先是计算 b 乘以 c ?,我们把它储存在变量 u中,因此 u = b c u ; 然后计算 v = a + u v ;最后输出 J = 3 v? ,这就是要计算的函数 J 。我们可以把这三步画成如下的计算图,我先在这画三个变量 a , b , c ,第一步就是计算 u = b c u ,我在这周围放个矩形框,它的输入是 b , c? ,接着第二步 v = a + u v,最后一步 J = 3 v? 。 举个例子: a = 5 , b = 3 , c = 2 , u = b c u 就是6, , v = a + u v 就是5+6=11。 J 是3倍的 ,因此。即 3 ? ( 5 + 3 ? 2 ) 。如果你把它算出来,实际上得到33就是 J的值。 当有不同的或者一些特殊的输出变量时,例如本例中的 J 和逻辑回归中你想优化的代价函数 J,因此计算图用来处理这些计算会很方便。从这个小例子中我们可以看出,通过一个从左向右的过程,你可以计算出的 J。为了计算导数,从右到左(红色箭头,和蓝色箭头的过程相反)的过程是用于计算导数最自然的方式。

Logistic 回归的梯度下降法:

假设样本只有两个特征 x1和x2,为了计算z输入参数?\omega 1\omega 2和b、特征值x1和x2。

逻辑回归的公式定义如下:

损失函数:?

代价函数:?

单个样本的代价函数:?

w和b的修正:

?

在这个公式的外侧画上长方形。然后计算:?也就是计算图的下一步,最后计算损失函数。有了计算图,就不需要再写出公式了。因此,为了使得逻辑回归中最小化代价函数只需要修改参数 w 和 b?的值。

通过微积分得到:

?求得:

计算 w 和 b 变化对代价函数 L ?的影响:

?dw_{1}=\frac{1}{m} \sum_{i}^{m}x_{1}^{\left ( i \right )}\left ( a^{\left ( i \right )} -y^{\left ( i \right )}\right ) ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

dw_{2}=\frac{1}{m} \sum_{i}^{m}x_{2}^{\left ( i \right )}\left ( a^{\left ( i \right )} -y^{\left ( i \right )}\right )?

使用dz=\left ( a-y \right )计算?dz,使用dw_{1}=x_{1}\cdot dz计算dw_{1}以及dw_{2}

w_{1}=w_{1}-\alpha dw_{1}w_{2}=w_{2}-\alpha dw_{2}b=b-\alpha db

?m 个样本的梯度下降:

初始化

代码流程:

J=0;dw1=0;dw2=0;db=0;
for i = 1 to m
? ? z(i) = wx(i)+b;
? ? a(i) = sigmoid(z(i));
? ? J += -[y(i)log(a(i))+(1-y(i))log(1-a(i));
? ? dz(i) = a(i)-y(i);
? ? dw1 += x1(i)dz(i);
? ? dw2 += x2(i)dz(i);
? ? db += dz(i);
J/= m;
dw1/= m;
dw2/= m;
db/= m;
w=w-alpha*dw
b=b-alpha*db

此方法在逻辑回归上需要编写两个for循环。第一个for循环是一个小循环遍历 m 个训练样本,第二个for循环是一个遍历所有特征的for循环。2个特征,n就等于2,如果有更多特征就要从dw_{1}一直算到dw_{n}

在代码中显式地使用for循环使算法很低效,同时在深度学习领域会有越来越大的数据集。所以能够应用算法且没有显式的for循环会是重要的,并且会适用于更大的数据集。向量化技术可以允许代码摆脱这些显式的for循环。

?向量化:

向量化是非常基础的去除代码中for循环的艺术,在深度学习安全领域、深度学习实践中

?所以如果使用非向量化方法去计算w^{T}x,代码如下:

x
z=0
for i in range(n_x)
? ? z+=w[i]*x[i]
z+=b
很慢

z=np.dot(w,x)+b这是向量化计算w^{T}x的方法,非常快。

?

?

?

?

?

?

?

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:22:26  更:2021-08-21 15:29:48 
 
开发: 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/27 18:31:40-

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