机器学习深度学习 常用算法推导
基础
符号 | 含义 |
---|---|
CCC | 特征通道数(此处仅代表含义,不同地方的CCC数值可能不同) |
NNN | 样本数 |
- 以下所有“向量”代表列向量
- 每一个样本点xxx都是一个向量,多个样本组成矩阵X=[x0,x1,...,xn]X=[x_0, x_1,...,x_n]X=[x0,x1,...,xn]
向量
- 向量的坐标代表向量在指定基下的投影:a=[e1,e2,e3]T[a1,a2,a3]a=[e_1,e_2,e_3]^T[a_1,a_2,a_3]a=[e1,e2,e3]T[a1,a2,a3]
- 向量点积/内积/数量积:a⋅b=aTb=∑iCaibi=∣a∣∣b∣cosθa·b =a^Tb=\sum^C_ia_ib_i=|a||b|cos\thetaa⋅b=aTb=∑iCaibi=∣a∣∣b∣cosθ,θ\thetaθ为a,ba,ba,b夹角
- 内积代表一个向量在另一个向量上的投影
- 向量aaa的反对称矩阵AAA:a=[a1a2a3],A=a∧=[0−a3a2a30−a1−a2a10]a=\left[ \begin{array}{c} a_1 \\ a_2 \\ a_3\end{array}\right],A=a^\wedge=\left[ \begin{array}{c} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{array}\right]a=⎣⎡a1a2a3⎦⎤,A=a∧=⎣⎡0a3−a2−a30a1a2−a10⎦⎤
- 反对称矩阵满足:AT=−AA^T=-AAT=−A
- 向量外积:
- 外积是一个垂直于俩向量的向量,大小为∣a∣∣b∣sin(a,b)|a||b|sin(a,b)∣a∣∣b∣sin(a,b)
信息量
- 横坐标为概率ppp,则对应纵坐标信息量i=−logpi=-logpi=−logp,反映事件让人惊讶的程度(不确定性)
熵
- 某个事件对应的信息量的期望
传统算法
线性回归
寻找一个权重www和偏置bbb,使得wTX+bw^TX+bwTX+b最接近目标值YYY。相当于拟合一条直线(或一个超平面),让所有样本在直线上的取值与真实值最接近。举个例子,二维情况下,www相当于斜率k∈Rk∈\mathbb{R}k∈R,bbb相当于截距。
- 输入:样本矩阵X∈RC×NX∈\mathbb{R}^{C×N}X∈RC×N,目标值(ground truth)Ygt∈R1×NY_{gt}∈\mathbb{R}^{1×N}Ygt∈R1×N
- 输出:权重w∈RC×1w∈\mathbb{R}^{C×1}w∈RC×1,偏置b∈Rb∈\mathbb{R}b∈R
推导
- Y=wTX+b∈R1×NY=w^TX+b∈\mathbb{R}^{1×N}Y=wTX+b∈R1×N
- 通过齐次形式把bbb整合进www,w=[wb]∈R(C+1)×1,X=[X1]∈R(C+1)×Nw=\left[ \begin{array}{c} w \\ b\end{array}\right]∈\mathbb{R}^{(C+1)×1},X=\left[ \begin{array}{c} X \\ 1\end{array}\right]∈\mathbb{R}^{(C+1)×N}w=[wb]∈R(C+1)×1,X=[X1]∈R(C+1)×N
- Y=wTX∈R1×NY=w^TX∈\mathbb{R}^{1×N}Y=wTX∈R1×N
- 这里可通过最小二乘获得最优参数的解析解
- Loss=∑(ygt−y)2=(Ygt−wTX)(Ygt−wTX)T∈R+Loss=\sum(y_{gt}-y)^2=(Y_{gt}-w^TX)(Y_{gt}-w^TX)^T∈\mathbb{R}^{+}Loss=∑(ygt−y)2=(Ygt−wTX)(Ygt−wTX)T∈R+
- ∂Loss∂w=2(wTX−Ygt)XT∈R(C+1)×1\frac{\partial Loss}{\partial w}=2(w^TX-Y_{gt})X^T∈\mathbb{R}^{(C+1)×1}∂w∂Loss=2(wTX−Ygt)XT∈R(C+1)×1
- 令偏导为000
- 2(wTX−Ygt)XT=02(w^TX-Y_{gt})X^T=02(wTX−Ygt)XT=0
- wTXXT=YgtXTw^TXX^T=Y_{gt}X^TwTXXT=YgtXT
- w=(YgtXT(XXT)−1)Tw=(Y_{gt}X^T(XX^T)^{-1})^Tw=(YgtXT(XXT)−1)T
- w=(XXT)−1XYgtTw=(XX^T)^{-1}XY_{gt}^Tw=(XXT)−1XYgtT
逻辑回归
逻辑回归是分类算法,相当于全连接加sigmoidsigmoidsigmoid激活的单层神经网络。
- 输入:样本矩阵X∈RC×NX∈\mathbb{R}^{C×N}X∈RC×N,每个样本对应的类别
- 输出:权重w∈RC×1w∈\mathbb{R}^{C×1}w∈RC×1,偏置b∈Rb∈\mathbb{R}b∈R
推导
- 给出样本矩阵X∈RC×NX∈\mathbb{R}^{C×N}X∈RC×N
- 过一层全连接+sigmoidsigmoidsigmoid得到输出:Y=sigmoid(wTX+b)∈(0,1)1×NY=sigmoid(w^TX+b)∈(0,1)^{1×N}Y=sigmoid(wTX+b)∈(0,1)1×N
- sigmoid(x)=11+e−xsigmoid(x)=\frac{1}{1+e^{-x}}sigmoid(x)=1+e−x1
- 将YYY作为属于正样本的概率,则1−Y1-Y1−Y为负样本概率
- 利用极大似然估计(MLE)构造目标函数,使得所有样本对应类别出现的联合概率最大
- arg maxw,b(log∏iNPi),Pi={YiXi是正样本1−YiXi是负样本\underset {w,b}{\operatorname {arg\,max} }(log\prod_i^N P_i),P_i=\begin{cases}Y_i & X_i是正样本\\1-Y_i &X_i是负样本\end{cases}w,bargmax(log∏iNPi),Pi={Yi1−YiXi是正样本Xi是负样本
- 等价于最小化信息量之和:Loss=∑iN−logPiLoss=\sum_i^N-logP_iLoss=∑iN−logPi
SVM
SVM希望找到一个超平面用于划分样本,使得各类别距离超平面最近的样本点xix_ixi距离超平面最远。
- 输入:样本矩阵X∈RC×NX∈\mathbb{R}^{C×N}X∈RC×N,每个样本对应的类别
- 输出:超平面权重w∈RC×1w∈\mathbb{R}^{C×1}w∈RC×1,超平面偏置b∈Rb∈\mathbb{R}b∈R
定理
- 超平面:wTx+b=0w^Tx+b=0wTx+b=0
- 超平面法向量:www
- 点到超平面距离:d=∣wTx+b∣∣∣w∣∣d=\frac{|w^Tx+b|}{||w||}d=∣∣w∣∣∣wTx+b∣
- 平行超平面间距离:d=∣b1−b2∣∣∣w∣∣d=\frac{|b_1-b_2|}{||w||}d=∣∣w∣∣∣b1−b2∣
原理
- 给出样本矩阵X∈RC×NX∈\mathbb{R}^{C×N}X∈RC×N
- 求所有样本XXX到超平面的距离D=∣wTX+b∣∣∣w∣∣∈R1×ND=\frac{|w^TX+b|}{||w||}∈\mathbb{R}^{1×N}D=∣∣w∣∣∣wTX+b∣∈R1×N
- 找到nnn个样本中距离超平面最近的点x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn
- SVM要求正负样本中距离超平面最近的样本到超平面的距离最大,即maxw,b∣wTxi+b∣∣∣w∣∣,0<i≤nmax_{w,b}\frac{|w^Tx_i+b|}{||w||},0<i≤nmaxw,b∣∣w∣∣∣wTxi+b∣,0<i≤n
- 令∣wTxi+b∣=1|w^Tx_i+b|=1∣wTxi+b∣=1,优化目标变为maxw,b1∣∣w∣∣,s.t.∣wTxi+b∣>=1,0<i≤nmax_{w,b}\frac{1}{||w||},s.t.|w^Tx_i+b|>=1,0<i≤nmaxw,b∣∣w∣∣1,s.t.∣wTxi+b∣>=1,0<i≤n
- 对于二分类问题,等效于合页损失加正则项:Loss=max(0,1−y(wTx+b))+λ∣∣w∣∣2,y∈±1Loss=max(0, 1-y(w^Tx+b))+\lambda||w||^2,y∈±1Loss=max(0,1−y(wTx+b))+λ∣∣w∣∣2,y∈±1
- 对于多分类问题,相当于做多个二分类
深度学习
通用概念/公式
最小二乘法
- 构造MSE损失,令导数为0求极值
极大似然估计
- 选取候选参数中使得所有样本被正确分类的概率最大的参数
超平面
- 二维下直线表达式:ax+by+c=0ax+by+c=0ax+by+c=0
- 多维超平面表达式:ax+by+cz+...+d=0ax+by+cz+...+d=0ax+by+cz+...+d=0
- 写作矩阵形式:wTx+b=0w^Tx+b=0wTx+b=0
- x∈RC×1x∈\mathbb{R}^{C×1}x∈RC×1代表超平面上的任意样本点
- 超平面权重w∈RC×1w∈\mathbb{R}^{C×1}w∈RC×1同二维下的[a,b]T[a,b]^T[a,b]T
- 超平面偏置b∈Rb∈\mathbb{R}b∈R同二维e下的ccc
超平面法向量
- 给出超平面:wTx+b=0w^Tx+b=0wTx+b=0
- 超平面的法向量垂直于该超平面上的任意向量
- 设超平面上任意俩点x1,x2x_1,x_2x1,x2
- wTx1+b=0,wTx2+b=0w^Tx_1+b=0, w^Tx_2+b=0wTx1+b=0,wTx2+b=0
- wT(x1−x2)=0w^T(x_1-x_2)=0wT(x1−x2)=0
- www垂直于超平面上任意向量
点到超平面距离
- 给出超平面:wTx+b=0w^Tx+b=0wTx+b=0,超平面上任意一点xxx,任意一点ppp
- 超平面法向量:www
- ppp到超平面的距离d∈Rd∈\mathbb{R}d∈R为向量p−xp-xp−x对超平面单位法向量的投影长度(即点积的绝对值)
- 单位法向量:w∣∣w∣∣\frac{w}{||w||}∣∣w∣∣w
- d=∣(w∣∣w∣∣)T(p−x)∣d=|(\frac{w}{||w||})^T(p-x)|d=∣(∣∣w∣∣w)T(p−x)∣
- d=∣wT(p−x)∣∣∣w∣∣d=\frac{|w^T(p-x)|}{||w||}d=∣∣w∣∣∣wT(p−x)∣
- d=∣wTp−wTx∣∣∣w∣∣d=\frac{|w^Tp-w^Tx|}{||w||}d=∣∣w∣∣∣wTp−wTx∣
- d=∣wTp+b∣∣∣w∣∣d=\frac{|w^Tp+b|}{||w||}d=∣∣w∣∣∣wTp+b∣
- 则对任意一点xxx,到超平面距离为d=∣wTx+b∣∣∣w∣∣∈R+d=\frac{|w^Tx+b|}{||w||}∈\mathbb{R}^+d=∣∣w∣∣∣wTx+b∣∈R+
平行超平面间距离
- 给出超平面:wTx1+b1=0w^Tx_1+b_1=0wTx1+b1=0,和与其平行的超平面wTx2+b2=0w^Tx_2+b_2=0wTx2+b2=0
- 超平面法向量:www
- 超平面间的距离d∈Rd∈\mathbb{R}d∈R为向量x1−x2x_1-x_2x1−x2对超平面单位法向量的投影长度(即点积的绝对值),此处x1,x2x_1,x_2x1,x2分别为俩个超平面上的任意一点,俩个超平面法向量相同
- 单位法向量:w∣∣w∣∣\frac{w}{||w||}∣∣w∣∣w
- d=∣(w∣∣w∣∣)T(x1−x2)∣d=|(\frac{w}{||w||})^T(x_1-x_2)|d=∣(∣∣w∣∣w)T(x1−x2)∣
- d=∣wT(x1−x2)∣∣∣w∣∣d=\frac{|w^T(x_1-x_2)|}{||w||}d=∣∣w∣∣∣wT(x1−x2)∣
- d=∣wTx1−wTx2∣∣∣w∣∣d=\frac{|w^Tx_1-w^Tx_2|}{||w||}d=∣∣w∣∣∣wTx1−wTx2∣
- d=∣−b1+b2∣∣∣w∣∣d=\frac{|-b_1+b_2|}{||w||}d=∣∣w∣∣∣−b1+b2∣
- d=∣b1−b2∣∣∣w∣∣d=\frac{|b_1-b_2|}{||w||}d=∣∣w∣∣∣b1−b2∣
- 平行超平面间距离为d=∣b1−b2∣∣∣w∣∣∈R+d=\frac{|b_1-b_2|}{||w||}∈\mathbb{R}^+d=∣∣w∣∣∣b1−b2∣∈R+
机器学习深度学习 常用算法推导相关推荐
- Python 机器学习/深度学习/算法专栏 - 导读目录
目录 一.简介 二.机器学习 三.深度学习 四.数据结构与算法 五.日常工具 一.简介 Python 机器学习.深度学习.算法主要是博主从研究生到工作期间接触的一些机器学习.深度学习以及一些算法的实现 ...
- 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))
机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...
- DL之AF:机器学习/深度学习中常用的激活函数(sigmoid、softmax等)简介、应用、计算图实现、代码实现详细攻略
DL之AF:机器学习/深度学习中常用的激活函数(sigmoid.softmax等)简介.应用.计算图实现.代码实现详细攻略 目录 激活函数(Activation functions)相关配图 各个激活 ...
- 深圳内推 | 华为诺亚方舟实验室招聘机器学习/深度学习算法实习生
合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为 华为诺亚方舟实验室是世界领先的工业实验室,在深圳.香港.北京.上海. ...
- 刚发布!开发者调查报告:机器学习/深度学习算法工程师急缺
近日,CSDN发布了<2019-2020中国开发者调查报告>,本报告从2004年开始针对一年一度的CSDN开发者大调查数据分析结果形成,是迄今为止覆盖国内各类开发者人群数量最多.辐射地域. ...
- 大数据基石python学习_资源 | 177G Python/机器学习/深度学习/算法/TensorFlow等视频,涵盖入门/中级/项目各阶段!...
原标题:资源 | 177G Python/机器学习/深度学习/算法/TensorFlow等视频,涵盖入门/中级/项目各阶段! 这是一份比较全面的视频教程,基本上包括了市面上所有关于机器学习,统计学习, ...
- Paper:机器学习、深度学习常用的国内/国外引用(References)论文参考文献集合(建议收藏,持续更新)
Paper:机器学习.深度学习常用的国内/国外引用(References)论文参考文献集合(建议收藏,持续更新) References 1.国外格式 [1] D. E. Rumelhart, G. E ...
- 机器学习深度学习算法及代码实现
原文地址:https://blog.csdn.net/qq_31456593/article/details/69340697 最近在学机器学习,学习过程中收获颇多,在此留下学习记录,希望与同道中人相 ...
- 史上最全的机器学习深度学习面经总结
史上最全的机器学习深度学习面经总结 提示:19年之后的面经,扩大了范围包括了cv,推荐,语音等面经中的知识点, 同时增加了那三本面经书的内容一些github上一些比较火的项目,大部分问题是重复的,去重 ...
最新文章
- 20线程测试cpu性能软件,CPU常用跑分软件 你知道那些?
- Windows应用程序文件格式转换控件LEADTOOLS ePrint Professional
- pytorch多标签分类交叉熵loss
- 金御® GM-AFM介绍
- mysql 存储xml类型_(MariaDB)MySQL数据类型详解和存储机制
- 转录组拼接软件Trinity使用安装报错锦集
- 程序员经常去的编程教学视频网站
- mac开发者身份_如何以开发者的身份环游世界
- java 扫描仪_Java调用扫描仪2
- 0基础能学“软件测试”吗?好学吗?怎么学?
- RxSwift之深入解析Using操作的应用和原理
- 关于投资有哪些不得不读的书籍?
- UVALive 6555 Playing Fair with Cryptography(细节处理)
- 图片清晰度评价-java实现
- matlab示波器怎么求值,matlab示波器用法
- 云平台和云管平台的三大区别详细解析
- 如何给数据库设置用户并赋权
- 扫描版PDF添加目录
- 用函数实现求一元二次方程ax^2+bx+c=0的根
- com域名和cn域名net域名的区别是什么
热门文章
- NVME SSD vs SATA SSD(转)
- ie6下z-index不起作用?
- 机器学习笔记(二)矩阵和线性代数 例:用Python实现SVD分解进行图片压缩
- 在python中下列代码的运行结果是print abc_下列代码运行结果是?
- 基于java爱宠医院管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
- win10 设置为静态ip地址
- 引用 面向对象 String类(6)
- 中国电信4g最快服务器IP,中国电信DNS IP地址大全(32个省)
- android 启动画面广告,浅谈APP启动界面广告
- Python可视化 | Seaborn02