Jednotka 4 / 11

Symbolický výpočet: Ovládanie umelej inteligencie pomocou SymPy

zisky:

  • Schopnosť rozpoznať základné schopnosti SymPy (zjednodušenie, faktorizácia, riešenie rovníc, derivácia, integrál, limit) a použiť ich na overenie výstupu AI
  • Schopnosť získať deterministické a presné výsledky vytlačením kódu SymPy umelej inteligencii a spustením samotného kódu; Pochopte, že mať výstup kódu predpovedaný umelou inteligenciou nie je overenie
  • Keď sa výsledok umelej inteligencie nezhoduje s výstupom SymPy, možnosť použiť SymPy ako základ na lokalizáciu chyby a manuálne pridanie jemností, ako sú domény.

Najpraktickejší a najvýkonnejší nástroj tohto modulu je v tejto jednotke: symbolický výpočet a jeho Python knižnica SymPy. Symbolický počet robí presnú matematiku nie s číslami, ale so symbolmi (premenné ako x, y atď.): berie integrál s jeho presným vzorcom, rieši rovnicu pomocou písmen, zjednodušuje výraz. SymPy je open source, bezplatná a deterministická knižnica Python, ktorá to robí – čo znamená, že vždy dáva rovnaký presný správny výsledok na rovnaký vstup. Vďaka tomu je ideálny na overenie výstupu AI: AI poskytuje rýchlosť a prehľad, SymPy poskytuje presnosť.

Ústrednou myšlienkou tejto jednotky je toto: nechajte AI spočítať, ale výsledok overí SymPy. Ešte lepšie: Nechajte AI napísať kód SymPy, spustíte kód a získate konečný výsledok. Takže eliminujete riziko halucinácií AI s determinizmom SymPy.

Ešte jedna definícia: CAS (Computer Algebra System) je všeobecný názov pre softvér, ktorý vykonáva symbolickú matematiku; SymPy je CAS. Komerčnými príkladmi sú Mathematica a Maple, ale SymPy je bezplatný a prístupný, pretože beží v Pythone.

Základné schopnosti SymPy

SymPy robí presne nasledovné:

  • Zjednodušenie: simplify(výraz) redukuje výraz na najjednoduchšiu formu.
  • Faktoring / expanding: factor() a expand().
  • Riešenie rovnice: riešiť(rovnica, x) dáva presné korene rovnice.
  • Derivát: diff(expr, x).
  • Integrál: integrujte (výraz, x) (neurčitý) alebo integrujte (výraz, (x, a, b)) (určitý).
  • Limit: limit(výraz, x, bodka).
  • Rad znamená: séria (výraz, x, 0, n).
  • Maticové operácie, sústavy rovníc, diferenciálne rovnice a ďalšie.

Krok za krokom: Pracovný postup overovania AI + SymPy

1. Nechajte AI vyriešiť problém. Získajte krok za krokom riešenie a konečný výsledok.

2. Nechajte AI napísať SymPy kód pre rovnaký problém. Povedzte "Napíšte kód, ktorý overí tento výsledok pomocou SymPy."

3. Spustite kód sami. Nedovoľte, aby AI „predpovedala“ výstup kódu – to by bola halucinácia. Spustite kód v skutočnom prostredí Pythonu.

4. Porovnajte dva výsledky. Ak je výsledok zistený manuálne AI ​​a výstup SymPy rovnaký, zvyšuje sa spoľahlivosť; ak sa líši, chyba je v AI ​​(trust SymPy).

5. Ak je rozdiel, nájdite chybu. Povedzte AI: "SymPy dal toto, váš výsledok je iný; nájdite svoju chybu."

Upozornenie: Ak vezmete kód z AI a spýtate sa „čo tento kód produkuje?“ Spýtať sa AI ​​“ NIE JE overenie – pretože AI ​​môže tiež tvoriť výstup kódu. Uistite sa, že kód spúšťate v skutočnom prostredí Pythonu (lokálna inštalácia, Jupyter alebo online bežec Pythonu). Sila SymPy sa odhalí, keď sa spustí.

Manuálne riešenie AI atď. SymPy — porovnanie

vlastnosť

AI manuálne riešenie

SymPy

rýchlosť

veľmi rýchlo

rýchlo

presnosť

Bez záruky (halucinácie)

Deterministický, istý

Vysvetlite kroky

dobre

Slabé (orientované na výsledky)

Intuícia/stratégia

dobre

žiadne

Spôsobilosť na overenie

č

áno

Najlepšia kombinácia: AI pre vysvetlenie a stratégiu, SymPy pre presnosť.

tri mini prípady

Prípad 1 – Integrálny nesúlad. Študent sa opýtal AI ∫ x/(x²+1) dx. YZ poskytlo (1/2)·ln(x²+1) + C. Študent vykonal integráciu (x/(x**2+1), x); SymPy vrátil log(x**2 + 1)/2. Boli rovnakí – úplná dôvera. Potom sa derivačná kontrola vykonala aj s diff; Je to späť na x/(x²+1). Trojnásobné potvrdenie, 3 minúty.

Prípad 2 – Chyba zjednodušenia. Učiteľ nechal AI zjednodušiť výraz (x²−1)/(x−1); YZ povedal x+1 (správna, ale vynechaná podmienka x≠1). SymPy simplify((x**2-1)/(x-1)) tiež dalo x+1, ale učiteľ manuálne pridal obmedzenie domény (nedefinované pri x=1). Ponaučenie: Ani SymPy niekedy nekladie dôraz na doménovú finesu; človek pridáva matematický kontext.

Prípad 3 – Systém rovníc. Inžinier nechal AI vyriešiť systém lineárnych rovníc s 3 neznámymi a urobil chybu v jednej premennej. SymPy s solve([rovnice], [x, y, z]) dalo presné riešenie; Hodnota z AI bola nesprávna. Inžinier vzal výsledok SymPy a nechal AI nájsť chybu: chyba znamenia. Za 4 minúty sa to vyriešilo.

Štyri kopírovateľné šablóny

1) Žiadosť o overovací kód SymPy od YZ:

Vyriešili ste nasledujúci problém: [problém], váš výsledok je [výsledok]. Teraz napíšte spustiteľný kód SymPy, ktorý VERIFIKUJE tento výsledok. Nechajte kód definovať symboly, vypočítajte výsledok a vytlačte ho. Nehádajte výstup kódu; spustím to.

2) Riešenie od začiatku so SymPy:

Napíšte kód Pythonu, ktorý vyrieši nasledujúci problém so SymPy: [problém]. Pridajte potrebné importy, definície symbolov a výtlačky. Napíšte, čo kód vytvára; Stačí mi dať kód a ja to spustím. Ku každému riadku kódu pridajte krátky komentár.

3) Opravte AI s výstupom SymPy:

Povedali ste [výsledok], ale SymPy dal toto: [Výstup SymPy]. Tí dvaja sú rozdielni. Keďže SymPy je deterministický, akceptujte ho ako správny. Zistite, V KTOROM kroku ste urobili chybu vo svojom riešení a ukážte to.

4) Kód krížovej kontroly derivátu/integrálu:

Zobrali ste nasledujúci integrál: ∫ [f(x)] dx = [F(x)]. Aby ste to overili, napíšte kód v SymPy, ktorý vezme DERIVATÍV F(x) a skontroluje, či sa rovná f(x) (s logikou simplify(diff(F)-f) == 0). Stačí zadať kód.

Slabá výzva / Silná výzva

Slabé: "Čo je ∫ sin²(x) dx? Skontrolujte tiež pomocou SymPy a napíšte výstup."
Výsledok: AI ​​zodpovedá odpovedi aj „výstupu SymPy“; Obidve sa zdajú byť konzistentné, ale ani jedno nebolo potvrdené. Falošná dôvera.
Strong: "Napíšte spustiteľný SymPy kód pre ∫ sin²(x) dx (import, symbol, integrácia, tlač). Nepíšete výstup – spustím ho a uvidím. Pridajte tiež riadok, ktorý skontroluje výsledok a vráti ho na sin²(x)."
Výsledok: Spustíte kód a uvidíte presný výstup SymPy; overenie sa stáva skutočným.

Časté chyby

  • Nechať AI predpovedať výstup kódu. Toto nie je validácia; AI sa tiež zmestí na výstup. Spustíte kód.
  • Prijatie výsledku SymPy bez jeho čítania. Výstupný formát SymPy je niekedy nezvyčajný (napr. log = prirodzený logaritmus); Vedieť interpretovať.
  • Zabudnutie domény. Zjednodušenie SymPy nie vždy zdôrazňuje obmedzenia ako x≠1; človek pridáva kontext.
  • Nesprávna definícia symbolu. Ak zabudnete x = symbols('x'), kód nebude fungovať; predpoklady (pozitívne, skutočné) ovplyvňujú výsledok (symboly('x', kladné=Pravda)).
  • Nedostatok dovozu. Častou chybou je zabúdanie importu zo sympy import * alebo potrebných funkcií.
Tip: Na kontrolu správnosti rovnosti v SymPy je veľmi užitočný výraz simplify(left_side - right_side) == 0: dva výrazy sú identické, ak sa rozdiel zjednoduší na nulu. Toto je najčistejší spôsob overenia identity alebo zjednodušenia vytvoreného AI.

Predpoklady SymPy: rovnaký výraz, iný výsledok

Jemnou, ale dôležitou vlastnosťou SymPy je jej systém predpokladov. Pri definovaní symbolu mu môžete dať vlastnosti: symbols('x', positive=True) označuje, že x je kladné, real=True označuje, že je skutočné. Tieto predpoklady môžu zmeniť výsledok. Napríklad výraz √(x²) zostáva sqrt(x**2), ak neexistujú žiadne predpoklady o x (pretože SymPy berie do úvahy, že x môže byť záporné a vie, že musí byť |x|); Ale ak je x definované ako kladné, výsledkom je priamo x. Toto nie je chyba, ale matematická presnosť: √(x²) = |x|, nie x = x.

AI tieto predpoklady pri generovaní SymPy kódu často vynecháva alebo nesprávne predpokladá. V dôsledku toho kód, ktorý vytvára AI, nemusí robiť zjednodušenie, ktoré „očakávate“ – a to v skutočnosti znamená, že SymPy sa správa presnejšie. Takže keď sa zdá, že zjednodušenie „nefunguje“, najskôr zvážte skutočné matematické podmienky problému (je x kladné? je skutočné? je nenulové?) a pridajte tieto predpoklady do kódu. Správnosť predpokladov nielen zaisťuje, že SymPy vráti správny výsledok, ale tiež vás núti premýšľať o doméne problému – čo je súčasťou matematickej presnosti.

Pozor: Neschopnosť SymPy „zjednodušiť“ výraz často nie je nedostatkom, ale otázkou matematickej prísnosti: keďže nie sú dané potrebné predpoklady (pozitivita, realizmus), SymPy má najvšeobecnejší a najbezpečnejší výsledok. Ak nevidíte zjednodušenie, ktoré očakávate, najskôr si prečítajte predpoklady symbolov.

V súhrne

SymPy je ideálny deterministický nástroj na overenie matematického výstupu AI. Najvýkonnejší pracovný postup: stratégia a popis pre AI, presnosť pre SymPy. Požiadajte AI ​​o kód SymPy, ale uistite sa, že ste výstup spúšťali sami – aby AI ​​uhádla, že výstup kódu nie je overením. Ak sa výsledky nezhodujú, dôverujte SymPy a nechajte AI, aby našla chybu. Krížovo skontrolujte identity so simplify(rozdiel) == 0 a integrály s rozdielom.

Aplikačná úloha

Vyberte si integrál, riešenie rovnice a zjednodušenie výrazu (tri samostatné úlohy). Pre každý z nich nechajte AI napísať riešenie ručne a potom kód SymPy. Spustite kódy v skutočnom prostredí Pythonu (lokálna inštalácia alebo online bežec). Porovnajte výstupy SymPy s manuálnymi výsledkami AI. Pokúste sa nájsť aspoň jednu nezrovnalosť; Ak to nájdete, nechajte AI nájsť svoju chybu. Všimnite si postup.

kontrolný zoznam

  • [ ] Dostal som riešenie AI aj kód SymPy pre každý problém.
  • [ ] Spustil som kód SymPy v skutočnom prostredí Pythonu.
  • [ ] Manuálny výsledok YZ som porovnal s výstupom SymPy.
  • [ ] Krížovo som skontroloval derivačnú/integrálnu inverziu so SymPy.
  • [ ] Doménu a predpoklady (pozitívne/reálne) som pridal ručne.
  • [ ] V spore som sa spoliehal na SymPy a nechal som AI, aby našla svoju chybu.