<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[BlackValley的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/BlackValley</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; BlackValley]]></copyright><item><title><![CDATA[【神经网络笔记】——TensorFlow2.x自定义回调函数Callbacks]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/123156890</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/123156890</guid><author>BlackValley</author><pubDate>Sat, 26 Feb 2022 22:49:44 +0800</pubDate><description><![CDATA[【神经网络笔记】——TensorFlow2.x自定义回调函数Callbacks背景实例关键点总结
背景
在未知训练迭代次数的情况下，动态确定每个训练需要的迭代次数，需要设置自定义回调函数，配置acc或mse损失到达一定程度后停止训练
实例
import tensorflow as tf


class earlyStop(tf.keras.callbacks.Callback):
    def __init__(self,mode,acc_threshold=0.95,loss_threshold=0.0]]></description><category></category></item><item><title><![CDATA[【童年游戏回忆】——扳机游戏代码复现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/121302782</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/121302782</guid><author>BlackValley</author><pubDate>Sat, 13 Nov 2021 15:38:39 +0800</pubDate><description><![CDATA[背景


90后小时候玩的都是自创的游戏，踢沙包、踢足球（把纸弄成球，包N层）、跳方格、挖沙子、堆泥巴、挖坑道、骑自行车、荡秋千、打卡片、叠元宝、猜猪蹄四角、拍手、跳皮筋、翻花绳、转笔、弹射笔、弹射纸球、画漫画、超能nono撞击挤压、斗鸡、骑马打仗、剪刀石头布等手势博弈游戏，其中扳机作为斗智斗勇的博弈游戏，有其内在的规律和不确定性、刺激性，因此进行游戏的代码复现。
但不只是完全复现，还进行了优化，优化了血量，原来是1次生命，现在是多次机会，可玩性提高了。同时代码运行也能够回合制的形式展示双方的状态信息，更便]]></description><category></category></item><item><title><![CDATA[【VBA宏编程】——Excel操作]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/119963368</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/119963368</guid><author>BlackValley</author><pubDate>Wed, 08 Sep 2021 11:08:26 +0800</pubDate><description><![CDATA[背景
Office的编程语言较老，和现有高级语言相差较多，导致入门以及编写差异较大，编写和调试不方便，所以一直没考虑过使用VBA进行Office编程，但最近有个需求，是在无高级编程语言环境的内网主机上进行表格自动化处理，所以必须得用表格自带函数实现简单逻辑以及VBA实现复杂逻辑。

...]]></description><category></category></item><item><title><![CDATA[【论文阅读】——（1）Generative Adversarial Nets]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118764572</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118764572</guid><author>BlackValley</author><pubDate>Wed, 08 Sep 2021 10:52:51 +0800</pubDate><description><![CDATA[背景
Generative Adversarial Nets是GAN的开山之作，介绍了GAN的基本思想，有理论分析有实践效果。
论文
摘要
我们提出了一个通过对抗过程估计生成模型的新框架，其中我们同时训练了两个模型：一个捕获数据分布的生成模型G和一个估计来自训练数据而非G的样本概率的判别模型D。G的训练程序是使D出错的概率最大化。这个框架对应于一个minimax两人博弈。在任意函数G和D的空间中，存在一个唯一解，G恢复训练数据分布，D在G生成的训练数据集空间中处处预测真实数据的概率等于1/2。在G和D由多层]]></description><category></category></item><item><title><![CDATA[【tensorflow2源码修复】—— 解决不能修改layer_name属性值]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/120164646</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/120164646</guid><author>BlackValley</author><pubDate>Tue, 07 Sep 2021 21:32:24 +0800</pubDate><description><![CDATA[问题描述
tf2合并了keras，绝大部分操作tf2和keras是相同的效果，但有的报错，比如在集成学习时，在定义了多个基类模型并训练好后，在集成时报错层名有重复的，是因为默认基类模型的层名是按照默认名命名的，所以有重复的(在定义了相同类型的层时)，为解决报错，需要修改层名（两种解决报错的思路：1）去除判断层名是否重复的代码，但在其他代码使用该框架时可能出现相同层名却无法及时判定异常的Bug，这样弊大于利；2）增加配置层名的set方法，这样弊端就是层名成员变量可以被外部修改了，其实没觉得是弊端，所以利远大于]]></description><category></category></item><item><title><![CDATA[【tensorflow2源码修复】——解决Cannot convert a symbolic Tensor (lstm/strided_slice:0) to a numpy array.]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/120161493</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/120161493</guid><author>BlackValley</author><pubDate>Tue, 07 Sep 2021 17:16:24 +0800</pubDate><description><![CDATA[问题描述
自己使用最开始的tensorflow2.1在运行一段定义了LSTM层的网络代码时不报错，但使用新pip install的tensorflow2.1则运行报错如题所示，往往需要修改源码，比如在model.save时报错不能编码，则需要找到报错的地方修改去掉encode的部分，但有的问题就不是那么直接了，比如报错如题所示
解决思路

同一个tensorflow版本，结果运行结果不同，只能说明源码不同有问题，所以使用不同的编译器同时debug模式执行同一段代码，对比执行过程的代码，找到不同之处进行覆盖修]]></description><category></category></item><item><title><![CDATA[【神经网络+数学】——（5）神经网络求解二元方程组问题]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118577665</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118577665</guid><author>BlackValley</author><pubDate>Thu, 08 Jul 2021 17:21:08 +0800</pubDate><description><![CDATA[背景
求解方程组问题（线性非线性均可，不带微积分）
问题描述
xy+x3+y3=11yxy+x^3+y^3=11yxy+x3+y3=11y
x2y2+x2+2y2=10x^2y^2+x^2+2y^2=10x2y2+x2+2y2=10
不限制xy范围，实际解为x=2 y=1

注意俩方程也可能解出来多套解，我只是先设定了实际解的一组解，然后构造的方程组，所以还可能存在其他解

神经网络
思路：参考遗传算法求解方程组的思路，将评估函数设定为每个方程移项（将等号右侧变为0）后等号左侧的平方和（遗传算法需要构造平方]]></description><category></category></item><item><title><![CDATA[【星球两点距离】——最短距离计算理论和代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118469219</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118469219</guid><author>BlackValley</author><pubDate>Tue, 06 Jul 2021 12:15:29 +0800</pubDate><description><![CDATA[背景
三体中有宇宙的坐标（三维空间坐标），使用欧氏距离计算即可；但具体到每个星球（球形）上的两点坐标（经纬度坐标系）的距离计算则不能使用欧氏距离，因为这是具有物理实际含义的工程距离计算问题，无法穿过地下到达目标点，所以只能像蚂蚁一样绕着球面行进到目标点，我称之为“蚂蚁找食物问题”，因为蚂蚁肯定是想法设法以最短的路径找到食物（目标点），所以这里也就符合本博客的任务，最短距离的计算（使用遗传算法、蚁群算法也是可以的，但这里是得到两点坐标后计算精确值，即解析法）。
理论介绍

地球表面两地之间的最短距离是通过这两]]></description><category></category></item><item><title><![CDATA[【离线环境配置】——离线安装pyinstaller]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118493295</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118493295</guid><author>BlackValley</author><pubDate>Tue, 06 Jul 2021 11:20:08 +0800</pubDate><description><![CDATA[背景
有同学希望在离线环境下使用光盘导入的方式获取pyinstaller，在线方式pip install即可，同时在Scripts目录下生成pyinstaller.exe即可在命令行中调用pyinstaller命令。但离线方式需要考虑离线包的下载（包括依赖包，麻烦就在于依赖包）和安装顺序（依赖的顺序是特定的，所以安装各依赖包的顺序有讲究，否则会报错，默认pip install A是先在已安装的库中寻找A是否存在，不存在则确认依赖的B、C、D是否已安装，如果没有安装则会自动联网下载，离线状态下会多次尝试联网R]]></description><category></category></item><item><title><![CDATA[【神经网络+数学】——（4）神经网络求解二元偏微分问题（二阶偏微分）]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118226871</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118226871</guid><author>BlackValley</author><pubDate>Sat, 26 Jun 2021 11:41:31 +0800</pubDate><description><![CDATA[背景
前面几篇博客介绍了神经网络应用到积分、一元N阶微分的原理、方法并实践了可行性，取得了较好的拟合效果，现在针对偏微分方程PDE进行最后的攻关，完成该部分攻关后即基本掌握了神经网络应用到方程求解的原理方法以及实践代码的自主可控，其实多元N阶微分如果不是偏微分方程则可表示为（以一阶微分为例）

dxdtdydt+dxdt+dydt+x(t)+y(t)+2=0\frac{dx}{dt}\frac{dy}{dt}+\frac{dx}{dt}+\frac{dy}{dt}+x(t)+y(t)+2=0dtdx​dtd]]></description><category></category></item><item><title><![CDATA[【神经网络+数学】——（3）神经网络求解一元微分问题（二阶微分）]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118206181</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118206181</guid><author>BlackValley</author><pubDate>Fri, 25 Jun 2021 07:44:44 +0800</pubDate><description><![CDATA[背景
详见上篇博客
本博客对更复杂的二阶微分问题进行神经网络求解，问题示例参考博客
问题描述


定义域选取[0,2]

模型代码
神经网络模拟φ(x)，利用自动微分得到二阶、一阶微分，代入表达式后作为loss进行训练即可。该方法适用于N阶微分问题，具有搭建快捷、模型结构不受阶数影响的优点，而传统的解析方法对阶数很敏感，求解难度随着阶数的增加直线上升。

使用tf2+python3.7环境，自动微分的结果表示微分函数值，训练代码如下（不包含net类的定义代码，需要付费获取，请私信联系博主）：

# 随机打乱]]></description><category></category></item><item><title><![CDATA[【神经网络+数学】——（2）神经网络求解一元微分问题（一阶微分）]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118144437</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118144437</guid><author>BlackValley</author><pubDate>Thu, 24 Jun 2021 11:21:24 +0800</pubDate><description><![CDATA[背景
神经网络快速发展，且其具有自动微分的天然功能特性，可以用其来近似逼近待求解函数，利用自动微分来逼近一阶微分，利用自动微分的微分来逼近二阶微分，代入原等式中计算loss，优化后即可得到结果。（以下参考博客）微分方程是由函数以及其导数组成的等式，一般而言，可以分为常微分方程(ODE)和偏微分方程(PDE)，常微分方程按照最高阶导数的阶数可以分为一阶，二阶甚至更高阶，按照函数及其导数的次数又可分为线性微分方程和非线性微分方程。求解微分方程一般有分离变量法和常数变易法等，但是这些方法可以求解的微分方程非常有限]]></description><category></category></item><item><title><![CDATA[【时间序列异常检测算法】——传统异常检测算法介绍及代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118108759</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118108759</guid><author>BlackValley</author><pubDate>Tue, 22 Jun 2021 17:01:29 +0800</pubDate><description><![CDATA[背景
前面博客讲述了正常值组成的时间序列如何预测t时刻的值，是时序预测任务；
这里讲述的是包含有异常值的时间序列如何判定哪个时刻发生了异常，是时序异常检测任务。
同比：本期与同期做对比。
环比：本期与上期做对比。
异常主要包括：

数据突变异常：数据在某个时刻或短时间段内，突升/突降。使用环比检测。
周期性异常：正常情况下，不同周期间的数据变化趋势是一致的，异常是某周期时间段内趋势和其他周期内趋势不同。使用同比检测。

归纳为三个场景：


场景一：数据无规律波动，但正常基本在一个较小的波动范围内，典型的场]]></description><category></category></item><item><title><![CDATA[【时间序列预测算法】——Holt-Winters算法介绍及代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118097082</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118097082</guid><author>BlackValley</author><pubDate>Mon, 21 Jun 2021 23:54:57 +0800</pubDate><description><![CDATA[背景
一阶二阶三阶指数平滑方法拟合效果均较好，通过结合数据自然属性，数据自身、趋势变化、季节性，提出了这三个角度的衡量量，可以说，理解起来更自然、更亲切。
公式
一阶：


sts_tst​是t时刻对xtx_txt​的估计值，这里只有一个参数α，是数据本身的平滑属性的体现。

二阶：


引入了时间趋势变量btb_tbt​，优化了一下一阶的公式。同时还可以预测t+m时刻的值：


三阶：


又引入了季节性周期描述变量ctc_tct​，优化了一下二阶的公式。同时还可以预测t+m时刻的值：


NOTE：ct]]></description><category></category></item><item><title><![CDATA[【时间序列预测算法】——指数平滑算法介绍及代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118081741</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118081741</guid><author>BlackValley</author><pubDate>Mon, 21 Jun 2021 10:55:13 +0800</pubDate><description><![CDATA[背景
考虑到时间越近的y值对当前要预测的y值的影响更大，采用指数衰减的方式来进行权值赋值。
公式

递推关系式：

α取[0,1]平滑参数，控制权重下降的速度。
代码
# 参数设定
epochs = 20
alpha = 0.5#初始化L 初值L会影响最后的结果
# TSD数据集构造
t = np.linspace(0,10,100)
y = 2*t + np.random.rand(len(t))
# 原始时序数据
plt.figure(figsize=(16, 7))
plt.plot(y)
plt.t]]></description><category></category></item><item><title><![CDATA[【时间序列预测算法】——平均算法介绍及代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118080030</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118080030</guid><author>BlackValley</author><pubDate>Mon, 21 Jun 2021 10:02:48 +0800</pubDate><description><![CDATA[背景
适用于统计特性不变的场景
公式

使用从开始到当前t时刻所有y的均值作为下一时刻的预测值。

优化：划分为几个不定长度的时间窗口（按照经验划分，目的是窗口内的均值一致，比如烧烤店的数据在夜晚的部分划为一个窗口，人流量均值明显是高于白天的窗口内计算的均值），各自计算均值，看数据落在哪个窗口内，就用哪个窗口的统计均值来预测t+1时刻的值。或者使用固定长度L的时间窗口，计算t-L到t时刻内的均值，作为t+1时刻的预测值，这样也是变相考虑了相关性的大小，距离当前时刻越近的时刻相关性也就越大。

代码实现
# ]]></description><category></category></item><item><title><![CDATA[【时间序列预测算法】——朴素算法介绍及代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118079229</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118079229</guid><author>BlackValley</author><pubDate>Mon, 21 Jun 2021 09:31:45 +0800</pubDate><description><![CDATA[背景
时间序列问题从开始出现到开始研究，学者们对其开始的预测算法研究源于朴素预测算法。
公式

yt=αyt−1=αty0y_t=\alpha y_{t-1}=\alpha^ty_0yt​=αyt−1​=αty0​ ，其中α是常数，最简单的是=0.

推广优化为：

yt=αt−1yt−1+αt−2yt−2+...+αt−kyt−ky_t=\alpha_{t-1}y_{t-1}+\alpha_{t-2}y_{t-2}+...+\alpha_{t-k}y_{t-k}yt​=αt−1​yt−1​+αt−2​yt]]></description><category></category></item><item><title><![CDATA[【时间序列预测算法】——灰色预测算法介绍及代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118069976</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118069976</guid><author>BlackValley</author><pubDate>Sun, 20 Jun 2021 23:48:41 +0800</pubDate><description><![CDATA[基本概念

白色系统：系统结构和参数完全已知
黑色系统：系统结构和参数完全不知，只能观测外界交互
灰色系统：系统结构和参数部分已知。适合处理贫信息系统，小样本预测问题。
灰色生成：f(原始TSD)-&gt;y，如累加生成、累减生成。可以看出灰量递增/递减过程的发展态势，使原始数据中蕴含的积分规律显化。对生成数建立起微分方程形式的模型，便于对其变化过程进行研究和描述。G 表示 Grey（灰色），M 表示 Model（模型），所以GM(m,n)表示灰色模型。
a:发展系数;b:灰作用量
GM(1,1)或GM11]]></description><category></category></item><item><title><![CDATA[【时间序列预测算法】——ARIMA 算法介绍及代码实现]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118028791</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118028791</guid><author>BlackValley</author><pubDate>Sun, 20 Jun 2021 14:31:35 +0800</pubDate><description><![CDATA[基本概念

一阶差分：时间序列在t 与t-1 时刻函数值的差值，提升时序数据的平稳性（ARIMA算法对数据平稳性有要求）
二阶差分：在一阶差分的基础上再做一次（一般时序数据最多做两阶，再多则预测意义不大）
自回归模型：f(t)，t∈[0,m]f(t)，t\in[0,m]f(t)，t∈[0,m]已知历史数据，预测f(t′),t′&gt;mf(t'),t'&gt;mf(t′),t′&gt;m 。用变量自身的历史数据对自身进行预测 自回归模型必须满足平稳性的要求
ARIMA：全称“自回归移动平均模型”。记作ARI]]></description><category></category></item><item><title><![CDATA[【数据分析】——各种运载火箭主要参数比对]]></title><link>https://blog.youkuaiyun.com/BlackValley/article/details/118007651</link><guid>https://blog.youkuaiyun.com/BlackValley/article/details/118007651</guid><author>BlackValley</author><pubDate>Fri, 18 Jun 2021 02:38:14 +0800</pubDate><description><![CDATA[背景
空间站逐步建成，航天员入住空间站，这些逐步走进了大众的视野，作为一名数据分析爱好者，也想赶个热潮分析一波运载火箭的主要参数。
参数

全长 起飞质量 起飞推力，本来还分析运载能力，但数据不全，有的是GTO，有的是GEO，有的是SSO，所以只分析前三项。

数据分析代码
# 全长 起飞质量 起飞推力
cz5 = [60.5,849,10620]
cz7 = [53.1,591,7200,]
cz5b=[53.66,850,10620]
cz4=[41.9,249,2962]
cz3=[52.52,243]]></description><category></category></item></channel></rss>