机器学习:从感知机模型体会随机梯度下降
文章目录
- 感知机模型:
- 感知机模型的随机梯度下降:
- 感知机模型的算法描述:
- 感知机的代码实现:
感知机模型:
寻找一个超平面使数据集线性可分,寻找超平面的过程可以转化为最小化一个损失函数的过程:
如何的来的?二元分类,y = +1使w⋅xi+b>0, y = -1使w⋅xi+b<0。
注意:需要强调的是,|w⋅xi+b|所描述的“相对距离”和我们直观上的“欧氏距离”或说“几何距离”是不一样的(事实上它们之间相差了一个∥w∥)。
感知机模型的随机梯度下降:
感知机模型的算法描述:
简单描述为:利用分错的点更新参数w和b,直到没有分错的点位置。
怎么选取分错的点,要么随机选取,要么选择分错的样本里面权重最大的点。
# 打乱标号_indices = np.random.permutation(len(y))# 取分错最严重的标号,没有样本权重,取打乱后第一个分错的标号_idx = _indices[np.argmax(_err[_indices])]
感知机的代码实现:
# -*- coding: utf-8 -*-import numpy as np
from Util.Bases import ClassifierBaseclass Perceptron(ClassifierBase):def __init__(self):super(Perceptron,self).__init__()self._w = Noneself._b = Nonedef fir(self, x, y, sample_weight=None, lr = 0.01,epoch = 10**6):x = np.atleast_2d(x)y = np.array(y)if sample_weight is None:sample_weight = np.ones(len(y))else:# 这里的sample_weight为样本个数sample_weight = np.array(sample_weight) * len(y)# 初始化w,bself._w = np.zeros(x.shape[1])self._b = 0# 训练for _ in range(epoch):# 得到预测值y_pred = self.predict(x)# 得到分错的向量:[样本] = 每个样本分错的权重,未分错为0_err = (y_pred != y) * sample_weight# 打乱标号_indices = np.random.permutation(len(y))# 取分错最严重的标号,没有样本权重,取打乱后第一个分错的标号_idx = _indices[np.argmax(_err[_indices])]# 都没有分错时,取得时分对了的标号,这是样本全部分对了,退出if y_pred[_idx] == y[_idx]:return# 根据寻去的最大分错的方向yi,对应梯度lr*yi*xi_delta = lr * y[_idx] *sample_weight[_idx]self._w += _delta*x[_idx]y += _deltadef predict(self, x, get_raw_result = False):# np.sum相当于点乘的计算rs = np.sum(self._w *x,axis=1) + self._bif not get_raw_result:return np.sign(rs)return rs
机器学习:从感知机模型体会随机梯度下降相关推荐
- 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...
机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...
- 深度学习(30)随机梯度下降七: 多层感知机梯度(反向传播算法)
深度学习(30)随机梯度下降八: 多层感知机梯度(反向传播算法) 1. 多层感知机模型 2. 多层感知机梯度 3. 传播规律小结 tens Recap Chain Rule Multi-output ...
- 机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)...
本文介绍了机器学习中基本的优化算法-梯度下降算法和随机梯度下降算法,以及实际应用到线性回归.Logistic回归.矩阵分解推荐算法等ML中. 梯度下降算法基本公式 常见的符号说明和损失函数 X :所有 ...
- 机器学习:SVM、软间隔、随机梯度下降SVM线性算法
文章目录 SVM目标函数 SVM目标函数推导 函数间隔: 几何间隔: 软间隔.松弛 HingeLoss和软间隔 随机梯度下降算法 线性SVM的算法描述: 线性SVM算法实现: SVM目标函数 SVM目 ...
- 深度学习(28)随机梯度下降六: 多输出感知机梯度
深度学习(28)随机梯度下降六: 多输出感知机梯度 1. Multi-output Perceptron 2. Derivative 3. 代码 Perceptron 单输出感知机梯度 ∂E∂wj0= ...
- 深度学习(27)随机梯度下降五: 单输出感知机梯度
深度学习(27)随机梯度下降五: 单输出感知机梯度 1. Perceptrnon with Sigmoid + MSE 2. Derivative 3. 代码 Recap y=XW+by=XW+by= ...
- ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介、常用方法、案例应用之详细攻略
ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介.常用方法.案例应用之详细攻略 目录 ...
- 机器学习:随机梯度下降(SGD)与梯度下降(GD)的区别与代码实现。
机器学习:随机梯度下降(SGD)与梯度下降(GD)的区别与代码实现. 梯度下降法(GD) 随即梯度下降(SGD) 代码实现 如果想细致的了解:-> 梯度下降法 梯度下降法(GD) 假设函数fx, ...
- Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现 在上一小节中,我们已经成功的构建了逻辑回归的损失函数,但由于逻辑回归模型本身的特殊性,我们在构造损失函数时无法采用 ...
最新文章
- Android事件机制
- lvs和keepalives
- C语言两个日期比大小,C语言小程序 如何判断两个日期之差
- 【Swift学习】Swift编程之旅(一)
- 一起来啃书——PHP看书
- 人类一败涂地电脑版_iOS账号分享 |人类一败涂地 我们继续相爱相杀,PC大火游戏移植!...
- cad填充图案乱理石_CAD绘图,缺少填充图案怎么办?900多种自定义图案可解燃眉之急...
- X79双cpu linux,Sandy Bridge-E处理器、X79芯片组详尽官方规格
- B站视频下载及本地文件名修正
- 正确使用 CDN 让你更好规避安全风险
- 【视频】离职创业感悟
- simulink反差表
- 数据结构算法学习 之 红黑树
- word/exce转lPDF乱码(思源字体)
- 9款高质量学习软件,原来学霸都是这么炼成的!
- 美国 计算机科学专业硕士 就业,美国硕士留学:就业最好及最差的硕士学位
- Activiti6--入门学习--结束事件
- 机构数据总打架,微博终于把手机市场的事儿说清楚了
- MATLAB App Designer入门实战(三)
- 某校2019专硕编程题-简易计算器
热门文章
- centos7重新加载服务的命令_Centos7 常用防火墙操作命令
- socket 获取回传信息_Luat系列官方教程5:Socket代码详解
- npm依赖管理java_探讨npm依赖管理之peerDependencies
- hca卡 linux 查看_将Linux装入U盘随身带走!Awesome!
- 决策树模型回归可视化分析_【时间序列分析】在论文中用向量自回归(VAR)模型时应注意哪些问题?...
- 【ruoyi若依】echarts图表跑版
- Tomcat9 (catalina.bat)控制台日志乱码
- geth JavaScript Console
- JAVA抽象类为什么可以有构造_抽象类为什么可以有构造函数?- Constructor of an abstract class in C#(转载)...
- react 文件 md5_从零配置webpack 4+react脚手架(二)