Afstand grondverzet || Wiskunde ∩ Programmeren

Afstand grondverzet || Wiskunde ∩ Programmeren


Probleem: Bereken de afstand tussen punten met onzekere locaties (gegeven door monsters, of verschillende waarnemingen, of clusters).

Als ik bijvoorbeeld de volgende drie “punten” in het vlak heb, zoals aangegeven door hun kleuren, wat is dan dichterbij, blauw naar groen of blauw naar rood?

Afstand grondverzet || Wiskunde ∩ Programmeren

Het is niet duidelijk en er spelen meerdere factoren een rol: de rode punten hebben minder monsters, maar we kunnen zekerder zijn over de positie; de blauwe punten zijn minder zeker, maar het niet-blauwe punt dat het dichtst bij een blauw punt ligt, is groen; en de groene punten zijn even plausibel ‘dicht bij rood’ als ‘dichtbij blauw’. De massacentra van de drie monstersets liggen dicht bij een gelijkzijdige driehoek. In ons voorbeeld overlappen de “punten” elkaar niet, maar dat zou natuurlijk wel kunnen. En in het bijzonder zou er waarschijnlijk een afstand niet nul moeten zijn tussen twee punten waarvan de monstersets hetzelfde massamiddelpunt hebben, zoals hieronder. De afstand kwantificeert de onzekerheid.

same-centers.png

Dit alles wil zeggen dat het niet duidelijk is hoe je een afstandsmaatstaf definieert die consistent is met perceptuele ideeën over wat geometrie en afstand zouden moeten zijn.

Oplossing (grondverzetmachine afstand): Behandel elke steekproef $ A$ die overeenkomt met een “punt” als een discrete kansverdeling, zodat elke steekproef $ x \in A$ een waarschijnlijkheidsmassa $ p_x = 1 / |A|$ heeft. De afstand tussen $ A$ en $ B$ is de optionele oplossing voor het volgende lineaire programma.

Elke $ x \in A$ komt overeen met een hoop aarde met een hoogte van $ p_x$, en elke $ y \in B$ komt overeen met een gat met een diepte van $ p_y$. De kosten voor het verplaatsen van een eenheid vuil van $ x$ naar $ y$ zijn de Euclidische afstand $ d(x, y)$ tussen de punten (of welke hipster-metriek je ook wilt gebruiken).

Laat $ z_{x, y}$ een reële variabele zijn die overeenkomt met de hoeveelheid vuil die moet worden verplaatst van $ x \in A$ naar $ y \in B$, met kosten $ d(x, y)$. Dan zijn de beperkingen:

  • Elke $ z_{x, y} \geq 0$, dus vuil beweegt alleen van $ x$ naar $ y$.
  • Elke stapel $ x \in A$ moet verdwijnen, dwz voor elke vaste $ x \in A$, $ \sum_{y \in B} z_{x,y} = p_x$.
  • Op dezelfde manier moet elk gat $ y \in B$ volledig gevuld zijn, dwz $ \sum_{y \in B} z_{x,y} = p_y$.

Het doel is om de kosten hiervan te minimaliseren: $ \sum_{x, y \in A \times B} d(x, y) z_{x, y}$.

In Python, met behulp van de ortools-bibliotheek (en een paar docstrings en standaard importinstructies weggelaten, volledige code op Github):

from ortools.linear_solver import pywraplp

def earthmover_distance(p1, p2):
    dist1 = {x: count / len(p1) for (x, count) in Counter(p1).items()}
    dist2 = {x: count / len(p2) for (x, count) in Counter(p2).items()}
    solver = pywraplp.Solver('earthmover_distance', pywraplp.Solver.GLOP_LINEAR_PROGRAMMING)

    variables = dict()

    # for each pile in dist1, the constraint that says all the dirt must leave this pile
    dirt_leaving_constraints = defaultdict(lambda: 0)

    # for each hole in dist2, the constraint that says this hole must be filled
    dirt_filling_constraints = defaultdict(lambda: 0)

    # the objective
    objective = solver.Objective()
    objective.SetMinimization()

    for (x, dirt_at_x) in dist1.items():
        for (y, capacity_of_y) in dist2.items():
            amount_to_move_x_y = solver.NumVar(0, solver.infinity(), 'z_{%s, %s}' % (x, y))
            variables((x, y)) = amount_to_move_x_y
            dirt_leaving_constraints(x) += amount_to_move_x_y
            dirt_filling_constraints(y) += amount_to_move_x_y
            objective.SetCoefficient(amount_to_move_x_y, euclidean_distance(x, y))

    for x, linear_combination in dirt_leaving_constraints.items():
        solver.Add(linear_combination == dist1(x))

    for y, linear_combination in dirt_filling_constraints.items():
        solver.Add(linear_combination == dist2(y))

    status = solver.Solve()
    if status not in (solver.OPTIMAL, solver.FEASIBLE):
        raise Exception('Unable to find feasible solution')

    return objective.Value()

Discussie: Ik heb vaak over deze metriek gehoord als een manier om kansverdelingen te vergelijken. Het komt bijvoorbeeld naar voren in een invloedrijk artikel over eerlijkheid bij machinaal leren, en in een paar andere CS-theorieartikelen over distributietesten.

Je zou je kunnen afvragen: waarom zouden we geen andere maten van ongelijkheid gebruiken voor kansverdelingen (Chi-kwadraatstatistiek, Kullback-Leibler-divergentie, enz.)? Eén antwoord is dat deze andere metingen alleen nuttige informatie opleveren voor paren verdelingen met dezelfde ondersteuning. Een voorbeeld uit een lezing van Justin Solomon maakt kort en bondig duidelijk wat grondverzetafstand oplevert

Waarom modelleren we de steekproeven niet gewoon met bijvoorbeeld een normale verdeling, en berekenen we vervolgens de afstand op basis van de parameters van de verdelingen? Dat is mogelijk en zorgt in feite voor een potentieel efficiëntere techniek, maar je verliest hierdoor wel wat informatie. Als u negeert dat uw gegevens mogelijk niet bij benadering normaal zijn (het kan enige kromming hebben), krijgt u met de Earthmover-afstand puntsgewijze details over hoe elk gegevenspunt de uitkomst beïnvloedt.

Dit soort aandacht voor detail kan in bepaalde situaties erg belangrijk zijn. Eén waar ik de laatste tijd veel aandacht aan heb besteed, is het probleem van het bestuderen van gerrymandering vanuit een wiskundig perspectief. Justin Solomon van MIT is een kampioen van de Earthmover-afstand (zie zijn fascinerende lezing hier voor meer informatie, met dia’s), wat slechts één onderwerp is in een veld dat ‘optimaal transport’ wordt genoemd.

Dit kan nuttig zijn bij herverdeling, vanwege de aard van het herverdelingsprobleem. Zoals ik eerder schreef, zitten discussies over herverdeling boordevol geometrie – of op zijn minst geometrisch klinkende taal – en zijn mensen erg bezorgd over de schijnbare ‘compactheid’ van een districtsplan. Maar de onderliggende gegevens die worden gebruikt om herverdeling uit te voeren, zijn niet erg nauwkeurig. De mensen die de kaarten maken, beschikken niet over precieze gegevens over stemgedrag, of zelfs over locaties waar mensen wonen. Censustraktaten zijn misschien niet perfect op elkaar afgestemd, en gegevens kunnen in andere opzichten gewoonweg fouten en onzekerheid bevatten. De gegevens waar de tekenaars van districtskaarten om geven zijn dus net zo onzeker als onze puntenwolken. Met een geometrietheorie die rekening houdt met onzekerheid (en de grondverzetafstand is het ‘afstands’-gedeelte daarvan), kan men robuustere, betere instrumenten bedenken voor herverdeling.

Solomon’s website bevat een heleboel bronnen hierover, onder de namen ‘optimaal transport’ en ‘Wasserstein-metriek’, en zijn werk strekt zich uit van het berekenen van afstanden tot het berekenen van belangrijke geometrische waarden zoals het zwaartepunt, en computationele voordelen zoals parallellisme.

Anderen in het veld hebben transparantietechnieken bedacht om duidelijker te maken hoe de afstand van de grondverzetmachine zich verhoudt tot de geometrie van de onderliggende ruimte. Deze is vooral leuk omdat de uitleg resulteert in een pad dat van het begin tot het einde wordt afgelegd, en door de onderliggende metriek op precies zo’n manier in te stellen, kun je zien hoe de distributie door een doolhof navigeert om haar doel te bereiken. Ik stel me graag kleine mieren voor die al dat vuil met zich meedragen.

Ten slotte levert het werk van Shirdhonkar en Jacobs benaderingsalgoritmen op die lineaire tijdberekeningen mogelijk maken, in plaats van de kubieke looptijd van een lineaire oplosser in het slechtste geval.





Source link

Postagens Similares

  • Flickr 的 URL 方案-無名之輩

    我在 URL 作為使用者介面方面接受的教育有一半來自 2000 年代末的 Flickr。它的 URL 如下圖所示: flickr.com/photos/mwichary/favoritesflickr.com/photos/mwichary/setsflickr.com/photos/mwichary/sets/72177720330077904flickr.com/photos/mwichary/54896695834flickr.com/photos/mwichary/54896695834/in/set-72177720330077904 這真是令人難以置信,令人呼吸新鮮空氣。沒有多餘的 www. 在前面或尷尬 .php 在最後。沒有參數與其令人不愉快 ?&= 句法。不 % 用十六進位代碼進行聚會的標誌。當您與其他人共用這些 URL 時,您無需修改或刪除任何內容。當 Chrome 的網址列開始自動完成它們時,您就清楚地知道自己要去哪裡。 這可能看起來很愚蠢。這 使用者介面 網址數量?誰手動輸入或編輯 URL?但鍵盤仍然是最有效的輸入裝置。如果您要去的地方是您已經去過的地方,那麼輸入幾個字母可能比等待頁面加載、單擊等更快地到達目的地。它可能比篩選書籤更快到達那裡。或者,如果您要去的位置在層次結構中位於上層,則精心設計的 URL 將允許您拖曳以進行選擇,然後從末尾退格一些內容。 Flickr 允許完成這一切,而且無需按 Shift 鍵。 任何易於編輯的 URL 都需要輕鬆編輯 可讀的, 也。 Flickr 是。連結名稱非常簡單,以至於看到菜單… …準確地告訴您每個項目的 URL 是什麼。 此後的幾年裡,富文本的夢想並沒有實現。我們繼續在各地看到和使用裸 URL。這就是 Flickr URL 的另一個好處:它們很短。它們可以放在電子郵件或 Markdown 中。從頭開始,它們可以被放置在 句子。 今天,它們在 Slack 上永遠不會被中間那個令人沮喪的省略號截斷(這偶爾會導致有人複製縮短且格式錯誤的 URL 並進一步共享!)。…

  • मैं अपनी अधिकांश घड़ियाँ बेच रहा हूँ

    📅 14 अक्टूबर 2025 | ⏱️ ~2 मिनट पढ़ें मेरे संग्रह में बहुत सारी घड़ियाँ हैं, इसलिए मैं इसे घटाकर लगभग 24 घड़ियों तक लाने का प्रयास कर रहा हूँ। परिणामस्वरूप, यदि आपकी रुचि हो तो उनमें से कई बिक्री के लिए हैं। मुझे लगता है कि अब समय आ गया है कि मैं अपने…

  • 如果你接受了黄鼠狼的工作,那么你一定就是黄鼠狼

    尼克·比尔顿. (照片:盖蒂) 只有几个原因可能会导致您受聘从事一项您显然不具备资格的有声望的工作。一是“他们已经认可了你的天才”。如果你是这个人,那么你一定会强烈地得出结论,认为这就是原因。但这很少是解释。 另一种可能性是“雇用你的人是个白痴”。发生这种情况。许多现任美国内阁部长都是通过这种方式获得职位的。 不过,最可能的原因——这个原因常常让其他原因黯然失色——是“你愿意做即将到来的肮脏和令人厌恶的事情。”这就是为什么高层的奇怪招聘总是引起所有其他员工的恐惧。当然,也许你是一颗隐藏的宝石,但奥卡姆剃刀说你可能只是一个打手。 尼克·比尔顿(Nick Bilton)是《纽约时报》和《名利场》的前科技作家,也是几部纪录片的制作人。 刚刚受聘 担任《60分钟》新任主持人。当然,比尔顿拥有成功的媒体生涯,但他成功的本质从来不是“他是一个超级人物”。 聪明的 记者”,也从来没有“他在电视新闻方面经验丰富”。我从来不觉得有必要密切关注他的作品,所以我不想不公平地讽刺他,但他在我心目中一直被归入“那些因为付出了很多努力而拥有时尚眼镜而成功的人”的类别。 (这将带你 远的,如果你在正确的房间里。)雇用尼克·比尔顿来领导电视新闻史上最有传奇色彩和最相关的调查节目有点像雇用 NASCAR 车手作为通用汽车公司的首席执行官。我的意思是,是的,你在该领域有一些经验,但是………………。 这项工作还伴随着很多背景,这些背景如今笼罩在哥伦比亚广播公司总部上空,就像哥斯拉即将喷火一样。大卫·埃里森,世界上最富有的人之一的富有的孩子, 通缉 政府批准了派拉蒙和华纳兄弟的合并,因此他决定,作为一个经过深思熟虑的商业决策,剥夺哥伦比亚广播公司新闻的可信度,使其更讨好特朗普政府,为了完成这项任务,他让巴里·韦斯负责该网络,而她已经在羞辱和毁掉该机构的路上了。作为哥伦比亚广播公司新闻新闻形象皇冠上的明珠,《60 分钟》可信度的不断瓦解尤其引人注目。巴里轻而易举地介入并开始出于政治原因干预报道 射击 记者们提出反对,并在几个月内普遍摧毁了花了几十年时间建立起来的编辑声誉。种种迹象表明,《60 分钟》正在转变为更像哥伦比亚广播公司《周日早间》的节目——一档讲述小猫、名人的精彩故事以及美国有趣的琐事的节目,但不会冒犯任何拥有可能影响大卫·埃里森商业利益的权力的人。 (我不会太担心哥伦比亚广播公司成为另一个福克斯新闻。创建福克斯新闻的罗杰·艾尔斯是一个天才——一个邪恶的天才,但在为了政治目的而操纵电视媒体的实践中仍然是一个天才。巴里韦斯不是这样的天才。哥伦比亚广播公司新闻更有可能被变得愚蠢和毫无意义,而不是被转变为一个复杂的右翼宣传机构。) 分享 所以你可以想象,哥伦比亚广播公司新闻台的所有真正记者,尤其是《60 分钟》的记者,都处于紧张状态。尼克·比尔顿进来了,他是一个 精心修剪的胡茬 没有电视新闻编辑室的经验,好像一切都很好,很花花公子,他用一个 员工备忘录 上面写着这样的话,“在《60 分钟》的第一集中,迈克·华莱士说:‘如果这个广播达到我们希望的效果,它将报道现实。’”我想不出比这更好的 60 分钟北极星了。最重要的是,这意味着在故事选择、剪辑室和广播中对公平性的承诺。” 这是一个打手的话。这份备忘录上飘扬的红旗比苏联阅兵还要多。嘿嘿!让我提两个。首先,最引人注目的是:如果你走进一家重视编辑可信度的新闻编辑室,而最近编辑可信度被巴里·韦斯打着“公平”的幌子搞砸了,而你把“公平”作为备忘录的中心,那么你就是在以一种不太微妙的方式告诉每个人,你在那里继续搞破坏编辑可信度的公司项目。其次,也是稍微微妙一点的——比尔顿没有直接提及哥伦比亚广播公司每位记者心目中最重要的上下文怪物,从而暴露了自己是一个暴徒、一个软弱的小贩、一个公关人员、一个混淆者;与《60 分钟》的初衷背道而驰。 新闻业——真正的新闻业——首先对废话过敏。废话是新闻业的死敌。真正的新闻渴望成为废话的对立面。你可以成为一名伟大的记者,不需要有吸引力、友善、讨人喜欢、有魅力,只要你有决心铲除并揭露任何发现的废话。确实,很多记者都不讨人喜欢 因为 他们有这种品质。强有力的调查性新闻行动的理想领导者是一个聪明、有干劲、在任何其他情况下几乎都找不到工作的人,因为他们对用来掩盖富人和有权势者谎言的企业细节怀有病态的仇恨。愿意故意忽视亿万富翁老板破坏性的政治倾向可能对大多数职业都有好处,但如果你的职业应该涉及做真正的新闻工作,那就是一个非常糟糕的迹象。 如果你决定不提倡和捍卫废话,有些工作将不会提供给你。如果你决定从事安慰受苦者、折磨舒适者之类的职业,那么有些工作在任何情况下都不应该从事。如果你有自尊的话就不会。如果你关心我们所有人一直说我们关心的任何事情,那就不会了。这并不是什么高尚的言辞,旨在暗示记者是英雄;这是成千上万未出名、也永远不会出名的记者在整个职业生涯中都遵守的底线标准。因为他们是记者!不然你为什么要这样做呢?对于其中 98% 的人来说——所有这些人永远不会在《纽约时报》或《60 分钟》这样著名的地方找到工作——这个行业是一个工资低、声望低、高度不稳定的行业。成为一名记者的唯一好处就是你可以对有权势的人说废话。如果你对此不感兴趣,那就做点别的吧! 一旦你接手了打手的工作,每个人都会知道你是一个什么样的人。高薪买不回尊重。 如果你不喜欢与政权结盟的亿万富翁购买并削弱主要媒体的事实,那就支持独立媒体。支持独立媒体。选择一些你喜欢的独立媒体,并付费订阅。新的、更好的媒体版本只有在您的支持下才会存在。读者付费支持的东西会生存,读者不付费支持的东西不会生存。我们都是这个舞台的参与者。如果《How Things Work》是您喜欢的独立媒体场所之一,请花一点时间支持我们。这里有两种好方法: 您可以成为付费订阅者;您可以向朋友赠送付费订阅礼物。对于所有已经成为付费订阅者的人,我衷心感谢你们。 赠送订阅礼物 Source link

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *