积跬步至千里 || 数学基础、算法与编程
数学基础、算法与编程
1. BAP 技能
BAP 技能是指基础(Basic)、算法(Algorithm)和编程(Programm)三种基本技能的深度融合。理工科以数学、算法与编程为根基,这三个相辅相成又各有区别。
-
(1)数学以线性代数为主要研究工具和部分微积分技术为手段,来实现优化的目标。
-
(2)算法是应用数学和各类数据分析方法的灵魂,搭建了数学与应用领域的之间的桥梁,通常是一种真实解的逼近过程,其中主要涉及到矩阵的运算。
-
(3)编程泛指一切的计算机语言,通过循环迭代的方式编制出计算过程,如Matlab、Python、C++等,其中会有众多的库可以调用,如scikit-learn、CVX优化库、OpenCV图像处理库等等。
注意:算法和编程是两个严格区分的领域,算法需要深厚的数学功底,编程需要的是简单逻辑。
2. 传统算法
一类常见的算法是误差项 f ( x , w ) f(\boldsymbol{x},\boldsymbol{w}) f(x,w) 和复杂度测度项 g ( w ) g(\boldsymbol{w}) g(w) 的折衷,形如
min w f ( x , w ) + g ( w ) \min_{\boldsymbol{w}}\;f(\boldsymbol{x},\boldsymbol{w})+g(\boldsymbol{w}) wminf(x,w)+g(w)
常见的误差项,又称损失函数有以下几种(以回归问题为例)
- 平方损失
f ( x , w ) = ∥ X w − b ∥ 2 2 = ∑ i ( w i x i − b i ) 2 f(\boldsymbol{x},\boldsymbol{w})=\Vert X\boldsymbol{w}-\boldsymbol{b}\Vert_2^2=\sum_i(w_ix_i-b_i)^2 f(x,w)=∥Xw−b∥22=i∑(wixi−bi)2
- 绝对值损失
f ( x , w ) = ∥ X w − b ∥ 1 = ∑ i ∣ b i − w i x i ∣ f(\boldsymbol{x},\boldsymbol{w})=\Vert X\boldsymbol{w}-\boldsymbol{b}\Vert_1=\sum_i\Big\vert b_i-w_ix_i\Big\vert f(x,w)=∥Xw−b∥1=i∑ bi−wixi
- Hubber 损失
Huber = { 1 2 e i 2 ∣ e i ∣ < δ δ ∣ e i ∣ − 1 2 δ 2 Otherwise \text{Huber}=\left\{ \begin{array}{lcl} \frac{1}{2}e_i^2 & & \vert e_i\vert<\delta\\ \delta\vert e_i\vert -\frac{1}{2}\delta^2 & & \text{Otherwise} \end{array} \right. Huber={21ei2δ∣ei∣−21δ2∣ei∣<δOtherwise
# huber 损失
def huber(e, delta):loss = np.where(np.abs(e) < delta , 0.5*(e**2), delta*np.abs(e) - 0.5*(delta**2))return lossimport numpy as np
import matplotlib.pyplot as plte = np.arange(0,5,0.1)
z1 = 0.5*e**2
z2 = np.abs(e)
z3 = huber(e,1)
z4 = np.log(1+np.abs(e))plt.plot(e,z1,label='L2')
plt.plot(e,z2,label='L1')
plt.plot(e,z3,label='Huber')
plt.plot(e,z4,label='Hx')
plt.title('Loss Function')
plt.axis([0,5,0,12])
plt.legend()
plt.xlabel('e')
plt.ylabel('Eerror')
plt.show()

常见的目标函数
min w ∥ X w − b ∥ 2 2 + ∥ w ∥ 2 2 \min_{\boldsymbol{w}}\;\Vert X\boldsymbol{w}-\boldsymbol{b}\Vert_2^2+\Vert \boldsymbol{w}\Vert_2^2 wmin∥Xw−b∥22+∥w∥22
min w ∥ X w − b ∥ 2 2 + ∥ w ∥ 1 \min_{\boldsymbol{w}}\;\Vert X\boldsymbol{w}-\boldsymbol{b}\Vert_2^2+\Vert \boldsymbol{w}\Vert_1 wmin∥Xw−b∥22+∥w∥1
min w ∥ X w − b ∥ 1 \min_{\boldsymbol{w}}\;\Vert X\boldsymbol{w}-\boldsymbol{b}\Vert_1 wmin∥Xw−b∥1
min w ∥ X − U V T ∥ F 2 , s . t . U ≥ 0 , V ≥ 0 \min_{\boldsymbol{w}}\;\Vert X-UV^T\Vert_F^2,\;\;\;s.t.\;\;U\geq0,V\geq 0 wmin∥X−UVT∥F2,s.t.U≥0,V≥0
min w ∥ X − U V T ∥ 1 , s . t . U ≥ 0 , V ≥ 0 \min_{\boldsymbol{w}}\;\Vert X-UV^T\Vert_1,\;\;\;s.t.\;\;U\geq0,V\geq 0 wmin∥X−UVT∥1,s.t.U≥0,V≥0
min w ∥ X − U V T ∥ 2 , 1 , s . t . U ≥ 0 , V ≥ 0 \min_{\boldsymbol{w}}\;\Vert X-UV^T\Vert_{2,1},\;\;\;s.t.\;\;U\geq0,V\geq 0 wmin∥X−UVT∥2,1,s.t.U≥0,V≥0
min w ∥ X − U V T ∥ 2 , 1 + ∥ U ∥ 1 , s . t . U ≥ 0 , V ≥ 0 \min_{\boldsymbol{w}}\;\Vert X-UV^T\Vert_{2,1}+\Vert U\Vert_1,\;\;\;s.t.\;\;U\geq0,V\geq 0 wmin∥X−UVT∥2,1+∥U∥1,s.t.U≥0,V≥0
min w ∥ X − U V T ∥ 2 , 1 + ∥ U ∥ ∗ , s . t . U ≥ 0 , V ≥ 0 \min_{\boldsymbol{w}}\;\Vert X-UV^T\Vert_{2,1}+\Vert U\Vert_*,\;\;\;s.t.\;\;U\geq0,V\geq 0 wmin∥X−UVT∥2,1+∥U∥∗,s.t.U≥0,V≥0
可通过一些优化工具箱或者优化工具进行求解
3. 网络优化
通过神经网络或者深度学习进行优化
相关文章:
积跬步至千里 || 数学基础、算法与编程
数学基础、算法与编程 1. BAP 技能 BAP 技能是指基础(Basic)、算法(Algorithm)和编程(Programm)三种基本技能的深度融合。理工科以数学、算法与编程为根基,这三个相辅相成又各有区别。 (1)数学以线性代数为主要研究工具和部分微积分技术为手…...
Java单元测试 JUnit 5 快速上手
一、背景 什么是 JUnit 5?首先就得聊下 Java 单元测试框架 JUnit,它与另一个框架 TestNG 占据了 Java领域里单元测试框架的主要市场,其中 JUnit 有着较长的发展历史和不断演进的丰富功能,备受大多数 Java 开发者的青睐。 而说到…...
【Linux网络】TCP UDP socket HTTP webSocket之间的区别
目录 一、OSI & TCP/IP模型 二、几者之间的关系 三、HTTP 四、Socket 五、WebSocket 5.1、WebSocket 优点 一、OSI & TCP/IP模型 首先我们要了解OSI七层模型,和预支对应的TCP/IP 四层的模型。 用下面的图可以看出,TCP UDP 工作在传输层&…...
【面向大一新生IT技术社群招新啦,不来瞅瞅?】
个人名片: 🐼作者简介:一名大三在校生 🐻❄️个人主页:落798. 🐼个人WeChat:落798. 🕊️系列专栏:【零基础学java】 ----- 【重识c语言】 ---- 【计算机网络】—【Spri…...
分析系统 - 使用Python爬虫
在竞争激烈的市场环境中,了解和分析竞争对手的销售策略和市场表现对于企业的成功至关重要。本文将介绍如何利用Python爬虫建立低成本的销售竞争对手分析系统,探索其方法、工具和好处,并同时解决可能出现的问题。 销售竞争对手分析的目标是获取…...
strstr函数
目录 函数介绍: 函数分析: 使用案例: 函数介绍: 返回指向 str1 中第一次出现的 str2 的指针,如果 str2 不是 str1 的一部分,则返回一个空指针。 匹配过程不包括终止空字符,但它到此为止。 …...
[C++] string类常用接口的模拟实现
文章目录 1、前言2、遍历2.1 operator[ ]下标方式2.2 迭代器2.3 范围for2.4 c_str 3、容量相关3.1 size(大小)3.2 capacity(容量)3.3 empty(判空)3.4 clear(清理)3.5 reserve3.6 res…...
每日一学——防火墙
防火墙是网络安全的重要组成部分,可以帮助保护网络免受恶意攻击和未经授权的访问。以下是防火墙的基本配置步骤: 定义安全策略:防火墙通过安全策略来决定允许或拒绝网络流量。你需要定义适当的安全策略来保护你的网络。安全策略通常包括源IP地…...
常用数据库备份方法,sql数据库备份方法
在信息时代,数据成为了公司的主要资产。然而,数据的安全性和完整性也成为企业管理的重要组成部分。因此,数据库备份至关重要。本文将详细介绍几种常见的数据库备份方法。 全备份 全备份是指数据库中所有数据的备份,包括数据文件、…...
常见前端面试之VUE面试题汇总八
22. Vue 子组件和父组件执行顺序 加载渲染过程: 1.父组件 beforeCreate 2.父组件 created 3.父组件 beforeMount 4.子组件 beforeCreate 5.子组件 created 6.子组件 beforeMount 7.子组件 mounted 8.父组件 mounted 更新过程: 1. 父组件 befor…...
弯道超车必做好题集锦二(C语言选择题)
前言: 编程想要学的好,刷题少不了,我们不仅要多刷题,还要刷好题!为此我开启了一个弯道超车必做好题锦集的系列,每篇大约10题左右。此为第二篇选择题篇,该系列会不定期更新,后续还会…...
PROFIBUS主站转MODBUS TCP网关
1.产品功能 YC-DPM-TCP网关在Profibus总线侧实现主站功能,在以太网侧实现ModbusTcp服务器功能。可将Profibus DP从站接入到ModbusTcp网络;通过增加DP/PA耦合器,也可将Profibus PA从站接入ModbusTcp网络。YC-DPM-TCP网关最多支持125个Profibu…...
【力扣】盛最多水的容器
目录 题目 题目初步解析 水桶效应 代码实现逻辑 第一步 第二步 第三步 代码具体实现 注意 添加容器元素的函数 计算迭代并且判断面积是否是最大值 总代码 运行结果 总结 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是…...
【SQL应知应会】索引(三)• MySQL版:聚簇索引与非聚簇索引;查看索引与删除索引;索引方法
欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 索引 • MySQL版 前言一、索引1.简介2.索引类型之逻…...
rtmp直播
技术要求:nginxnginx-rtmpffmpegVLC 跟着大佬走的: 传送门 准备工作: 首先需要一台公网ip的服务器 这是使用天翼云的弹性云主机:免费试用1个月 天翼云官网 点击关机,更多里面选择重置密码, 默认用户名为…...
4.14 tcp_tw_reuse 为什么默认是关闭的?
开启 tcp_tw_reuse 参数可以快速复用处于 TIME_WAIT 状态的 TCP 连接时,相当于缩短了 TIME_WAIT 状态的持续时间。 tcp_tw_reuse 是什么? TIME_WAIT 状态的持续时间是 60 秒,这意味着这 60 秒内,客户端一直会占用着这个端口。端…...
Python数据分析和爬虫:解析数据的强大工具
引言: 在当今数据爆炸的时代,数据分析和数据提取变得越来越重要。作为一种简洁而强大的编程语言,Python在数据分析和爬虫领域有着广泛的应用。本文将详细介绍Python在数据分析和爬虫中的常用库和技术,并探讨其在实际应用中的优势…...
机器学习之SGD(Stochastic Gradient Descent,随机梯度下降)
SGD(Stochastic Gradient Descent,随机梯度下降)是深度学习中最基本的优化算法之一。它是一种迭代式的优化方法,用于训练神经网络和其他机器学习模型。以下是关于SGD优化器的重要信息: 基本原理:SGD的基本思…...
leetcode做题笔记100. 相同的树
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 思路一: bool isSameTree(struct TreeNode* p, struct TreeNode* q){if(p NULL &…...
【Hadoop】Hadoop入门概念简介
🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
