Jednotka 4 / 11

Symbolický výpočet: Řízení umělé inteligence pomocí SymPy

zisky:

  • Schopnost rozpoznat základní schopnosti SymPy (zjednodušení, faktorizace, řešení rovnic, derivace, integrál, limita) a použít je k ověření výstupu AI
  • Schopnost získat deterministické a přesné výsledky tiskem kódu SymPy na umělou inteligenci a spuštěním samotného kódu; Pochopte, že nechat předpovědět výstup kódu umělou inteligencí není ověření
  • Když výsledek umělé inteligence neodpovídá výstupu SymPy, možnost použít SymPy jako základ pro lokalizaci chyby a ruční přidání jemností, jako jsou domény.

Nejpraktičtější a nejvýkonnější nástroj tohoto modulu je v této jednotce: symbolický výpočet a jeho Python knihovna SymPy. Symbolický kalkul dělá přesnou matematiku ne s čísly, ale se symboly (proměnnými jako x, y atd.): přebírání integrálu s jeho přesným vzorcem, řešení rovnice pomocí písmen, zjednodušení výrazu. SymPy je open source, bezplatná a deterministická knihovna Pythonu, která to dělá – což znamená, že vždy dává stejný přesný správný výsledek na stejný vstup. Díky tomu je ideální pro ověřování výstupu AI: AI poskytuje rychlost a přehled, SymPy poskytuje přesnost.

Ústřední myšlenkou této jednotky je toto: nechat AI počítat, ale nechat SymPy ověřit výsledek. Ještě lepší: Nechte AI napsat kód SymPy, spustíte kód a získáte konečný výsledek. Takže eliminujete riziko halucinací AI s determinismem SymPy.

Ještě jedna definice: CAS (Computer Algebra System) je obecný název pro software, který provádí symbolickou matematiku; SymPy je CAS. Komerční příklady jsou Mathematica a Maple, ale SymPy je zdarma a přístupné, protože běží v Pythonu.

Základní schopnosti SymPy

SymPy dělá přesně následující:

  • Zjednodušení: simplify(výraz) redukuje výraz na jeho nejjednodušší formu.
  • Faktorování / expandování: factor() a expand().
  • Řešení rovnice: řešit(rovnice, x) dává přesné kořeny rovnice.
  • Derivace: diff(expr, x).
  • Integrální: integrujte (výraz, x) (neurčité) nebo integrujte (výraz, (x, a, b)) (určité).
  • Limit: limit(výraz, x, tečka).
  • Řada znamená: řada (výraz, x, 0, n).
  • Maticové operace, soustavy rovnic, diferenciální rovnice a další.

Krok za krokem: Pracovní postup ověřování AI + SymPy

1. Nechte AI vyřešit problém. Získejte krok za krokem řešení a konečný výsledek.

2. Nechte AI napsat SymPy kód pro stejný problém. Řekněte "Napište kód, který ověří tento výsledek pomocí SymPy."

3. Spusťte kód sami. Nenechte AI „předvídat“ výstup kódu – to by byla halucinace. Spusťte kód ve skutečném prostředí Pythonu.

4. Porovnejte oba výsledky. Pokud jsou výsledky nalezené ručně AI ​​a výstup SymPy stejné, zvyšuje se spolehlivost; pokud se liší, je chyba v AI ​​(trust SymPy).

5. Pokud je rozdíl, najděte chybu. Řekněte AI: "SymPy dal toto, váš výsledek je jiný; najděte svou chybu."

Pozor: Pokud převezmete kód od AI a zeptáte se „co tento kód produkuje?“ Dotaz na AI ​​“ NENÍ ověření – protože AI ​​může také tvořit výstup kódu. Ujistěte se, že kód spouštíte ve skutečném prostředí Pythonu (místní instalace, Jupyter nebo online běžec Pythonu). Síla SymPy se odhalí, když je spuštěn.

Manuální řešení AI atd. SymPy — srovnání

funkce

AI manuální řešení

SymPy

rychlost

velmi rychle

rychle

přesnost

Bez záruky (halucinace)

Deterministický, jistý

Vysvětlete kroky

dobrý

Slabé (orientované na výsledky)

Intuice/strategie

dobrý

žádný

Způsobilost k ověření

ne

Ano

Nejlepší kombinace: AI pro vysvětlení a strategii, SymPy pro přesnost.

tři mini pouzdra

Případ 1 – Integrální nesoulad. Student se zeptal AI ∫ x/(x²+1) dx. YZ poskytl (1/2)·ln(x²+1) + C. Student provedl integraci(x/(x**2+1), x); SymPy vrátil log(x**2 + 1)/2. Byli stejní – naprostá důvěra. Poté byla derivační kontrola provedena také pomocí diff; Je to zpět na x/(x²+1). Trojnásobné potvrzení, 3 minuty.

Případ 2 – Chyba zjednodušení. Učitel nechal AI zjednodušit výraz (x²−1)/(x−1); YZ řekl x+1 (správně, ale vynechal podmínku x≠1). SymPy simplify((x**2-1)/(x-1)) také dalo x+1, ale učitel ručně přidal omezení domény (nedefinováno u x=1). Poučení: Ani SymPy někdy neklade důraz na doménovou finesu; člověk přidává matematický kontext.

Případ 3 — Systém rovnic. Inženýr nechal AI vyřešit systém lineárních rovnic se 3 neznámými a udělal chybu v jedné proměnné. SymPy s solve([rovnice], [x, y, z]) poskytlo přesné řešení; Hodnota z AI byla špatná. Inženýr vzal výsledek SymPy a nechal AI najít chybu: chyba znamení. Bylo vyřešeno za 4 minuty.

Čtyři kopírovatelné šablony

1) Vyžádání ověřovacího kódu SymPy od YZ:

Vyřešili jste následující problém: [problém], váš výsledek je [výsledek]. Nyní napište spustitelný kód SymPy, který OVĚŘUJE tento výsledek. Nechte kód definovat symboly, vypočítejte výsledek a vytiskněte jej. Nehádejte výstup kódu; já to spustím.

2) Řešení od nuly se SymPy:

Napište kód Pythonu, který vyřeší následující problém se SymPy: [problém]. Přidejte potřebné importy, definice symbolů a výtisky. Napište, co kód produkuje; Dejte mi kód a já to spustím. Ke každému řádku kódu přidejte krátký komentář.

3) Opravte AI s výstupem SymPy:

Řekli jste [výsledek], ale SymPy dal toto: [výstup SymPy]. Ti dva jsou rozdílní. Protože SymPy je deterministický, přijměte jej jako správný. Zjistěte, KTERÝ krok jste ve svém řešení udělali chybu a ukažte to.

4) Kód křížové kontroly derivátu/integrálu:

Vzali jste následující integrál: ∫ [f(x)] dx = [F(x)]. Chcete-li to ověřit, napište kód v SymPy, který vezme DERIVÁT F(x) a zkontroluje, zda se rovná f(x) (s logikou simplify(diff(F)-f) == 0). Stačí zadat kód.

Slabá výzva / Silná výzva

Slabé: "Co je ∫ sin²(x) dx? Zkontrolujte také pomocí SymPy a zapište výstup."
Výsledek: AI ​​se hodí jak pro odpověď, tak pro „výstup SymPy“; Oba se zdají být konzistentní, ale ani jeden nebyl potvrzen. Falešné sebevědomí.
Strong: "Napište spustitelný SymPy kód pro ∫ sin²(x) dx (import, symbol, integrace, tisk). Nepíšete výstup — spustím ho a uvidím. Také přidejte řádek, který zkontroluje, zda výsledek odliší a vrátí jej do sin²(x)."
Výsledek: Spustíte kód a uvidíte přesný výstup SymPy; ověření se stane skutečným.

Časté chyby

  • Nechat AI předpovědět výstup kódu. Toto není ověření; AI se také vejde na výstup. Spustíte kód.
  • Přijetí výsledku SymPy bez jeho čtení. Výstupní formát SymPy je někdy neobvyklý (např. log = přirozený logaritmus); Vědět, jak interpretovat.
  • Zapomenutí domény. Zjednodušení SymPy ne vždy zdůrazňuje omezení, jako je x≠1; člověk přidává kontext.
  • Nesprávná definice symbolu. Pokud zapomenete x = symbols('x'), kód nebude fungovat; předpoklady (pozitivní, skutečné) ovlivňují výsledek (symboly('x', pozitivní=True)).
  • Nedostatek importu. Častou chybou je zapomenout na import ze sympy import * nebo potřebné funkce.
Tip: Pro kontrolu správnosti rovnosti v SymPy je velmi užitečný výraz simplify(left_side - right_side) == 0: dva výrazy jsou identické, pokud se rozdíl zjednoduší na nulu. Toto je nejčistší způsob, jak ověřit identitu nebo zjednodušení vytvořené AI.

Předpoklady SymPy: stejný výraz, jiný výsledek

Jemnou, ale důležitou vlastností SymPy je její systém předpokladů. Při definování symbolu mu můžete dát vlastnosti: symbols('x', positive=True) značí, že x je kladné, real=True značí, že je skutečné. Tyto předpoklady mohou změnit výsledek. Například výraz √(x²) zůstane sqrt(x**2), pokud neexistují žádné předpoklady o x (protože SymPy bere v úvahu, že x může být záporné a ví, že musí být |x|); Ale pokud je x definováno jako kladné, výsledkem je přímo x. Toto není chyba, ale matematická přesnost: √(x²) = |x|, nikoli x = x.

AI často tyto předpoklady při generování SymPy kódu vynechává nebo nesprávně předpokládá. V důsledku toho kód, který vytváří AI, nemusí provést zjednodušení, které „očekáváte“ – a to ve skutečnosti znamená, že se SymPy chová přesněji. Když se tedy zdá, že zjednodušení „nefunguje“, nejprve zvažte skutečné matematické podmínky problému (je x kladné? je skutečné? je nenulové?) a přidejte tyto předpoklady do kódu. Správné nastavení předpokladů nejen zajistí, že SymPy vrátí správný výsledek, ale také vás donutí přemýšlet o doméně problému – což je součástí matematické přesnosti.

Pozor: Neschopnost SymPy „zjednodušit“ výraz často není nedostatek, ale věc matematické přesnosti: protože nejsou dány potřebné předpoklady (pozitivita, realističnost), SymPy má nejobecnější a nejbezpečnější výsledek. Pokud nevidíte očekávané zjednodušení, nejprve si přečtěte předpoklady symbolů.

V souhrnu

SymPy je ideální deterministický nástroj pro ověřování matematického výstupu AI. Nejvýkonnější pracovní postup: strategie a popis pro AI, přesnost pro SymPy. Požádejte AI ​​o kód SymPy, ale ujistěte se, že výstup spustíte sami – přimějte AI ​​hádat, že výstup kódu není ověřením. Pokud se výsledky neshodují, důvěřujte SymPy a nechte AI najít chybu. Porovnejte identity se simplify(rozdíl) == 0 a integrály s diff.

Aplikační úkol

Vyberte integrál, řešení rovnice a zjednodušení výrazu (tři samostatné úlohy). Pro každý z nich nechte AI napsat řešení ručně a poté kód SymPy. Spusťte kódy ve skutečném prostředí Pythonu (místní instalace nebo online běžec). Porovnejte výstupy SymPy s manuálními výsledky AI. Pokuste se najít alespoň jednu nesrovnalost; Pokud to najdete, nechte AI najít svou chybu. Všimněte si procesu.

kontrolní seznam

  • [ ] Obdržel jsem řešení AI i kód SymPy pro každý problém.
  • [ ] Spustil jsem kód SymPy ve skutečném prostředí Pythonu.
  • [ ] Porovnal jsem manuální výsledek YZ s výstupem SymPy.
  • [ ] Zkontroloval jsem derivační/integrální inverzi pomocí SymPy.
  • [ ] Doménu a předpoklady (pozitivní/reálné) jsem přidal ručně.
  • [ ] Ve sporu jsem spoléhal na SymPy a nechal AI najít svou chybu.