Phase 01: Math Foundations

العمليات الستوكاستية

العشوائية مع الهيكل، والرياضيات وراء المشي العشوائي، سلسلة ماركوف، ونماذج التوزيع.

Type: Learn

Language:بايثون

Prerequisites: Phase 1, Lessons 06-07 (probability, Bayes)

Time: ~75 minutes

أهداف التعلم

  • محاكاة المشي عشوائي 1D و 2D و التحقق من \sqrt{n}تحديد حجم النزوح
  • بناء محاكاة سلسلة ماركوف وحساب توزيعها الثابت عن طريق التكوين الخاص
  • تنفيذ ديناميكيات ميتروبوليس-هاستينغز MCMC و لانجفين للاستعراض من توزيعات المستهدفة
  • ربط عملية التوزيع الأمامي إلى حركة براونية وشرح كيفية توليد البيانات من خلال العملية العكسية

المشكلة

العديد من أنظمة الذكاء الاصطناعي تتضمن عشوائية تتطور مع مرور الوقت، وليس عشوائية ثابتة -- عشوائية مهيكلة، تسلسلية حيث تعتمد كل خطوة على ما حدث من قبل.

النماذج اللغوية تولد رموز واحدة في كل مرة. كل رموز تعتمد على السياق السابق. النموذج يخرج توزيع الاحتمالات، ومعينة من ذلك، والتحرك على. وهذا هو عملية استوكاستية.

تضيف نماذج التنبع الضوضاء إلى صورة خطوة بخطوة حتى تصبح ثابتة خالصة. ثم يعكسون العملية ، ويقومون بتخفيض خطوة بخطوة حتى تظهر صورة جديدة. العملية الأمامية هي سلسلة ماركوف. العملية العكسية هي سلسلة ماركوف تعلمت تتراجع.

وكلاء التعلم التعزيزية يقومون بعمل في بيئة. كل عمل يؤدي إلى حالة جديدة مع بعض الاحتمالات. العميل يتبع سياسة عشوائية في عالم عشوائي. كل شيء هو عملية قرار ماركوف.

أخذ العينات من MCMC -- العمود الفقري للإستنتاج البايسي -- يبن سلسلة ماركوف التي توزعها الثابت هو الجزء الخلفي الذي تريد أن تأخذ العينات منه.

كل هذه البنائى على أربع أفكار أساسية:

  1. المشي عشوائية -- أبسط عملية استوكاستية
  2. سلسلة ماركوف -- الاختيار المُهيّن مع ماتريكس انتقالية
  3. ديناميكية لانجفين -- انخفاض التدرج مع الضوضاء
  4. "ميتروبوليس-هستنغز" -- أخذ عينات من أي توزيع

المفهوم

المشي العشوائي

البدء من الموقف 0، في كل خطوة، ضعي عملة عادلة. الرؤوس: تحرك يمينا (+1) والذيل: تحرك يسارا (-1).

بعدnخطوات، موقفك هو مجموع nعشوائية\pm 1القيم. الموقع المتوقع هو 0 (المشي غير متحيز) ولكن المسافة المتوقعة من المنشأ تزداد مع\sqrt{n}. . .

هذا غير بديهي. المشي عادلاً - لا يميل في أي اتجاه. ولكن مع مرور الوقت، يتجول أبعد وأكثر من حيث بدأ. الانحراف القياسي بعدnالخطوات هي\sqrt{n}. . .

code
Step 0:  Position = 0
Step 1:  Position = +1 or -1
Step 2:  Position = +2, 0, or -2
...
Step 100: Expected distance from origin ~ 10 (sqrt(100))
Step 10000: Expected distance from origin ~ 100 (sqrt(10000))

In 2D، المشي يتحرك للأعلى أو أسفل أو يساراً أو يميناً بنفس الاحتمالات\sqrt{n}يُطبق التقييم على المسافة من المنشأ. المسار يتتبع نمطًا شبيهًا بالجزر.

Why \sqrt{n}?كل خطوة هي +1 أو -1 مع احتمال متساوnالخطوات، الموقفS_n = X_1 + X_2 + \cdots + X_nحيث كل X_iهو\pm 1. المتباين لكل خطوة هو 1 والخطوات مستقلة، لذلك \mathop{\mathrm{Var}}(S_n) = nالاختلاف القياسي = \sqrt{n}. بحسب نظرية الحد المركزيS_n / \sqrt{n}يتقارب إلى التوزيع الطبيعي القياسي.

هذا\sqrt{n}يظهر التوسع في كل مكان في ML. مقياس ضجيج SGD على أنها 1/sqrt ((حجم اللحوم_).\sqrt{d}الجذر التربيعي هو توقيع الإضافات العشوائية المستقلة

Connection to Brownian motion.خذ مشي عشوائي مع حجم الخطوة1/\sqrt{n}وnخطوات لكل وحدة من الوقتnيذهب إلى اللانهاية، المشي يتقارب إلى حركة براونيةB(t)-- عملية متواصلة حيثB(t)يتم توزيعها عادة مع متوسط 0 والانقسام t. . .

حركة براون هي الأساس الرياضي للتشويق. إنها تمثّل الارتجاج العشوائي للجسيمات في السائل، وتقلبات أسعار الأسهم، و -الأهم من ذلك- عملية الضوضاء في نماذج التشويق.

Gambler's ruin.المشي عشوائي يبدأ في الموقفk، مع حواجز امتصاص عند 0 و Nما هي احتمالات الوصولNقبل 0؟ لمشي عادلا:P(\text{reach } N) = k/Nهذا بسيط ورائح بشكل مفاجئ. إنه يرتبط بنظرية المارتينغال -- المشي العادي العادل هو المارتينغال (القيمة المستقبلية المتوقعة = القيمة الحالية).

سلاسل ماركوف

سلسلة ماركوف هي نظام ينتقل بين الحالات وفقاً للاحتمالات الثابتة. الملكية الرئيسية: الحالة التالية تعتمد فقط على الحالة الحالية ، وليس على التاريخ.

P(X_{t+1} = j \mid X_t = i, X_{t-1} = \ldots) = P(X_{t+1} = j \mid X_t = i)

هذه هي خاصية ماركوف، وهذا يعني أنه يمكنك وصف الديناميكيا بأكملها مع المصفوفة الانتقاليةP:

P[i][j] = \text{probability of going from state } i \text{ to state } j

كل صف منPالمبالغ إلى 1 (يجب أن تذهب إلى مكان ما).

Example -- Weather:

code
States: Sunny (0), Rainy (1), Cloudy (2)

P = [[0.7, 0.1, 0.2],    (if sunny: 70% sunny, 10% rainy, 20% cloudy)
     [0.3, 0.4, 0.3],    (if rainy: 30% sunny, 40% rainy, 30% cloudy)
     [0.4, 0.2, 0.4]]    (if cloudy: 40% sunny, 20% rainy, 40% cloudy)

تبدأ في أي حالة بعد العديد من الانتقالات، توزيع الدول يتقارب إلى التوزيع الثابت\pi، حيث\pi P = \piهذا هو المتجه الخاص اليسرى منPمع القيمة الخاصة 1.

بالنسبة لسلسلة الطقس، توزيعها ثابت هو [0.55, 0.18, 0.27] -- على المدى الطويل، هو مشمس 55% من الوقت بغض النظر عن الحالة البداية.

graph LR
    S["Sunny"] -->|0.7| S
    S -->|0.1| R["Rainy"]
    S -->|0.2| C["Cloudy"]
    R -->|0.3| S
    R -->|0.4| R
    R -->|0.3| C
    C -->|0.4| S
    C -->|0.2| R
    C -->|0.4| C

Computing the stationary distribution.هناك طريقتان:

  1. Power method: ضرب أي توزيع أولي بـ Pبعد تكرار كاف، فإنه يتقارب.
  2. Eigenvalue method: العثور على المتجه الخاص اليسرى من Pمع القيمة الخاصة 1. هذا هو المتجه الخاص من P^Tمع القيمة الخاصة 1.

كل منهج يتطلب أن تلبي سلسلة ظروف التقارب.

Convergence conditions.تتقارب سلسلة ماركوف إلى توزيع ثابت فريد إذا كانت:

  • Irreducible: كل دولة يمكن الوصول إليها من كل دولة أخرى
  • Aperiodic: لا تتدفق السلسلة مع فترة ثابتة

معظم السلاسل التي تواجهها في ML تلبي كلا الشرطين

Absorbing states.حالة تتسم بالامتصاص إذا دخلتها ولم تغادر أبداًP[i][i] = 1امتصاص سلسلة ماركوف نموذج العمليات مع الحالات النهائية -- لعبة تنتهي، عميل الذي يزعج، تسلسل رمزية التي تضرب رمز نهاية النص.

Mixing time.كم خطوة حتى تكون السلسلة "قريبة" من التوزيع الثابت؟ بصورة رسمية، عدد الخطوات حتى يتراجع المسافة الإجمالية للتباين من الثبات إلى أقل من عدة عتبة. الاختلاط السريع = عدد قليل من الخطوات المطلوبة. بالنسبة للسلسلة المعاكسة، فإن الفجوة الطيفية من P(1 - أكبر حجم القيمة الفعلية غير القيمة الفعلية 1) يسيطر على وقت الاختلاط. الفجوة الأكبر = الاختلاط الأسرع.

الاتصال مع نماذج اللغة

إن توليد الرمز في نموذج لغة هو عملية ماركوف تقريبًا. بالنظر إلى السياق الحالي، يقوم النموذج بتوزيع على الرمز التالي. تتحكم درجة الحرارة في الحد:

P(\text{token}_i) = \frac{\exp(\text{logit}_i / \text{temperature})}{\sum_j \exp(\text{logit}_j / \text{temperature})}
  • درجة الحرارة = 1.0: توزيع قياسي
  • درجة الحرارة < 1.0: أكثر حدة (أكثر تحديدية)
  • درجة الحرارة > 1.0: مسطحة (أكثر عشوائية)
  • درجة الحرارة\to 0: argmax (طموح)

أجزاء العينات من أعلى الـkأوراق الاحتمال الأكبر. اختبار العينات (الجوهر) يختصر إلى أصغر مجموعة من الأوراق الاحتمالية التراكمية تتجاوز pكلاهما يُعِدّ احتمالات انتقال (ماركوف)

الحركة البروونية

الحد المتواصل للوقت من المشي عشوائية.B(t)لديها ثلاثة خصائص:

  1. B(0) = 0
  2. B(t) - B(s)يتم توزيعها عادة مع متوسط 0 والانقسام t - s(لـt > s)
  3. الزيادات على فترات غير متداخلة مستقلة

حركة براونية مستمرة ولكن لا يمكن التمييز فيها في أي مكان - إنها تتحرك في كل مقياس. المسار لديه بعد كسر 2 في المستوى.

في محاكاة منفصلة، تقترب من حركة براونية من خلال:

B(t + dt) = B(t) + \sqrt{dt} \, z, \quad \text{where } z \sim \mathcal{N}(0, 1)
  • نعم\sqrt{dt}التوسع مهم، يأتي من نظرية الحد المركزي المطبقة على المشيات العشوائية.

ديناميكيات لانجفين

يجد التراجع التدريجي الحد الأدنى من وظيفة. ديناميكا لانجفين يجد توزيع الاحتمالات متناسبة مع \exp(-U(x)/T)، حيثUهو وظيفة الطاقة وTهو درجة الحرارة.

x_{t+1} = x_t - dt \, \nabla U(x_t) + \sqrt{2 T \, dt} \, z_t

قوى اثنتان تعمل على الجسيمة:

  1. Gradient force(-dt \cdot \nabla U): تدفع نحو طاقة منخفضة (مثل انخفاض التراجعية)
  2. Random force(\sqrt{2T dt} \cdot z): تدفع في اتجاهات عشوائية (التنقيب)

عند درجة الحرارةT = 0في درجة حرارة عالية، إنها تقريباً مشي عشوائية، في درجة حرارة مناسبة، تقوم الجسيم باستكشاف المشهد الطياري ويقضي المزيد من الوقت في مناطق منخفضة الطاقة.

Connection to diffusion models.عملية التقدم في نموذج التوزيع هي:

x_t = \sqrt{\alpha_t} \, x_{t-1} + \sqrt{1 - \alpha_t} \cdot \text{noise}

هذه سلسلة ماركوف التي تضمّن البيانات ببطء مع الضجيج بعد خطوات كافيةx_Tهو ضجيج غوسيان خالص.

العملية العكسية -- من الضجيج إلى البيانات -- هي سلسلة ماركوف أيضاً، لكن احتمالات انتقالها يتم تعلمها من قبل شبكة عصبية. تتعلم الشبكة التنبؤ بالضجيج الذي تم إضافة كل خطوة، ثم تقوم بإسقاطه.

graph LR
    subgraph "Forward Process (add noise)"
        X0["x_0 (data)"] -->|"+ noise"| X1["x_1"]
        X1 -->|"+ noise"| X2["x_2"]
        X2 -->|"..."| XT["x_T (pure noise)"]
    end
    subgraph "Reverse Process (denoise)"
        XT2["x_T (noise)"] -->|"neural net"| XR2["x_{T-1}"]
        XR2 -->|"neural net"| XR1["x_{T-2}"]
        XR1 -->|"..."| XR0["x_0 (generated data)"]
    end

MCMC: سلسلة ماركوف مونتي كارلو

أحياناً تحتاج إلى أخذ عينات من التوزيعp(x)يمكن تقييمها (حتى ثابت) ولكن لا يمكن أن تأخذ عينات مباشرة من. البايزيونية اللاحقة هي المثال الكلاسيكي -- تعرف احتمال ضرب السابق، ولكن ثابت التطبيع هو صعب التعامل.

Metropolis-Hastingsيُبني سلسلة ماركوف التي توزعها ثابتةp(x):

  1. ابدأ من مكان ماx
  2. اقترح وظيفة جديدةx'من توزيع الاقتراح Q(x' \mid x)
  3. نسبة قبول الحساب: a = p(x') Q(x \mid x') / (p(x) Q(x' \mid x))
  4. اقبلx'مع احتمال\min(1, a)وإلا إبق فيx. . .
  5. أكرر

إذاQهو متماثل (مثل: Q(x' \mid x) = Q(x \mid x') = \mathcal{N}(x, \sigma^2){}), يسهل النسبة إلى a = p(x') / p(x)تحتاج فقط إلى نسبة الاحتمالات -- استمرار التطبيع يلغي.

السلسلة تضمن التقارب إلىp(x)ولكن التقارب يمكن أن يكون بطيئًا إذا كان الاقتراح صغيرًا جدًا (مشي عشوائي) أو كبيرًا جدًا (رفض مرتفع).

Why it works.نسبة القبول تضمن التوازن التفصيلي: احتمال وجودxونتحرك إلىx'يساوي احتمال وجودها فيx'ونتحرك إلىxالتوازن المفصل يعني أنp(x)و هو توزيع السلسلة الثابتة. لذا بعد خطوات كافية، تأتي العينات منp(x). . .

Practical considerations:

  • Burn-in: إرمي الأولNتحتاج السلسلة إلى وقت للوصول إلى التوزيع الثابت من نقطة البداية.
  • Thinning: احتفظ بكلk- العينة الثالثة لتقليل التنسيق الذاتي
  • Multiple chains: تشغيل سلسلة متعددة من نقاط بداية مختلفة. إذا تجتمع إلى نفس التوزيع، لديك دليل على التقارب.
  • Acceptance rate: للقراءات غوسية في dحيث أن معدل قبول المجموعة المثلى يبلغ حوالي 23٪ (روبرتس وروزنتال، 2001) ، فإن ارتفاع السلسلة يعني أنه لا يتحرك بالكاد.

العمليات الاستوكاستية في الذكاء الاصطناعي

ProcessAI Application
Random walkExploration in RL, Node2Vec embeddings
Markov chainText generation, MCMC sampling
Brownian motionDiffusion models (forward process)
Langevin dynamicsScore-based generative models, SGLD
Markov decision processReinforcement learning
Metropolis-HastingsBayesian inference, posterior sampling

بناءها

الخطوة الأولى: محاكاة المشي عشوائية

python
import numpy as np

def random_walk_1d(n_steps, seed=None):
    rng = np.random.RandomState(seed)
    steps = rng.choice([-1, 1], size=n_steps)
    positions = np.concatenate([[0], np.cumsum(steps)])
    return positions


def random_walk_2d(n_steps, seed=None):
    rng = np.random.RandomState(seed)
    directions = rng.choice(4, size=n_steps)
    dx = np.zeros(n_steps)
    dy = np.zeros(n_steps)
    dx[directions == 0] = 1   # right
    dx[directions == 1] = -1  # left
    dy[directions == 2] = 1   # up
    dy[directions == 3] = -1  # down
    x = np.concatenate([[0], np.cumsum(dx)])
    y = np.concatenate([[0], np.cumsum(dy)])
    return x, y

المشي 1D تخزين مجموعات كل خطوة هي +1 أو -1. بعد nالخطوات، الموقف هو المجموع. يزداد التباين خطيا مع n، لذا الاختلاف القياسي ينمو\sqrt{n}. . .

الخطوة الثانية: سلسلة ماركوف

python
class MarkovChain:
    def __init__(self, transition_matrix, state_names=None):
        self.P = np.array(transition_matrix, dtype=float)
        self.n_states = len(self.P)
        self.state_names = state_names or [str(i) for i in range(self.n_states)]

    def step(self, current_state, rng=None):
        if rng is None:
            rng = np.random.RandomState()
        probs = self.P[current_state]
        return rng.choice(self.n_states, p=probs)

    def simulate(self, start_state, n_steps, seed=None):
        rng = np.random.RandomState(seed)
        states = [start_state]
        current = start_state
        for _ in range(n_steps):
            current = self.step(current, rng)
            states.append(current)
        return states

    def stationary_distribution(self):
        eigenvalues, eigenvectors = np.linalg.eig(self.P.T)
        idx = np.argmin(np.abs(eigenvalues - 1.0))
        stationary = np.real(eigenvectors[:, idx])
        stationary = stationary / stationary.sum()
        return np.abs(stationary)

التوزيع الثابت هو المتجه الخاص اليسرى من Pمع القيمة الخاصة 1 نجدها عن طريق حساب المتجهات الخاصة من P^T(تحويل المتجهات الخارجيّة إلى المتجهات الخارجيّة إلى المتجهات الخارجيّة إلى اليمين).

الخطوة الثالثة: ديناميكيات لانجفين

python
def langevin_dynamics(grad_U, x0, dt, temperature, n_steps, seed=None):
    rng = np.random.RandomState(seed)
    x = np.array(x0, dtype=float)
    trajectory = [x.copy()]
    for _ in range(n_steps):
        noise = rng.randn(*x.shape)
        x = x - dt * grad_U(x) + np.sqrt(2 * temperature * dt) * noise
        trajectory.append(x.copy())
    return np.array(trajectory)

التراجع يدفعxفي حالة التوازن، توزيع العينات متناسبة مع\exp(-U(x)/\text{temperature}). . .

الخطوة الرابعة: "ميتروبوليس"

python
def metropolis_hastings(target_log_prob, proposal_std, x0, n_samples, seed=None):
    rng = np.random.RandomState(seed)
    x = np.array(x0, dtype=float)
    samples = [x.copy()]
    accepted = 0
    for _ in range(n_samples - 1):
        x_proposed = x + rng.randn(*x.shape) * proposal_std
        log_ratio = target_log_prob(x_proposed) - target_log_prob(x)
        if np.log(rng.rand()) < log_ratio:
            x = x_proposed
            accepted += 1
        samples.append(x.copy())
    acceptance_rate = accepted / (n_samples - 1)
    return np.array(samples), acceptance_rate

يقدم الخوارزمية نقطة جديدة ، ويختبر ما إذا كانت لديها احتمال أكبر (أو تقبل مع احتمال متناسب مع النسبة) ، ويكرر. يجب أن يكون معدل القبول حوالي 23-50٪ للتلاعب الجيد.

استخدمها

في الممارسة العملية، تستخدم المكتبات القائمة لهذه الخوارزميات ولكن فهم الميكانيكا مهم في التحليل والتحديد.

python
import numpy as np

rng = np.random.RandomState(42)
walk = np.cumsum(rng.choice([-1, 1], size=10000))
print(f"Final position: {walk[-1]}")
print(f"Expected distance: {np.sqrt(10000):.1f}")
print(f"Actual distance: {abs(walk[-1])}")

النمبي للمصفوفات الانتقالية

python
import numpy as np

P = np.array([[0.7, 0.1, 0.2],
              [0.3, 0.4, 0.3],
              [0.4, 0.2, 0.4]])

distribution = np.array([1.0, 0.0, 0.0])
for _ in range(100):
    distribution = distribution @ P

print(f"Stationary distribution: {np.round(distribution, 4)}")

ضرب التوزيع الأولي بـ Pبعد تكرار كاف، فإنه يتقارب إلى التوزيع الثابت بغض النظر عن المكان الذي بدأت فيه. هذه هي طريقة الطاقة للعثور على المتجه الخاص اليسرى المهيمن.

الروابط إلى الإطار الحقيقي

  • PyTorch diffusion:- نعمDDPMSchedulerفي العناق الوجهdiffusersيطبق سلسلة ماركوف الأمامية والعكسية
  • NumPyro / PyMC:استخدام MCMC (مُعينة NUTS، التي تحسن على Metropolis-Hastings) للإستنتاج البايسي
  • Gymnasium (RL):وظيفة خطوة البيئة تعريف عملية قرار ماركوف

التحقق من التقارب في سلسلة ماركوف

python
import numpy as np

P = np.array([[0.9, 0.1], [0.3, 0.7]])

eigenvalues = np.linalg.eigvals(P)
spectral_gap = 1 - sorted(np.abs(eigenvalues))[-2]
print(f"Eigenvalues: {eigenvalues}")
print(f"Spectral gap: {spectral_gap:.4f}")
print(f"Approximate mixing time: {1/spectral_gap:.1f} steps")

الفجوة الطيفية تخبرك كم السلسلة تنسى حالتها الأولية بسرعة. فجوة 0.2 تعني حوالي 5 خطوات للتخليط. فجوة 0.01 تعني حوالي 100 خطوة. تحقق دائما من هذا قبل تشغيل محاكاة طويلة -- حساب مخلوطة سلسلة نفايات ببطء.

أرسله

هذا الدرس ينتج عن:

  • outputs/prompt-stochastic-process-advisor.md-- عرض يساعد على تحديد إطار العملية الاستوكاستية المطبقة على مشكلة معينة

العلاقات

ConceptWhere it shows up
Random walkNode2Vec graph embeddings, exploration in RL
Markov chainToken generation in LLMs, MCMC sampling
Brownian motionForward diffusion process in DDPM, SDE-based models
Langevin dynamicsScore-based generative models, stochastic gradient Langevin dynamics (SGLD)
Stationary distributionMCMC convergence target, PageRank
Metropolis-HastingsBayesian posterior sampling, simulated annealing
TemperatureLLM sampling, Boltzmann exploration in RL, simulated annealing
Mixing timeConvergence speed of MCMC, spectral gap analysis
Absorbing stateEnd-of-sequence token, terminal states in RL
Detailed balanceCorrectness guarantee for MCMC samplers

تستحق نماذج الانتشار اهتمامًا خاصًا. تعرّف DDPM (Ho et al., 2020) سلسلة ماركوف الأمامية:

q(x_t \mid x_{t-1}) = \mathcal{N}\left(x_t; \sqrt{1-\beta_t} \, x_{t-1}, \beta_t I\right)

أين\beta_tهو جدول ضجيج. بعدTخطواتx_Tهو تقريبا\mathcal{N}(0, I). العملية العكسية يتم تحديدها بواسطة شبكة عصبية تتوقع الضوضاء:

p_\theta(x_{t-1} \mid x_t) = \mathcal{N}\left(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2 I\right)

كل خطوة من التوليد هي خطوة في سلسلة ماركوف تعلم. فهم سلسلة ماركوف يعني فهم كيف ولماذا نموذج التوزيع تولد البيانات.

SGLD (حركة Langevin المتحركة من حيث التدريج المتحرك) تجمع بين انخفاض التدريج المحدد مع ضجيج Langevin. بدلاً من حساب التراجع الكامل، تستخدم تقديرًا استوكاستيكيًا وتضيف ضجيجًا مقياسيًا. مع تراجع معدل التعلم، فإن SGLD تنتقل من التحسين إلى أخذ العينات -- تحصل على عينات بايزية خلفية تقريبا مجانا. هذه واحدة من أبسط الطرق للحصول على تقديرات عدم اليقين من شبكة عصبية.

المفهوم الرئيسي عبر كل هذه العلاقات: العمليات الاستوكاسية ليست أدوات نظرية فقط. إنها آليات الحساب داخل أنظمة الذكاء الاصطناعي الحديثة. عندما تقوم بتحديد درجة حرارة ماجستير في العلوم، أنت تقوم بتعديل سلسلة ماركوف. عندما تدرب نموذج التوزيع، تتعلمين كيفية عكس عملية مثل حركة براون. عندما تقوم بإجراء استنتاج بايسي، تقوم ببناء سلسلة تتقارب إلى الخلفية.

التمارين

  1. Simulate 1000 random walks of 10000 steps.رسم توزيع المواقع النهائية. التحقق من أنه تقريبا غوسيان مع متوسط 0 والانحراف القياسي \sqrt{10000} = 100. . .
  1. Build a text generator using a Markov chain.تدريب على مجموعة صغيرة: لكل كلمة، عد الانتقالات إلى الكلمة التالية. بناء ماتريكية الانتقال. توليد جمل جديدة عن طريق أخذ عينات من السلسلة.
  1. Implement simulated annealingاستخدام متروبوليس-هستينغز. تبدأ عند درجة حرارة عالية (تقبل كل شيء تقريبا) وتبرد تدريجيا (تقبل تحسينات فقط). استخدمها للعثور على الحد الأدنى من وظيفة مع العديد من الحد الأدنى المحلية.
  1. Compare Langevin dynamics at different temperatures.عينة من إمكانات البئر المزدوجU(x) = (x^2 - 1)^2عند درجة حرارة منخفضة، تجمع العينات في بئر واحد، عند درجة حرارة عالية، تنتشر على كليهما.
  1. Implement the forward diffusion process.ابدأ بإشارة 1D (مثل موجة الصدري). أضف الضجيج تدريجياً على مدى 100 خطوة مع جدول ضجيج خطي. أظهر كيف تتدهور الإشارة إلى ضجيج نقي. ثم قم بتنفيذ مؤشر بسيط يعكس العملية (حتى واحد ساذج يخص فقط الضجيج المقدر).

إشارات

Exercise 1.اتصلrandom_walk_1d(10000, seed=i)على 1000 بذرة وابق كل موقع نهائي. تحقق من أن المتوسط قريب من 0، والانحراف القياسي قريب من 100، و حوالي 68٪ من المواقع النهائية بين -100 و 100.

Exercise 2.عد كل زوج من الكلمات، ثم تقسيم كل سطر بحجمها بحيث كل سطر يصل إلى 1.MarkovChain(transition_matrix, state_names)و اتصلsimulateتحقق من أن كل زوج من الكلمات في النتائج الخاصة بك تحدث أيضا في الجسم.

Exercise 3.اقبل نقطة أسوأ مع احتمال\exp(-\Delta / T)و تكرارTاختبر على وظيفة التي تعرف الحد الأدنى منها، و تحقق من إجابتك مع بحث شبكة دقيقة.

Exercise 4.التراجع هو4x(x^2 - 1)، لذا مرّ ذلك إلىlangevin_dynamics(grad_U, x0, dt, temperature, n_steps)الحاجز فيx = 0يبلغ ارتفاعه 1، لذا عد عدد المرات التي يظهر فيها علامةxتغيرات درجات الحرارة من 0.05 إلى 1 و ابحث عن درجة الحرارة التي تبدأ العدد في الارتفاع بسرعة.

Exercise 5.اتصلdiffusion_forward(signal, 100)و الحساب\bar{\alpha}في الخطوة الأخيرة كمنتج من(1 - \beta_t)إذا\bar{\alpha}هو بعيدا عن 0، الإشارة ليست ضجيج خالص بعد، لذلك رفع beta_endاختبر المُخفّص أولاً بالضوضاء الحقيقية ، ثمّ(x_t - \sqrt{1 - \bar{\alpha}_t} \epsilon)/\sqrt{\bar{\alpha}_t}يجب أن يعيد الإشارة الأصلية بالضبط

الشروط الرئيسية

TermWhat people sayWhat it actually means
Random walk"Coin-flip movement"A process where position changes by random increments at each step
Markov property"Memoryless"The future depends only on the present state, not on the history
Transition matrix"The probability table"P[i][j] = probability of moving from state i to state j
Stationary distribution"The long-run average"The distribution \pi where \pi P = \pi -- the chain's equilibrium
Brownian motion"Random jiggling"The continuous-time limit of a random walk, B(t) \sim \mathcal{N}(0, t)
Langevin dynamics"Gradient descent with noise"Update rule that combines deterministic gradient and random perturbation
MCMC"Walking toward the target"Constructing a Markov chain whose stationary distribution is the one you want
Metropolis-Hastings"Propose and accept/reject"MCMC algorithm that uses acceptance ratios to ensure convergence
Temperature"The randomness knob"Parameter controlling the tradeoff between exploration and exploitation
Diffusion process"Noise in, noise out"Forward: gradually add noise. Reverse: gradually remove it. Generates data.

المزيد من القراءة

  • Ho, Jain, Abbeel (2020)-- "إرفض نماذج احتمالية التوزيع". ورقة DDPM التي أطلقت ثورة نموذج التوزيع. مشتق واضح من سلسلة ماركوف الأمامية والعكسية.
  • Song & Ermon (2019)-- "المؤثرات التجاريّة عن طريق تقدير درجات توزيع البيانات". النهج القائم على النتيجة باستخدام ديناميكيات لنجفين للاستعراض.
  • Roberts & Rosenthal (2004)-- "سلسلة ماركوف العامة في الفضاء والخوارزميات MCMC". النظرية وراء متى و لماذا يعمل MCMC.
  • Norris (1997)-- "سلسلة ماركوف" -- كتاب دراسي قياسي يغطي التقارب، التوزيعات الثابتة، وأوقات الضربة
  • Welling & Teh (2011)-- "التعلم البايسي عن طريق ديناميكة لانجفين المتحركة". يجمع بين SGD و ديناميكة لانجفين

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.