zadanie domowe.
Transkrypt
zadanie domowe.
Klasyfikacja przy pomocy wielowarstwowej sieci perceptronowej Przedmiot: Sieci neuronowe i ich zastosowania W ramach zajęć laboratoryjnych stosowaliśmy sieć perceptronową do aproksymacji funkcji. W przypadku zadania domowego rozważmy omawianą metodę do rozwiązywania zadania związanego z klasyfikacją. Przykładem może być rozpoznawanie mówcy, na podstawie jego plików dźwiękowych. Jak rozwiązać przedstawiony problem? 1. Przygotowanie zbiorów treningowych oraz testujących. • Dla wybranej grupy osób (myślę, że na początek nie większej od pięciu) należy nagrać próbki głosowe (wypowiadaną ustaloną sekwencję słów – taką samą dla każdej osoby – nie dłuższą od 1 min.). Dla każdej osoby przykładowo po cztery pliki przeznaczone do treningu i powiedzmy jeden testujący. • Jeżeli nagraliśmy pliki w formacie windows .wav, w celu wczytania ich do Matlaba możemy skorzystać z funkcji wavread, Y=WAVREAD(FILE), przykładowo pierwszy plik treningowy dla mówcy pierwszego s11tr = wavread(’s11tr.wav’). • W celu konwersji do wektora cech akustycznych (akceptowalnej formy przez wybraną metodę klasyfikacji, w naszym przypadku sieć neuronową) można skorzystać z algorytmu MFCC (Mel Frequency Cepstral Coefficients). Implementacja metody dostępna wraz z całym pakietem Voicebox http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html. Funkcja: melcepst zwraca macierz dwunastu cech akustycznych. Przykład: s1 = melcepst( s11tr, 8000); • Tak uzyskane dane zapisujemy do macierzy wartości treningowych oraz testujących. 2. Organizacja sieci neuronowej. Dysponując próbkami treningowymi możemy przygotować sieć neuronową. Korzystając z informacji uzyskanych na laboratorium należy zastanowić się nad topologią sieci (przede wszystkim liczbą neuronów w pierwszej warstwie), funkcjami przejścia oraz liczbą iteracji. Przeprowadzamy trening (przyp. komenda train) 3. Analiza wyników. W celu weryfikacji nastrojonej sieci podajemy na wejście macierz cech określonego mówcy (przyp. komenda sim). Sieć rozponała tę osobę, której wartość przeważała w odpowiedziach sieci. Podsumowując dotychczasowe zajęcia, proszę dodatkowo zastanowić się, czy przedstawiony problem może zostać rozwiązany przy pomocy sieci składającej sie z perceptronów binarnych. Jeżeli tak, to w rozwiązaniu – w celu przyspieszenia obliczeń – proponuję zastosować własną implementację strojenia jednostki perceptronowej. Chodzi oczywiście o obliczenia wykonane na całych macierzach wag, biasów. Niewielkim nakładem programistycznym można znacznie zyskać na czasie :). 1