Logistic映射的简单理解

Logistic映射

在看论文时看到了这个概念,于是就去简单了解了一下。

参考博客

1.前言

谈到Logistic映射就要先谈一谈什么是混沌系统。百度百科上的解释是,混沌系统是指在一个确定性系统中,存在着貌似随机的不规则运动,其行为表现为不确定性、不可重复、不可预测,这就是混沌现象。混沌是非线性动力系统的固有特性,是非线性系统普遍存在的现象。

最耳熟能详的混乱现象莫过于蝴蝶效应。这是美国气象学家爱德华·洛伦兹(Edward N.Lorenz)于1963年在一篇提交纽约科学院的论文提到的一种现象。简单来说,对于一个混沌系统,如果初始条件发生了极为微小的变化,比如 x 0 : 0.5556 → 0.5555 x_0:0.5556\rightarrow0.5555 x0:0.55560.5555,那么最终得到的结果会出现极大的差异。这是因为初始时的微小误差会在一系列的计算过程中以指数形式增长,最终增长到无法忽略的地步。

Logistic映射就是这样一种比较简单的一维混沌系统。

2.Logistic映射

Logistic映射的定义存在多种形式,我遇到的一种定义形式如下所示:
x n + 1 = x n μ ( 1 − x n ) , μ ∈ [ 0 , 4 ] , x n ∈ ( 0 , 1 ) x_{n+1}=x_n\mu(1-x_n),\mu\in[0,4],x_n\in(0,1) xn+1=xnμ(1xn),μ[0,4],xn(0,1)
上式中, μ \mu μ被称为分支参数。值得一提的是,Logistic映射并不一定处于混沌状态,这与 μ \mu μ的取值有关。相关研究指出,只有当 3.5699456 < μ ≤ 4 3.5699456<\mu\leq4 3.5699456<μ4,Logistic映射才具有混沌性质。

下面我会用MATLAB图像来展示Logistic映射的一些性质。主要做两个工作:

  1. 当初始值相同时,观察 μ \mu μ对Logistic映射造成的影响;
  2. 3.5699456 < μ ≤ 4 3.5699456<\mu\leq4 3.5699456<μ4,观察不同初始值对Logistic映射造成的影响.

2.1. μ \mu μ对Logistic映射的影响

mu = [3.8,3.0,3.99];  % mu的取值
MaxCycle = 1000;
N = 3;
x = zeros(MaxCycle,N);
x(1,:) = 0.5;  %  初始值

cycle = 1;
while cycle <= MaxCycle - 1
    for i = 1:N
        % 一维logistic映射
        x(cycle + 1,i) = x(cycle,i) * mu(i) * (1 - x(cycle,i));
    end
    cycle = cycle + 1;
end
% 绘图
y = 1:MaxCycle;
scatter(y,x(:,1));
hold on
scatter(y,x(:,2));
scatter(y,x(:,3));
title("logistic映射");
xlabel("迭代次数(x0=0.5)");
ylabel("Logistic映射");
legend('mu=3.80','mu=3.00','mu=3.99');
% 可以发现,当mu越靠近4时,整幅图像呈现出一种伪随机分布的情况,与[0,1]均匀分布很像;
% 而当mu处于其它范围时,函数最终会收敛到某个值.

在这里插入图片描述

2.2.初始值对Logistic映射的影响

mu = 3.99;  % mu的取值
MaxCycle = 100;
N = 2;
x = zeros(MaxCycle,N);
x(1,:) = [0.5556,0.5555];  %  初始值

cycle = 1;
while cycle <= MaxCycle - 1
    for i = 1:N
        % 一维logistic映射
        x(cycle + 1,i) = x(cycle,i) * mu * (1 - x(cycle,i));
    end
    cycle = cycle + 1;
end
% 绘图
y = 1:MaxCycle;
scatter(y,x(:,1));
hold on
scatter(y,x(:,2));
title("logistic映射");
xlabel("迭代次数(mu=3.99)");
ylabel("Logistic映射");
legend('x0=0.5556','x0=0.5555');
% 可以发现,虽然初始值的误差只有0.0001,但整体的映射却是完全不同的

在这里插入图片描述
写到这里我突然想到,matlab或者用其它语言编写的随机函数是真随机吗?如果只是伪随机的话,那么可以实现真随机函数吗?如何实现?这个问题就留给我之后再细想吧。

### Logistic 回归原理 Logistic 回归是一种用于解决分类问题的统计方法,在机器学习领域广泛应用。尽管名字中有 "回归" 二字,但实际上它主要用于处理二元分类或多类分类任务。 #### 基本概念 对于给定的数据集 \((x^{(i)}, y^{(i)})\) ,其中 \(y^{(i)}\in{0,1}\),目标是找到一个函数能够预测输入特征对应的类别标签。为了实现这一点,Logistic 回归采用 Sigmoid 函数将线性组合的结果映射到 (0,1) 的概率区间内: \[ h_\theta(x)=g(\theta^Tx), g(z)=\frac{1}{1+e^{-z}} \] 这里 \(h_\theta(x)\) 表示当输入为 \(x\) 时属于正类的概率估计值;\(g(z)\) 是标准Sigmoid函数[^1]。 #### 成本函数与优化算法 由于直接应用最小二乘法可能导致过拟合等问题,因此通常使用最大似然估计来构建成本函数 J(θ): \[J(\theta )=-\left[\sum _{{i=1}}^{m}y^{(i)}\log(h_{\theta }(x^{(i)}))+(1-y^{(i)})\log(1-h_{\theta }(x^{(i)}))\right]\] 通过梯度下降或其他最优化技术调整参数 θ 来使上述损失函数达到极小化状态,从而获得最优决策边界[^4]。 #### 多项式逻辑斯谛回归 除了经典的二元分类外,还可以扩展至多分类场景——即多项式逻辑斯谛回归(Multinomial Logistic Regression)。此时不再简单区分两类样本而是多个离散型输出变量之间的关系建模。 例如在一个三分类问题中,可以分别计算每个类别的条件概率并选取具有最高概率的那个作为最终预测结果: \[P(Y=k|X=x;\Theta )=\frac{\exp (\theta_k ^T x)}{\sum_j^n {\exp({\theta_j }^ T x)}}\] 这种形式被称为softmax回归,其本质仍然是基于极大似然原则求解最佳权重向量集合Θ={θ₁,... ,θₖ}[^2]。 ```matlab % 下面是一个简单MATLAB代码片段展示如何训练一个多分类器 load fisheriris; species = categorical(species); predictorNames = {'SepalLength','SepalWidth','PetalLength','PetalWidth'}; mdl = fitcecoc(meas, species,'Learners', 'logit',... 'PredictorNames', predictorNames,... 'ResponseName', 'Species'); ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值