Dobra, dzisiaj kontynuujemy zadania związane z przetwarzaniem symbolicznym. Jeszcze jedna uwaga do wykładu ostatniego. Tu kolega słusznie zauważył, że w jednym miejscu był błąd. Tutaj na przykładzie... Odcinania alfabeta, jak robiliśmy ten przykład, na poziomie endów jest wybierane min, czyli po lewej stronie B będzie 8, a po prawej stronie C będzie 2. i później maksa wybieramy 8, a nie tak jak tutaj poprzednio powiedziałem, min, który miał być 2, czyli tutaj to zostało poprawione.
Dobra, to tyle odnośnie poprzedniego wykładu. I zaczęliśmy. reprezentację wiedzy i wnioskowanie. Powiedzieliśmy sobie o tym, czym jest logika pierwszego rzędu, że jest to takim sposobem wyrażania wiedzy. który będzie umożliwiał automatyczne wnioskowanie, w szczególności będzie to przydatne, do czego będzie przydatne, to sobie za chwilkę powiemy, do sieci semantycznej, do modelowania języka w postaci systemów ekspertowych, natomiast ten sposób, do którego ten sposób wchodzi...
który będziemy tutaj przetwarzać, jest tak zwanym przetwarzaniem symbolicznym, czyli operujemy na symbolach, z użyciem tychże symboli uzyskujemy jakieś rezultaty, które nam pozwalają przeprowadzić właśnie jakieś inferencje. I co, powiedzieliśmy sobie o rachunku predykatów, o tym, że jest to opis taki, gdzie wyrażamy w postaci faktów i reguł pewną rzeczywistość i że jest to rozszerzenie algebry Bula o operatory logiczne i zmienne, które są kwantyfikowalne. Operatory... które są znane z algebry bóla oraz kwantyfikatory, dwa rodzaje, główny kwantyfikator egzystencjalny i kwantyfikator uniwersalny. I co tutaj jest ważne?
Będziemy mieli... Predykaty, które reprezentują pewną własność lub relacje pomiędzy elementami, są argumenty tych predykatów i na nich przeprowadzamy przetwarzanie z użyciem praw rachunków zdań. Tutaj mamy kilka elementarnych, podstawowych praw rachunków zdań. Czyli jeżeli mamy AND i OR to możemy zamienić to na tożsame wyrażenie będące sumą iloczynów, albo odwrotnie będziemy mieli iloczyn sum.
Będziemy mieli w ramach rachunku zdań, będziemy mieli prawo demorgana oraz... które będzie nam umożliwiało zamianę negacji, negacji implikacji na sumy. Będziemy jeszcze potrzebowali… takiego narzędzia, takiego przetwarzania, które pozwoli nam zamienić kwantyfikatory i negacja kwantyfikatorów egzystencjalnych będzie zamieniała się na specyfikację szczegółową w sposób następujący i to będą właściwie Wydaje mi się, że to właściwie wszystkie najważniejsze operacje, które trzeba będzie znać, żeby to przetwarzanie, o którym dzisiaj będziemy mówili, zrozumieć. To już sobie powiedzieliśmy, że wyrażenia możemy, poza tym, że mamy... Możemy zapisywać je w postaci diagramu Wiena i te wyrażenia, będziemy mówili o nich, że są wyrażeniami poprawnie zbudowanymi, czyli takimi, które spełniają dotychczasowe wszystkie reguły logiczne, które będziemy zapisywać właśnie w postaci rachunku predykatów.
Te dwa przykłady do poprzednich wykresów sobie już zrobiliśmy, natomiast spróbujmy teraz troszeczkę popracować z... z przekładaniem języka naturalnego na język predykatów. To chciałbym, żebyście potrafili zapisać w języku logiki zdania, które mówimy w języku naturalnym. Wyobraźmy sobie i zobaczmy, ile nam daje wprowadzenie... kwantyfikatorów w kontekście ekspresywności języka.
Zobaczmy sobie najprostszy predykat, pojedynczy predykat, który będzie wiązał dwie zmienne ze sobą. Powiedzmy, że jest to predykat kocha i on zwraca prawdę, jeżeli zachodzi relacja pomiędzy zmienną x. i zmienną y. I co możemy powiedzieć, wprowadzając kwantyfikatory?
Mamy dwa kwantyfikatory, możemy sobie zrobić kombinację tych dwóch kwantyfikatorów na dwa, trzy, cztery różne sposoby. To teraz będzie trudne, bo będę musiał spróbować pisać. Możemy zrobić sobie taki zapis.
Dla każdego x istnieje taki y, że kocha xy. I co to zdanie będzie znaczyło? Intuicyjnie widzimy, że dla każdego x jest... Y, czyli każdy znajdzie swojego partnera, czyli everybody loves somebody. Każdy kogoś kocha.
A jeżeli byśmy zapisali to w ten sposób. Dla każdego Y istnieje takie X, że kocha. od x, y.
Czyli mamy ten sam predykat, a tylko zmieniamy wyrażenia przy kwantyfikatorach. Co to będzie znaczyć? To, że każdy jest kochany przez kogoś.
Tak jest. Pan Julian tutaj jak zwykle czujny i każdy jest przez kogoś kochany, czyli tudzież każdego ktoś. Ktoś kocha, ale nie ma takiej piosenki.
Takiej piosenki nie ma. Może jak będziemy mówili o kreatywności, to nasza maszyna będzie w stanie takie przekształcenia wygenerować. No to idziemy dalej. Mamy jeszcze troszeczkę inną kombinację. Dla każdego istnieje takie X, że...
Dla każdego Y. No i tutaj mamy znowu ten predykat kocha XY. To co to będzie?
Pewien ktoś kocha wszystkich. Tak, istnieje taki ktoś, kto kocha wszystkich. No to pozostała nam jeszcze kombinacja taka, że istnieje taki y, że dla wszystkich x jest k od xy. I tak jak pani Klaudia tutaj jako pierwsza napisała, że jest ktoś, kogo kochają wszyscy.
No to mamy, zobaczcie, że ja też to troszeczkę inaczej powiedziałem, natomiast istnieje ktoś, kto jest kochany przez wszystkich, albo jest ktoś, kogo kochają wszyscy. To jest w ogóle... trudne dla maszyn.
To będzie w ogóle trudne w momencie, kiedy będziemy przetwarzali język, że ten sam sens możemy wyrazić na bardzo wiele sposobów, natomiast logika pierwszego rzędu jest pewną próbą formalizacji tego i dzięki temu będziemy mieli troszeczkę efektywniejsze przetwarzanie przez maszyny, bo one typowo... żądają, żeby wszystko było jasno i wyraźnie formalnie zbudowane. No i w prologu, tak naprawdę mówiąc prolog, mam na myśli rachunek predykatów, a właściwie jego realizację, implementację w postaci języka programowania.
Zresztą w innych językach to będzie bardzo podobnie, czy to będzie SPARQL, czy to będzie LISP. Generalnie to, co używa logiki pierwszego rzędu, będą dwie grupy operatorów. Te, które są przed regułami przetwarzania i tym, co jest bazą wiedzy.
I w naszym przypadku... tymi predekatami, tymi regułami, to było to, co sobie tutaj ponapisywaliśmy. Natomiast to może być jakąś formą bazy wiedzy.
Przyjmijmy, że w tej bazie mamy zapisane praktycznie właśnie relacje kocha, które są dla tego świata spełnione i w tymże świecie możemy podefiniować odpowiedzi na tak zadane pytania. Czy istnieje ktoś, kogo kochają wszyscy? Chyba nie. Każdy kogoś kocha, będzie sprawdzony, w szczególności, że każdy kocha siebie oprócz Cezarego, który nie jest... Pewnie ma depresję i sam siebie nie kocha, natomiast kocha dwie inne panie.
No i w ten sposób będziemy konstruować fakty, na podstawie których możemy wnioskować, co w takim świecie się dzieje. To idźmy jeszcze dalej tutaj. Spróbuję sobie odpalić rysowanie bez wyłączenia. O, dobra, mogę coś takiego zrobić. Chociażby dużo chętniej bym miał pustą...
O, mamy pustą tablicę. Powiedzmy sobie, że mamy takie zdanie. Chcielibyśmy zapisać w języku predykatów, że tylko ocet jest kwaśny. Powiedzmy, że ocet, ja będę tutaj trochę skrótowo to pisał, jest predykatem takim, ocet kwaśny.
Niech będzie k od x. No to zapiszmy sobie, że tylko ocet jest kwaśny. Co nam umożliwi rachunek predykatów? Pierwsza rzecz, najprostsza, która nam przyjdzie na myśl, to że jeżeli coś jest octem, to jest to kwaśne.
Jeżeli nie będziemy pisali jawnie, to tutaj będzie dla każdego x. Natomiast to nie jest do końca to, co byśmy chcieli napisać. Każdy ocet jest kwaśny, ale to nie jest to, że każdy ocet jest kwaśny.
Więc żeby to... zapisać tak, żeby było logicznie to, że tylko octy są kwaśne, to należałoby powiedzieć coś takiego, że jeżeli coś nie jest octem, to nie jest kwaśne. Tak jest, dokładnie tak to zacząłem tutaj pisać. K od X będzie implikowało, że coś jest.
Czyli mamy takie zdanie. Czyli de facto tutaj też jest kwantyfikator szczegółowy i to zdanie możemy sobie zapisać z... Tak, tak, tak, zaraz do tego dojdziemy, oczywiście.
Że z tego, że A to B jest tożsame z nie A lub B, możemy sobie zapisać, że nie K. że coś nie jest odstem, nie jest kwaśne lub jest odstem. Czyli te dwa zdania, za darmo tu i ocet jest słodki chyba, chyba nie do końca.
Natomiast tutaj taka propozycja padła, że jeśli coś nie jest odstem, to... To nie jest kwaśne. No dobra, no to coś nie jest octem, to nie jest kwaśne. No i ta koncepcja też wydaje się słuszna, bo jak zobaczymy sobie, że jeżeli użyjemy właściwie tego samego, to to będzie tożsame, że ocet lub niekwaśne od X.
No świetnie. No ale czy jeszcze coś możemy spróbować? powiedzieć z użyciem tego, co do tej pory się dowiedzieliśmy.
Możemy spróbować powiedzieć, że nieprawda, że istnieje coś, co nie jest octem i jest kwaśne. Oczywiście, tak jak Pan Maciej mówił, oczywiście dużo więcej zdań tu możemy wyrazić, natomiast... chodziło mi o to, czy jesteśmy w stanie powiedzieć, że tylko ocet jest kwaśny, troszeczkę inaczej zapisując te nasze predykaty.
No to spróbujmy to zapisać. Czyli nieprawda, że istnieje coś, co nie jest octem. Czyli nieprawda, że istnieje coś, co nie jest. Nieprawda, że istnieje takie coś, co nie jest octem. Czy tu można zmniejszyć kursor?
Nie można. To będziemy grubym pisać. Nieprawda, że jest coś, co nie jest octem i jest kwaśne. Mam to rozwijane menu, ale tutaj jest rysuj, wymarz tekst, obraz kształty, prostoką kształt kursor, ale nie widzę, żeby można grubość tego kursora zmienić. Chyba tak, świetnie, dzięki.
Czyli mamy takie zdanie. Nieprawda, że istnieje, czyli jest to tożsame, że powiedzmy każdy nie, czyli mieliśmy to... taką regułę, że nieprawda, że istnieje jakieś powiedzmy a od x, było tożsame, że dla każdego x nie a od x. Korzystając z tego możemy zapisać, że dla każdego x nieprawda, że nieprawda o od x i k. K od x, co będzie tożsame z tego, co już też wcześniej mieliśmy, że jeżeli mamy negację przed sumą lub implikacją, będziemy mieli sumą i iloczenem.
będziemy mieli odpowiednio nie A i nie B, lub jeżeli tu było I, to tu będzie lub. Czyli korzystając z tego możemy zapisać. Dla każdego x o od x lub nie, nie k od x. Czyli widzimy, że z użyciem rachunku predykatów różne zdania możemy w różny sposób sobie wyrazić. i zobaczyć poprzez przekształcenia, czy one będą tożsame i będą miały to samo znaczenie.
W sytuacjach ocet niekoniecznie musi być kwaśny, bo implikacja wskazuje, że jeśli coś nie jest kwaśne, to może być octem lub nie. Do tego jeszcze dojdziemy, natomiast to będzie zależało też od tego, jakie założenie przyjmiemy odnośnie świata, w którym operujemy. Czy ten świat jest zamknięty czy otwarty? czyli innymi słowy, czy w tymże świecie prawdziwe jest wszystko, co jest zdefiniowane, czy też to, jak podchodzimy do tego, czego nie da się na bazie tego, co jest faktem albo reguł wywnioskować.
I w zależności od tego, czy przyjmujemy, że jeżeli czegoś nie ma, to jest prawdziwe, czy nie, to będzie implikowało, w zależności od tego, czy świat będzie zamknięty, czy nie, taką będziemy przyjmowali założenie. Natomiast do tego pójdziemy jeszcze, dojdziemy jeszcze, no to tak idzie nam to bardzo fajnie, natomiast to popatrzmy sobie jeszcze. na przykład, ja tutaj postaram się część przykładów mieć już napisanych, część takie, które wymagają troszeczkę mniej pisania, a będą dobrym wprowadzeniem do tematu, to chciałbym przynajmniej częściowo je rozwinąć, tak pisząc. Jest takie zadanie, które jest związane ze światem bloków i ono jest takie bardzo fajne, ponieważ możemy opisać sobie tenże świat za pomocą, powiedzmy, predykatu, że coś jest nad czymś i na bazie tychże predykatów można budować kolejne zdania.
Czyli możemy zbudować sobie coś. co będzie nowym predykatem, że jeżeli coś jest ponad na czymś, to znaczy, że to zbuduje predykat ponad, czyli który będzie tożsamy, że coś jest na czymś. Natomiast dzięki temu możemy sobie zdefiniować przechodność, czyli jeżeli coś jest na czymś i jeszcze dwa elementy są, Ponad czymś to, to co jest na dole jest pod spodem tego, co jest na górze, czyli to co jest ponad, jest ponad tym, co jest na dole. Takie trochę, powiedziałbym, zakręcone, albo możemy powiedzieć, że jakiś element jest wolny, jeśli nie istnieje coś, co jest na nim.
Jak mamy świat bloków, to może jeszcze dla treningu, który nam też się przyda za chwilkę, jak będziemy robili wnioskowanie, zróbmy sobie taki prostszy światek niż ten, co mieliśmy, natomiast spróbujmy z niego... zapisać sobie kilka jeszcze rzeczy. Powiedzmy, że mamy trzy bloki. Mamy blok A, B i C.
Powiedzmy, że blok A, ja go tutaj tak sobie zrobię, blok A niech jest zielony, a blok C jest niezielony. I zbudujmy... bazę opisującą to, co tutaj jest. Czyli mamy bazę danych na... Mamy predykat na i co?
A jest na B, na jest też B na C i na i to wszystko. I na razie to wszystko. Ponad AC, tak, oczywiście możemy tutaj to też sobie dopisać. Natomiast na potrzeby naszego przykładu tutaj może to nie będzie potrzebne, a wprowadźmy sobie jeszcze predykat zielony. Czyli niech A jest zielone, a C...
jest niezielone. I to jest nasz świat. I teraz, co my możemy tutaj zrobić za pomocą tego, co do tej pory wiemy. Możemy spróbować udowodnić, a właściwie tak, zadajmy sobie pytanie, czy jest taka para bloków, że blok zielony leży na niezielony.
To dobrze, żebym zapisał, ale to może tak tekst. Czyli mamy tezę, że blok zielony... Także na nie zielony.
Nie, tylko A jest. Tylko A wiemy, że jest zielone i wiemy, że Z jest nie zielone. O B nic nie wiemy.
Czyli mamy takie coś. Jak byśmy zapisali w języku predykatów taką tezę? Czyli spróbujmy, rysuj, spróbujmy sobie to zapisać.
Istnieje taka para bloków, istnieje taka... Para bloków, istnieje takie x, takie y. I tu Pani Natalia, że B jest zielone, to B leży na C, jeżeli A to leży na B.
Chcielibyśmy na razie tylko tę tezę zapisać. Czyli to, co mamy tutaj w języku naturalnym, chcielibyśmy przełożyć na język predykatu. No to możemy zrobić tak, że IZ od B, dokładnie. Czyli z dokładnością do tego, że mamy napisać predykaty, a nie obiekty. Oczywiście za chwilę będziemy robili podstawienie za AB.
to będziemy już mieli konkretne obiekty, ale na razie piszemy troszeczkę ogólniej, że działamy na dowolnych zmiennych i po prostu podstawiając za te zmienne już fakty, które mamy w świecie, będziemy mogli dowieźć tego, co w naszym systemie jest prawdziwe. bądź nie. To lub to, oczywiście takie przekształcenie. Mamy tezę, którą chcielibyśmy sprawdzić na naszej bazie wiedzy. Czyli mamy taką bazę, mamy tezę, jak to zrobić.
Jak to zrobić, będzie za chwilę, to już sobie powiemy trochę więcej na ten temat, jak takie wnioskowania bardziej złożone przeprowadzać. Natomiast to będzie dla Was praca do domu, którą będziecie mogli sobie spokojnie zrobić, jeżeli przejedziemy dalsze. Dalsze slajdy, zobaczymy jakimi metodami te symbole możemy przekształcać.
Natomiast jest jeszcze jedna rzecz, która będzie ważna, będzie taka metoda wnioskowania, która będzie działała w ten sposób, że musimy naszą tezę zanegować. To zróbmy to teraz jeszcze na tym slajdzie. Negujemy naszą tezę, w tym momencie to, co tutaj jest, oczywiście jest różne od tego, co tutaj jest napisane, bo to by było nieistnieje. Natomiast negujemy naszą tezę, no i więc jak ta negacja będzie w chwili obecnej wyglądała?
Korzystamy z tego, co wiemy, że nieprawda, że istnieje, że każdy nie, czyli możemy kwantyfikatory uniwersalne i egzystencjalne zamienić na uniwersalne. Tak jak powiedziałem, typowo ich nie musimy pisać, natomiast żeby tu porządek był, to ja je dopisałem. I mamy negacje.
Nie na... Gdzie jest gumka? Nie na...
X, Y lub nie. Z od X lub Z od Y. Czyli mamy taką tezę zanegowaną na bazie tego... mielibyśmy udowodnić prawdziwość, możliwość dopasowania faktów, czyli klocków, które tutaj już są zapisane w tymże świecie. Jak to zrobić?
To praca domowa, po wykładzie, potem jak przejedziemy reguły wnioskowania. Natomiast na razie chciałbym, żebyście potrafili te rzeczy przekształcać. Dobra, jedziemy dalej.
Dobra, tutaj był jeszcze jeden przykład, może na razie go pominę, bo już troszkę czas nas goni. Natomiast możemy zapisać używając... rekurencji, że jeżeli ktoś jest potomkiem czyimś i jest potomkiem tego dziecka, to jest potomkiem tej osoby, o której była mowa.
Co jest jeszcze ważne? Zasygnalizowałem o problemie otwartości i zamkniętości świata. Natomiast zobaczcie, co my tutaj robiliśmy.
Było ponad, był słoń, był kolor. Co to jest ten słoń? My wiemy, co to jest słoń.
Słoń ma trąbę, uszy, szary jest, etc. Natomiast maszyna nie wie, czym jest słoń. Maszyna dla maszyny słoń to jest S. EŁ, O, NI, ciąg znaków, które tworzą predykant. I właściwie tu nie ma za bardzo tego znaczenia.
Nie ma tego, że maszyna rozumie, czym jest predykat i w jaki sposób ta semantyka się buduje. No tutaj jest bardzo sprytna ucieczka. To my budujemy semantykę.
To my budujemy... Semantykę w ten sposób, że my odnosimy ciąg znaków, ten predykat do czegoś, co gdzieś jest w świecie. I na bazie tego, jaką my nadajemy interpretację, takie nadajemy znaczenie naszym predykatom.
To jest generalnie głębsze filozoficzne zagadnienie. Jeżeli zdążymy, to też sobie troszkę powiemy o tym, w jaki sposób to znaczenie pojawić można stworzyć w maszynach. Bo tak naprawdę na chwilę obecną to mamy cały czas reguły przetwarzania symbolicznego.
Przykładamy klocki, natomiast one gdzieś tam w świecie gdzieś są słabo powiązane. To my jako ludzie mamy relacje pomiędzy... naszym stanem neurodynamicznym, a tym, co jest w świecie zewnętrznym. I ten rezonans pomiędzy tym, co my postrzegamy, a tym, co gdzieś się pojawia w naszym mózgu, jest znaczeniem.
Czym jest, na jakiej zasadzie my wiemy, że krzesło to jest krzesło? powoduje, że my rozumiemy, co to jest krzesło. W interpretacji, w logice pierwszego rzędu to jest krzesło i to my mówimy, że to jest krzesło i my już tam się nawiązujemy poprzez to, że wskazujemy operant, poprzez to, że wskazujemy...
ten obiekt w świecie i my tą interpretację będziemy nadawać. Ale możemy spróbować coś jeszcze innego zrobić. Weźmiemy krzesło i to krzesło będzie miało szereg cech. Jak te cechy są spełnione, to będzie ta istota krzesłowatości. Wtedy maszyna, jeżeli te wszystkie cechy zostaną spełnione, będzie mogła rozpoznać krzesło od niekrzesła.
Innym pomysłem na semantykę jest działanie na przykładach. To u Platona uniwersalna idea krzesła. Tak, no Platon miał taką koncepcję jaskini, w której te wszystkie rzeczy gdzieś się jawiły jako cienie rzeczywistości.
Natomiast to też gdzieś tam się w całej filozofii... w filozofii starożytnej przewijało, gdzie ta uniwersalność się dzieje. Natomiast Platon mówił o tym, że te byty istnieją niezależnie, one gdzieś tam są poza naszym światem i jeżeli ten obiekt z świata rzeczywistego nabywa tych cech uniwersalnych, to on tutaj staje się.
Czyli mamy gdzieś uniwersalną ideę krzesła i tę część wystarczającą idei ma konkretne krzesło, to ona powoduje, że krzesło staje się krzesłem. Ale to, co są takie, powiedziałbym, rozważania filozoficzne, one oczywiście bardzo istotne są do zagadnień związanych z teorią Poznania. bardzo istotne są do tego, żeby coś wprowadzić do systemów maszynowych, jeśli to potrafimy zaimplementować.
Mówiłem o egzemplaryczności, czyli pokazujemy sobie przez przykłady. To jest coś, co Google zrobił i wziął wiele różnych obrazów kotów i taki skonstruował klasyfikator, który był w stanie... rozdzielać koty od niekotów.
Czyli on nabył tej kompetencji uniwersalnej idei. Kota, dzięki której mógł rozpoznawać koty od niekotów, tą esencję kotowatości wyłapywał na obrazie. Czyli tak, powiedzieliśmy o interpretacji, która jest w logice pierwszego rzędu, powiedzieliśmy o zestawie cech, które... które możemy wymieniać do tego, żeby jakiś obiekt został zaklasyfikowany jako z zadanej klasy. Powiedzieliśmy o egzemplaryczności, o tym, że poprzez konkretne wskazania próbujemy budować znaczenie.
A jak moglibyśmy, to jest coś, czym się teraz troszeczkę zajmuję. kontekści przetwarzania języka naturalnego. No bo zobaczcie. Nadanie znaczenia przez odniesienie symboli do rzeczywistości. Mamy takie tutaj zdanie.
Co to jest dla maszyny? Dla maszyny to jest ciąg literek, które nie do końca mają dla niej znaczenie. Jedynie co, to będzie nam się też przewijał przez cały wykład, maszyna może zrobić na podstawie... W podstawie zadanej miary podobieństwa może powiedzieć, że to, poprzez to na przykład, że tu jest spacja, jest wyrazem.
Ten wyraz jest taki sam, czyli ma w tej samej kolejności tę samą sekwencję liter, jak podaną w innym tekście. No to te dwa… Tu będzie gdzieś w jakimś innym tekście będzie znowu jakieś słowo właśnie nadanie. To te dwa słowa są takie same. Ale oczywiście to jest nie wszystko.
Możemy mieć synonimy, możemy mieć wyrazy, które są wieloznaczne. Mogą być takie wyrazy, które są różne od siebie, a oznaczają to samo. Możemy zbudować tutaj taki słownik, który troszeczkę inaczej będzie budował tę funkcję podobieństwa, będzie dopuszczał jakieś przystawienia liter, błędy.
Natomiast to jest cały czas, jesteśmy gdzieś na poziomie cały czas przetwarzania symbolicznego. I próby teraz, które są w takiej nowoczesnej sztucznej inteligencji. De facto język...
jest jednym z takich obszarów, które jeszcze się bronią przed sztuczną inteligencją. Zwróćcie uwagę, że przetwarzanie obrazów już jest na bardzo wysokim poziomie. Przetwarzanie języka cały czas jest jeszcze gdzieś poza zasięgiem maszyn cyfrowych. Cały czas te translacje są słabe.
Wyszukiwanie informacji sprowadza się do słów kluczowych. Co można by było zrobić, żeby te słowa zamieniały się w coś, co ma znaczenie, czyli w pewne pojęcia? Trzeba by było zbudować jakiś system gdzieś z zewnątrz, który ma swoje elementarne pojęcia, czyli mamy tutaj jakieś tam pojęcie psa. W tekście pojawia się pies i poprzez to, że w tekście zostaje zidentyfikowana sekwencja znaków, odnosi się do koncepcji psa, którą gdzieś system ma po swojej stronie.
Tam też pojawiają się relacje, że pies jest ssakiem, etc. Dzięki temu ten ciąg znaków, który nie do końca ma dla maszyny... a właściwie w ogóle nie ma dla maszyny znaczenia, w ten sposób zaczyna nabierać semantyki w takim znaczeniu, która jest bliższa temu, co się w procesie poznawczym dzieje.
Dobra, to tak na marginesie tego, na jakim poziomie w momencie, kiedy operujemy logiką pierwszego rzędu jesteśmy. Czyli interpretacja, czyli nadanie naszemu systemowi, który składa się z pewnych... predykatów, referencji do rzeczywistości, w zależności od tego, jaką dziedzinę sobie tutaj przyjmiemy. To jest troszeczkę tak bardziej formalne, a nie opisane, natomiast chodzi o to, żeby nadać predykatom relacje do obiektów, które mamy w dziedzinie, literze funkcyjnej, jakąś funkcji stałej. obiekt, element, który jest z tejże dziedziny.
Zróbmy sobie prosty przykład, który obrazuje, jak zmienia się w ogóle prawdziwość w momencie, kiedy zmieniamy interpretację. Wyobraźmy sobie, że mamy... Takie predykaty. Mamy predykat P od X i on coś nam oznacza.
I dalej mamy operację przetwarzania, że dla każdego elementu P od X jest prawdziwe i istnieje taki X, dla którego dla każdego Y to będzie prawdziwe. Ten Y będzie prawdziwy. I możemy nadać interpretację.
dla której wyrazimy sobie relację, że x jest mniejsze od y i sprawdzać, czy będzie to prawdziwe w momencie, kiedy x i y będą liczby całkowite dodatnie. Pytanie, czy to w tej dziedzinie... interpretacji w liczbach całkowitych dodatnich jest prawdziwe. x jest mniejsze lub równe od każdej liczby całkowitej dodatniej, czyli istnieje najmniejsza liczba dodatnia, czyli to jest prawdziwe dla x, które jest równe 1. Czyli istnieje liczba, która jest najmniejsza dla każdej liczby całkowitej dodatniej, istnieje najmniejsza liczba całkowita dodatnia, jest to prawdziwe.
Czyli ten świat jest prawdziwy, ale on jest prawdziwy tylko wtedy, jeśli nadajemy mu... interpretację, jeśli będziemy odnosić go do dziedziny liczb całkowitych dodatnich. Ale jeżeli zmienimy dziedzinę na liczby całkowite, nie będziemy ograniczali już tylko do liczb całkowitych dodatnich, tylko będzie to wszystkie liczby całkowite, to to nie będzie prawdziwe, bo nie będzie istniała taka...
Taka liczba, która jest najmniejsza. Dobrze, jedziemy dalej. Mamy kilka pomysłów na to, jak przetwarzać.
Mamy kilka pomysłów, które już zobaczyliśmy, jak przetwarzać nasze wyrażenia poprawnie zbudowane, predykaty. Czyli sformalizujmy sobie troszeczkę to do pewnych operacji, które będą pewnym procesem, który stosując reguły, które wcześniej mieliśmy, będą uzyskiwały nowe wyrażenia z zadanego zbioru wyrażeń. Będziemy to oznaczali, że S...
że ze zbioru wyrażeń poprawnie zbudowanych w mamy wniosek w postaci zbioru wniosków S. Mamy zbiór wniosków, które wynikają ze zbioru przesłuchanych. Czyli będziemy taki proces przeprowadzali.
Wielokrotnie i na każdym kroku będziemy stosowali odpowiednio sobie regułę, którą dobierzemy. Taka reguła będzie składać się z zbioru wyrażeń, których nazywamy warunkami. WPZ, wyrażenie poprawnie zbudowane.
Tak naprawdę to takie troszeczkę może tutaj zaciemniające jest, tak naprawdę chodzi o wszystkie predykaty, które będą poprawne z punktu widzenia naszego systemu, który zdefiniowaliśmy. I będziemy mieli kilka takich podstawowych reguł, które będziemy stosowali do tego naszego procesu, który będzie pozwalał nam doprowadzić do konkluzji. I najprostszą, nie wiem, nie będę wprowadzał tu gradacji, ale...
Jedną z podstawowych jest reguła odrywania, z niej będziemy często korzystali. Co ona będzie nam mówiła? Mówiła, że jeżeli mamy implikacje i przyjmiemy prawdziwość założeń, to konkluzje są prawdziwe. I druga reguła modus tollens, czyli zaprzeczenie przy pomocy zaprzeczenia.
Reguła, która mówi, że jeśli zaakceptujemy, że z A wynika B oraz że B jest fałszywym, to też musimy zaakceptować fałszywościach. Jeszcze jedna reguła, którą będziemy używali, to już o niej też wspominaliśmy, reguła uniwersalnej specjalizacji, czyli podstawiania. Jeżeli mamy regułę, która obowiązuje dla wszystkich obiektów, to możemy sobie podstawić za...
tą regułę jakiś dowolny konkretny obiekt, tu mamy wszystkie obiekty, a tutaj mamy konkretny obiekt i ona będzie prawdziwa, na bazie tej ogólnej reguły, która jest prawdziwa. I coś z czego będziemy korzystać, coś co już... troszeczkę zrobiliśmy podejście do tego w momencie, kiedy robiliśmy przykład z światem, z tą tezą, którą zapisywaliśmy w świecie bloków. Jeżeli będziemy mieli zapisane W ten sposób, jak mamy tutaj podane.
Będzie alternatywa wszystkich składowych i alternatywa wszystkich składowych jednego wyrażenia, drugiego wyrażenia i będziemy mieli negację jednego. i negację drugiego, to je możemy sobie tak naprawdę opuścić, a te dwa wyrażenia zapisać jako sumę wszystkich składowych w tych dwóch regułach, które mamy wcześniej i które używamy do naszego procesu wnioskowania. Co jeszcze ważne? Mamy klauzulę i to będzie coś takiego, że mamy wyrażenie, które będziemy przedstawiali w postaci sumy logicznej.
To jest takie bardzo dla nas użyteczne, bo tę regułę odrywania i rezolucję będziemy mogli stosować właśnie do tej... do tej klasy wyrażeń poprawnie zbudowanych, które nazywamy właśnie klauzulami i co mamy w postaci sumy. I jeżeli będziemy mieli taką klauzulę, która będzie miała wszystkie zanegowane atomy oprócz jednego, Będą się nazywały klauzulami Horna. I to jest takie dosyć przydatne, dlatego że wszystkie klauzule w tejże postaci, gdzie mamy jeden atom niezanegowany, czyli mamy klauzulę w postaci sumy logicznej negacji wszystkich literałów, przekształcamy do implikacji takiej, gdzie...
jest ona prawdziwa, jeżeli wszystkie jej literały są spełnione. Co jeszcze? Tak naprawdę do postaci klauzul każde wyrażenie możemy sobie zrobić przerwę.
Dobra, to robimy pięć minut przerwy. Startujemy 22. No dobra, to kontynuujemy. Czyli co, powiedzieliśmy sobie, że mamy klauzule, które są takim zapisem w postaci subelogicznej.
Jeżeli wszystkie są zanegowane, jeden jest niezanegowany, są to klauzule Horna. Wszystkie wyrażenia możemy przekształcić do postaci klauzul. I teraz mamy jakąś bazę i żeby możliwe byłoby to, że przeprowadzamy wnioskowane, niekoniecznie jest w jakiś sposób sformalizowanie tego. którą mamy zapisaną w języku logiki, przetwarzana jest tak, że z pewnego zbioru formuł będą wyprowadzane nowe. Ten sposób wyprowadzania odbywa się zgodnie z regułami wnioskowania, takimi, które będą określały, jak z jednej postaci na drugą przekształcamy.
te formuły, czyli możemy powiedzieć, jak nowo powstała formuła jest logiczną konsekwencją formuł, które wcześniej już wytworzyliśmy, które były w bazie wiedzy. Przy stosowaniu W szczególności reguły odrywania możliwe są różne strategie, w szczególności będziemy mieli taki sposób, który nazywany jest wnioskowaniem w przód i wnioskowanie wstecz. Te strategie można stosować wtedy, gdy wyrażenia sprowadzone są do bazy wiedzy w postaci… klauzul korna, czyli tych klauzul, które można w postaci implikacji zapisać. i iloczynu wszystkich przesłanek.
Natomiast gdy wyrażenia nie dają się sprowadzić do tej postaci, to dowodzenie będzie przeprowadzane przy metodzie, z użyciem metody rezolucji. I ta metoda, to troszeczkę wyprzedzę, jest pomysłem takim, że dołączamy do... naszej bazy tezę, którą chcielibyśmy udowodnić.
Tę tezę negujemy i przeprowadzamy z użyciem wybranych strategii i reguł takie wnioskowanie, które doprowadzi do sprzeczności. To często w matemacji się coś takiego stosuje, że Żeby wykazać prawdziwość poprzez nieprawdziwość tezy, staramy się wykazać sprzeczność. Ok, to tyle takiego wprowadzenia do wszystkiego, co chciałbym, żebyście wiedzieli odnośnie wnioskowania.
Natomiast zobaczmy, jak takie strategie wnioskowania w przód, w tył i rezolucji będą działały na konkretnych przykładach. Dobra, ja pozwolę sobie, że nie będę tego z palca pisał, tylko użyję już... wcześniej przygotowanego slajdu i go będę omawiał, bo to zajmie nam więcej czasu. Wyobraźmy sobie, że mamy taką bazę wiedzy, jak po lewej stronie. Mamy dziewięć formuł, D, E, R, S są faktami.
są prawdziwe i zaczynamy namnażać nowe fakty. Jak to robimy? Mamy wykazać, że A wynika z tego, że B i C.
No to żeby to wykazać, no to jedziemy następująco. Patrzymy, co jest do wykazania. Do wykazania mamy oba.
obie rzeczy, czyli jedziemy po kolei i rozwijamy, jak możemy wykazać B. B możemy wykazać w ten sposób i tylko w ten sposób, czyli żeby wykazać B musimy wykazać F i E, więc żeby wykazać F i E... Bierzemy pierwszą F, znowu przeglądamy całą bazę i widzimy, że by wykazać F musimy wykazać R.
Przeglądamy całą bazę dalej, R jest prawdziwe, jest faktem, więc przyjmujemy je jako prawdziwe. I z tego jest nazwa wnioskowanie wstecz, cofamy się do ostatniej formuły z R. Tak, dojdziemy zaraz do tego.
Zresztą zaraz zobaczymy, czy nam się uda. Gdyby nie udało się nam wykazać tego, co tutaj mamy, to próbujemy dalej. Bo może być tak, że zwróćcie uwagę, że jeżeli by R nie było, załóżmy hipotetycznie, że R nie ma, no to tego procesu tutaj nie bylibyśmy w stanie przeprowadzić, chyba że F gdzieś...
gdzieś w inny sposób byłaby jakaś reguła, która by jej prawdziwość potwierdziła, no i to byśmy tam... po prostu to mogli rozwijać dalej. No dobra, natomiast kontynuujmy.
R było prawdziwe, z R wynika F, cofamy się dalej, to mamy już wykazane, więc kolejny ruch jest, musimy wykazać E. Żeby E wykazać, przeglądamy całą naszą bazę, E jest faktem. Więc jest prawdziwe i cofając się mamy F i E jest prawdziwe, czyli z tego mamy prawdziwe B. I B możemy dołączyć, dołączamy do naszej bazy i w ten sposób budujemy dalej naszą.
naszą bazę. Czyli możemy potwierdzić prawdziwość tego, co tutaj było. I więc dalej, żeby wykazać A, musimy wykazać C.
Przeglądamy bazę. No i powiedzmy, że czegoś tego tutaj nie będzie. No to tego nie będziemy mogli wykazać. I wtedy A jest nieprawdziwe i tak jak Pan Patryk się pytał, wtedy będziemy przechodzili... Będziemy przechodzili do kolejnego predykatu i próbowali wykazać jego prawdziwość.
W tym wypadku by nam to padło, dlatego że wykreśliliśmy C, a tutaj też znowu jest C, tak żeby to A było na bazie takiej... Na bazie takiej bazy, w której nie ma C, całość byłaby nieprawdziwa. Natomiast nie mamy tej sytuacji na naszym przykładzie, czyli możemy wnioskować dalej z C, R i S. R było prawdziwe już wcześniej, S było prawdziwe, czyli C jest prawdziwe.
B było prawdziwe, C jest prawdziwe, więc wykazane zostało A. I to jest pierwsza ze strategii, którą wykorzystujemy. Nie brakuje jeszcze informacji o wykazaniu D. Nie, jest. D jest faktem.
Czy o to panu chodziło? Do tego drugiego, rozumiem. Okej, dobra.
Druga strategia. Druga strategia będzie troszeczkę inaczej wyglądała. Mamy taką bazę jak poprzednio, dziewięć faktów i staramy się wykazać A. I namnażamy co się da. S jest prawdziwe.
R jest prawdziwe, E jest prawdziwe, D jest prawdziwe, F. F staramy się udowodnić, przejeżdżamy przez naszą bazę, R jest prawdziwe, czyli dołączamy do naszej bazy znowu R. Staramy się wykazać C.
Przejeżdżamy całą bazę, R było gdzieś zapisane. Czyli jest prawdziwe, S było prawdziwe, dopisujemy prawdziwe C do naszej bazy. I przeglądając tak krok po kroku, próbujemy namnożyć nowych faktów w bazie, tak aż...
to co mamy udowodnić zostanie wykazane lub też nie będzie ono wykazane i nie będziemy już nowych faktów. Nie będziemy już nowych faktów tutaj generowali. Jeżeli nie będziemy mogli już wygenerować nowych faktów, a nie wykażemy to, co byśmy chcieli wykazać, będzie to, co chcieliśmy wykazać, nieprawdziwe. Weźmy sobie jeszcze jedną rzecz, o której wspominaliśmy.
to zdążymy to dzisiaj na wykładzie zrobić. Czyli tam mieliśmy strategię wnioskowania, natomiast mamy jeszcze jedną metodę, która umożliwia nam automatycznie dowodzenie twierdzeń, która będzie oparta na generowaniu nowych klauzul, tak jak powiedziałem, aż dojdzie do sprzeczności. Powiedzmy, że... Ale formalnie mamy, powiedzmy sobie troszkę formalnie o tym, czym ma być ta rezolucja. Załóżmy, że mamy zbiór wyrażeń poprawnie zbudowanych, zbiór formu, które określamy jako powiedzmy S, jest to nasza baza i mamy wykazać, że jest jakaś teza W, która jest też wyrażeniem, które jest zbudowane.
poprawnie i ona wynika z tego zbioru S, z tej naszej bazy. Czyli dowód będzie oparty na wykazaniu, w rezolucji dowód będzie oparty na wykazaniu sprzeczności i to działa w ten sposób, że negujemy tezę, w naszym wypadku niech to będzie W, dołączamy do zbioru S, czyli do bazy wiedzy i jeżeli w będzie wynikało logicznie z s, to z tej bazy to zbiór s i nie w, czyli nie nasza hipoteza, nie jest spełniony przy żadnej interpretacji. I żeby to wykazać, że nie jest spełnione przy żadnej interpretacji, wystarczy pokazać, że ten nasz zbiór będzie sprzeczny.
To znaczy, że nie można z niego wyprowadzić wyrażenia, jednego z tych wyrażeń poprawnie zbudowanych, które są prawdziwe, jak i nieprawdziwe. Czyli jest jakaś prawdziwość wyrażenia na bazie tej bazy plus hipotezy i jest prawdziwe jego zaprzeczenie. Czyli jeżeli dojdziemy do takiej sytuacji, że mamy wyrażenie P i nie P, no to wtedy generujemy nową, kolejną klauzulę nil i ona będzie w języku predykatów oznaczała sprzeczność.
I wykonujemy wielokrotnie takie przekształcenia do postaci klauzul, a następnie stosujemy regułę. rezolucji, czyli tą regułę, która wynajdywała wszystkie klauzule, które miały alternatywy i zanegowane jedno wyrażenie i je sobie po prostu upraszczamy. Tak jak to było na przykładzie pokazane, upraszczamy w ten sposób, że sumujemy te dwa wyrażenia. wyrażenia razy. Zróbmy przykład, który mamy tutaj na rysunku.
Zdecydowanie lepiej jest, jak ja to piszę, natomiast mamy sytuację, jaką mamy, także ja będę to, powiem, no troszkę tutaj czytał. Mamy zbiór formuł rachunków zdań w takiej postaci. Mamy naszą bazę S.
Czyli to jest nasza baza i mamy udowodnić jakąś tezę W, to jest nasza hipoteza. Czyli co musimy zrobić, żeby zastosować tutaj regułę rezolucji? Przekształcić to wszystko do postaci klauzul.
z użyciem reguł, które sobie powiedzieliśmy na samym początku. ćwiczyliśmy. Czyli to i to przekształcamy do postaci klauzul. Mamy dla przykładu Q lub P i nie R. Możemy sobie zapisać w postaci Q lub nie R i Q lub P.
I wtedy to nam rozbija się już na dwie klauzule, które możemy zapisać Q lub P i nie R i Q lub nie R razy Q i Q lub P. I musimy dodać negację. negację tej klauzuli, tej hipotezy. Po zanegowaniu jej dokładamy do bazy wiedzy, która jest w postaci reguł. Ja myślę, że ja ten przykład zaraz wrzucę na kartce, który zrobiłem, tak żeby kolejne wszystkie kroki.
były dokładnie rozpisane, natomiast mam nadzieję, że to i tak jest jasne. I kolejne klauzule wpisujemy sobie tutaj jako naszą bazę, którą będziemy przetwarzali po kolei. stosując kolejną metodę rezolucji.
I zobaczmy, co możemy zrobić. Przykładowo tu mamy Q, tu mamy nie Q. To z tych dwóch wyrażeń możemy zapisać P lub nie R. Czyli stosujemy rezolucję i to nam... To nam generuje kolejną formułę.
Dalej patrzymy co jeszcze możemy tutaj wykonać. Mamy, jeżeli takie mamy, patrzymy, które operacje się będą powtarzały. Tu mamy Nie Q, tu mamy Q, czyli one nam się zniosą i stworzą nam kolejną regułę. Nie P lub nie R. I stopniowo będziemy to tak, jak tutaj widzimy, rozwijać.
Tą klauzulę i tą. Możemy też, powiedziałbym, skrócić w ten sposób, że Q i nie Q nam odpada i z użyciem reguły rezolucji powstaje nowe wyrażenie P. To mamy kolejny zbiór reguł, które znowu dołączamy do naszego... systemu i dalej próbujemy albo je uprościć, albo dodać nowe predykaty, nowe wyrażenia.
Tak, tak naprawdę możemy je, to dla przejrzystości jest w ten sposób napisane, natomiast... Tu mamy sumy i to tak naprawdę tak jakby budowało to nam, rozbudowywało nam kolejną bazę. Nie sumy tylko iloczyny. I tu mamy, tu poprzez...
Przez proces wnioskowania dochodzimy do... do sprzeczności. Mamy nowo wygenerowane formuły z P i nie I, nie P lub R. Generujemy nową formułę R, a z tego mamy nie R, co powoduje, że te dwie co powoduje, że Iloczyn tych dwóch formuł jest sprzeczne, bo nie może być w systemie formalnym prawdziwe i nieprawdziwe zaprzeczenie.
O tym może też spróbujemy powiedzieć w momencie, kiedy będziemy mówili o twierdzeniu Gedla. I to generuje nam formułę pustą. Nil, co powoduje, że...
Nasza hipoteza jest prawdziwa, bo wykazaliśmy jej sprzeczność na bazie naszej bazy S i tej hipotezy zanegowanej w. I to kończy dowód. Dlaczego w ogóle my to robimy? To może nam pozwolić zbudować nasz autorski system do wnioskowania, dzięki czemu poznamy głębiej rachunek predykatów, który jest istotny.
Tak naprawdę jest istotny... sztucznej inteligencji z punktu widzenia przede wszystkim systemów ekspertowych i szczególnej klasy systemów ekspertowych, to już też mówiliśmy, mówiłem o tym, to mówiliśmy, mówiłem, to jest taka kalka z angielskiego, tak, jak piszemy prace naukowe, jak czytamy, to tam często we używamy. Natomiast mówiłem odnośnie, już wspominałem o tym, że interpretowalność, na jakiej zasadzie podjęta jest pewna decyzja, bardzo często w systemach zwłaszcza wysokiego bezpieczeństwa jest bardzo ważna i nie tylko sieci neuronowe będą tam mogły być zastosowane, które będą dawały... do wysokiej jakości rezultaty.
Dobra, co mamy dalej? Dalej mamy przykład, który właściwie opowiada o wszystkim, co do tej pory powiedzieliśmy, wprowadzając jeszcze jedną... jeszcze jeden myk, mianowicie funkcję z kolema.
Powiemy sobie o tym troszeczkę dokładniej na kolejnym wykładzie, ale to będziecie mogli sobie już przejrzeć. Natomiast idea jest taka, chcemy pozbyć się uniwersalnej specjalizacji. No to to, specjalizacje, to już przed chwilą też wcześniej powiedziałem. Możemy ją zrobić, jeżeli mamy predykat taki, dla którego istnieje interpretacja w postaci obiektu, który jest w dziedzinie i on jest prawdziwy, albo w momencie, kiedy mamy uniwersalną specjalizację i dla wszystkich obiektów, które będą...
miały mieć spełniony pewien predykat, to robimy dokładnie to samo, czyli wprowadzamy prawdziwość tego predykatu dla konkretnego obiektu. Natomiast problem jest, czyli właściwie mamy coś takiego, że istnieje jakiś obiekt, który dla... dla każdego jest prawdziwy. Mamy taki zapis, tą formułę trzecią, że dla każdego y istnieje x, ale to wyraża, że dla każdego y istnieje różne x. I teraz, żeby pozbyć się tutaj tego kwentyfikatora egzystencjalnego, robimy taki myk, że wprowadzamy funkcję, która wiąże po prostu...
która przypisuje jakim y, jakie x, jaki obiekt przypisujemy i symbolicznie zapisujemy to jako g od y. To jest po prostu funkcja, która nadaje konkretnemu elementowi jakąś... konkretną wartość. O tym sobie jeszcze powiemy. Natomiast to, o czym dzisiaj powiedzieliśmy, to rezolucja.
I chciałbym to, żebyście potrafili wykonać i żeby może chociaż troszkę utrwalić to, co dzisiaj sobie powiedzieliśmy. Zróbcie, dokończcie przykład, który robiliśmy na początku. z blokami, czyli tą hipotezę, którą mieliśmy w świecie bloków, czy istnieje bodajże jak to było, czy istnieje taka para bloków, że blok zielony leży na niezielonym, to spróbujcie zrobić to tak, żeby wykazać na bazie tej, sprawdzić, czy na bazie tej, którą mieliśmy. to jest prawdziwe, a jeśli wyjdzie, że nie, to spróbujcie tak zmodyfikować bazę, żeby tak zmodyfikować, to powinno wyjść, ale jeżeli nie będzie wychodziło, to możemy zmodyfikować bazę tak, żeby to twierdzenie, ta hipoteza była prawdziwa. Ok, dobra, troszeczkę musimy przyspieszyć, bo mamy...
Jeszcze kilka rzeczy związanych z przetwarzaniem logicznym, natomiast chciałbym to na przyszłym wykładzie w 15 minut, jak się uda zakończyć i przejść już do wnioskowania takiego w warunkach niepewności. Teraz widzimy, że te fakty mamy albo 0, albo 1, natomiast za chwilkę sobie zaczniemy to... rozmywać i wiązać prawdopodobieństwa, dzięki czemu jeszcze bardziej zwiększymy ekspresywność tego naszego języka, tej naszej metody do opisu fragmentu rzeczywistości.
Dobrze, z mojej strony na dzisiaj tyle, za chwilkę teraz jeszcze jedno ogłoszenie. Tu maila miałem z pytaniem, do kiedy projekty? Chciałbym, żebyście projekty do końca miesiąca już wybrali.
Do kiedy macie wybrać projekty? Chciałbym, żebyście do końca miesiąca je wybrali. Ja zdaję sobie sprawę, że cały czas jesteśmy w takiej sytuacji, że macie kłopot z tym wyborem, bo nie wiecie. nie znacie całego materiału, ten pierwszy wykład miał na celu was wprowadzić, natomiast w związku z tą sytuacją apeluję do was, żebyście weszli w interakcję z prowadzącym i rozmawiajmy na temat projektów, które możecie zrealizować i będziemy w ten sposób próbowali sobie z tym tematem poradzić. W poprzednich latach próbowaliśmy to zrobić w ten sposób, że od połowy semestru startowały projekty, ale to nie rozwiązywało sprawy, bo powodowało, że tylko były większe opóźnienia, a tak naprawdę najlepiej by było jakby ten projekt był w ogóle po całym wykładzie i po laborkach.
Kiedy będzie Q-learning? Q-learning będzie późno. Natomiast jeżeli chcecie Q-learning, to możemy go spróbować zrobić wcześniej.
Natomiast uczenie ze wzmocnieniem, najpierw planowałem, żeby była klasyfikacja, a później, żeby były metody nienadzorowane, a dopiero później Q-learning. Natomiast one są gdzieś tak troszeczkę ze sobą pozmieniane. Może by się udało tam za miesiąc to zrobić, chociaż to i tak trzeba by było przesunąć pewne zajęcia. No dobra, z mojej strony na dzisiaj tyle. Moją grupę projektową zapraszam za 20 minut na zajęcia, na MITSA i do zobaczenia w przyszłej tygodniu.