0-সেন্সরযুক্ত মাল্টিভারিয়েট স্বাভাবিকের অর্থ এবং তারতম্য কী?


9

যাক করা হবে না । (সর্বাধিক গণিত সাথে এর গড় এবং ম্যাট্রিক্স কী ?ZN(μ,Σ)RdZ+=max(0,Z)

এটি সামনে আসে উদাহরণস্বরূপ, কারণ আমরা যদি একটি গভীর নেটওয়ার্কের অভ্যন্তরে ReLU অ্যাক্টিভেশন ফাংশনটি ব্যবহার করি এবং সিএলটি এর মাধ্যমে ধরে নিই যে কোনও প্রদত্ত স্তরের ইনপুটগুলি প্রায় স্বাভাবিক, তবে এটি আউটপুটগুলির বিতরণ।

(আমি নিশ্চিত যে এর আগেও অনেকে এই গণনা করেছেন তবে আমি যুক্তিসঙ্গত পঠনযোগ্য উপায়ে কোথাও তালিকাভুক্ত ফলাফলটি পাইনি))


এটি আপনার উত্তরকে সহজতর করবে - সম্ভবত প্রচুর পরিমাণে - দুটি পৃথক প্রশ্নের ফলাফলকে একত্রিত করে আপনি এটি অর্জন করতে পারবেন তা পর্যবেক্ষণ করতে হবে: (1) কাটা কাটা সাধারণ বিতরণের মুহূর্তগুলি কী এবং (২) একটি মিশ্রণের মুহুর্তগুলি কী কী? ? পরবর্তীটি সোজা এবং আপনার যা করা দরকার তা হ'ল পূর্বের ফলাফলগুলি উদ্ধৃত করা।
whuber

@ হুবু হুম যদিও আমি এটি স্পষ্টভাবে না বলি, মূলত আমি আমার উত্তরে যা করি, তা ছাড়া আমি একটি সাধারণ উপায় এবং বৈকল্পিকতা সহ একটি কাটা দ্বিখণ্ডিত বিতরণের ফলাফল খুঁজে পাইনি এবং তাই কিছুটা স্কেলিং এবং স্থানান্তরিত করতে হয়েছিল। আমার কি পরিমাণ বীজগণিত না করে উদ্বিগ্নতা অর্জনের কোনও উপায় আছে? আমি অবশ্যই দাবি করছি না যে এই উত্তরের কোনও কিছুই উপন্যাস, কেবল বীজগণিত ক্লান্তিকর এবং ত্রুটি-প্রবণ ছিল এবং সম্ভবত অন্য কেউ সমাধানটি দরকারী বলে মনে করতে পারেন।
ডুগল

ডান: আমি নিশ্চিত যে আপনার বীজগণিতটি আমি যে বর্ণনা করেছি তার সাথে সমান, তাই দেখে মনে হচ্ছে বীজগণিতকে সহজ করার জন্য আমরা একটি উপলব্ধি ভাগ করে নেওয়া সম্ভব possible বীজগণিত হ্রাস করার একটি সহজ উপায় হ'ল থেকে unity তির্যক উপাদানগুলিকে মানিক করা , কারণ যা হয় তা প্রতিটি ভেরিয়েবলের জন্য পরিমাপের একক স্থাপন করা। সেই মুহূর্তে আপনি রোজেনবাউমের ফলাফলগুলিকে মিশ্রণের মুহুর্তের জন্য (সরল, স্পষ্ট) এক্সপ্রেশনটিতে সরাসরি প্লাগ করতে পারেন। এটি এমনকি বীজগণিত সরলকরণের স্বাদের বিষয় হতে পারে: সরলকরণ ছাড়াই এটি একটি সাধারণ, মডুলার কম্পিউটার প্রোগ্রামের দিকে পরিচালিত করে। Σ
whuber

1
আমি মনে করি যে কোনও প্রোগ্রাম লিখতে পারে যা রোজেনবাউমের ফলাফলগুলির সাথে সরাসরি মুহুর্তগুলিকে গণনা করে এবং যথাযথভাবে মিশ্রিত করে এবং তারপরে স্থানান্তরিত করে এবং স্কেলগুলি মূল জায়গাতে ফিরিয়ে দেয়। এটি সম্ভবত আমি এটি করার চেয়ে দ্রুততর হতে পারতাম।
ডুগল

উত্তর:


7

আমরা প্রথমে কেবলমাত্র সাধারণ বিতরণের কিছু মুহুর্তের উপর নির্ভর করতে এটি হ্রাস করতে পারি: অবশ্যই নোট করুন যে

E[Z+]=[E[(Zi)+]]iCov(Z+)=[Cov((Zi)+,(Zj)+)]ij,
এবং কারণ আমরা একটি সাধারণ বিতরণের কিছু মাত্রার সমন্বয়-বর্ধিত রূপান্তর করছি, আমরা কেবল 1 ডি সেন্সর করা স্বাভাবিকের গড় এবং বৈকল্পিকতা এবং দুটি 2 ডি সেন্সর হওয়া নরমালদের সহজাততা সম্পর্কে চিন্তা করা দরকার।

আমরা এর থেকে কিছু ফলাফল ব্যবহার করব

এস রোজেনবাউম (1961)। একটি কাটা কাটা বাইভারিয়েট সাধারণ বিতরণের মুহুর্তগুলি । জেআরএসএস বি, খণ্ড 23 পিপি 405-408। ( jstor )

রোজেনবাউম এবং ইভেন্টে ছাঁটাই বিবেচনায় ।

[X~Y~]N([00],[1ρρ1]),
V={X~aX,Y~aY}

বিশেষত, আমরা নিম্নলিখিত তিনটি ফলাফল ব্যবহার করব, তার (1), (3) এবং (5)। প্রথমে নিম্নলিখিতগুলি সংজ্ঞায়িত করুন:

কুইএক্স=φ(একটিএক্স)কুইY=φ(একটিY)প্রশ্নঃএক্স=Φ(-একটিএক্স)প্রশ্নঃY=Φ(-একটিY)আরএক্সY=Φ(ρএকটিএক্স-একটিY1-ρ2)আরYএক্স=Φ(ρএকটিY-একটিএক্স1-ρ2)Rএক্সY=1-ρ22πφ(2-2ρ+ +21-ρ2)

এখন, রোজেনবাউম দেখায় যে:

(1)pr(ভী)[এক্স~|ভী]=কুইএক্সআরএক্সY+ +ρকুইYআরYএক্স(3)pr(ভী)[এক্স~2|ভী]=pr(ভী)+ +একটিএক্সকুইএক্সআরএক্সY+ +ρ2একটিYকুইYআরYএক্স+ +ρRএক্সY(5)pr(ভী)[এক্স~ওয়াই~|ভী]=ρpr(ভী)+ +ρএকটিএক্সকুইএক্সআরএক্সY+ +ρএকটিYকুইYআরYএক্স+ +Rএক্সY

(1) এবং (3) এর বিশেষ ক্ষেত্রে , অর্থাত্ 1 ডি ট্রাঙ্কেশন: সাথে বিবেচনাএকটিY=-

(*)pr(ভী)[এক্স~|ভী]=কুইএক্স(**)pr(ভী)[এক্স~2|ভী]=pr(ভী)=প্রশ্নঃএক্স

আমরা এখন বিবেচনা করতে চাই

[XY]=[μxμy]+[σx00σy][X~Y~]N([μXμY],[σx2ρσxσyρσxσyσy2])=N(μ,Σ).

আমরা যা এবং of মান যখন , ।

ax=μxσxay=μyσy,
X~Y~X=0Y=0

এখন, (*) ব্যবহার করে আমরা এবং উভয় (*) এবং (**) ফলন using যাতে

E[X+]=Pr(X+>0)E[XX>0]+Pr(X+=0)0=Pr(X>0)(μx+σxE[X~X~ax])=Qxμx+qxσx,
E[X+2]=Pr(X+>0)E[X2X>0]+Pr(X+=0)0=Pr(X~ax)E[(μx+σxX~)2X~ax]=Pr(X~ax)E[μx2+μxσxX~+σx2X~2X~ax]=Qxμx2+qxμxσx+Qxσx2
Var[X+]=E[X+2]E[X+]2=Qxμx2+qxμxσx+Qxσx2Qx2μx2qx2σx22qxQxμxσx=Qx(1Qx)μx2+(12Qx)qxμxσx+(Qxqx2)σx2.

জন্য , আমরা প্রয়োজন হবে Cov(X+,Y+)

E[X+Y+]=Pr(V)E[XYV]+Pr(¬V)0=Pr(V)E[(μx+σxX~)(μy+σyY~)V]=μxμyPr(V)+μyσxPr(V)E[X~V]+μxσyPr(V)E[Y~V]+σxσyPr(V)E[X~Y~V]=μxμyPr(V)+μyσx(qxRxy+ρqyRyx)+μxσy(ρqxRxy+qyRyx)+σxσy(ρPr(V)ρμxqxRxy/σxρμyqyRyx/σy+rxy)=(μxμy+σxσyρ)Pr(V)+(μyσx+μxσyρρμxσy)qxRxy+(μyσxρ+μxσyρμyσx)qyRyx+σxσyrxy=(μxμy+Σxy)Pr(V)+μyσxqxRxy+μxσyqyRyx+σxσyrxy,
এবং তারপরে বিয়োগ করে আমরা পেয়ে যাব E[X+]E[Y+]
Cov(X+,Y+)=(μxμy+Σxy)Pr(V)+μyσxqxRxy+μxσyqyRyx+σxσyrxy(Qxμx+qxσx)(Qyμy+qyσy).

মুহুর্তগুলি গণনা করার জন্য এখানে কিছু পাইথন কোড রয়েছে:

import numpy as np
from scipy import stats

def relu_mvn_mean_cov(mu, Sigma):
    mu = np.asarray(mu, dtype=float)
    Sigma = np.asarray(Sigma, dtype=float)
    d, = mu.shape
    assert Sigma.shape == (d, d)

    x = (slice(None), np.newaxis)
    y = (np.newaxis, slice(None))

    sigma2s = np.diagonal(Sigma)
    sigmas = np.sqrt(sigma2s)
    rhos = Sigma / sigmas[x] / sigmas[y]

    prob = np.empty((d, d))  # prob[i, j] = Pr(X_i > 0, X_j > 0)
    zero = np.zeros(d)
    for i in range(d):
        prob[i, i] = np.nan
        for j in range(i + 1, d):
            # Pr(X > 0) = Pr(-X < 0); X ~ N(mu, S) => -X ~ N(-mu, S)
            s = [i, j]
            prob[i, j] = prob[j, i] = stats.multivariate_normal.cdf(
                zero[s], mean=-mu[s], cov=Sigma[np.ix_(s, s)])

    mu_sigs = mu / sigmas

    Q = stats.norm.cdf(mu_sigs)
    q = stats.norm.pdf(mu_sigs)
    mean = Q * mu + q * sigmas

    # rho_cs is sqrt(1 - rhos**2); but don't calculate diagonal, because
    # it'll just be zero and we're dividing by it (but not using result)
    # use inf instead of nan; stats.norm.cdf doesn't like nan inputs
    rho_cs = 1 - rhos**2
    np.fill_diagonal(rho_cs, np.inf)
    np.sqrt(rho_cs, out=rho_cs)

    R = stats.norm.cdf((mu_sigs[y] - rhos * mu_sigs[x]) / rho_cs)

    mu_sigs_sq = mu_sigs ** 2
    r_num = mu_sigs_sq[x] + mu_sigs_sq[y] - 2 * rhos * mu_sigs[x] * mu_sigs[y]
    np.fill_diagonal(r_num, 1)  # don't want slightly negative numerator here
    r = rho_cs / np.sqrt(2 * np.pi) * stats.norm.pdf(np.sqrt(r_num) / rho_cs)

    bit = mu[y] * sigmas[x] * q[x] * R
    cov = (
        (mu[x] * mu[y] + Sigma) * prob
        + bit + bit.T
        + sigmas[x] * sigmas[y] * r
        - mean[x] * mean[y])

    cov[range(d), range(d)] = (
        Q * (1 - Q) * mu**2 + (1 - 2 * Q) * q * mu * sigmas
        + (Q - q**2) * sigma2s)

    return mean, cov

এবং এটি কাজ করে একটি মন্টি কার্লো পরীক্ষা:

np.random.seed(12)
d = 4
mu = np.random.randn(d)
L = np.random.randn(d, d)
Sigma = L.T.dot(L)
dist = stats.multivariate_normal(mu, Sigma)

mn, cov = relu_mvn_mean_cov(mu, Sigma)

samps = dist.rvs(10**7)
mn_est = samps.mean(axis=0)
cov_est = np.cov(samps, rowvar=False)
print(np.max(np.abs(mn - mn_est)), np.max(np.abs(cov - cov_est)))

যা দেয় 0.000572145310512 0.00298692620286, ইঙ্গিত করে যে দাবি করা প্রত্যাশা এবং কোভেরিয়েন্স মন্টি কার্লো অনুমানের সাথে মিলিত হয়েছে ( নমুনার ভিত্তিতে )।10,000,000


এই চূড়ান্ত মানগুলি কি সংক্ষেপে বলতে পারেন? তারা মিউ এবং এল আপনার উত্পন্ন প্যারামিটারের অনুমান? হয়ত সেই টার্গেট ভ্যালু মুদ্রণ?
অ্যাডামো

না, ফেরতের মানগুলি এবং ; আমি যেটি প্রিন্ট করেছি তা হ'ল এই মন্টি কার্লো অনুমানকারী এবং গণিত মানের মধ্যে দূরত্ব। এবং জন্য মুহুর্তের সাথে মিলের প্রাক্কলনকারী পেতে আপনি এই অভিব্যক্তিগুলি উল্টাতে পারেন - রোজেনবাউম কেটে কাটা মামলায় তাঁর ধারা 3 তে এটি করেছিলেন - তবে আমি এখানে যা চেয়েছিলাম তা নয়। \ ই(জেড+ +)\ Cov(জেড+ +)এলμΣ
ডগল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.