资源|用Python和NumPy学习《深度学习》中的线性代数基础

简介:

本文系巴黎高等师范学院在读博士 Hadrien Jean 的一篇基础学习博客,其目的是帮助初学者/高级初学者基于深度学习和机器学习来掌握线性代数的概念。掌握这些技能可以提高你理解和应用各种数据科学算法的能力。

对于初学者而言,《深度学习》(Ian Goodfellow、Yoshua Bengio、Aaron Courville)中的理论基础部分可能过于简略。作者按照这本书的第二章的线性代数内容来逐一介绍机器学习中的线性代数基础,读者可以在原书、中译版或中文笔记中查看每个小节的基础介绍,或直接参考该博客的推导部分。作者除了对部分概念进行详细推导之外,还添加了多个示例,并给出了 python/numpy 的实现代码。

  • 博客地址:https://hadrienj.github.io/posts/Deep-Learning-Book-Series-Introduction/

  • GitHub 地址:https://github.com/hadrienj/deepLearningBook-Notes

  • 《深度学习》中文版下载地址:https://github.com/exacity/deeplearningbook-chinese

  • 推荐一个学习交流的Q-un,719-139-688,喜欢学习python的朋友一起来。

3EVaosLyQ=SycF=9TORCfXYy2Qz2mgZl0oCx9vtL

《深度学习》第二章目录。

bkDuh8OUjNMAXGyhSa0kJ0TvRyskqw5olWF=EacH

miHNBqw5SB=dYX1k35qIEm8ztpJCClaxDQLfilxm

博客目录。

纯符号的公式推导可能令人觉得过于抽象,在博客中作者一般先列出具体案例,再给出符号表述。

例如,用带彩色的数字方阵来解释基本定义:

dXJMEuxacM8UuoCDETgoJ6hzlrs=wfyNceDldUq1

标量、向量、矩阵、张量的区别。

符号表述:

efSQaxYZQI2cp6IbNzgNubcAsyvqErjXeH4tJxcN

再给出 python/numpy 示例代码:

GuMQJxLtjOYYOlcgMuNYLtPFKdJ6ZBzfRjAEVNkY

用 numpy 构建数组。

对某些运算关系,作者给出了直观可理解的图示:

irlDaCTVXKkQLb9PUFRgrO7R0QQHB5CIktbMy90k

单位圆和由矩阵 A 变换后的椭圆,其中的向量是 A 的两个特征向量。

对于某些较为复杂的对象,作者还给出了函数可视化和交互界面。例如,在特征值分解的二次型变换问题中,二次型函数

RYaRYpRRM398HocII6C5y819InJuPVIicBwYCte9

其正定型、负定型、不定型的可视化:

EPNowm3TSYMc7Bqeijq1e0NxKyk8c5JO8cpdRY2H

正定型函数的交互界面:

zccA4nY2lMcq0mv1pYugKuPQZWtJpvUT1aYAYBXa

最后一个小节的 PCA(主成分分析)问题,是对之前介绍概念的综合运用,读者可以将其作为自主练习。

QJ1dT0cip60G3zgGvCwhnh4HNP7RwSuO5fHmMVIs

PCA 作为坐标系统变换问题。

0aiVIvb2hw81K3CxXK2SNtGNKplvv69KTwNBa3tp

协方差矩阵的特征向量。

PZWhh=dZIDcFJgmbHSguzxjG920Gx6WjUiAf2q=n

旋转数据以在一个轴上得到最大方差。

祝大家学习愉快!

文章转载:机器之心

目录
相关文章
|
21天前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
38 0
|
13天前
|
存储 缓存 C语言
|
12天前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
35 1
|
19天前
|
程序员 测试技术 开发工具
豆瓣评分7.9!世界级讲师耗时5年整理出的Python学习手册!
Python是一门流行的开源编程语言,广泛用于各个领域的独立程序与脚本化应用中。它不仅免费、可移植、功能强大,同时相对简单,而且使用起来充满乐趣。从软件业界的任意一角到来的程序员,都会发现Python着眼于开发者的生产效率以及软件质量,因此无论你的项目是大还是小,选择Python都将带来战略性的优势。 今天给小伙伴们分享的这份手册讲述了完整的Python语言,力争满足“语言”和“原理”两个方面的需求,并拥有足够的深度以便实用。废话不多说,下面展示给大家。
|
20天前
|
数据采集 数据可视化 Ruby
GitHub星标破万!Python学习教程(超详细),真的太强了!
Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。 Python 的设计哲学之一就是简单易学,体现在两个方面: 1. 语法简洁明了:相对 Ruby 和 Perl,它的语法特性不多不少,大多数都很简单直接,不玩儿玄学。 2. 切入点很多:Python 可以让你可以做很多事情,科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,总有一个是你感兴趣并且愿意投入时间的。
|
12天前
|
存储 C语言 Python
|
13天前
|
存储 并行计算 测试技术
NumPy 性能优化:提升 Python 数值计算的速度
【8月更文第30天】Python 是一种广泛使用的编程语言,在科学计算领域尤其受欢迎。然而,由于 Python 的动态类型和解释执行机制,其在处理大规模数值数据时可能会显得相对较慢。为了克服这一限制,NumPy(Numerical Python)库提供了高性能的多维数组对象以及一系列用于操作这些数组的函数。本文将探讨如何利用 NumPy 来提高 Python 中数值运算的效率。
15 0
|
14天前
|
Python
python在列表、元素、字典、集合和numpy的数组前加上星号 * 是什么含义,以及*args和**kwargs的使用
python在列表、元素、字典、集合和numpy的数组前加上星号 * 是什么含义,以及*args和**kwargs的使用
22 0
|
14天前
|
存储 JSON 测试技术
Python中最值得学习的第三方JSON库
Python中最值得学习的第三方JSON库
|
21天前
|
数据采集 数据挖掘 数据处理
解锁Python数据分析新技能!Pandas实战学习,让你的数据处理能力瞬间飙升!
【8月更文挑战第22天】Python中的Pandas库简化了数据分析工作。本文通过分析一个金融公司的投资数据文件“investment_data.csv”,介绍了Pandas的基础及高级功能。首先读取并检查数据,包括显示前几行、列名、形状和数据类型。随后进行数据清洗,移除缺失值与重复项。接着转换日期格式,并计算投资收益。最后通过分组计算平均投资回报率,展示了Pandas在数据处理与分析中的强大能力。
29 0