numpy简单实现梯度投影法
import numpy as np
# 约束投影算法意思就是
# 1. 我们的问题是求最小值(可能是局部最小)
# 2. 求最值我们都会想到用梯度下降算法,但是下降的方向是否应该也有一个约束比较好?
# 3. 如果我们的约束很带劲,我们将梯度投影在约束函数的方向向量上可能能更快的收敛。
# f(x) = x ^ 2 + y ^ 2 s.t. x + y >=1
x_0 = np.array([[3, -2]])
B = np.array([[1, 1]])
I = np.eye(2)
print(I)
P = I - np.dot(np.dot(B.T, np.linalg.inv(np.dot(B, B.T))), B)
for i in range(50) :
x_g = -2 * x_0[0][0] * 0.01 # 合并了负号
y_g = -2 * x_0[0][1] * 0.01
g = np.array([[x_g], [y_g]])
d = np.dot(P, g)
x_0[0][0] = x_0[0][0] + d[0][0]
x_0[0][1] = x_0[0][1] + d[1][0]
print(x_0)
numpy简单实现梯度投影法相关推荐
- Numpy 简单教程(二)数组的形状(shape)操作
更过的Numpy教程连载内容:https://blog.csdn.net/qq_38962621/category_10302107.html Numpy数组的形状(shape)操作 首先,使用 nd ...
- 【Python】Numpy简单入门
Numpy Numpy是Python中科学计算的核心库.Numpy提供了高性能的多维数组对象,还有用于处理这些数组的工具. 数组 Numpy的主要数据类型是ndarray即多维数组,可以用嵌套 ...
- python3 matlabplot 和numpy 简单绘图
import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 2 * np.pi, 200) y = np.sin(x)fi ...
- knn算法,利用numpy简单实现
首先明确概念: 回归:预测体重.预测房价.预测损失. 结果是不容易确定的. 分类:预测男女.预测是否能通过考试 结果是容易确定的. 我的理解:回归针对连续的数据.分类针对离散的数据. 回归连续.分类离 ...
- python【Numpy科学计算库】Numpy的超实用基础详细教程(看不懂你来打我)
文章目录 Numpy简单介绍 1.Numpy是什么 2. 多维数组 numpy数据类型设定与转换 numpy索引与切片 多维数组索引.切片 数组文件输入输出 使用numpy.arange方法 使用nu ...
- Python Numpy介绍
Numpy简单介绍 1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵 ...
- 2019b官方手册中文版_数据科学|「最全」实至名归,NumPy 官方早有中文教程,结合深度学习,还有防脱发指南...
文章须知 文章作者:机器之心 责任编辑:书生 审核编辑:阿春 微信编辑:玖蓁 本文转载自公众号 机器之心 (ID:almosthuman2014) 原文链接:「最全」实至名归,NumPy 官方早有中文 ...
- A01_[NumPy中文网]数组基础(创建数组,多维数组切片,数组属性)、使用数组(基本操作符,数组特殊运算符)、索引(花式索引,布尔索引,缺省索引)
NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在 ...
- android官方文档中文版_最全实至名归,NumPy 官方早有中文教程,结合深度学习,还有防脱发指南...
点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 本文转自机器之心 在 Github 上一度蝉联最流行的机器学习和数据科学包 NumPy,已经有了非常之系统的中文文档,回想起当初细啃 ...
最新文章
- 如何在html中写javascript代码,如何在本地html代码中使用javascript脚本
- MySQL中间件之ProxySQL(11):链式规则( flagIN 和 flagOUT )
- c++ websocket客户端_python测试开发django81.dwebsocket实现websocket
- zoj 3640 概率dp
- ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(下)
- MySQL 索引分析除了 EXPLAIN 还有什么方法?
- oracle 修改2个表,oracle学习笔记2:创建修改表
- 菜鸟进阶必修课-主板插线小百科(图)
- 鸿蒙宴原文及翻译,《鸿门宴》文言文原文及全文详细翻译
- [OHOS ERROR] clang not found, install it please
- 【预测模型】Leslie 人口增长模型
- VTN联合GWI共同启动“全球健康登月计划”让更多人享受到健康新生活
- python算法_02字符串(罗马类型的转换整数)
- 单样本t检验、独立样本t检验、配对样本t检验_python_数据分析_7
- Block.one的EOS区块链入门开发教程Elemental Battles
- VBA锁定单元格并记录单元格修改日志无bug篇
- 2020美亚杯个人赛
- 【Python爬虫】(一)requests:verify关健字参数
- 《程序员练习生》第1期 做程序员需要天赋吗?
- 独热编码(One-Hot Encoding)
热门文章
- LWN:两组跟memory-tier有关的patch!
- SDK ..\OBJ\XXX.axf: Error: L6218E: Undefined symbol XXXX (referred from XXX.o).
- ios设备如何安装chatgpt
- 用JS写一个《俄罗斯方块》小游戏
- (整理)Ruby的基础知识
- eclipse中xtext/xtend的安装及注意事项
- 通信原理 | 宽带:运营商的带宽和实际网速的关系
- linux 线程tid,关于linux:PID和TID之间的区别
- 手把手教你用深度学习做物体检测(四):模型使用
- Excel怎么一次性删除数据末尾的空格