AI小白的第六天:必要的数学知识(一)

在学习的过程中,不管是上代码还是理论学习,其中都掺杂了一些数学知识。俗话说“磨刀不误砍柴工”,而我已经“误了砍柴功”了,现在变成了“亡羊补牢,为时不晚”。

线性代数

线性代数是数学的一个分支,主要研究向量、向量空间(线性空间)、线性变换和矩阵等概念及其相互关系。

标量 scalar

标量就是一个数字,只有大小,没有方向。标量通常用小写字母来表示。
例如,莱恩大招释放时,只对地方单位造成固定伤害。

向量vector

当一组标量排成一行或者一列时就变成了向量,这些标量值被称为向量的元素。向量中的元素在一个轴上是有序排列的,这个轴可以是行也可以是列。向量通常用粗体小写字母来表示,元素通过带角标的斜体字母来表示。
比如风行者的强力击造成的伤害是用向量 s表示,第一个元素 s 1 s_{1} s1是穿过第一个敌方单位时的伤害量,第二个元素 s 2 s_{2} s2是穿过第二个敌方单位时的伤害量,以此类推。如果强力击对 n n n个单位造成了伤害,就可以写成 s = [ s 1 , s 2 , . . . , s n ] s=[s_{1},s_{2},...,s_{n}] s=[s1,s2,...,sn],或者写成列的形式,markdown实在没找到标准写法就不写了。

向量有两个主要特征:大小和方向。你知道,强力后击中的单位所受到的伤害,总是比前一个单位所受到的伤害少。这就是强力击的特点。而美杜莎的秘术异蛇恰恰相反。所以通过标量和向量,你可以简单的表示dota中英雄的技能伤害特点。

向量与空间: 我们通常会将向量看作空间中的点或者从空间原点指向该点的箭头,而一组向量可以生成一个向量空间。向量空间中的每一个点都可以表示为这组向量的线性组合。这种方式就可以将抽象的概念以具体的几何图形来展示。

向量维度

如果你有两个向量,它组成一个面,而这两个向量的夹角有恰巧是90°,那么这就是平面直角坐标系;如果是3个向量,每一个向量与另外两个向量形成的面相互垂直,那就形成了“笛卡尔直角坐标系”,如果不垂直,就形成了笛卡尔斜角坐标系。在坐标系中的点,都可以用不同向量的大小组合来表示。因此向量大于3个的时候,你没法用图像来想象,但是你可以用不同向量的大小组合来定义。
反过来想,你把坐标系中的一个点(向量a),映射到其他n个向量组成的坐标系中,那这个n就是向量a在这个坐标系中的维度。

向量模长 magnitude

模长表示向量在空间中的长度或者大小,主要用于物理和几何领域。n维向量的模长公式为 ∣ a ∣ = a 1 2 + a 2 2 + . . . + a n 2 |a|=\sqrt[]{a_{1}^2+a^2_{2}+...+a^2_{n}} a=a12+a22+...+an2

范数 norm

与模长类似的一个术语,概念相同,但咱们机器学习主要用的就是范数。它与模长的公式不同
∣ x ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p |x|_{p}=(\sum_{i}|x_{i}|^p)^\frac{1}{p} xp=(ixip)p1

  • p=1 时,称之为L1范数,又叫曼哈顿范数。求的就是在网格化城市中,从1个点到另一个点的最短距离。
  • p=2时,称之为L2范数,又称之为欧几里得范数,它与模长的计算公式相同。
  • L2范数将欧几里得距离的概念推广到高维空间,适用于任意维度的向量空间

欧几里得几何是以古希腊数学家欧几里得命名的几何学体系,主要研究平面和空间中的点、线、角、面等几何对象及其相互关系。

单位向量

当向量的模长等于1时,这样的向量就称为单位向量。因为单位向量的大小总是1,所以可以认为它表示的是向量在空间中的方向。对于二维向量 a = ( a 1 , a 2 ) a=(a_{1},a_{2}) a=(a1,a2),其模长为 ∣ a ∣ = a 1 2 + a 2 2 |a| =\sqrt[]{a_{1}^2+a^2_{2}} a=a12+a22 。其单位向量应该是向量除以模长,单位向量则为 ( a 1 , a 2 ) a 1 2 + a 2 2 \frac{(a_{1},a_{2})}{\sqrt[]{a_{1}^2+a^2_{2}}} a12+a22 (a1,a2)

向量内积

又叫向量点积、向量点乘。
代数定义
是两个向量对应位置的元素相乘再相加。例如,有一张购物小票,有一列是购买商品的单价向量 a = ( a 1 , a 2 , . . . , a n ) a=(a_{1},a_{2},...,a_{n}) a=(a1,a2,...,an),有一列是购买商品的数量向量 b = ( b 1 , b 2 , . . . , b n ) b=(b_{1},b_{2},...,b_{n}) b=(b1,b2,...,bn),那么你这张小票的购物总金额就是a和b的内积。总价 c = ∑ i = 1 n a i ⋅ b i c=\sum_{i=1}^n a_{i} \cdot b_{i} c=i=1naibi。这是代数定义。
几何定义
向量a和向量b的点积,就是向量a在向量b方向的“有效贡献”(投影长度)乘以b向量的模长。
它的公式为 a ⋅ b = ∣ a ∣ cos ⁡ ( θ ) ∣ b ∣ a \cdot b =|a| \cos(\theta) |b| ab=acos(θ)b,写好看一点就是
a ⋅ b = ∣ a ∣ ⋅ ∣ b ∣ cos ⁡ ( θ ) a \cdot b =|a|\cdot |b| \cos(\theta) ab=abcos(θ)

内积还可以表示两个向量的线性相关度。将两个向量归一化得到单位向量,也就是|a|=|b|=1,内积就表示他们夹角的余弦值,即 cos ⁡ ( θ ) = a ⋅ b \cos(\theta)=a \cdot b cos(θ)=ab

这里着重研究了一下为什么它的几何意义是向量a在向量b方向的“有效贡献”(投影长度)乘以b向量的模长

向量外积

又叫向量叉积、叉乘。
c = a × b c=a \times b c=a×b
其结果不像内积的运算结果是一个标量,向量外积的训练结果是也给向量。
向量外积大小=大小等于两个向量所构成的平行四边形面积值。
∣ c ∣ = ∣ a ∣ ∣ b ∣ sin ⁡ ( θ ) |c|=|a| |b|\sin(\theta) c=a∣∣bsin(θ)
向量方向满足右手螺旋定则,从第一个向量向第二个向量,按照劣弧方向环握右手,拇指方向就是向量的方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Bash是什么?怎么使用?

李升伟 整理 什么是 Bash? Bash(Bourne Again Shell)是一种 命令行解释器(Shell),广泛用于 Unix 和 Linux 操作系统。它是 Bourne Shell(sh) 的增强版,提供了更多的功能…

Qt Creator入门

1.创建项目 选择创建项目-Application(Qt)-Qt Widgets Application-修改名称即可 默认创建有窗口类,myWidget,基类有三种选择:QWidget,QMainWindow,QDialog 注意: 名称和创建路径不能有中文、…

C语言经典代码练习题

1.输入一个4位数&#xff1a;输出这个输的个位 十位 百位 千位 #include <stdio.h> int main(int argc, char const *argv[]) {int a;printf("输入一个&#xff14;位数&#xff1a;");scanf("%d",&a);printf("个位&#xff1a;%d\n"…

cls(**dict(data, id=id))灵活地从一个字典生成实例,同时确保某些关键字段(如 id)被正确设置或覆盖

示例代码&#xff1a; classmethoddef from_mongo(cls: Type[T], data: dict) -> T:"""Convert "_id" (str object) into "id" (UUID object)."""if not data:raise ValueError("Data is empty.")id data.pop…

MyBatis XMLMapperBuilder 是如何将 SQL 语句解析成可执行的对象? 如何将结果映射规则解析成对应的处理器?

1. XMLMapperBuilder 如何将 SQL 语句解析成可执行对象 (MappedStatement): XMLMapperBuilder 解析 <select>, <insert>, <update>, <delete> 等 SQL 语句元素时&#xff0c;并不仅仅是简单地读取 SQL 文本&#xff0c;而是要将 SQL 语句和相关的配置…

咖啡点单小程序毕业设计(JAVA+SpringBoot+微信小程序+完整源码+论文)

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着社会的快速发展和…

003-掌控命令行-CLI11-C++开源库108杰

首选的现代C风格命令行参数解析器! &#xff08;本课程包含两段教学视频。&#xff09; 以文件对象监控程序为实例&#xff0c;五分钟实现从命令行读入多个监控目标路径&#xff1b;区分两大时机&#xff0c;学习 CLI11 构建与解析参数两大场景下的异常处理&#xff1b;区分三…

【leetcode hot 100 124】二叉树中的最大路径和

解法一&#xff1a;&#xff08;递归&#xff09;考虑实现一个简化的函数 maxGain(node)&#xff0c;该函数计算二叉树中的一个节点的最大贡献值&#xff0c;具体而言&#xff0c;就是在以该节点为根节点的子树中寻找以该节点为起点的一条路径&#xff0c;使得该路径上的节点值…

谱分析方法

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 ima 知识库 知识库广场搜索&#…

在图像/视频中裁剪出人脸区域

1. 在图像中裁剪人脸区域 import face_alignment import skimage.io import numpy from argparse import ArgumentParser from skimage import img_as_ubyte from skimage.transform import resize from tqdm import tqdm import os import numpy as np import warnings warni…

【软考-架构】11.3、设计模式-新

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 &#x1f4af;考试真题题外话 项目中的应用 在实际项目中&#xff0c;我应用过多种设计模式来解决不同…

使用Redis如何实现分布式锁?(超卖)

分布式锁概念 在多线程环境下&#xff0c;为了保证数据的线程安全&#xff0c;锁保证同一时刻&#xff0c;只有一个可以访问和更新共享数据。在单机系统我们可以使用 synchronized 锁、Lock 锁保证线程安全。 synchronized 锁是 Java 提供的一种内置锁&#xff0c;在单个 JVM …

Linux的Shell编程

一、什么是Shell 1、为什么要学习Shell Linux运维工程师在进行服务器集群管理时&#xff0c;需要编写Shell程序来进行服务器管理。 对于JavaEE和Python程序员来说&#xff0c;工作的需要。Boss会要求你编写一些Shell脚本进行程序或者是服务器的维护&#xff0c;比如编写一个…

使用React和google gemini api 打造一个google gemini应用

实现一个简单的聊天应用&#xff0c;用户可以通过输入问题或点击“Surprise me”按钮获取随机问题&#xff0c;并从后端API获取回答。 import { useState } from "react"; function App() {const [ value, setValue] useState(""); // 存储用户输入的问题…

深入探讨TK矩阵系统:创新的TikTok运营工具

TK矩阵的应用场景 TK矩阵系统适用于多个场景&#xff0c;尤其是在以下几个方面有显著优势&#xff1a; 批量账号管理与内容发布&#xff1a;对于需要管理多个TikTok账号的内容创作者或营销人员&#xff0c;TK矩阵提供了高效的账号管理工具&#xff0c;支持批量发布视频、评论、…

MTK Android12 应用在最顶端时,禁止拉起其他某个应用(一)

1、需求 近期&#xff0c;客户要求应用在最顶端时&#xff0c;禁止拉起其他某个应用2、解决方法 diff --git a/frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java b/frameworks/base/services/core/java/com/android/server/wm/ActivityStarte…

论文阅读笔记:Deep Unsupervised Learning using Nonequilibrium Thermodynamics

1、来源 论文连接1&#xff1a;http://ganguli-gang.stanford.edu/pdf/DeepUnsupDiffusion.pdf 论文连接2(带appendix)&#xff1a;https://arxiv.org/pdf/1503.03585v7 代码链接&#xff1a;https://github.com/Sohl-Dickstein/Diffusion-Probabilistic-Models 代码的环境配置…

7种数据结构

7种数据结构 顺序表sqlite.hseqlite.c 单链表linklist.clinklist.h 双链表doulinklist.cdoulinklist.h 链式栈linkstack.clinkstack.h 队列SeqQueue.cSeqQueue.h 树tree.c 哈希表hash.c 顺序表 sqlite.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ typedef struct person…

Linux 查看及测试网络命令

使用 ifconfig 命令查看网络接口地址 查看指定的网络接口信息 执行 ifconfig ens33 命令可以只查看网卡 ens33 的配置信息

ABAP语言的动态编程(4) - 综合案例:管理费用明细表

本篇来实现一个综合案例&#xff1a;管理费用明细表。报表在实际项目中&#xff0c;也有一定的参考意义&#xff0c;一方面展示类似的报表&#xff0c;比如管理费用、研发费用等费用的明细&#xff0c;使用业务比较习惯的展示格式&#xff1b;另一方面正好综合运用前面学习的动…