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

python与机器学习1,机器学习的一些基础知识(完善ing)

目录

1 关于阈值θ和偏移量b和公式变形的由来

2 激活函数

3 关于回归,分类等

4 关于模型

5 关于回归

6 关于分类

7 关于误差和梯度下降

7-2 最小二乘法修改θ

8 深度学习

10 分类

11 参考书籍


1 关于阈值θ和偏移量b和公式变形的由来


比如很多信息传入可以表达为

WX=w1x1+w2x2+....这个是输入值,其中w表示权重,x表示信息

也有的写成 θX=θ1x1+θ2x2+....这个是输入值,都是一个意思

如果w1x1+w2x2+....>θ     就会激活
如果w1x1+w2x2+....<=θ  就不激活

那么 w1x1+w2x2+....=θ就是判断公式
可以变形为
w1x1+w2x2+....=θ
w1x1+w2x2+....-θ=0
而尽量都取正数,就是
w1x1+w2x2+....+(-θ)=0
用系数b代替-θ
w1x1+w2x2+....+b=0
如果把b看成一个虚拟的输入信息,那么b的权重就是1
w1x1+w2x2+....+1*b=0

2 激活函数


一个最简单的函数,分段函数图形是直的,但是上下限也是[0,1]

  • f(x)=0, if x<=0
  • f(x)=1, if x>0

一个比较连续的, sigmod,分段函数图形是曲线,但是上下限也是[0,1]
 sigmod,比较经典

  • f(z)=1/(1-e^(-z))

3 关于回归,分类等

  • 老的AI,逻辑
  • 中间AI,
  • 现在AI,数据

  • 数据分为2部分
  • 一部分训练数据
  • 一部分,验证数据

  • 有监督学习,回归分析,验证
  • 半监督学习,
  • 无监督学习,分类等


4 关于模型

回归,regression
用来处理,连续数据,如事件序列数据
比如按天记录的数据

分类,classification
数据带有标签
有监督学习

聚类,clustering
数据不带标签
无监督学习

5 关于回归


有1次回归函数,其中包含1元的,2元等等,如果是多元的需要求偏导数
一般来说,一次回归函数都是线性函数

有2次回归函数,其中包含1元的,2元等等,如果是多元的需要求偏导数
一般来说,二次回归函数都是曲线~

选择什么样的函数有差别
如果函数次数太低,拟合不够,可以用精确度变化曲线,精确度和回归度比较
如果函数次数太高,可能是过拟合,可能训练数据拟合好,但是验证数据拟合不好,

6 关于分类

分类是把 f(x) 做成了一个概率函数

可以看作是

f θ(x)>0.5 时   y=1

f θ(x)<=0.5 时   y=0

 其实就是

θTX>0 时   y=1

θTX<=0 时   y=0

7 关于误差和梯度下降


误差函数,感觉很类似于方差函数
(y-f(x))^2


最梯度下降
采用最小二乘法? 可能会陷入局部最优


随机梯度下降
随机选择一些?一定能达到全局最优


随机梯度下降

最速下降,因为事先选取点的差别,可能陷入局部最优
而随机梯度下降,因为全局随机,理论上不会陷入局部最优,一定会找到全局最优
想象不规则的sinx这种函数曲线

1个随机数量
小批量随机梯度下降

7-2 最小二乘法修改θ

y=ax+b
y=θ0+θ1*x

根据一些原始数据,
大概200 → 500
但是随便假设θ0=1,θ1=2
fθ(x)=f(x)=y=1+2x
当时200 → 201
可见参数θ0=1,θ2=2 假设的不好


最小二乘法修改θ
E(θ)=1/2*∑(y-f(x))^2
E(θ)=1/2*∑(yi-f(x)i)^2

跟方差一样
还要去掉误差的正负影响,而是考虑误差与均值的差距的绝对值。
所以用平方

用平方,比abs更容易求导数
1/2也是为了求二次方的导数故意设计的,1/2或者2 只会改变函数形状的扁平还是高起,一般来说y=f(x) 值越大越高,值越小越扁平

所以最速下降法,就是求导数,也就是微分
导数函数求出来后,导数=0时的x 对应就是f(x)的极值

方法1 加上考虑函数的性质
比如 f(x)=x^2+2x+1这种往下凸出的,就是对应的最小值

方法2 比如 f(x)=x^2+2x+1 导数 f(x)'=2x+2
因此,最小值是x=-1对应
而且,
x>-1,f(x)'=2x+2>0  为正,f(x)递增
x<=-1,f(x)'=2x+2<0  为负,f(x)递减
所以
沿着与导数的符号相反的方向移动x,f(x) 就会朝着最小值前进

最速下降,梯度下降法
x=x-la*df(x)/dx
x=x-学习率*导数
学习率的选择要尽量小点,否则就会不容易收敛,或无法收敛

其实这就是更新的θ
如果f(x)=fθ(x1,x2,x3)=θ0+θ1*x+θ2*x^2 =θ*X
θ0=θ0-la*Σ(f(x)-y)
θ1=θ1-la*Σ(f(x)-y)x
θ2=θ2-la*Σ(f(x)-y)x^2
多变量,偏导数

如果f(x)=fθ(x1,x2,x3)=θ0*x0+θ1*x+θ2*x^2 =θ*X
变成2个向量点乘


8  和矩阵计算,矩阵内积点乘的关系

 w1x1+w2x2+.....+wnxn
天生适合用矩阵计算
 w1x1+w2x2+.....+wnxn=W*X

考虑到 偏移量(其实是和阈值有关系)


 1*b+w1x1+w2x2+.....+wnxn=W*X
可变成
列向量 (1,w1,w2...wn) ,转行向量 (1,w1,w2...wn) T
列向量 (b,x1,x2...xn) 

8 深度学习

输入层,中间层,输出层

中间层的宽度
中间层的层数,深度学习?

加宽度相对容易
加深度就会很难?

10 分类


假设W*X=w1x1+w2x2
如果W*X=w1x1+w2x2=0
假设w1 w2=1
x1+x2=0

W*X=|W||X|cosθ 
其中cosθ 决定点乘内积符号 90-270,cos为负数,使得内积为负的向量
使得内积为正的向量

内积为正,两者相似
内积为负数,两者不相似
内积为0,两者垂直,完全不相关
 

11 参考书籍

《机器学习的数学》
《深度学习的数学》
《程序员的AI书》


http://www.kler.cn/a/149023.html

相关文章:

  • 物理设备命名规则(Linux网络服务器 15)
  • SQL练习(2)
  • 【考研数学:高数2】数列极限
  • 苍穹外卖 数据可视化
  • Pandas | 数据分析时将特定列转换为数字类型 float64 或 int64的方法
  • 【入门篇】A+B Problem——多语言版
  • Prometheus的详细部署
  • spring boot spring-retry重试机制
  • 算法 离散化
  • CVE-2022-4886 ingress命令注入复现与分析
  • 设计模式—依赖倒置原则(DIP)
  • Android frameworks 开发总结之十一
  • 郑州数字孪生技术推进制造业升级,工业物联网可视化应用加速
  • YOLO改进系列之SKNet注意力机制
  • GitHub 2023排名前十的最佳开源项目
  • 微信小程序+中草药分类+爬虫+torch
  • Linux命令(136)之zcat
  • 芯知识 | 混音播报语音芯片的优势:革新音频应用的新力量
  • 使用 Mybatis 的 TypeHandler 存取 Postgresql jsonb 类型
  • 【数学】旋转矩阵
  • xv6 磁盘中断流程和启动时调度流程
  • Java中实现精度准确的浮点数运算
  • SpringBoot——模板引擎及原理
  • RK3568平台开发系列讲解(Linux系统篇)通过OF函数获取设备树中断信息实验
  • 2023年国赛试题:配置inux1 为 CA 服务器
  • Linux dd命令详解:如何从标准输入或文件中读取、转换并输出数据(附实例教程和注意事项)