Uczenie maszynowe w zastosowaniu do fizyki cząstek Wykorzystanie uczenia maszynowego i głębokich sieci neuronowych do ćwiczenia 3. M. Kaczmarczyk, P. Górski, P. Olejniczak, O. Kosobutskyi Instytut Fizyki Jądrowej im. Henryka Niewodniczańskiego 20 lipca 2017
Spis treści 1 Kilka słów o uczeniu maszynowym Uczenie maszynowe Podstawowe pojęcia BDT Sieci neuronowe 2 Uczenie maszynowe w ćwiczeniu 3 Poszukiwanie Higgsa i SuSy Poszukiwanie H ± w rozpadzie τν Podsumowanie 3 BDT i DNN oraz optymalizacja hiperparametrów w ćwiczeniu 3 Optymalizacja hiperparametrów Głębokie sieci neuronowe w ćw. 3 Podsumowanie
Kilka słów o uczeniu maszynowym
Uczenie maszynowe Czym jest uczenie maszynowe? Uczenie maszynowe (ang. Machine Learning) jest analizą procesów uczenia się oraz tworzeniem systemów, które doskonalą swoje działanie na podstawie doświadczeń z przeszłości. Wyróżniamy dwa rodzaje uczenia maszynowego: Uczenie z nauczycielem - zakłada obecność ludzkiego nadzoru nad tworzeniem funkcji odwzorowującej wejście systemu na jego wyjście. Uczenie bez nauczyciela - zakłada brak obecności dokładnego lub nawet przybliżonego wyjścia w danych uczących.
Uczenie maszynowe Gdzie wykorzystujemy uczenie maszynowe? Uczenie maszynowe wciąż się rozwija i znajduje nowe praktyczne zastosowania. Ilość możliwych zastosowań jest niezwykle ogromna i pozwala przewidzieć, że w przyszłości każdy aspekt techniki będzie zawierać jakąś implementację algorytmów maszynowego uczenia się. skanowanie pisma ręcznego (OCR) oprogramowanie do rozpoznawania mowy automatyczna nawigacja i sterowanie analiza i klasyfikacja danych
Uczenie maszynowe Popularność w Internecie Można znaleźć około 2500 artykułów na scholar.google.com od 2016, które zawierają wyrażenie deep learning w tytule.
Uczenie maszynowe Pakiety używane w uczeniu maszynowym TMVA (ang. The Toolkit for Multivariate Data Analysis) jest to zintegrowany z ROOTem pakiet zapewniający możliwość analizy danych z wieloma zmiennymi przy pomocy uczenia maszynowego Keras jest biblioteką napisaną w Pythonie służącą do tworzenia sieci neuronowych. Działa wraz z bibliotekami Tensorflow i Theano. scikit-learn jest biblioteką uczenia maszynowego dla Pythona
Podstawowe pojęcia Krzywe ROC ROC (ang. Receiver Operating Characteristic) - charakterystyka odbiornika radarowego Każdy kwalifikator zwraca wartość z jakiegoś obszaru, można po niej ciąć. Dla wartości zbyt dużej usuniemy całe tło ale też i prawie cały sygnał Dla wartości zbyt małej przepuścimy zbyt dużo tła. Obydwie wydajności można zaznaczyć na wykresie. Krzywa ROC jest to wykres dla wszystkich możliwych cięć. Powierzchnia pod krzywą ROC jest jedną z miar dobroci kwalifikatora. ROC = 1 - losowe dane 2 ROC = 1 - idealne
Podstawowe pojęcia Przetrenowanie Poprawny trening Zapobieganie przetrenowaniu Większa sieć więcej możliwości ale i łatwiej o przeuczenie. Regularyzacje L1, L2 kara za zbyt duże wagi. Ćwiczenie tylko na małej losowej części danych Dodawanie małego szumu do sygnału Przetrenowanie Przykład z użyciem NN
BDT Co to jest BDT? BDT - Wzmocnione drzewo decyzyjne (ang. Boosted Decision Tree) Drzewo decyzyjne szereg następujących po sobie cięć, każdy końcowy liść ma przypisaną klasyfikację, np. sygnał i tło. Boosted Decision Tree Decision Tree - algorytm znany od dawna, powszechnie stosowany we wszelakich systemach eksperckich. Jako drzewo decyzyjne formułuje się np. schematy działania przy udzielaniu pierwszej pomocy: jeśli coś to zrób to i to, sprawdź dalej inny warunek itd. Boosted - Metoda łączenia wielu słabych klasyfikatorów w celu uzyskania mocnego klasyfikatora. Nie musi się ograniczać do drzew decyzyjnych, choć z nimi jest najchętniej używana.
BDT Budowanie drzewa decyzyjnego Tworzenie BDT 1 Zaczynamy budowę drzewa od korzenia. 2 Dzielimy zbiór treningowy na dwa poprzez cięcie najlepiej separujące na najlepszej zmiennej. 3 Powtarzamy procedurę aż spełnione zostaną warunki końcowe, np. liczba liści, liczba przypadków w liściu itd. Stosunek S/B w liściu określa klasyfikację (binarnie sygnał, tło lub liczba rzeczywista określająca prawdopodobieństwo, że jest to sygnał).
BDT AdaBoost AdaBoost jest najczęściej używanym algorytmem przy budowie drzew decyzyjnych Procedura algorytmu AdaBoost 1 Zbuduj drzewo decyzyjne 2 Zwiększ wagi źle sklasyfikowanych przypadków 3 Powtarzaj wiele razy (typowo 100-1000) 4 Klasyfikuj przypadki na podstawie głosowania wszystkich drzew.
Sieci neuronowe Płytkie sieci neuronowe Cechy sieci neuronowych Podstawowym elementem jest neuron Neuron posiada wiele wejść i jedno wyjście Sygnał na wyjściu jest równy funkcji aktywacyjnej policzonej od ważonej sumy wejść oraz biasu Funkcje aktywacji to na przykład funkcja logistyczna, tangens hiperboliczny lub max(0, x) Sieć składa się z warstw, a każda warstwa z pewnej ilości neuronów Wejście każdego neuronu to wyjścia wszystkich neuronów z poprzedniej warstwy. Można regulować wszystkie wagi oraz biasy Można minimalizować funkcje błędu jako funkcje R N - schodzenie po gradiencie Uczenie można przyspieszyć przy użyciu wstecznej propagacji błędu.
Sieci neuronowe Głębokie sieci neuronowe Cechy głębokich sieci neuronowych Środkowe warstwy mogą budować zmienne wyższego rzędu na postawie których ostatnia warstwa podejmuje decyzje. Działa podobnie jak zadanie 3 - najpierw szukamy dobrych zmiennych a potem robimy na ich podstawie kwalifikacje. Uczenie jest trudne dużo zmiennych oraz gradient zanika lub wybucha wykładniczo w głębszych warstwach.
Uczenie maszynowe w ćwiczeniu 3
Poszukiwanie Higgsa i SuSy Zastosowanie pakietu TMVA Wykorzystaliśmy pakiet TMVA do wygenerowania krzywych ROC dla danych z ćwiczenia 3. Background rejection Background rejection versus Signal efficiency 1 0.9 MVA Method: 0.8 BDT MLPBNN 0.7 KNN RuleFit 0.6 SVM 0.5 Likelihood FDA_GA 0.4 LD PDERS 0.3 LikelihoodPCA Background rejection Background rejection versus Signal efficiency 1 0.9 0.8 0.7 0.6 MVA Method: 0.5 BDT LikelihoodPCA 0.4 Likelihood LD 0.3 FDA_GA 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Signal efficiency Krzywa ROC dla 4 zmiennych wysokiego poziomu 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Signal efficiency Krzywa ROC dla 16 zmiennych niskiego poziomu Zmienne wysokiego poziomu Różnice kątów Suma pędów poprzecznych Zmienne niskiego poziomu Pędy Położenia
Poszukiwanie Higgsa i SuSy W 2014 roku Baldi, Sadowski i Whiteson wykorzystali DNN do poszukiwania bozonu Higgsa i cząstek SuSy.
Poszukiwanie Higgsa i SuSy Krzywa ROC dla płytkiej sieci neuronowej Krzywa ROC dla głębokiej sieci neuronowej
Poszukiwanie Higgsa i SuSy Background rejection Background rejection versus Signal efficiency 1 0.9 0.8 0.7 0.6 Background rejection Background rejection versus Signal efficiency 1 0.9 0.8 0.7 0.6 0.5 MVA Method: PyKeras 0.5 MVA Method: PyKeras 0.4 BDT 0.4 DNN 0.3 DNN Fisher 0.3 BDT Fisher 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Signal efficiency 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Signal efficiency ROC dla 4 zmiennych wysokiego poziomu ROC dla 16 zmiennych niskiego poziomu Background rejection Background rejection versus Signal efficiency 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 MVA Method: PyKeras BDT DNN Fisher 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Signal efficiency Suma zmiennych wysokiego i niskiego poziomu (20)
Poszukiwanie H ± w rozpadzie τν Zadanie Identyfikacja rozpadów H± τ ν w eksperymencie ATLAS za pomocą metod uczenia maszynowego
6 3 6 6 6 3 3 6 6 3 Poszukiwanie H ± w rozpadzie τν 0.0805 (1/N) dn / (1/N) dn / 2.03e+04 0.0805 (1/N) dn / Input variable: dphi_met_tau 1.6 Signal Background 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 3 dphi_met_tau Input variable: pt_bjet 10 8 7 6 5 4 3 2 1 0 10 100 200 300 400 500 600 700 800 pt_bjet Input variable: dphi_met_bjet 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 3 dphi_met_bjet U/O flow (S,B): (0.0, 0.0)% / (0.0, 0.0)% (1/N) dn / 1.16e+04 U/O flow (S,B): (0.0, 0.0)% / (0.0, 0.0)% (1/N) dn / 2.25e+04 U/O flow (S,B): (0.0, 0.0)% / (0.0, 0.0)% (1/N) dn / 9.22e+03 Input variable: pt_tau Input variable: MET 10 10 30 10 25 20 15 10 5 0 10 50 100 150 200 250 300 350 400 450 500 pt_tau Input variable: pt_bjet_jet 10 10 8 6 4 2 0 10 0 100 200 300 400 500 600 700 800 900 Input variable: sub_light_jet_pt 10 25 20 15 10 5 0 10 50 100 150 200 250 300 350 sub_light_jet_pt U/O flow (S,B): (0.0, 0.0)% / (0.1, 0.0)% U/O flow (S,B): (0.0, 0.0)% / (0.1, 0.0)% 1.67e+04 (1/N) dn / 0.13 (1/N) dn / 8 6 4 2 0 10 200 300 400 500 600 700 MET Input variable: dr_tau_bjet 0.6 0.5 0.4 0.3 0.2 0.1 0 1 2 3 4 5 pt_bjet_jet dr_tau_bjet U/O flow (S,B): (0.0, 0.0)% / (0.1, 0.2)% (1/N) dn / 9.68e+04 Input variable: tau_0_leadtrk_pt 10 10 8 6 4 2 0 10 500 1000 1500 2000 2500 3000 3500 tau_0_leadtrk_pt U/O flow (S,B): (0.0, 0.0)% / (0.1, 0.0)% U/O flow (S,B): (0.0, 0.0)% / (0.0, 0.0)% U/O flow (S,B): (0.0, 0.0)% / (0.0, 0.0)% Input variable: tau_0_n_tracks Input variable: upsilon 0.0512 (1/N) dn / 16 14 12 10 8 6 4 2 0 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 tau_0_n_tracks U/O flow (S,B): (0.0, 0.0)% / (0.0, 0.0)% (1/N) dn / 0.0766 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0.5 0 0.5 1 1.5 2 upsilon U/O flow (S,B): (0.0, 0.0)% / (0.0, 0.0)% Zmienne wysokiego poziomu używane w analizie prowadzonej przez grupę eksperymentu ATLAS
Poszukiwanie H ± w rozpadzie τν Background rejection Background rejection versus Signal efficiency 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 MVA Method: BDTG Likelihood 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Signal efficiency Krzywa ROC dla 11 zmiennych wysokiego poziomu Background rejection Background rejection versus Signal efficiency 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 MVA Method: BDTG Likelihood 0.2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Signal efficiency Krzywa ROC dla 46 zmiennych niskiego poziomu Wyraźnie lepsza separacja sygnału od tła Plany 1 Identyfikacja znaczących zmiennych niskiego poziomu 2 Zastosowanie DNN - Czy umożliwi poprawę wyników?
Podsumowanie Podsumowanie i wnioski Udowodniliśmy że dla analizy wielu zmiennych algorytmy uczenia maszynowego mogą być bardzo skuteczne. Użyliśmy pakietów TMVA i Keras do separacji sygnału od tła z ćwiczenia 3 - automatyczna selekcja jest lepsza od ręcznej. BDT lepiej sobie radzi dla zmiennych wysokiego poziomu, ale DNN dają lepszy wynik dla zmiennych niskiego poziomu, który przekracza wszystkie poprzednie.
Podsumowanie Dziękujemy za uwagę!
BDT i DNN oraz optymalizacja hiperparametrów w ćwiczeniu 3
Optymalizacja hiperparametrów Hiperparametry są to parametry, które określają w jaki sposób uczy się dany kwalifikator Zastosowaliśmy pakiet hyperopt do optymalizacji hiperparametrów, próbując zmaksymalizować pole powierzchni pod krzywą ROC Przykładowe hiperparametry Liczba warstw sieci neuronowych Maksymalna głębokość drzew w lesie Tempo nauki
Optymalizacja hiperparametrów Porównanie krzywych ROC dla różnych hiperparametrów AdaBoost
Głębokie sieci neuronowe w ćw. 3 Uczenie DNN dla zmiennych niskiego poziomu
Głębokie sieci neuronowe w ćw. 3 Uczenie DNN dla zmiennych wysokiego poziomu
Podsumowanie AdaBoost okazał się bardzo dobrym algorytmem Płytkie sieci neuronowe dają słabe wyniki Porównanie krzywych ROC dla różnych metod: Głębokie sieci neuronowe - 4 warstwy po 100 neuronów Płytkie sieci neuronowe - 2 warstwy po 300 neuronów
Podsumowanie Dziękujemy za uwagę!