当前位置: 首页 > news >正文

积跬步至千里 || 数学基础、算法与编程

数学基础、算法与编程

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)=Xwb22=i(wixibi)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)=Xwb1=i biwixi

  • 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δei21δ2ei<δ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 wminXwb22+w22

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 wminXwb22+w1

min ⁡ w ∥ X w − b ∥ 1 \min_{\boldsymbol{w}}\;\Vert X\boldsymbol{w}-\boldsymbol{b}\Vert_1 wminXwb1

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 wminXUVTF2,s.t.U0,V0

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 wminXUVT1,s.t.U0,V0

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 wminXUVT2,1,s.t.U0,V0

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 wminXUVT2,1+U1,s.t.U0,V0

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 wminXUVT2,1+U,s.t.U0,V0

可通过一些优化工具箱或者优化工具进行求解

3. 网络优化

通过神经网络或者深度学习进行优化

http://www.lryc.cn/news/140371.html

相关文章:

  • Java单元测试 JUnit 5 快速上手
  • 【Linux网络】TCP UDP socket HTTP webSocket之间的区别
  • 【面向大一新生IT技术社群招新啦,不来瞅瞅?】
  • 分析系统 - 使用Python爬虫
  • strstr函数
  • [C++] string类常用接口的模拟实现
  • 每日一学——防火墙
  • 常用数据库备份方法,sql数据库备份方法
  • 常见前端面试之VUE面试题汇总八
  • 弯道超车必做好题集锦二(C语言选择题)
  • PROFIBUS主站转MODBUS TCP网关
  • 【力扣】盛最多水的容器
  • 【SQL应知应会】索引(三)• MySQL版:聚簇索引与非聚簇索引;查看索引与删除索引;索引方法
  • rtmp直播
  • 4.14 tcp_tw_reuse 为什么默认是关闭的?
  • Python数据分析和爬虫:解析数据的强大工具
  • 机器学习之SGD(Stochastic Gradient Descent,随机梯度下降)
  • leetcode做题笔记100. 相同的树
  • 【Hadoop】Hadoop入门概念简介
  • 前端监控之异常监控(一)
  • sql server 、mysql CTE 公用表表达式
  • Oracle dataguard 和Oracle rac的区别和联系
  • JUC工具类-LockSupport概述
  • 大数据:AI大模型对数据分析领域的颠覆(文末送书)
  • CEdit 选中文字实时更新到另一个控件中
  • Word导出创建Adobe PDF其中emf图片公式马赛克化及文字缺失
  • [matlab]matlab配置mingw64编译器
  • 华为OD-非严格递增连续数字序列
  • css滚动条样式这样修改下很漂亮
  • 转置卷积的应用