【学习记录】《DeepLearning.ai》深度学习第二课(2):神经网络的编程基础

简介: 深度学习第二课第二部分笔记

深度学习第二课(2):神经网络的编程基础

2.11 向量化(Vectorization)

逻辑回归中计算$z=w^Tx+b$​,其中$w,x$​都是列向量,下面是两种方法的对比:

1.循环

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

2.向量化

z=np.dot(w,x)+b

很明显向量化方法较快

举例说明:

import numpy as np #导入numpy库
a=np.array([1,2,3,4])#创建数据a
print(a)
#输出[1,2,3,4]

import time #导入时间库
a=np.random.rand(1000000)
b=np.random.rand(1000000)
tic=time.time()#输出当前时间
#向量化版本
c=np.dot(a,b)
toc=time.time()
print(f"Vectorized version:{str(1000*(toc-tic))}ms")#输出向量化版本的时间
#非向量化版本
c=0
tic=time.time()
for i in range(1000000):
    c+=a[i]*b[i]
toc=time.time()
print(c)
print(f"For loop:{str(1000*(toc-tic))}ms")

输出如下:

两个版本对比

可以看到,向量化版本能快速得到结果。

大规模的机器学习一般都使用GPU或者图像处理单元进行实现,CPU和GPU都有并行化指令,他们有时候叫做SIMD指令,通常GPU更擅长SIMD计算。如果我们应用类似np.dot这样的函数,Pytho会自动进行并行化处理。


2.12 向量化的更多例子

numpy库中有很多向量函数,如:

import numpy as np
np.exp(v)#计算指数函数
np.log()#计算对数函数 
np.abs()#绝对值函数
np.maximum()#计算元素y中的最大值
v**2#算平方
1/v#求倒数
#通常numpy中有类似的内置函数可以避免使用循环

2.13 向量化逻辑回归

向量化逻辑回归

先计算$Z$,如上图所示:

z=np.dot(w.T,x)+b#注意z的维度:1*m 参数b使用了python广播

再计算A,也就是由a组成的矩阵,也就是我们之前提到的$\widehat{y}$:

通过编写sigmoid函数

#通过Python定义sigmoid函数
def sigmoid(z):
    return 1 / (1 + np.exp(-z))

然后直接调用:

a=sigmoid(z)#和z的维度保持一致

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

梯度图1

梯度图2

向量化方法如下:

向量化梯度输出

前五个公式完成了前向和后向传播,后面两个公式用来更新参数(具体参考上面图片的内容)


2.15 python中的广播

cal=A.sum(axis=0)#在A数组的竖直方向上求和,axis=1表示在水平方向上求和
percentage=100*A/cal.reshape(1,4)#reshape(1,4)将其变为1*4矩阵,这块有点多余了,本身就是1*4

reshape是常用的时间操作,时间复杂度是O(1),

python广播

如上图所示,如果两个矩阵有一个维度相同,而其中一个矩阵的另外一个维度为1,则可以将维度为1的矩阵沿着1维度的方向上进行广播。


2.16 python_numpy向量的说明

广播实例

注意断言函数的用法:assert(a.shape==(5,1))

上图总结:在实际使用时候,尽量定义为一个列向量,这样会减少bug,如果不小心定义为一个秩为1的向量,可以使用a=a.reshape((5,1))来转换。断言函数用来检查某些变量或数组是否是我们预期的,若不是则会报错,在实际程序出现bug时候调试非常有用。


2.17 Jupyter/iPython Notebooks快速入门

$shift+enter$执行块代码


2.18 logistic损失函数的解释

PASS

相关文章
|
1月前
|
机器学习/深度学习 人工智能 安全
探索AI的未来:从机器学习到深度学习
【10月更文挑战第28天】本文将带你走进AI的世界,从机器学习的基本概念到深度学习的复杂应用,我们将一起探索AI的未来。你将了解到AI如何改变我们的生活,以及它在未来可能带来的影响。无论你是AI专家还是初学者,这篇文章都将为你提供新的视角和思考。让我们一起探索AI的奥秘,看看它将如何塑造我们的未来。
74 3
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
1月前
|
机器学习/深度学习 数据采集 人工智能
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】随着人工智能的发展,深度学习技术正逐步应用于教育领域,特别是个性化学习系统中。通过分析学生的学习数据,深度学习模型能够精准预测学生的学习表现,并为其推荐合适的学习资源和规划学习路径,从而提供更加高效、有趣和个性化的学习体验。
134 9
|
27天前
|
人工智能 自然语言处理 前端开发
VideoChat:高效学习新神器!一键解读音视频内容,结合 AI 生成总结内容、思维导图和智能问答
VideoChat 是一款智能音视频内容解读助手,支持批量上传音视频文件并自动转录为文字。通过 AI 技术,它能快速生成内容总结、详细解读和思维导图,并提供智能对话功能,帮助用户更高效地理解和分析音视频内容。
101 6
VideoChat:高效学习新神器!一键解读音视频内容,结合 AI 生成总结内容、思维导图和智能问答
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
揭秘AI:深度学习的奥秘与实践
本文将深入浅出地探讨人工智能中的一个重要分支——深度学习。我们将从基础概念出发,逐步揭示深度学习的原理和工作机制。通过生动的比喻和实际代码示例,本文旨在帮助初学者理解并应用深度学习技术,开启AI之旅。
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
AI驱动的个性化学习路径优化
在当前教育领域,个性化学习正逐渐成为一种趋势。本文探讨了如何利用人工智能技术来优化个性化学习路径,提高学习效率和质量。通过分析学生的学习行为、偏好和表现,AI可以动态调整学习内容和难度,实现真正的因材施教。文章还讨论了实施这种技术所面临的挑战和潜在的解决方案。
62 7
|
1月前
|
人工智能 自然语言处理 搜索推荐
AI辅助教育:个性化学习的新纪元
【10月更文挑战第31天】随着人工智能(AI)技术的发展,教育领域迎来了一场前所未有的变革。AI辅助教育通过智能推荐、语音助手、评估系统和虚拟助教等应用,实现了个性化学习,提升了教学效率。本文探讨了AI如何重塑教育模式,以及个性化学习在新时代教育中的重要性。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI驱动的个性化学习平台构建###
【10月更文挑战第29天】 本文将深入探讨如何利用人工智能技术,特别是机器学习与大数据分析,构建一个能够提供高度个性化学习体验的在线平台。我们将分析当前在线教育的挑战,提出通过智能算法实现内容定制、学习路径优化及实时反馈机制的技术方案,以期为不同背景和需求的学习者创造更加高效、互动的学习环境。 ###
66 3
|
1月前
|
机器学习/深度学习 人工智能 算法
AI在医疗:深度学习在医学影像诊断中的最新进展
【10月更文挑战第27天】本文探讨了深度学习技术在医学影像诊断中的最新进展,特别是在卷积神经网络(CNN)的应用。文章介绍了深度学习在识别肿瘤、病变等方面的优势,并提供了一个简单的Python代码示例,展示如何准备医学影像数据集。同时强调了数据隐私和伦理的重要性,展望了AI在医疗领域的未来前景。
79 2
|
1月前
|
安全 搜索推荐 机器学习/深度学习
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】在人工智能的推动下,个性化学习系统逐渐成为教育领域的重要趋势。深度学习作为AI的核心技术,在构建个性化学习系统中发挥关键作用。本文探讨了深度学习在个性化推荐系统、智能辅导系统和学习行为分析中的应用,并提供了代码示例,展示了如何使用Keras构建模型预测学生对课程的兴趣。尽管面临数据隐私和模型可解释性等挑战,深度学习仍有望为教育带来更个性化和高效的学习体验。
143 0
下一篇
DataWorks