Sztuka rozwiązywania równań dotychczas nie wychodziła maszynom zbyt dobrze. Programistom Facebooka udało się ten problem rozwiązać za pomocą uczenia maszynowego

Równania są dla maszyn pełne pułapek. Nic dziwnego, bo matematyczna notacja powstała dla ludzi. Potrafimy operować symbolami, więc wiemy, że x do potęgi trzeciej oznacza, że trzeba wartość x przemnożyć przez siebie trzykrotnie. Intuicyjnie wiemy też, że mnożenie jest rodzajem wielokrotnego dodawania (3 x 2 to inny sposób zapisu 2 + 2 + 2). Znamy też kolejność działań (potęgowanie, dzielenie, mnożenie, dodawanie i odejmowanie) i wiemy, że najpierw trzeba wykonać te w nawiasach.

Komputery mogą zaś przetwarzać liniowo, krok po kroku. Problem przekładania matematycznej notacji na język zrozumiały dla procesorów rozwiązują analizatory składniowe, a samą procedurę nazywa się parsowaniem (ang. parsing). Jeśli równanie jest złożone, przełożenie matematycznej notacji na język zrozumiały dla komputera staje się żmudnym zadaniem. Istnieją rodzaje oprogramowania, które to umożliwiają (najsłynniejszym jest Mathematica), ale same w sobie są dość skomplikowane w obsłudze.

Badacze z Facebook AI Research (z siedzibą w Paryżu) postanowili wykorzystać sieć neuronową. Przetrenowali ją na dziesiątkach milionów przykładów wygenerowanych przez komputer. Swoją pracę „Deep Learning for Symbolic Mathematics” badacze opublikowali w serwisie ArXiv.

Z pięciuset zadanych jej równań sieć neuronowa rozwiązała znakomitą większość – aż 98 procent

Badacze wykorzystali też metodę uczenia zwaną sequence to sequence (w skrócie seq2seq). Sieć uczyła się, jak matematyczną notację rozłożyć na czynniki pierwsze (podobnie do tego, jak na języku polskim w szkole rozkłada się budowę zdania, w formie drzewa), a dopiero następnie przetwarzać ją krok po kroku. Takie modele są wykorzystywane głównie w tłumaczeniu maszynowym. Znajdują też użytek w automatycznym tworzeniu podsumowań tekstów oraz tworzeniu podpisów pod zdjęciami.

Podejście okazało się na tyle skuteczne, że z pięciuset zadanych jej równań sieć neuronowa rozwiązała znakomitą większość – aż 98 procent. Dla porównania, specjalistyczne oprogramowanie do rozwiązywania równań, Mathematica, poradziło sobie znacznie gorzej (rozwiązało 85 proc. tych samych równań).

Równania różniczkowe i całkowe są jednak szczególnie trudne (także dla ludzi). W tych przypadkach algorytm był już nieco gorszy i dał radę rozwiązać 80 proc. łatwiejszych i zaledwie 40 proc. trudniejszych zadań. Poradził sobie jednak i z takimi, w których przypadku oprogramowanie oparte na tradycyjnych algorytmach całkiem zawiodło.

To spore osiągnięcie w uczeniu maszynowym, bowiem (jak opisuje „MIT Technology Review”) dotychczas udawało się nauczyć sieci neuronowe zaledwie dodawania i mnożenia, a bardziej abstrakcyjna symbolika matematyczna była poza ich zasięgiem. „Wedle naszej najlepszej wiedzy, żadna wcześniejsza praca nie badała zdolności sieci neuronowych do wykrywania schematów i wzorców w wyrażeniach algebraicznych” – komentują badacze.

Skip to content