Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 10 (06.05.2019)
Szachy Liczba możliwości: Pierwsze posunięcie białych: 20 Pierwsze posunięcie czarnych: 20 Ruch biały-czarny: 20 x 20 = 400 Ruch biały-czarny-biały: 8092 2 ruchy ( biały-czarny-biały-czarny): 197281 3 ruchy: 119 milionów 4 ruchy: 85 miliardów 5 ruchów: 69 bilionów
Mechaniczny Turek (1769)
Szachy Claude Shannon, 1950: liczba możliwych partii szachów: 10 120 Wniosek: stworzenie doskonałego programu szachowego nie jest możliwe Alan Turing, 1951: pierwszy algorytm szachowy; potwierdzenie opinii Shannona Deep Blue, 1997 Alpha Zero, 2017 AlphaZero rozegrała 100 partii z programem Stockfishem analizującym 70 milionów ruchów w sekundę. Wygrała 28 partii, pozostałe 72 zremisowała.
Go Starochińska gra, uznawana za trudniejszą niż szachy 2015 AlphaGo pokonuje mistrza Europy 5:0 2016 AlphaGo pokonuje 18-krotnego arcymistrza Lee Sedol wynikiem 4:1
Starcraft 2 (RTS) Mnogość strategii przy niepełnej informacji Wielopoziomowość 2019 AlphaStar pokonuje zawodnika z najwyższym rankingiem MMR (o pseudonimie Mana) 5:0 https://www.youtube.com/watch?v=pfmrdm_h9sg
Rozpoznwanie pisma odręcznego
Sztuczna inteligencja Inteligencja: zdolność ludzkiego intelektu do rozwiązywania problemów Sztuczna inteligencja: zdolność maszyny do rozwiązywania problemów, które wymagałyby inteligencji Rozumiana: Wąsko: inteligentne techniki obliczeniowe służące wykonaniu trudnych zadań Szeroko: zdolność maszyny do symulowania myślenia ludzkiego
Sztuczna inteligencja w wąskim rozumieniu Najważniejsze zadania: przeszukiwanie - znajdowanie rozwiązań z określonego zbioru bez pełnego przeglądania wszystkich możliwości wnioskowanie - stosowanie reguł wnioskowania prowadzące do docelowego twierdzenia uczenie się modyfikacja systemu na podstawie doświadczeń lub przykładowych danych, prowadząca do poprawienia sprawności rozwiązywania zadań i przewidywania People who bought Da Vinci Code also bought The Five People You Meet in Heaven (www.amazon.com)
Sztuczna inteligencja w szerokim rozumieniu W 1950 roku A. Turing zaproponował by możliwość udawania człowieka w zdalnej rozmowie uznać za test inteligencji maszyn Turing, A.M., Computing machinery and intelligence, Mind 59, 433 (1950).
Podstawowa terminologia Source: Nvidia
Sieci neuronowe
Sieci neuronowe Podstawowy element: perceptron (1950-60, Frank Rosenblatt) w 1 w 2 w 3
Perceptron - przykład działania Decyzja do podjęcia: czy jechać na koncert pod miastem Składowe decyzji: x 1 = Czy dobry dojazd (0/1) x 2 = Czy znajomi jadą (0/1) x 3 = Czy pogoda będzie dobra (0/1) w 1 w 2 w 3 Każdy czynnik wchodzi ze swoją wagą: w 1, w 2, w 3 Decyzja na tak, jeśli suma większa niż ustalony próg. Jeśli suma poniżej progu decyzja na nie.
wektory Wygodniejsza notacja
Regresja liniowa Metoda estymowania wartości zmiennej zależnej y w oparciu o znaną/e wartość/wartości zmiennej niezależnej x Przykład: metoda najmniejszych kwadratów Kwartet Anscombe a Podobne wskaźniki statystyczne, choć różny charakter danych Metoda niedoskonała!
Sieć neuronowa Pierwsza warstwa (ang. layer) Druga warstwa + wagi na każdym wejściu (niezaznaczone na rysunku)
Aby mała zmiana wartości wag dawała małą zmianę w ostatecznym wyniku, a duża zmiana nie powodowała problemów ze stabilnością: regresja liniowa regresja logistyczna perceptron neuron sigmoidalny
Funkcje sigmoidalne jako funkcje aktywacji - przykłady Funkcja unipolarna: Funkcja bipolarna (tangens hiperboliczny): ReLU y(x) = max(0,x)
Uczenie się sieci neuronowej (ang. machine learning) Przykładowa procedura rekurencyjna: Wkładamy wartości wejściowe i losowe wagi i sprawdzamy czy dostaliśmy poprawną odpowiedź na wyjściu (0 lub 1). Jeśli niedobry wynik, poprawiamy wartości wag w kolejnych warstwach w oparciu o ich wkłady do całkowitej wartości błędu (tzw. wsteczna propagacja błędu). Próbujemy ponownie. Kończymy procedurę, gdy wartość błędu zbiega poniżej zadanej wartości.
Wizualizacja uczenia się sieci neuronowej http://playground.tensorflow.org/
Rozpoznawanie obrazu Wg. https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/
Rozpoznawanie obrazu Każdy obraz można przedstawić jako macierz, której składowymi są wartości odzwierciedlające intensywność pikseli
Rozpoznawanie obrazu Macierz Filtr Konwolucja
Rozpoznawanie obrazu dla jednego obrazka budujemy kilka map cech korzystając z różnych filtrów
Rozpoznawanie obrazu dla jednego obrazka budujemy wiele map cech korzystając z różnych filtrów
Wprowadzamy nieliniowość przez funkcję ReLU Rozpoznawanie obrazu
Rozpoznawanie obrazu aby nie przeuczyć sieci i zredukować liczbę parametrów / ilość informacji przesyłanych do kolejnych warstw korzystamy z tzw. pooling layers, najczęściej jest to maxpooling
Rozpoznawanie obrazu
Rozpoznawanie obrazu Rozpoznawanie odręcznie pisanych cyfr: http://scs.ryerson.ca/~aharley/vis/conv/ Rozpoznawanie obiektów na obrazie w czasie rzeczywistym: https://www.youtube.com/watch?v=ae1ka0jy0xg
AI - korzyści Nowe, fascynujące perspektywy poznawcze Oszczędne projektowanie (przedmiotów, domów, procedur, ) Przewidywanie anomalii pogodowych Tłumaczenie tekstu na inne języki Lepsza kontrola jakości Poprawa bezpieczeństwa Poprawa trafności diagnostyki medycznej
https://futurism.com/incrediblyrealistic-faces-generated-neuralnetwork https://www.youtube.com/wat ch?time_continue=356&v=kslj riaouma
AI zagrożenia Bill Gates: Nie rozumiem, czemu niektórzy się nie przejmują Rozpoznawanie obiektów na obrazie w czasie rzeczywistym: https://www.youtube.com/watch?v=ae1ka0jy0xg
Hiper-wojny AI - zagrożenia The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation Pełen raport: https://maliciousaireport.godaddysites.com/ Zaawansowane manipulacje obrazem, filmem, dźwiękiem https://youtu.be/amuc4m6w1wo
AI - zagrożenia Zmiany na rynku pracy Cyber ataki nowego typu Manipulacja opinią z wykorzystaniem wielu danych Brak prywatności
xkcd.com
Dla zainteresowanych: Prosta sieć neuronowa DIY: https://machinelearningmastery.com/tutorialfirst-neural-network-python-keras/ MNIST - 60 tys. obrazków przedstawiających ręcznie napisane cyfry - 20x20 px http://yann.lecun.com/exdb/mnist/
https://github.com/hftrader/deeplearningbook Podręczniki, książki: Dobry kurs online: https://www.coursera.org/specializations/deep-learning