Przeszukaj forum
Pokazywanie wyników dla tagów 'AI'.
Znaleziono 9 wyników
-
Sztuczna inteligencja jest jednym z najbardziej dynamicznie rozwijających się obszarów współczesnej technologii. Od momentu jej powstania, AI (ang. Artificial intelligence) nieustannie ewoluuje, przekształcając sposób, w jaki żyjemy i pracujemy. W dzisiejszym świecie AI jest obecna niemal wszędzie - od inteligentnych asystentów w naszych telefonach, przez systemy rekomendujące treści w mediach społecznościowych, aż po zaawansowane algorytmy wykorzystywane w analizie danych. W dobie rozwijających się algorytmów sztucznej inteligencji warto wiedzieć, czym ona tak właściwie jest i jak działa. W tym artykule przedstawię Ci: Czym jest sztuczna inteligencja. Problemy sztucznej inteligencji. Zastosowania sztucznej inteligencji. Wstęp do algorytmów uczenia maszynowego: Podział algorytmów. Regresja liniowa. Algorytm genetyczny. Sztuczne sieci neuronowe. Algorytmy i modele sztucznej inteligencji mogą być fascynujące i bardzo efektywne. Źródło zdjęcia. Czym jest sztuczna inteligencja Frazę sztuczna inteligencja należy rozdzielić na sztuczna oraz inteligencja. Przyjrzyjmy się drugiemu rzeczownikowi. Inteligencja - zdolność rozumienia, uczenia się oraz wykorzystywania posiadanej wiedzy i umiejętności w sytuacjach nowych ~ sjp.pwn.pl. Jest to abstrakcyjne pojęcie, któremu filozofowie, psycholodzy i inni uczeni przypisywali różne definicje, takie jak: Ogólna zdolność jednostki do świadomego dostosowywania swojego myślenia do nowych wymagań. ~ William Stern. Źródło definicji. [...] Wszystkie asymilacyjne i akomodacyjne interakcje między organizmem a środowiskiem. ~ Jean Piaget. Źródło definicji. Zdolność osoby do przenoszenia swojej wiedzy i zgromadzonego doświadczenia z jednej sytuacji do drugiej. ~ George Ferguson. Źródło definicji. Max Tegmark, profesor fizyki w MIT w swojej książce Życie 3.0 przyjmuje bardzo szeroką definicję, tj. Inteligencja = zdolność do osiągania złożonych celów. Wszystkie te definicje obejmują słowa kluczowe, jakimi są dostosowywanie, akomodacja i przenoszenie. Zatem za inteligencję możemy przyjąć zdolność do nauki, zrozumienia i adaptacji do nowych warunków. Sztuczna inteligencja - dział informatyki badający reguły rządzące zachowaniami umysłowymi człowieka i tworzący programy lub systemy komputerowe symulujące ludzkie myślenie. ~ sjp.pwn.pl. Zatem sztuczną inteligencją są modele, które starają się naśladować ludzkie myślenie. Mając na uwadze szeroko pojętą definicję inteligencji, możemy też powiedzieć, że sztuczną inteligencją jest rozwiązanie technologiczne/program komputerowy, który potrafi uczyć się i dostosowywać do nowych sytuacji, znajdując rozwiązania na zadany problem. Istnieje wiele rodzajów ludzkiej inteligencji: emocjonalna, społeczna i twórcza. Źródło zdjęcia. Problemy sztucznej inteligencji Algorytmy AI (szczególnie uczenia maszynowego) opierają się na danych, co oznacza, że jakość ich działania w dużej mierze zależy od jakości i kompletności danych, którymi są trenowane i weryfikowane. Jeśli dane uczące są niepełne lub zawierają błędy, sztuczna inteligencja może powielać te same niedoskonałości. Może to prowadzić do niepoprawnych rozwiązań. Przykładem może być ChatGPT i generowanie obrazu kieliszka wypełnionego w pełni winem. Istnieje względnie mało zdjęć, obrazów i innych źródeł, które przedstawiają kieliszek wypełniony po brzegi winem, dlatego prawdopodobnie brakuje takich źródeł w danych, którymi był trenowany ChatGPT. Skutkuje to tym, że model językowy nie potrafi generować takich obrazów. Oczywiście pojawia się tutaj problem z interpretacją samego polecenia. Chociaż pojawiają się głosy, że sztuczna inteligencja już potrafi to robić… Zapytanie o wygenerowanie obrazu. Wniosek jest jeden. Sztuczna inteligencja może się mylić. Nie bez powodu algorytmy te ocenia się i poddaje się testom i innym zabiegom, żeby były jak najdoskonalsze. O błędach informują twórcy modeli językowych w krótkich komunikatach, zazwyczaj w obrębie pola do wpisywania poleceń. Komunikat na stronie ChatGPT. Komunikat na stronie MS Copilot. Błędy, które popełniają modele językowe, nie zmieniają faktu, że sztuczna inteligencja to bardzo obiecująca i efektywna dziedzina, która znajduje zastosowanie w wielu branżach. Zastosowania sztucznej inteligencji 1. LLM i tłumaczenie tekstów Tematem na topie od ostatnich kilku lat są duże modele językowe (ang. Large Language Models), które zrewolucjonizowały sposób, w jaki korzystamy z internetu. Potrafią analizować, rozumieć i generować tekst w sposób zbliżony do ludzkiego. Oczywistymi przykładami, których chyba nie muszę wyjaśniać są ChatGPT oraz DeepSeek. Warto przedstawić polski model językowy: Bielik. W 2017 roku powstało narzędzie DeepL – start-up, który założył Polak dr Jarosław Kutyłowski. Według strony DeepL tłumacz korzysta po części z Transformer Model. DeepL wykorzystuje algorytmy sztucznej inteligencji do tłumaczenia tekstów. Źródło zdjęcia. 2. Rozpoznawanie obrazów i elementów na obrazach Dzięki zastosowaniu sieci neuronowych algorytmy wykorzystujące sztuczną inteligencję potrafią identyfikować twarze, przedmioty, znaki drogowe, a nawet emocje na ludzkich twarzach. Rozpoznawanie elementów na obrazie to nie tylko identyfikowanie, co znajduje się na zdjęciu, ale też gdzie dokładnie dany obiekt się znajduje oraz jakie relacje zachodzą między różnymi elementami sceny. Sztuczna inteligencja jest w stanie rozpoznać twarz, oko, a nawet źrenicę oka. Źródło zdjęcia. 3. Pomoc przy diagnozowaniu chorób Sztuczna inteligencja może znajdować zastosowanie w medycynie, szczególnie w obszarze diagnozowania chorób. Jednym z najbardziej obiecujących obszarów jest onkologia. Algorytmy sztucznej inteligencji coraz skuteczniej analizują obrazy i wykrywają zmiany nowotworowe. Naukowcy z Harvard Medical School opracowali innowacyjne narzędzie o nazwie CHIEF, które wykorzystuje sztuczną inteligencję do diagnozowania nowotworów. Model ten analizuje cyfrowe obrazy tkanek nowotworowych, identyfikując komórki rakowe i przewidując profil molekularny guza na podstawie cech widocznych na obrazach. CHIEF został przetestowany na 19 różnych typach nowotworów, osiągając dokładność wykrywania raka na poziomie niemal 94%. Miejmy nadzieję, że w przyszłości sztuczna inteligencja będzie służyła do ratowania życia. Źródło zdjęcia. 4. Sztuczna inteligencja w elektronice Implementację algorytmów sztucznej inteligencji umożliwiają coraz bardziej wydajne platformy sprzętowe, takie jak rozwiązania NVIDIA Jetson, które umożliwiają uruchamianie aplikacji korzystających z uczenia maszynowego. Warto zwrócić uwagę na projekty, takie jak reComputer lub reCamera, które stanowią wygodną bazę do pracy z AI w praktyce. Takie urządzenia umożliwiają tworzenie autonomicznych systemów wizyjnych, robotów czy inteligentnych czujników. Rozwój technologiczny przyczynił się do konstrukcji takiego sprzętu jak Nvidia Jetson. Na zdjęciu widać Nvidia Jetson Nano developer kit. Źródło zdjęcia. Wstęp do algorytmów uczenia maszynowego Sercem każdego z tych zastosowań są konkretne algorytmy, które przetwarzają dane, uczą się na ich podstawie i podejmują decyzje. Przybliżę Ci zasadę działania kilku algorytmów uczenia maszynowego. Skoncentrujemy się na aspektach formalnych, tworząc bazę pod dalszą analizę tych metod. Podział algorytmów Pojęcie sztuczna inteligencja dzieli się na różne kategorie: Klasyfikacja sztucznej inteligencji. Źródło zdjęcia. Powyżej wyróżniono uczenie maszynowe (ang. Machine Learning), czyli dziedzinę sztucznej inteligencji zajmującą się algorytmami, które samodzielnie doskonalą swoje działanie na podstawie zebranych doświadczeń. Najpopularniejszym podziałem tych algorytmów jest podział na: Uczenie nienadzorowane - algorytmy samodzielnie odkrywają wzorce w zbiorze danych. Uczenie nadzorowane - człowiek przedstawia algorytmowi, jakie wyjście powinno pojawić się przy odpowiednim wejściu. Uczenie przez wzmacnianie - algorytm uczy się na podstawie własnych doświadczeń w pewnym środowisku. Podział algorytmów uczenia maszynowego. Źródło zdjęcia. Przykłady algorytmów uczenia maszynowego 1. Regresja liniowa Jeden z podstawowych algorytmów uczenia maszynowego i statystyki, używany do modelowania zależności między zmiennymi. Jego głównym celem jest przewidywanie wartości zmiennej na podstawie jednej lub wielu zmiennych wejściowych. Celem regresji jest dopasowanie takiej prostej, która najlepiej opisuje dane, czyli minimalizuje różnice (błędy) między przewidywanymi a rzeczywistymi wartościami. Przykład rozwiązania zadania regresji liniowej. Niebieskie punkty to zbiór danych, dla którego należy znaleźć prostą najlepiej opisującą te dane. W tym przypadku jest to czerwona prosta. Źródło zdjęcia. Szczegóły matematyczne zostawiam dla ciekawskich. W tym przypadku przedstawiamy algorytmowi, jakie jest wejście (oś x) i wyjście (oś y). Algorytm na tej podstawie uczy się co może być pomiędzy jedną, a drugą wartością. Jest to zatem uczenie nadzorowane. 2. Algorytm genetyczny Algorytmy genetyczne (ang. Genetic Algorithms, GA) to techniki optymalizacyjne oparte na zasadach ewolucji biologicznej, takich jak selekcja naturalna, krzyżowanie i mutacja. Algorytm minimalizuje zdefiniowaną funkcję celu, krzyżując i modyfikując osobniki z populacji. Natura jest inspiracją do różnych rozwiązań technicznych. W tym wypadku inspiracją do stworzenia algorytmu genetycznego była ewolucja. Źródło zdjęcia. Algorytm genetyczny działa następująco: Definicja funkcji celu: należy matematycznie określić, co algorytm będzie minimalizował w celu ulepszenia populacji osobników. Generacja populacji początkowej: jako populację rozumiemy zbiór osobników posiadających cechy, które w każdej iteracji będziemy poddawali ocenie funkcją celu. Obliczenie wartości funkcji celu dla każdego osobnika: każdemu osobnikowi przypisujemy ocenę, która wskazuje na to, jak silny jest osobnik. Ocena, czy algorytm powinien zostać zakończony: jest to uzależnione od czynników, które zdefiniujemy. Algorytm może zakończyć się po konkretnej liczbie iteracji lub, gdy stworzymy osobnika o satysfakcjonującej wartości funkcji celu. Generacja populacji potomnej: w tym kroku może (nie musi) dziać się wiele rzeczy. Głównym celem tego kroku jest stworzenie kolejnej populacji osobników, które będą lepsze od poprzednich. Stosuje się tu kilka metod: Selekcja: spośród osobników wybieramy tylko te, które są dla nas satysfakcjonujące. Istnieje kilka metod, które pozwalają na selekcję, w tym metoda progowa bądź ruletki. Krzyżowanie: łączenie ze sobą najsilniejszych osobników, które przeszły selekcję. Jeżeli cechy osobników definiujemy liczbowo, to możemy analizować ich wartość binarną. Krzyżowanie polega na mieszaniu cech osobników. Np. binarną wartość osobnika dzieli się na pół. Powstają dwie połówki. Te połówki łączy się z połówkami drugiego osobnika. Tak powstają kolejne dwa osobniki. Mutacja: polega na odwróceniu pojedynczego bitu osobnika. Inwersja: odwrócenie ciągu bitów osobnika. Schemat blokowy algorytmu genetycznego. Algorytm genetyczny wykonuje zadanie optymalizacji. 3. Sztuczne sieci neuronowe Sztuczne sieci neuronowe to modele matematyczne inspirowane strukturą i działaniem ludzkiego mózgu. Budowa neuronu. Źródło zdjęcia. W 1943 Warren McCulloch oraz Walter Pitts zaproponowali model matematyczny neuronu, zwany Neuronem McCullocha-Pittsa. Model ma wejścia i wyjście binarne. Model McCulloch Pittsa. Źródło zdjęcia. W powyższym modelu wejścia ‘x’ są mnożone przez wagę, a następnie sumowane ze sobą. Ta wartość przechodzi przez funkcję aktywacji, której wyjście daje odpowiedź w postaci 0 lub 1. Ewolucją powyższego modelu jest perceptron sformułowany przez Rosenblatta. Jego główną innowacją było wprowadzenie możliwości uczenia się na podstawie danych - perceptron potrafi dostosowywać swoje wagi w taki sposób, by lepiej dopasowywać się do zadania klasyfikacyjnego. W perceptronie dane wejściowe mogą być wartościami rzeczywistymi, a każdemu wejściu przypisana jest waga, czyli liczba, która określa znaczenie danego sygnału. Perceptron oblicza ważoną sumę wejść i dodaje do niej tzw. bias (wartość przesuwająca próg aktywacji). Następnie ta suma przechodzi przez funkcję aktywacji. Podstawą działania perceptronu jest reguła uczenia. Wagi są aktualizowane na podstawie różnicy między oczekiwanym wynikiem a wynikiem uzyskanym. Jeśli perceptron popełnia błąd, modyfikuje swoje wagi, by w przyszłości lepiej klasyfikować dane. Perceptron. Źródło zdjęcia. Pojedynczy perceptron ma ograniczone możliwości. Jest w stanie rozwiązywać jedynie problemy liniowo separowalne, czyli takie, w których dane można oddzielić prostą linią (lub hiperpowierzchnią w przestrzeni wielowymiarowej). Aby poradzić sobie z bardziej złożonymi zależnościami, wiele takich neuronów łączy się w sieć. Sztuczna sieć neuronowa składa się z warstw: Warstwa wejściowa – przyjmuje dane wejściowe. Warstwa (lub warstwy) ukryta – zawiera wiele perceptronów, które przetwarzają dane na coraz wyższym poziomie abstrakcji. Warstwa wyjściowa – generuje końcową decyzję, np. klasyfikację lub wartość liczbową. Przykład sieci neuronowej. Źródło zdjęcia. Przykładem uczenia sieci neuronowej jest algorytm propagacji wstecznej. Oprócz klasycznej sieci feedforward przedstawionej powyżej istnieje jeszcze wiele innych np. sieć rekurencyjna lub rozszerzenie sztucznej sieci neuronowej - splotowa sieć neuronowa. Gorąco zachęcam do rozszerzenia tematu. Podsumowanie Sztuczna inteligencja przestała być futurystycznym pojęciem rodem z filmów science fiction, a stała się realnym narzędziem zmieniającym sposób, w jaki postrzegamy technologię, biznes i codzienne życie. To fascynująca dziedzina, która nie tylko stawia przed nami nowe możliwości, ale również wyzwania, ucząc nas pokory wobec potęgi danych i algorytmów. AI nieustannie się rozwija – zarówno w zakresie prostych rozwiązań wspomagających naszą codzienność, jak i w obszarach wymagających głębokiej analizy i precyzji, jak medycyna czy analiza obrazu. Dodajmy też kontekst: dlaczego właśnie teraz sztuczna inteligencja zyskała taką popularność i realną wartość użytkową? Kluczowy przełom nastąpił dzięki połączeniu kilku czynników: potężnych modeli językowych trenowanych na ogromnych zbiorach danych, rosnącej mocy obliczeniowej (szczególnie dzięki GPU), oraz rozwoju technik uczenia głębokiego (deep learning). To one sprawiły, że AI zaczęła nie tylko rozumieć i generować język na poziomie zbliżonym do ludzkiego, ale również przetwarzać obrazy, kod, dźwięk czy nawet rozumowanie w zupełnie nowej jakości. Warto jednak podchodzić do tematu z rozsądkiem. Na fali popularności łatwo wpaść w pułapkę marketingowego nadużywania pojęcia „sztuczna inteligencja”, które często wykorzystywane jest tylko jako chwytliwe hasło – nawet wtedy, gdy rzeczywistość technologiczna danego rozwiązania nie ma z AI zbyt wiele wspólnego. I na koniec ważne zastrzeżenie: wyłącznie to podsumowanie zostało napisane przeze mnie - ChatGPT. Pozdrawiam czytelników Forbota! 😊
-
- 4
-
-
- informatyka
- Programownie
- (i 1 więcej)
-
Witam. Już od bardzo długiego czasu (jeszcze zanim był chat gpt) próbuję stworzyć sieć neuronową w pythonie. Bardzo dużo się w tym temacie nauczyłem przez ten czas, jednak nie na tyle dużo by stworzyć własną sieć neuronową która wykonywałaby jakieś zaprojektowane przeze mnie zadanie. Próbowałem bibliotek: pytorch, tensorflow, keras, scikit-learn, stable baselines, gymnasium, a nawet pisania sieci od podstaw bez żadnej z tych bibliotek, ale dotychczas moje największe osiągnięcie to napisanie kodu (z tutoriala) który pracuje z environmentami z gymnasium, ale nie całkiem go rozumiałem i nie mogłem go dostosować do swoich zastosowań. Jeśli jest ktoś kto orientuje się w temacie i byłby skłonny podzielić się wiedzą byłbym niezmiernie wdzięczny za wskazówki. Pozdrawiam.
-
Polecenie dla kreatora obrazków: two old men drinking beer and playing simple game on old computer, in the pub, anime Co jest nie tak na tym obrazku? 🙂🙂🙂
-
trochę się bawię w programowanie symulacji 2 wymiarowego świata z 2 wymiarowymi istotami, które same uczą się i dostosowują do zmian, nie są uczone na dużych zbiorach danych a jedynie na zasadzie własnych prób i błędów. Taki rodzaj uczenia maszyn określa się jako nienadzorowany (unsupervised machine learning). Symulacja nie jest efektowna graficznie (nie o to chodziło) ale jak się wpatrzeć to widać jak bez niczyjej pomocy uczą się zasad świata i interakcji z innymi stworzeniami (atak, ucieczka, nieatakowanie swojego gatunku), szukanie pożywienia. Aktualnie przepisuję całość w Pythona na Rust więc projekt trochę w zawieszeniu, ale docelowo myślę o tym jako o alternatywnym uczeniu robotów. Zaletą jest to że nie bazujemy na karmieniu sieci neuronowej gigantycznym zbiorem danych - czyli nie trzeba "mistrza", uczeń uczy się na zasadzie prób i błędów. Poza tym jest bardzo elastyczny, na starcie nie wie nawet jakie prawa rządzą światem. Nie wie że trzeba jeść i unikać zjedzenia. W dodatku jest bardzo elastyczny, można diametralnie zmienić zasady rządzące światem i z biegiem czasu gatunki się dostosują. Ostatnio dodałem receptor który rozróżnia czy inny stworek należy do tego samego gatunku. Okazało się że niektóre gatunki wykształciły zachowanie polegające na odstępowaniu od ataku swoich! szare poligony - skały, przeszkody zielone okręgi - rośliny czerwone okręgi - mięso niebieskie stworki z zielonym środkiem - roślinożercy niebieskie stworki z czerwonym środkiem - mięsożercy po lewej na dole wizualizacja działania sieci neuronowej wybranej istoty Zostawiam link dla zainteresowanych:
-
- 7
-
-
- neuroewolucja
- alg. genetyczny
- (i 3 więcej)
-
Mit o naszym poznawczym uniwersalizmie, o naszej gotowości odebrania i zrozumienia informacji całkowicie, przez jej pozaziemskość, nowej - trwa niewzruszony, chociaż, otrzymawszy posłanie z gwiazd, zrobiliśmy z nim nie więcej, niżby zrobił dzikus, który, ogrzawszy się u płomienia podpalonych dzieł najmędrszych, uważa, że doskonale owe znalezisko wykorzystał! - Stanisław Lem Głos Pana Tymi słowami Stanisław Lem konkludował próbę odszyfrowania przez Człowieka tajemniczego sygnału z kosmosu, którego odkrycie było dziełem przypadku. Sygnał, pochodzący najprawdopodobniej od obcej cywilizacji z krańca Kosmosu stał się zagadką, poddającą w wątpliwość ludzką poznawczość. Pomimo licznych prób i wzajemnej współpracy grona naukowców, wiadomość udało się rozpracować tylko częściowo, a nawet uzyskany wynik stanowił dalsze ogniwo niezrozumienia i zdumienia. Chcąc opowiedzieć czym był sygnał, jak został odkryty i do jakich odkryć poprowadził grupę uczonych należy sięgnąć do książki Stanisława Lema „Głos Pana”. Ten wpis brał udział konkursie na najlepszy artykuł o elektronice lub programowaniu. Sprawdź wyniki oraz listę wszystkich prac » Partnerem tej edycji konkursu (marzec 2020) był popularny producent obwodów drukowanych, firma PCBWay. Dlaczego przytoczone zostały właśnie te słowa i w jaki sposób korespondują one z tematem artykułu? Jeżeli miałeś nadzieję, że przedstawione zostaną kulisy pierwszego kontaktu z obcą cywilizacją, to niestety możesz się lekko rozczarować, ale ta era (jeszcze) nie nadeszła - jakkolwiek byśmy tego nie chcieli i próbowali zaklinać czasoprzestrzeń. Pozwólmy, rzucić sobie światło na niemniej, a nawet równie ciekawą materię. Komunikacja Powracając do powieści Stanisława Lema, komunikacja, choć jednostronna przebiega tam zdalnie. Z otchłani kosmosu dobiega sygnał w postaci ciągu neutrin – cząstek nie posiadających masy, zdolnych do przenikania materii. Cząstki te nadawane są w pewnych odstępach czasowych. Uważnie przyglądając się całości emisji dostrzec można, pewne zależności powodujące, że w procesie widoczna jest pewna wiadomość. Komunikatu zostaje zapętlony, a zarówno nadawca jak i odbiorca kosmicznego komunikatu nie widzą się wzajemnie. Są przekonani o wzajemnym istnieniu, ale fizycznie, poza komunikatem nie mają ze sobą jakiegokolwiek innego kontaktu. Czy cała idea tego procesu nie wygląda w pewien sposób znajomo? Tak, to Test Turinga! Obca cywilizacja przesyłając komunikat zainicjowała proces Testu Turinga, w oczekiwaniu na sprzężenie zwrotne, które miało udowodnić naszą inteligencję. Barierą oddzielającą „komputer” od człowieka jest ogromna przestrzeń kosmiczna, a sam sygnał przyjmuje nieco inną formę, niż tą jaką przewidział w swoich założeniach Alan Turing. Niestety, cały mistycyzm pierwszego kontaktu sprowadzony zostaje do trochę bardziej prozaicznego, wcześniej znanego pojęcia. Ale czy spoglądanie w niebo to jedyny sposób na nawiązanie dialogu z przyszłością? Schodzimy na ziemię Dialog już trwa, rozmówcą jesteś również Ty, ale to Alan Turing jako jeden z pierwszych dostrzegł możliwość rozmowy Człowieka z maszyną. Tak, sztuczna inteligencja, bo o niej mowa, choć nieco bardziej ziemska posiada kosmiczne możliwości. To sztuczna inteligencja ma nasze dane, potrafi nimi skutecznie manipulować, gromadzić i na podstawie ich podejmować poważne decyzje. Prowadzi nasze auta, wynajduje nowe lekarstwa, decyduje czy będziesz wiarygodnym kredytobiorcą, a nawet bywa „zwyczajnym rozmówcą”. Komunikacja z SI przybiera różne formy, choć dysponujemy szeregiem języków programowania, gotowymi rozwiązaniami informatycznymi, a sama wiedza jest niemalże powszechnie dostępna to właśnie komunikacja stanowi najważniejsze zagadnienie rozwoju sztucznej inteligencji. O ile, gdy stworzone przez nas oprogramowanie zawarte w ryzach algorytmów jest nam niemal całkowicie posłuszne, o tyle sztuczna inteligencja w swojej idei zaczyna „żyć własnym życiem” – życiem tak autonomicznym, że język cyfrowy schodzi momentami na drugi plan, a nawet może nie być samodzielnie wystarczający. Oczywiście nic nie wskazuje na to, abyśmy mieli w całości zrezygnować z języków programowania na rzecz… no właśnie czego? Rozmowy? Siri, Asystent Google czy Alexa to systemy bazujące na sztucznej inteligencji, które uprzednio zaprogramowane dalszą część cybernetycznego życia spędzają komunikując się poprzez komunikację werbalną. Całość procesu: gromadzenie danych, przetwarzanie czy wydawane przez nią komunikaty to głównie wiadomości głosowe. Jest to oczywiste i zrozumiałe, ale pod postacią wygodnej dla nas funkcjonalności rozpoznawania głosowego oraz syntezatora mowy, ukryty pozostaje znaczący krok w rozwoju komunikacji na linii człowiek – maszyna. W sposób nowoczesny, komfortowy, ale jednocześnie pionierski przeszliśmy z zerojedynkowej narracji do „języka człowieka”. Choć nie zawsze precyzyjnie i składnie, to rzeczywiście – maszyna rozmawia z człowiekiem. Wygląda to jak pierwszy krok w drodze do tego czym zwykliśmy nazywać świadomością. Doskonale operuje liczbami, w przeciągu ułamka sekundy zna odpowiedzi na liczbowe problemy, tworzy skomplikowane modele cyfrowe, wszystko co deterministyczne i natury arytmetycznej jest w jej zasięgu. Ma natomiast problem z pojęciami, które ironicznie, człowiekowi przychodzą nieco łatwiej – pojęciami abstrakcyjnymi. Czy w milionach tranzystorów może popłynąć rewolucyjna idea, zupełnie abstrakcyjna myśl, zakodowana jako „kilka zer i jedynek” ? Wszystkie wyniki pracy systemów sztucznej inteligencji, a w konsekwencji jej osiągnięcia bazują na dużych ilościach danych którymi jest „karmiona” i kolejno trenowana. Choć ten ciąg przyczynowo-skutkowy wydaje się pozostawać niewzruszony to ludzki umysł, również wiedziony ogromną ilością danych, popularniej zwanych bagażem doświadczeń potrafi myśleć w sposób abstrakcyjny, definiować swój byt i być samoświadomy. Czy samoświadomość sztucznej inteligencji to kwestia większej ilości danych i nowych połączeń sieci neuronowej? Jeżeli tak, to hipotetycznie moglibyśmy wskazać konkretny punkt, w którym owa sieć osiąga świadomość. Czy jest to wykonalne - jest nam ciężko określić, chociaż sam temat świadomości cyfrowej stanowi nie tylko obiekt: badań specjalistów, westchnień futurologów, ale także.. Rozważań filozofów Czy prekursorzy inżynierii elektronicznej tworząc pierwsze układy scalone, mogli doszukiwać się głębszego metafizycznego sensu w sygnałach? Jest to wątpliwie, jednak przyszłość przygotowała własną wizję - mariaż teorii informacji z humanizmem. Dwie dziedziny należące do przeciwległych biegunów nauki, połączyła potrzeba współpracy na rzecz ustalenia wspólnych mianowników etycznych dla człowieka i maszyny. Choć z pozoru nierealna wizja potrzeby dzielenia się wykuwaną przez lata ludzką moralnością, z pieśni przyszłości staje się prozą współczesności. Autonomiczne auta wyposażane są w systemy decyzyjne, których zadaniem jest podjęcie odpowiedniego wyboru w sytuacji zagrożenia życia. Ale czy faktycznie potrafimy zdefiniować odpowiedni wybór? Czy nie jest tak, że już na przestrzeni dialogu międzyludzkiego napotykamy problem z jasnym zdefiniowaniem systemu norm, który byłby spójny? Subiektywność, rozumiana bliżej jako doświadczenia życiowe i system wyznawanych przez nas wartości powodują dywersyfikację wersji algorytmu prawidłowego działania. Czy w niemożliwym do uniknięcia przypadku potrącenia pieszego system postanowi potrącić dziecko czy osobę starszą, osobę schorowaną czy kobietę w ciąży? Odpowiedź nie jest prosta, o ile w ogóle takowa istnieje. Wizja Elon Musk – właściciel firmy Tesla, produkującej innowacyjne samochody elektryczne do projektowania systemów autonomicznej jazdy wśród specjalistów z dziedzin IoT, Data Science, programistów systemów embedded rekrutuje osoby odpowiedzialne za moralne uposażenie systemów decyzyjnych – ekspertów z dziedziny filozofii. To oni są odpowiedzialni za wszystkie potencjalne dylematy natury moralnej. Zatrudnienie filozofów, ale również humanistów ogólnie w sektorze AI (Artificial intelligence – ang. Sztuczna Inteligencja) będzie niewątpliwie rosło. Urzeczywistnia się coś, o czym wcześniej nawet nie myśleliśmy – cykl technologiczny zatacza koło, a my uczłowieczamy technologię. Nie chodzi tu o podniosłe zwroty i patetyczne doszukiwanie się archetypu stwórcy w programiście – technologia brnie do przodu, a wraz z nią rola nas – jej głównych odbiorców i współrozmówców ulega ewolucji.
- 51 odpowiedzi
-
- 5
-
-
Cześć, napotkałem dziś dziwny problem. Po dodaniu do projektu STM32H743IIT6 pakietu X-CUBE-AI przestała działać komunikacja USART. Mam na PCB wyprowadzone USART2 oraz USART3 i żaden z nich nie działa. Zdaje się, że pozostała część programu działa, ale dokładnie tego nie sprawdzałem, jedynie miganie diod. Sprawdzałem wersje 7.3 oaz 8.0 pakietu AI. Najdziwniejsze jest to, że już samo zaznaczenie Core w Select Components (STM32CubeIDE) powoduje problemy. Późniejsze odznaczenie tego nie przywraca działania. Problem nie tkwi w pliku main.c. Przywrócenie pliku sprzed zmian nic nie daje. Komunikacja po USART realizowana jest poprzez programator z Nucleo F1. Wcześniej korzystałem z pakietu AI razem z USART na rdzeniu F7 i nie było problemów. Czy macie jakieś pomysły, gdzie szukać problemu?
-
Wstęp Tematyka uczenia maszynowego, sieci neuronowych oraz sztucznej inteligencji jest w ostatnich latach bardzo popularna nie tylko w środowisku naukowym, ale również wśród programistów i elektroników amatorów. Często jednak zdarza się, że znamy te zagadnienia z praktyki i umiemy je wykorzystywać przy pomocy popularnych bibliotek takich jak Keras, jednak nie wiemy co dzieje się na niższym poziomie. W artykule tym postaramy się jednak to zmienić. Naszym celem będzie zrozumienie podstaw teoretycznych i poznanie działania sztucznej inteligencji od pojedynczego neuronu, przez proces uczenia, aż do gotowej i wyuczonej sieci. Ten artykuł bierze udział w naszym konkursie! 🔥 Na zwycięzców czekają karty podarunkowe Allegro, m.in.: 2000 zł, 1000 zł i 500 zł. Potrafisz napisać podobny poradnik? Opublikuj go na forum i zgłoś się do konkursu! Czekamy na ciekawe teksty związane z elektroniką i programowaniem. Sprawdź szczegóły » Pojedynczy neuron Sztuczne sieci neuronowe składają się z węzłów (pojedynczych neuronów), warstw tworzonych przez węzły oraz połączeń między węzłami. Pojedynczy węzeł składa się z funkcji wejściowej, funkcji aktywacji oraz wyjścia. Połączenia między węzłami natomiast posiadają przypisane im wagi, przez które przemnażany jest sygnał przez nie płynący. Wyróżniamy również trzy warstwy węzłów: wejściową, ukrytą oraz wyjściową. Matematyczny model węzła, czyli pojedynczego sztucznego neuronu pokazano poniżej. Na początek skupmy się jednak na działaniu pojedynczego neuronu. Posiada on dowolną liczbę wejść oraz jedno wyjście. Wejściami mogą być, w zależności od warstwy w jakiej znajduje się nasz neuron, dane wejściowe lub wyjścia innego neuronu. Na rysunku mamy sześć sygnałów wejściowych opisanych x0-x5. Z reguły sygnały te powinny przyjmować wartości od 0 do 1 i następnie być przemnożone przez odpowiadające im wagi θ0-θ5. Wielkość tych wag jest dowolna (mogą być dodatnie oraz ujemne) i jest uzależniona od tego jak istotne dla działania naszej sieci jest dane połączenie. Podczas procesu uczenia sieci to właśnie te wagi ulegają zmianie tak by efekt działania sieci był jak najtrafniejszy. Wszystkie przemnożone przez swoje wagi wejścia są w kolejnym kroku sumowane i podawane jako wejście (czyli argument) funkcji aktywacji. Funkcja aktywacji jest niezwykle istotna. Z reguły wykorzystuje się tu funkcję sigmoidalną. Jej wykres przedstawiono na rysunku poniżej. Funkcja ta na podstawie swojego argumentu przyjmuje wartości z zakresu od 0 do 1. Zazwyczaj przyjmuje ona jednak tylko swoje skrajne wartości. Dlaczego więc stosujemy funkcję sigmoidalną zamiast zwykłego określania, że dla ujemnych argumentów funkcja aktywacji przyjmuje wartość 0, a dla dodatnich 1? Otóż funkcja ta jest w prosty sposób różniczkowalna1 co ma znaczący wpływ w procesie uczenia całej sieci, znacznie ułatwiając potrzebne obliczenia. Nie będziemy jednak tego tu dokładniej omawiać, temat doboru funkcji aktywacji mogłyby posłużyć na osobny artykuł. Wracając do działania neuronu wystarczy dodać, że wyjście funkcji aktywacji jest zarazem wyjściem całego węzła. Mówimy więc, że neuron jest w stanie spoczynku, gdy wartość funkcji aktywacji jest równa 0, lub w stanie pobudzenia gdy jest równa 1. W skrócie: Neuron jest w stanie spoczynku lub pobudzenia w zależności od wartości zsumowanych wejść tego neuronu pomnożonych przez przypisane im wagi. Od neuronu do sieci Mamy już pojedynczy neuron i wiemy jak on działa, ale co dalej? Teraz stworzymy całą sieć. W tym celu wyjścia jednego neuronu połączymy z wejściami innych. Warto jednak pamiętać, że część neuronów jako wejścia będzie posiadać dane wejściowe na podstawie których nasza sieć będzie wyliczać swoje wyjście. Neurony te stanowią warstwę wejściową. Z drugiej strony część neuronów będzie posiadała wyjścia nie podłączone do innych neuronów, lecz stanowiące wyjście całej sieci. Neurony te tworzą więc warstwę wyjściową. Cała reszta, która może łączyć się ze sobą w dowolny sposób (zaprojektowany oczywiście przez projektanta) nazywana jest warstwą ukrytą. W warstwie tej z reguły jest najwięcej połączeń oraz węzłów i od niej w dużej mierze zależy prawidłowość działania całej sieci. Schemat bardzo prostej sieci pokazano poniżej. Podsumowanie Wiemy już z czego składa się cała sieć, aż do pojedynczych części pojedynczego neuronu. Wiemy, że sieć składa się z wielu połączeń i każde z nich ma swoją wagę. Pozostaje nam więc jedynie odpowiedzieć na pytanie na czym polega proces uczenia maszynowego? Otóż polega on tylko i wyłącznie na doborze najoptymalniejszych wag dla każdego połączenia. Jest to proces który wymaga nieprawdopodobnej liczby obliczeń nawet przy niewielkich sieciach, lecz raz “wyuczona” sieć już tak skomplikowanych obliczeń nie potrzebuje dla prawidłowego działania. Dlatego też proces uczenia często wymaga dużej mocy obliczeniowej i zajmuje niemało czasu, natomiast sama sieć potrafi działać szybko nawet na mniej wydajnym sprzęcie. Jeśli interesuje Was ten temat i chcielibyście, abym opisał cały proces projektowania i uczenia sieci, dajcie proszę znać w komentarzach. Na koniec chciałbym jeszcze przedstawić Wam cytat jednego z największych naukowców 2. połowy XX w.: "Gdy (AI) osiągnie IQ 100 czy 150, nie będzie problemu. Ale gdy 1000 albo 10000, to co wtedy? To może być największe osiągnięcie ludzkości. Ale zarazem jej koniec." Stephen Hawking Bibliografia i inspiracje: Brain-wiki contributors, https://brain.fuw.edu.pl/edu/index.php/Uczenie_maszynowe_i_sztuczne_sieci_neuronowe (data dostępu 10.04.2021 r.) Smith Steven W.: Cyfrowe przetwarzanie sygnałów, BTC,Warszawa 2007 https://www.youtube.com/watch?v=aircAruvnKk https://www.youtube.com/watch?v=437dvcP-09E 1-od tego momentu matematyczny bełkot wszedł na ten poziom, że zacząłeś przewijać dalej?
-
Witam 🙂 Od około półtora roku interesuję się sztuczną inteligencją, zwłaszcza zastosowaną w robotyce. Jest to dla mnie niezwykle ciekawy temat 🙂 Kilka miesięcy temu zacząłem pracować nad moim prywatnym projektem, który cały czas jest w fazie rozwoju. Pewne elementy, takie jak uczenie się poprzez rozmowę z człowiekiem są gotowe, więc postanowiłem nagrać poniższe filmy: AgeBot podłączony jest do internetu. Platforma to gotowa konstrukcja - AlphaBot-PI. Użyłem jej, aby szybciej skupić się na oprogramowaniu. W ostatnim czasie domykałem widoczne na filmach możliwości robota i w międzyczasie zacząłem pracę nad wykorzystaniem kamery (aktualny stan to ~30%). W bliskiej przyszłości platformę mam zamiar wymienić na coś bardziej zaawansowanego lub zbudować swoją, ponieważ ta zaczyna mnie powoli ograniczać (pod względem hardware'u). Jej specyfikacja dostępna jest w internecie (np. na stronie firmy Waveshare), więc nie będę kopiował 😉 Jak już zauważyliście - używam Raspberry PI. Oprogramowanie na malinkę napisałem w C++, pozostała część to C++ oraz Python. Systemem jest Raspbian. Do zautomatyzowania instalacji niektórych zależności w systemie (akurat w przypadku samej malinki) używam narzędzia Ansible, a o te krytyczne dla działania aplikacji dba manager pakietów (apt, buduję paczki .deb). Do przetwarzania tekstu użyłem biblioteki Tensorflow, natomiast w procesie uczenia się, robotowi asystuje wnioskowanie. Kamera i przetwarzanie obrazu otworzy wiele nowych drzwi, ułatwi również pracę przy kolejnej domenie - planowaniu zadań. Sam robot jest stosunkowo małą częścią projektu, ale o tym... w przyszłości 😉 Każdy feedback mile widziany 🙂 Pozdrawiam PS: W ciągu kilku dni napiszę posta z trochę bardziej szczegółowymi informacjami odnośnie przetwarzania tekstu - czatowania z robotem
- 27 odpowiedzi
-
- 5
-
-
- AI
- Raspberry Pi
-
(i 1 więcej)
Tagi:
-
Cześć. Robię projekt rozpoznawania jednego z kilku ruchów za pomocą akcelerometru, żyroskopu, STM32F467ZG i pakietu X-CUBE-AI. Opieram się na artykule @Elvis Sztuczna inteligencja na STM32, czyli przykład użycia X-CUBE-AI, ale mam kłopot z jego rozszerzeniem. Próbowałem różnych sposobów, ale nie mogę zrobić sieci, która zamiast wartości binarnej (ruch - brak ruchu) zwróci mi prawdopodobieństwa każdego z 6 wyjść (na razie chciałbym tyle różnych ruchów rozpoznawać). Mam książkę, którą poleca Elvis ("Deep Learning" autorstwa Chollet'a), ale brak doświadczenia z SSN, czy nawet językiem Python mocno mnie ogranicza. Chciałbym też, żeby zamiast jednego wejścia będącego prostą funkcją odczytów z czujników (suma kwadratów odczytów z akcelerometru), f = open('data1.csv','r') values = [] results = [] for line in f: fields = line.strip().split(',') if len(fields) == 4: x = float(fields[0]) y = float(fields[1]) z = float(fields[2]) values.append([math.sqrt(x**2 + y**2 + z**2)]) results.append(float(fields[3])) f.close() układ bezpośrednio korzystał ze wszystkich 6 (3ACC i 3 GYRO). Tutaj fragment kodu Elvisa z STM'a: void MX_X_CUBE_AI_Process(void) { /* USER CODE BEGIN 1 */ float nn_input[AI_FORBOT_AI_IN_1_SIZE]; float nn_output[AI_FORBOT_AI_OUT_1_SIZE]; aiRun(nn_input, nn_output); /* USER CODE END 1 */ } static uint32_t next_ms = 1000; static float nn_input[AI_FORBOT_AI_IN_1_SIZE]; float nn_output[AI_FORBOT_AI_OUT_1_SIZE]; while (HAL_GetTick() < next_ms) {} next_ms += READ_DELAY_MS; lsm6_value_t acc; acc = lsm6_read_acc(); for (int i = 0; i < AI_FORBOT_AI_IN_1_SIZE - 1; i++) nn_input[i] = nn_input[i + 1]; nn_input[AI_FORBOT_AI_IN_1_SIZE - 1] = sqrt(acc.x * acc.x + acc.y * acc.y + acc.z * acc.z); aiRun(nn_input, nn_output); if (nn_output[0] >= 0.5f) HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); else HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET); Pomożecie mi zmienić kod Python'a i STM'a, bym mógł go użyć do swoich potrzeb? Naprawdę długo szukałem sposobu i próbowałem wielu rozwiązań, ale albo nie działa mi sieć neuronowa, albo nie kompiluje się projekt w SW4STM32.