Een semi-gesuperviseerde leermethode voor de ontwikkeling van modellen die spraakverstaanbaarheid berekenen Evi Weymaere Promotor: prof. dr. ir. Jean-Pierre Martens Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Een semi-gesuperviseerde leermethode voor de ontwikkeling van modellen die spraakverstaanbaarheid berekenen Evi Weymaere Promotor: prof. dr. ir. Jean-Pierre Martens Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Voorwoord Ik wil graag van dit voorwoord gebruik maken om enkele mensen te bedanken. Als eerste wil ik graag mijn promotor, professor Jean-Pierre Martens, bedanken voor alle brainstorming, kritische opmerkingen en feedback die ik gedurende dit jaar kreeg. Bedankt ook aan mijn begeleiders, Catherine Middag en Dries Lagae voor alle hulp en feedback die ervoor gezorgd hebben dat deze thesis tot stand is kunnen komen. Oneindig veel dank aan mijn ouders en mijn zus voor hun onvoorwaardelijke steun en medeleven. Ik heb hen de laatste vijf jaar zonder twijfel meegesleurd in allerlei emoties, zowel positieve als negatieve. Op momenten dat ik het niet meer zag zitten, gaven ze me dat extra duwtje dat ik nodig had. Bij elke verwezenlijking waren ze trots in mijn plaats. Dank jullie wel mama, papa en Jana, zonder jullie had ik nooit kunnen bereiken waar ik nu ben. Tenslotte wil ik ook graag mijn vrienden, en dan in het bijzonder Thibault bedanken voor de vijf fijne jaren. Jullie maakten de lessen aangenamer, de stressvolle momenten lichter en zorgden voor nooit te vergeten herinneringen. Dankzij jullie kan ik naar mijn studentenjaren terugkijken als de beste vijf jaar van mijn leven. i Toelating tot bruikleen De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen ervan te kopi¨eren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting uitdrukkelijk de bron te vermelden bij het aanhalen van resultaten uit deze scriptie. Gent, Juni 2014 De auteur Evi Weymaere ii Een semi-gesuperviseerde leermethode voor de ontwikkeling van modellen die spraakverstaanbaarheid berekenen Evi Weymaere Promotor: prof. dr. ir. Jean-Pierre Martens Masterproef ingediend tot het behalen van de academische graad van Master of Science in de Ingenieurswetenschappen: computerwetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. Jan Van Campenhout Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Samenvatting Het is vaak erg moeilijk om aan correct gescoorde spraakfragmenten te geraken voor het voorspellen van bijvoorbeeld de verstaanbaarheid van pathologische spraak op basis van akoestische kenmerken die door spraakanalyse uit die spraak werden afgeleid. In deze thesis gaat men op zoek naar semi-gesuperviseerde leermethoden die naast gescoorde fragmenten ook niet-gescoorde fragmenten uitbuiten teneinde tot betere modellen te komen dan degene die uitsluitend uit de gescoorde fragmenten zijn afgeleid. Er zullen verschillende methoden uitgeprobeerd en vergeleken worden met de gesuperviseerde methode die enkel de gescoorde data gebruikt. Kernwoorden semi-gesuperviseerd leren, co-training, spraakverstaanbaarheid iii A semi-supervised learning method for the development of models that compute speech intelligibility Evi Weymaere Supervisor(s): Jean-Pierre Martens, Catherine Middag, Dries Lagae Abstract—It is often very hard to retrieve correctly scored speech fragments to predict for example pathological speech intelligibility based on the acoustic features that are derived from the speech fragments through analysis. In this thesis, semi-supervised models will be explored in order to retrieve better results by also using unscored fragments instead of only using the scored ones. Different methods will be tested and a comparison is made to supervised methods, for which only scored data is considered. Keywords— semi-supervised learning, co-training, speech intelligibility I. I NTRODUCTION Speech is a powerful tool; it is used to communicate and learn. When speech falls out, everything becomes more difficult. Therefore, it is important to help people with speech disorders to speak as well as possible. The improvement of these patients can be evaluated through a intelligibility score, ranging from 0 to 100 percent. These scores are normally given by the speech therapist, which is very time consuming. A tool was created to automatically predict the speech intelligibility of a speaker in order to evaluate the improvement. This tool makes use of a machine learned algorithm that uses a set of observations with their acoustic features and the intelligibility score given by a therapist. Since retrieving speech fragments is much easier than scoring them, we will examine if we can improve the results of the tool by also taking into account acoustic features without scores. This technique is called semi-supervised learning. In this paper, we will first discuss existing work in Section II and we provide a detailed explanation of one of the techniques in Section III. After this, we will introduce our test setup (Section IV) and discuss our results (Section V). We will end with a conclusion (Section VI). II. R ELATED W ORK The existing tool we start with was developed by C. Middag [3]. The hypothesis was that the tool could be further improved by exploring new data (unscored) by means of the co-training algorithm proposed by Zhu [1]. This algorithm combined co-training with kNN (k Nearest Neighbours) as presented by Zhou and Li [2]. In this paper we generalize this algorithm so that it can also be used with other techniques, such as ELR (Ensemble Linear Regression), which is the machine learning approach in the existing tool ([3]). III. C O - TRAINING Based on the existing algorithms, we created a generalized framework for co-training where any regressor can be plugged in. The framework can be found in algorithm 1. The algorithm makes use of two regressors which will start with the same data set of all scored points. In every iteration, the first regressor will choose the best unscored point to compute a score for and to add it to the scored data set which will be used to update the second regressor. Then the second regressor will search for the best point to scored and to add this to the scored data set of the first regressor. This will be repeated until a stop criterion is reached. There are a lot of options for deciding which point is best suited for addition to a data set. One option is to train a new model for every unscored point and to choose the point which leads to the biggest improvement of the model as measured on the originally scored points. Other options can be related to the model, for example the standard deviation of the scores predicted by the submodels in ELR. The stop criterion also permits several options that are often correlated to the quality measure. The algorithm can stop when there is no more improvement anymore, when there are no more unscored points that can be added, after a certain time, ... IV. T EST S ETUP We make use of a data set consisting of 231 observations with 79 acoustic features and an intelligibility score that was derived from human judgments of the speech. From these 231 observations, 150 will be used as train data and the other 81 as test data. The difference between the real and predicted intelligibility will lead to the Root Mean Square Error (RMSE). In order to avoid exceptions, we will do 10 different runs with 10 different training and test partitions. The training data will be decomposed further in order to test with different amounts of scored and unscored data This will lead to five configurations: 150 scored and 0 unscored points, 120 scored and 30 unscored points, 90 scored and 60 unscored points, 60 scored and 90 unscored; and 30 scored and 120 unscored points. Algorithm 1 General framework for co-training INPUT: scored data set S = {xs , ds : s = 1..Ns }, unscored data set U = {xu : u = 1..Nu } S1 ← S; S2 ← S while stopcriterion not satisfied do for j ∈ {1, 2} do hj (x) ← regressor based on Sj for elke xu ∈ U do dˆu ← hj (xu ) n h0j,u ← regressor based on Sj ∪ xu , dˆu o qu ← Qj,u (hj , h0j,u ), quality measure of dˆu end for if there exists a qu > 0 then ˜xj ← arg maxxu ∈U qu d˜j ← h nj (˜xj ) o πj ← (˜xj , d˜j ) Fig. 1. RMSE as a function of the number of scored points for cotraining and standard kNN U ← U \ {˜xj } else πj ← ∅ end if end for S1 ← S1 ∪ π2 S2 ← S2 ∪ π1 if both S1 and S2 are not changed then EXIT end if end while OUTPUT: regressor h∗ (x) ← 21 (h1 (x) + h2 (x)) V. R ESULTS We will test two regression techniques that will be plugged into the co-training framework: kNN and ELR. They will be compared to the standard algorithm that uses only scored data. The next sections will discuss the results. A. Co-training with kNN After having tweaked the parameters for the standard kNN algorithm, we could compare this algorithm to cotraining. As quality measure, we aim for the best improvement to choose the best unscored point. Points will be added until there is no further improvement. Figure 1 shows the results of the tests. There is no significant difference between the standard algorithm and the cotraining algorithm. Even after a lot of optimizations, no difference can be made. B. Co-training with ELR The ELR algorithm uses several linear submodels and averages these. As for kNN, we also started by setting the optimal parameters for the standard ELR algorithm. The quality measure calculates the standard deviation on the predictions of all submodels and adds the point that has Fig. 2. RMSE as a function of the number of scored points for cotraining and standard ELR the lowest deviation. This is done until there are no more points left. The comparison between standard and cotraining ELR can be found in Figure 2. We notice that the co-training algorithm is actually contra-productive as it lowers the performance with respect to the standard ELR. VI. C ONCLUSION When comparing kNN and ELR, we notice that kNN gives better results for all data sets. On top of that, the kNN algorithms are much faster and we thus advise to use kNN for the tool. We can conclude that co-training has not lead to an improvement for neither of the methods tried in this thesis. This is probably due to a bad quality measure. In future work, it might be useful to examine more possibilities for this measure. R EFERENCES [1] Xiaojin Zhu, Semi-Supervised Learning Tutorial, Technical Report, Department of Computer Sciences, University of Wisconsin, Madison, USA, 2007 [2] ZH. Zhou and Ming Li, Semi-Supervised Regression with CoTraining Proceedings of the 19th International Joint Conference on Artificial Intelligence 2005, Edinburgh, Scotland, pp. 908-913. [3] Catherine Middag, Automatic Analysis of Pathological Speech, Universiteit Gent, 2012-2013. Inhoudsopgave Tabel van afkortingen en symbolen viii 1 Situering 1 1.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Verdere verloop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Bestaande technieken 4 2.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Co-training en Self-training . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1 Co-training met kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Semi-Gesuperviseerde Support Vector Regressie . . . . . . . . . . . . . . . . . 7 2.4 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.5 Van regressie naar classificatie? . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Co-training 3.1 3.2 3.3 3.4 10 Algemeen raamwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.1 De kwaliteitsmaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.1.2 Het stopcriterium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 k Nearest Neighbours (kNN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.1 De kwaliteitsmaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Support Vector Regression (SVR) . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.1 Wat is SVR? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.2 De kwaliteitsmaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Ensemble Linear Regression (ELR) . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4.1 Wat is ELR? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4.2 De kwaliteitsmaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 vi 4 Clustering 4.1 4.2 18 Clusterstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.1.1 K-Means Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1.2 Incrementele K-Means . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Regressiemodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Experimenten 21 5.1 Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2 Geteste algoritmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.3 Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.4 Prestatieanalyse 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Resultaten van kNN 25 6.1 Standaard kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.2 Co-training met kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.2.1 Betrouwbaarheden invoeren . . . . . . . . . . . . . . . . . . . . . . . . 30 6.2.2 Invloed van de kwaliteitsmaat . . . . . . . . . . . . . . . . . . . . . . . 30 6.2.3 Invloed van het stopcriterium . . . . . . . . . . . . . . . . . . . . . . . 34 Clustering met kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.3.1 35 6.3 Bepalen van de clustergrootte . . . . . . . . . . . . . . . . . . . . . . . 7 Resultaten van ELR 38 7.1 Standaard ELR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7.2 Co-training met ELR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.2.1 Invloed van de kwaliteitsmaat . . . . . . . . . . . . . . . . . . . . . . . 43 7.2.2 Invloed van het stopcriterium . . . . . . . . . . . . . . . . . . . . . . . 44 8 Conclusie en verder onderzoek 47 8.1 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.2 Verder onderzoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Lijst van tabellen 51 Lijst van figuren 52 Lijst van Algoritmes 54 vii Tabel van afkortingen en symbolen ELR Ensemble Lineaire Regressie kNN k Nearest Neigbours KS kenmerkenselectie LR Lineaire Regressie MCS Multiple Classifier Systems RMSE Root Mean Squared Error S3VM Semi-gesuperviseerde Support Vector Machines S3VR Semi-gesuperviseerde Support Vector Regressie SSE Sum of Squared Errors SSL Semi-gesuperviseerd leren (Semi-Supervised Learning) SVR Support Vector Regressie viii Hoofdstuk 1 Situering 1.1 Probleemstelling Taal is een krachtig medium. Het is een communicatiemiddel, een middel dat we gebruiken om boodschappen over te brengen. Bovendien wordt taal vaak gebruikt als leerproces; we lezen, schrijven en praten. Als spraak wegvalt, wordt het opeens een stuk moeilijker om te communiceren en om sociale contacten te onderhouden. Daarom is het belangrijk dat mensen met spraakstoornissen goed kunnen begeleid worden in hun revalidatie. De revalidatie van personen met een spraakstoornis kan ge¨evalueerd worden aan de hand van een verstaanbaarheidsscore. Om deze verstaanbaarheidsscore te kunnen toewijzen wordt gebruik gemaakt van het Nederlands Verstaanbaarheidsonderzoek (Dutch Intelligibility Assessment - DIA). De DIA-test zal voor de pati¨ent drie woordenlijsten genereren. Deze woorden zullen bestaan uit een medeklinker, gevolgd door een klinker en opnieuw een medeklinker. Er zal aan de pati¨ent gevraagd worden om deze woordenlijsten in te spreken. E´en of meer luisteraars krijgen deze spraakfragmenten te horen en zij moeten daarin ´e´en klank identificeren. Het kan gaan om de eerste medeklinker, de klinker of de laatste medeklinker. Telkens hebben ze de keuze uit een lijst van mogelijkheden. De verstaanbaarheidsscore die gegeven wordt aan de pati¨ent is dan gelijk aan het percentage correct ge¨ıdentificeerde klanken. In het doctoraatsonderzoek van C. Middag [8] werd het Nederlands Verstaanbaarheidsonderzoek geautomatiseerd. Op basis van kenmerken die ge¨extraheerd werden uit de spraakfragmenten en referentiescores die afkomstig waren van luisteraars, werd een regressor ontwikkeld. Bij regressie wordt een waarde uit een continu domein toegekend aan de datapunten. Dit in tegenstelling tot classificatie, waar een datapunt wordt toegekend aan een klasse uit een eindige verzameling. Bij regressie spreekt men over scores, bij classificatie wordt de term label gebruikt. In Figuur 1.1 wordt het verschil tussen classificatie en regressie verduidelijkt. Aangezien de verstaanbaarheidsscore een percentage voorstelt, wordt in deze thesis geopteerd voor een regressie die een re¨ele output oplevert. Het probleem bij de automatische analyse is dat er geen complexe, grote modellen kunnen gemaakt worden omdat er te weinig perceptueel gescoorde data voorhanden is. Daarom is het interessant om te kijken wat ongescoorde data kan bijbrengen aan het model. Ongescoorde 1 (a) Classificatie, de output van neemt discrete waarden aan (het symbool geeft aan hoe (X,Y) wordt gemapt op klasse 1 of klasse 2) (b) Regressie, de output neemt continue waarden aan (de rechte geeft aan hoe X wordt gemapt op Y) Figuur 1.1: Verschil tussen classificatie en regressie spraakfragmenten zijn namelijk gemakkelijker te verkrijgen en zijn dus goedkoper. Een score geven aan een spraakfragment vergt veel meer moeite. 1.2 Doel Het doel van deze thesis is onderzoeken of het mogelijk is op basis van ongescoorde data een betere regressor te ontwikkelen. Hierbij zullen verschillende technieken eerst theoretisch ge¨evalueerd worden. Daarna zullen enkele daarvan ook ge¨ımplementeerd worden, en zullen de resultaten vergeleken worden met de resultaten van de originele regressor. Hierbij zullen we het aantal ongescoorde datapunten vari¨eren en bekijken welke invloed dit heeft op onze regressor. 1.3 Dataset De dataset bestaat uit 231 sprekers waarvoor een score beschikbaar is. Deze sprekers zullen worden opgesplitst in twee deelverzamelingen: een verzameling om het model mee te ontwikkelen en een verzameling om het model mee te testen. Er worden 150 willekeurige sprekers gekozen voor de ontwikkeling en de overige 81 worden gebruikt om te testen. De trainingset wordt nog verder opgesplitst in een deelverzameling waarvan de scores wel zullen gebruikt worden, en een deelverzameling die zonder score zal beschouwd worden. 1.4 Verdere verloop In deze thesis zullen eerst de bestaande technieken bekeken en ge¨evalueerd worden in Hoofdstuk 2. Daarna zullen enkele technieken uitgebreid besproken worden in Hoofdstukken 3 en 2 4. De experimenten die werden gedaan worden besproken in Hoofdstuk 5, gevolgd door de resultaten in Hoofdstukken 6 en 7. We eindigen deze thesis met een conclusie in Hoofdstuk 8. 3 Hoofdstuk 2 Bestaande technieken 2.1 Inleiding Semi-gesuperviseerd leren (SSL) is een algemene benaming voor technieken die zowel gescoorde als ongescoorde data aanwenden om een model op te stellen. Hierbij hoopt men dat de ongescoorde data extra informatie kan bieden over de structuur van de data, waardoor men een betere regressor kan trainen. De motivatie voor SSL is twee¨erlei. Enerzijds tonen resultaten uit de literatuur ([7]) dat men met ongescoorde data verbeteringen kan aanbrengen aan de regressor, vooral wanneer weinig gescoorde data voorhanden is. Anderzijds leren ook mensen via SSL: een vader wijst een kind een bruin dier aan en benoemt het als hond, maar het kind observeert ook honden zonder dat ze benoemd worden. SSL kan op twee manieren gedaan worden. Enerzijds kan men vertrekken van een model dat via gesuperviseerde methoden verkregen werd en dat daarna verbeterd wordt door ook de ongescoorde data te gebruiken. Anderzijds kan men de gescoorde en ongescoorde data niet-gesuperviseerd clusteren, en deze clusters vervolgens aanwenden bij het opstellen van een model aan de hand van de gescoorde data. In de volgende hoofdstukken zal men steeds gebruik maken van deze notaties: • • • • • • 2.2 x stelt een datapunt voor; h(x) is de predictie door regressor h van de score die bij datapunt x hoort; ds is de score van het datapunt xs (s is een index); dˆs is de voorspelling van ds ; S stelt de set voor van gescoorde data; en U is de set van ongescoorde data. Co-training en Self-training In de tutorial van Zhu [6] wordt co-training besproken als een methode om SSL toe te passen. Hierbij wordt gebruik gemaakt van twee verschillende regressors. De k meest betrouwbare datapunten van de ene regressor worden samen met hun predicties toegevoegd aan de gescoorde dataset van de andere en omgekeerd. Om dit te doen werken, veronderstelt men dat de beide 4 regressors in staat zijn om een goede predictie op te leveren voor voldoende niet-gescoorde datapunten. In Figuur 2.1a wordt de trainingsfase van co-training verduidelijkt. Tijdens de testfase worden de predicties van de twee regressors uitgemiddeld (zie Figuur 2.1b). Self-training (Didaci en Roli [3]) is een andere vorm van SSL. Hier zal er ´e´en classifier het meest kwaliteitsvolle datapunt schatten en toevoegen aan zijn eigen dataset. Bij ensembledriven self-training zal deze classifier bestaan uit een aantal subclassifiers die door uitmiddeling de score en de kwaliteit ervan zullen bepalen. 2.2.1 Co-training met kNN In het artikel van Zhou en Li [7] wordt co-training toegepast op het geval van een regressor gebaseerd op het principe van k Nearest Neigbours (kNN). Het originele algoritme voor kNN is te vinden onder Algoritme 1. Algoritme 1 Bereken h(x) voor kN N X(1 : k) ← k dichtste buren van x Y (1 : k) ← scores van X(1 : k) D(1 : k) ← afstand(x, X(1 : k)) Y (l) l=1 D(l) 1 l=1 D(l) Pk h(x) ← Pk Als men co-training wil toepassen met kNN, maakt men gebruik van twee verschillende regressors. Het verschil tussen de twee is de afstandsmaat die gebruikt wordt. Beiden maken gebruik van de Minkowsky-afstandsmaat (2.1), maar met een verschillende waarde voor p. Deze afstandsmaat gaat ervan uit dat alle kenmerken ongeveer dezelfde schaal (verschil tussen maximale en minimale waarde) hebben, maar dit is niet altijd zo. Het is dan ook belangrijk om eerst een normalisatie van de dataset uit te voeren, zodat elk kenmerk gemiddelde 0 en variantie 1 heeft. M inkowskyp (x, y) = d X i=1 |xi − yi |p !1/p (2.1) De twee regressors beginnen initieel met dezelfde dataset S (alle gescoorde datapunten), maar zullen iteratief datapunten toevoegen aan de dataset van de andere. In de paper wordt eerst een poel U 0 aangemaakt die een subset is van de set van ongescoorde datapunten (U ). De datapunten die zullen worden toegevoegd, zullen gekozen worden uit de kleinere poel. Dit is naar het voorbeeld van Blum en Mitchell [1]. Deze auteurs kregen betere resultaten op een kleinere set, waarin ze 100 random datapunten selecteerden in plaats van 2000. Volgens hen zorgde dit ervoor dat de regressors gedwongen werden om voorbeelden te nemen die de onderliggende distributie beter representeerden. Aangezien voor deze thesis veel minder ongescoorde datapunten beschikbaar zijn, is de invoering van een kleinere poel niet nodig. Om te beslissen welk ongescoord datapunt het best kan worden toegevoegd, wordt de kwaliteit van de score geschat. De kwaliteit wordt hier berekend aan de hand van het verschil in Sum of Squared Errors (SSE) voor de regressor voor en na toevoeging van het ongescoorde 5 (a) De trainingsfase van co-training (b) Scoren aan de hand van co-training Figuur 2.1: Algemene flow-charts voor training en scoring met behulp van co-training 6 datapunt en diens predictie (zie formule 2.2). Zo wil men ervoor zorgen dat het datapunt gekozen wordt dat de regressor maximaal consistent houdt met de oorspronkelijk gescoorde data. We voeren hier de regressor hi (x) = h(x|S \ {xi }) in, die de regressor voorstelt die wordt verkregen op basis van de volledige gescoorde dataset, zonder het datapunt xi . Het is belangrijk om het datapunt te verwijderen uit de dataset, aangezien de kNN regressor ongescoorde punten die samenvallen met een gescoord punt automatisch ook die score geeft. De regressor h0i,u (x) = h (x|S ∪ {xu , h(xu )} \ {xi }) neemt het ongescoorde datapunt xu en diens voorspelling op in het model. ∆SSEu = X xi ∈S 2 (di − hi (xi ))2 − di − h0i,u (xi ) (2.2) In deze formule wordt gesommeerd over alle gescoorde datapunten. Door het verschil te nemen, wordt gekeken of het ongescoorde datapunt voor een verbetering, dus voor een kleinere fout zorgt na toevoeging. Aangezien het erg tijdrovend is om formule 2.2 te berekenen, stelden de auteurs een benadering voor. Ze sommeren voor elk ongescoord datapunt slechts over de verzameling Ωu van de k dichtste gescoorde buren van dat datapunt. Het volledige algoritme van co-training met kNN is te vinden onder Algoritme 2. In de paper van Zhou en Li [7] worden voorbeelden uitgewerkt die aantonen dat deze methode zeer goede resultaten zou moeten opleveren. De methode wordt vergeleken met andere zelflerende methoden, en met de twee regressors apart. Er wordt echter nergens een vergelijking gemaakt met de uitmiddeling van de twee regressors, zoals het in het co-trainingsalgoritme ook gebeurt. De resultaten in de paper kunnen dus overoptimistisch zijn. Co-training is ook toe te passen in combinatie met andere regressors. In de doctoraatsthesis van Middag [8] wordt bijvoorbeeld gebruik gemaakt van Support Vector Regressie (SVR) en Ensemble Lineaire Regressie (ELR). In Hoofdstuk 3 wordt het algoritme voor co-training veralgemeend zodat het ook in combinatie met die technieken kan gebruikt worden. 2.3 Semi-Gesuperviseerde Support Vector Regressie In de tutorial van Zhu [6] wordt een alternatieve manier voorgesteld om SSL toe te passen bij Support Vector Machines (SVM), namelijk Semi-Supervised Support Vector Machines (S3VM). SVM is een classificatiemethode die de marge tussen twee klassen zo groot mogelijk probeert te maken. Bij S3VM wordt de ongelabelde data gebruikt om samen met de gelabelde data de kloof tussen de klassen te maximaliseren. Op deze manier ligt de grens tussen de klassen in regio’s met lage densiteiten. Support Vector Regressie (SVR) is de corresponderende regressor en wil in tegenstelling tot SVM een hypervlak vinden waarbij de meeste datapunten binnen een bepaalde marge liggen. Enkel datapunten die buiten deze marge vallen, worden gebruikt in de objectieve functie. SVR wordt in meer detail besproken in Sectie 3.3.1. In het artikel van Xu et al. [5] wordt Semi-gesuperviseerde Support Vector Regressie (S3VR) voorgesteld als semi-gesuperviseerde variant van SVR. Men gaat er echter wel van uit dat de ongescoorde datapunten al een score gekregen hebben, bijvoorbeeld aan de hand van een kNN algoritme. 7 Algoritme 2 Co-training met kN N INPUT: gescoorde dataset S = {xs , ds : s = 1..Ns }, ongescoorde dataset U {xu : u = 1..Nu }, aantal dichtste buren k, afstandsmaten p1 en p2 S1 ← S; S2 ← S while niet voldaan aan stopcriterium do for j ∈ {1, 2} do hj ← kN N (Sj , k, pj ) for elke xu ∈ U do dˆu ← hj (xu ) hj,i (x) ← hj (x|S \ {xin}) ∀i o 0 hj,i,u (x) ← hj x|S ∪ xu , dˆu \ {xi } ∀i Ωu ← N eighbours(x u , k, S) 2 P 2 0 ∆xu ← xi ∈Ωu (di − hj,i (xi )) − di − hj,i,u (xi ) end for if er bestaat een ∆xu > 0 then ˜ j ← arg maxxu ∈U ∆xu x d˜j ← h xj ) o nj (˜ πj ← (˜ xj , d˜j ) ˜j U ←U \x else πj ← ∅ end if end for S1 ← S1 ∪ π2 S2 ← S2 ∪ π1 if zowel S1 als S2 is ongewijzigd then EXIT end if end while OUTPUT: regressor h∗ (x) ← 12 (h1 (x) + h2 (x)) 8 = 2.4 Clustering In de paper van Seeger [4] wordt nog een andere werkwijze voorgesteld: de datapunten worden eerst opgedeeld in clusters, en pas daarna zullen scores gegeven worden aan de datapunten in die clusters (zie Algoritme 3). Er zijn verschillende mogelijke clustermethoden voorhanden, bijvoorbeeld k-means clustering. Zhu [6] bespreekt graafgebaseerde algoritmes om te clusteren. Hier worden alle datapunten voorgesteld door knopen. De takken tussen de knopen stellen een gewicht voor. Men gaat ervan uit dat een zwaar gewicht staat voor een gelijkaardige datapunt dat meestal een gelijkaardige score bezit. Het gewicht kan bijvoorbeeld voorgesteld worden door e−D(xi ,xj ) , waarbij D de afstand is tussen de twee knopen. Voor het graafgebaseerd clusteren van datapunten kan men het random walk algoritme gebruiken (zie tutorial van Zhu [6]). Hierbij wordt er vanuit het datapunt een tak gekozen met een waarschijnlijkheid die evenredig is met het takgewicht. Toegekomen in het volgende datapunt, doet men hetzelfde. Het pad loopt verder totdat een datapunt wordt bereikt dat al aan een cluster is toegekend. Het datapunt wordt dan aan die cluster toegevoegd. Algoritme 3 Scoren met clusters INPUT: aantal clusters k, gescoorde dataset S, ongescoorde dataset U INITIALISATIE: cluster S ∪ U in k clusters hi ← regressor op basis van alle datapunten uit cluster i SCORING: i ← cluster waartoe datapunt x behoort dˆ ← hi (x) 2.5 Van regressie naar classificatie? Aangezien de meeste semi-gesuperviseerde technieken ontwikkeld zijn voor classificatie, zou men kunnen overwegen om het huidige regressieprobleem te discretiseren. De [0, 100]-ruimte zou kunnen ingedeeld worden in k klassen met bijhorend label. Als k klein is, zal dit leiden tot een te beperkt aantal scores, waardoor het systeem aan nauwkeurigheid zou verliezen. Als men dit wil vermijden en k groot kiest, zal men veel gescoorde datapunten nodig hebben om toch enkele datapunten te hebben van alle klassen. Hieruit kan men concluderen dat het voor de scope van deze thesis niet mogelijk is om een regressieprobleem om te zetten naar een classificatieprobleem. 9 Hoofdstuk 3 Co-training In het vorige hoofdstuk werd co-training al besproken in combinatie met kNN (zie Sectie 2.2.1). Hier verbreden we het raamwerk zodat het toepasbaar wordt op verschillende regressiemethodes. 3.1 Algemeen raamwerk Het raamwerk voor kNN kan veralgemeend worden door enkele aanpassingen te doen in Algoritme 2. Een eerste stap in de veralgemening is het vervangen van de kNN regressor door een algemene regressor h(x). Deze regressor kan vervangen worden door de gekozen regressiemethode. De regressors hj,i en h0j,i,u uit Algoritme 2 zijn specifiek voor kNN, aangezien het voor de kNN nodig was om het punt xi uit te sluiten (zie bespreking in sectie 2.2.1). De regressor hj,i zal dus herleid worden tot hj , die al berekend werd, en de regressor h0j,i,u zal aangepast worden tot h0j,u . Ook de kwaliteitsmaat die moet aanwijzen welk datapunt eerst moet worden toegevoegd, kan vervangen worden door een algemene kwaliteitsmaat Q(hj , h0j,u ) die zelf in te vullen is door de gebruiker. Het is ook mogelijk om de finale regressor h∗ te veralgemenen en de gebruiker vrij te laten kiezen hoe deze ingevuld wordt. Naast uitmiddeling van de twee deelregressors met hun respectievelijke dataset, kan men ook kiezen voor slechts ´e´en regressor die gebruik maakt van de samengevoegde dataset van de twee deelregressors. Aangezien we deze optie niet zullen testen, wordt de veralgemening van de finale regressor niet opgenomen in het algoritme. Het algoritme neemt opnieuw alle gescoorde datapunten als startset voor de twee regressors. Op basis van die dataset worden de beide regressors ge¨ınitialiseerd. Zolang niet voldaan is aan het stopcriterium (zie Sectie 3.1.2), zullen de regressors alternerend een datapunt zoeken dat kan worden toegevoegd aan de gescoorde dataset van de ene of de andere regressor. De keuze van dat een datapunt wordt bepaald aan de hand van een kwaliteitsmaat (zie Sectie 3.1.1). Het datapunt dat de hoogste kwaliteit oplevert, zal worden geselecteerd. Het algemeen raamwerk voor het co-trainingsalgoritme is te vinden onder Algoritme 4. 10 Algoritme 4 Algemeen algoritme voor co-training INPUT: gescoorde dataset S {xu : u = 1..Nu } = {xs , ds : s = 1..Ns }, ongescoorde dataset U S1 ← S; S2 ← S while niet voldaan aan stopcriterium do for j ∈ {1, 2} do hj (x) ← regressor op basis van Sj for elke xu ∈ U do dˆu ← hj (xu ) n o h0 (x) ← hj x|S ∪ xu , dˆu j,u qu ← Qj,u (hj , h0j,u ), maat om kwaliteit te schatten van dˆu end for if er bestaat een qu > 0 then ˜ j ← arg maxxu ∈U qu x d˜j ← h xj ) o nj (˜ πj ← (˜ xj , d˜j ) U ← U \ {˜ xj } else πj ← ∅ end if end for S1 ← S1 ∪ π2 S2 ← S2 ∪ π1 if zowel S1 als S2 is ongewijzigd then EXIT end if end while OUTPUT: regressor h∗ (x) ← 12 (h1 (x) + h2 (x)) 11 = 3.1.1 De kwaliteitsmaat De kwaliteitsmaat is een functie van het huidige model, het nieuwe datapunt en de originele dataset. Er zijn meerdere mogelijkheden om de kwaliteitsmaat te bepalen. Een voor de hand liggende method is om eerst een nieuwe regressor (h0j,u ) te trainen, op basis van Sj ∪ {(xu , h(xu )))}. Het nieuwe model kan dan op verschillende manieren vergeleken worden met het oude om een kwaliteit te schatten. Een eerste manier is de Sum of Square Errors (SSE) (zie formule (3.1)) bepalen op basis van de berekende en de correcte scores van de datapunten van Sj . Qj,u = X xi ∈S 2 (di − hj (xi ))2 − di − h0j,u (xi ) (3.1) Een andere methode zal kiezen voor het model dat aanleiding geeft tot de geringste verandering (zie formule (3.2)). |S| staat hier voor het kardinaalgetal van de verzameling S. −1 Qj,u = e |S| P 2 xi ∈S (hj (xi )−h0j,u (xi )) (3.2) Voor bepaalde regressiemodellen is de kwaliteit te bepalen zonder een nieuw model te moeten trainen. Dit is vooral het geval bij mengselmodellen die bestaan uit meerdere regressors, zoals bijvoorbeeld ELR (zie Sectie 3.4). Voor deze modellen zou men voor elk datapunt xu het gemiddeld verschil tussen de voorspellingen van de verschillende regressors als kwaliteitsmaat kunnen beschouwen. Als verschillende regressors ongeveer dezelfde voorspelling geven, is het datapunt waarschijnlijk beter gescoord dan wanneer de voorspellingen ver uit elkaar liggen. 3.1.2 Het stopcriterium Het stopcriterium dat bepaalt wanneer de while-lus stopt, kan op verschillende manieren ingevuld worden (al dan niet afhankelijk van de gebruikte kwaliteitsmaat): • • • • als alle ongescoorde datapunten een score hebben gekregen; na een bepaald aantal toevoegingen; als de verbetering kleiner wordt dan een bepaalde drempel; ... In de volgende secties wordt dit algemeen raamwerk ingevuld met enkele regressiemethoden. De methoden zullen eerst worden uitgelegd, gevolgd door het toepassing van de methode in het raamwerk. 3.2 k Nearest Neighbours (kNN) Het kNN algoritme werd al besproken in Sectie 2.2.1 en zal hier dus niet hernomen worden. 12 3.2.1 De kwaliteitsmaat De kwaliteitsmaat die gebruikt werd in Algoritme 2, is niet de enige die in aanmerking zou komen om te gebruiken met kNN. Om te bepalen welke datapunten betrouwbaar geschat zijn, kunnen we ook kijken naar de afstand tussen de datapunten en zijn buren (of enkel de dichtste buur). We vermoeden namelijk dat een voorspelling van een score betrouwbaar is als het corresponderende datapunt niet ver verwijderd is van zijn buren. 3.3 3.3.1 Support Vector Regression (SVR) Wat is SVR? Bij gegeven datapunten S = {xs , ds : s = 1..Ns } zal SVR op zoek gaan naar een functie f (x) = w · x + b die een voorspelling dˆs oplevert die maximaal verschilt van de effectieve waarde ds en die zo vlak mogelijk is. Deze laatste vereiste houdt in dat kwk2 zo klein mogelijk moet zijn. Dit geeft aanleiding tot volgend optimalisatieprobleem: 1 kwk2 w 2 op voorwaarde dat di − w xi − b ≤ ∀i minimaliseer (3.3) w xi + b − di ≤ ∀i Omdat het niet altijd mogelijk zal zijn om de functie zo te kiezen dat het verschil maximaal is, worden de losse variabelen ξi en ξi? ge¨ıntroduceerd, die 0 zullen zijn als het datapunt binnen de marge van valt, en de waarde |ds − dˆs | − aannemen in het andere geval. Dit past het optimalisatieprobleem aan tot: N s X 1 2 kwk + C (ξi + ξi? ) 2 minimaliseer w i=1 op voorwaarde dat di − w xi − b ≤ + ξi w xi + b − di ≤ + ξi? ξi , ξi? ≥0 ∀i (3.4) ∀i ∀i De constante C maakt de afweging tussen hoe vlak de functie is en hoe nauwkeurig de regressie is voor datapunten buiten de marge. Als we dit probleem willen optimaliseren, levert ons dit de volgende Langrangiaan op: N N i=1 Ns X i=1 s s X X 1 (ξi + ξi? ) − (ηi ξi + ηi? ξi? ) L ← kwk2 + C 2 − − i=1 Ns X i=1 αi ( + ξi − di + w xi + b) αi? ( + ξi? + di − w xi − b) 13 (3.5) De variabelen α, α? , η, η ? worden Lagrange vermenigvuldigers genoemd en moeten voldoen aan α, α? , η, η ? ≥ 0. Na parti¨ele afleiding van L naar de variabelen b, w, ξi en ξi? , gelijkstelling aan 0 en substitutie van deze vergelijkingen in bovenstaande vergelijking van L, krijgen we volgend optimalisatieprobleem: Ns 1 X (αi − αi? )(αj − αj? )(xi · xj ) − 2 maximaliseer i,j=1 Ns X − (αi + + i=1 Ns X op voorwaarde dat αi? ) Ns X i=1 di (αi − αi? ) (3.6) (αi − αi? ) = 0 i,j=1 αi , αi? ∈ [0, C] ∀i Dit leidt tot: l X f (x) = (αi − αi? )(xi · x) + b (3.7) i=1 We zijn er in het begin van deze sectie vanuit gegaan dat de relatie tussen de datapunten en de score kan geschreven worden in de vorm van een lineaire vergelijking. Dit is natuurlijk niet altijd het geval. Om deze data om te zetten naar het lineaire geval, maken we gebruik van een niet-lineaire transformatie Φ(x). Aangezien men in het optimalisatieprobleem enkel gebruik maakt van een dotproduct, hoeven we de transformatie Φ niet te kennen, maar volstaat het om de kernfunctie k(xi , xj ) = Φ(xi ) · Φ(xj ) te evalueren. In dit geval wordt het optimalisatieprobleem herleid tot: − maximaliseer Ns 1 X (αi − αi? )(αj − αj? )k(xi · xj ) 2 − op voorwaarde dat i,j=1 Ns X Ns X (αi + αi? ) + i=1 Ns X i=1 di (αi − αi? ) (3.8) (αi − αi? ) = 0 i,j=1 αi , αi? ∈ [0, C] ∀i En dit geeft ons: f (x) = l X i=1 (αi − αi? )k(xi · x) + b Voor de kernel zijn veel verschillende functies mogelijk, de meest voorkomende zijn: 14 (3.9) • de lineaire kernel: k(xi , xj ) = xTi · xj ; • de polynomische kernel: k(xi , xj ) = (xTi · xj + 1)p ; en • de Gaussiaanse kernel: k(xi , xj ) = e 3.3.2 − kxi −xj k 2σ 2 2 . De kwaliteitsmaat Zoals gezegd zijn er verschillende mogelijkheden om het meest kwalitatieve datapunt te selecteren uit de set van ongescoorde datapunten. De beste mogelijkheid zou erin bestaan om een nieuw model te trainen voor elk ongescoord datapunt xu en te kijken welk datapunt de beste SSE (zie formule (3.1)) oplevert. Dit zorgt er voor dat in elke iteratie Nu nieuwe modellen moeten getraind worden, wat veel rekentijd kan vergen. Een alternatieve en eenvoudigere manier zou kunnen gebruik maken van de densiteit van de dataruimte. Als er veel gescoorde datapunten aanwezig zijn in de nabijheid van een ongescoord datapunt, zijn er meer voorbeelden voorhanden die men kan gebruiken voor de voorspelling van de score van dit datapunt. We verwachten dus ook dat deze voorspelling dan betrouwbaarder zal zijn dan de voorspelling in minder dense regio’s. 3.4 3.4.1 Ensemble Linear Regression (ELR) Wat is ELR? Ensemble Lineaire Regressie (ELR) zal de prestatie van lineaire regressie proberen verbeteren door meerdere kleine regressors te laten samenwerken. De lineaire regressors worden elk getraind op een andere subset van de set van gescoorde datapunten. Figuur 3.1 verduidelijkt de werking van deze methode. De data wordt op m verschillende manieren in twee verdeeld. Het eerste deel dient als trainingsset en wordt gebruikt om de co¨effici¨enten van de regressors te berekenen, het tweede deel is de validatieset en dient om die regressors te evalueren. Lineaire regressie gaat op zoek naar een lineaire relatie tussen de observaties en de scores. Door de vele opsplitsingen van de data, worden het klein modelletjes en is het aantal kenmerken groot in vergelijking met het aantal observaties. Daarom is het nodig om eerst kenmerkenselectie toe te passen. Het algoritme dat kenmerken zal selecteren (zie Algoritme 5), begint initieel zonder geselecteerde kenmerken. Het zal iteratief het beste niet-geselecteerde kenmerk kiezen door voor elk kenmerk de RMSE te berekenen op de interne trainingsset na toevoeging van dit kenmerk. Het kenmerk met de kleinste RMSE zal gekozen worden. Dit kenmerk zal worden toegevoegd aan de geselecteerde set kenmerken als het ook de RMSE op de validatieset zal verbeteren. In het andere geval stopt het algoritme. Uiteindelijk zal het lineaire model enkel getraind worden op de interne trainingsset met enkel de geselecteerde kenmerken, wat aanleiding zal geven tot n × m gewichtsvectoren. Het finale model wordt berekend door deze verschillende gewichtsvectoren op te tellen. 15 Figuur 3.1: Schematische voorstelling van ELR 16 Algoritme 5 Kenmerkenselectie met lineaire regressie INPUT: interne trainingsset T = {xt , dt : t = 1..Nt }, validatieset V = {xv , dv : v = 1..Nv }, C: set van alle kenmerken C˜ ← {}, geselecteerde kenmerken RM SEtmp ← grote waarde repeat RM SEV ← RM SEtmp for c ∈ C \ C˜ do w ← LR training(T, C˜ ∪ c) RM SEc ← RM SE(LR scoring(V, w)) end for RM SEtmp ← minc RM SEc if RM SEtmp < RM SEV then C˜ ← C˜ ∪ {arg minc RM SEc } end if until RM SEtmp ≥ RM SEV 3.4.2 De kwaliteitsmaat We kunnen hier opnieuw gebruik maken van de SSE (3.1), maar een alternatief zou zijn om de spreiding te bekijken van de individuele deelmodellen van ELR. De datapunten waarvan de predicties het dichtste bij elkaar liggen, zullen de meest kwalitatieve zijn. Hiervoor zouden we Q = std(d) kunnen bepalen voor alle datapunten en dit gebruiken als kwaliteitsmaat, met d de vector van alle n × m voorspellingen. 17 Hoofdstuk 4 Clustering In dit hoofdstuk willen we bestaande regressors gebruiken in combinatie met clustering ([4]. Hiertoe beschouwen we clustering als een voorverwerkingsstap, zoals weergegeven in Algoritme 6. Algoritme 6 Algemeen raamwerk voor clustering INPUT: gescoorde dataset S = {xs , ds : s = 1..Ns }, ongescoorde dataset U {xu : u = 1..Nu }, beoogd aantal clusters K = TRAINING deel S ∪ U op in K clusters CK op basis van verwantschap tussen datapunten for elke cluster do hj ← regressor op basis van gescoorde datapunten uit Cj end for SCORING j ← cluster waartoe x behoort h(x) ← hj (x) Met het oog op de clustering dient men eerst een maat voor de verwantschap tussen datapunten te kiezen. Meestal is dat de Mahalanobis afstand tussen de datapunten (zie compendium van Reed [2]). Vervolgens dient men een clusterstrategie te kiezen die zal worden toegepast op de volledige set van datapunten (zie Sectie 4.1). Na de clustering wordt per cluster een regressor getraind die enkel zal toegepast worden op datapunten die aan deze cluster worden toegekend. 4.1 Clusterstrategie Hieronder worden enkele mogelijkheden gegeven om te clusteren. 18 4.1.1 K-Means Clustering Het K-means algoritme vertrekt van K willekeurige datapunten die als voorlopige clustercentra zullen fungeren. In opeenvolgende iteraties wordt elk datapunt eerst aan een cluster toegewezen op basis van de kleinste afstand tot het clustercentrum. Daarna worden nieuwe clustercentra bepaald als gemiddelden van de datapunten die aan dezelfde cluster werden toegewezen (zie Algoritme 7). Algoritme 7 Algoritme voor K-means clustering INPUT: gescoorde dataset S = {xs , ds : s = 1..Ns }, ongescoorde dataset U {xu : u = 1..Nu }, beoogd aantal clusters K = INITIALISATIE: c = {ck : k = 1..K} ← willekeurig gekozen datapunten uit S ∪ U OPTIMALISATIE: while niet geconvergeerd of max steps niet bereikt do for alle datapunten in S ∪ U do voeg datapunt toe aan cluster Ck als datapunt dichtst bij ck ligt end for for k = 1..K do ck ← gemiddelde van alle datapunten in Ck end for end while 4.1.2 Incrementele K-Means Incrementele K-means begint met ´e´e clusters en splitst gaandeweg de dataruimte op in meer clusters. Dit gebeurt doorgaans door de cluster met de meeste datapunten te beschouwen, en deze in twee te splitsen (zie Algoritme 8). Algoritme 8 Algoritme voor incrementele k-means clustering INPUT: gescoorde dataset S = {xs , ds : s = 1..Ns }, ongescoorde dataset U {xu : u = 1..Nu }, beoogd aantal clusters K C = {c1 } ← centrum van alle datapunten in S ∪ U k=1 while k < K do doe k-means optimalisatie op C cj ← clustercentrum met meeste datapunten cx , cy ← clustercentra na 2-means clustering op cj C ← C \ {cj } ∪ {cx } , {cy } k =k+1 end while 19 = 4.2 Regressiemodel Voor de regressor kunnen we gebruik maken van alle eerder genoemde regressors zoals kNN, SVR of ELR. Het voordeel van dit raamwerk is dat eerder ge¨ımplementeerde regressors kunnen hergebruikt worden en men gemakkelijk van regressor kan veranderen bij het testen. Een groot verschil met co-training is dat de regressor hier berekend zal worden op minder data (gemiddeld Ns /k). Het is dus belangrijk dat er regressors gebruikt worden die ook goed presteren met weinig data. Dit laat vermoeden dat clustering enkel gebruikt kan worden in combinatie met kNN. In dat geval kan men zich afvragen of clustering wel een verbetering kan opleveren. Immers, zowel de clustering als de kNN maakt gebruik van afstanden tot de andere datapunten. Als er voldoende datapunten in een cluster zitten, zullen de k dichtste buren in de cluster waarschijnlijk ook gelijk zijn aan de k dichtste buren uit de volledige dataset. 20 Hoofdstuk 5 Experimenten 5.1 Datasets We beschikken over een dataset bestaande uit 231 observaties. Van iedere spreker zijn 79 kenmerken berekend. De 79 kenmerken werden bekomen door de akoestische eigenschappen van de spraakfragmenten te analyseren. Iedere observatie is ook vergezeld van een score die de verstaanbaarheid van de spreker aangeeft. Figuur 5.1 toont een histogram van die scores. Hieruit zien we dat de meeste sprekers een relatief hoge score hebben (80% en meer). Dit kan ervoor zorgen dat regressors die op de data getraind zijn minder goede voorspellingen zullen opleveren voor lage verstaanbaarheden. Indien dit het geval zou zijn, kunnen we de dataset wat uniformer proberen te verdelen door enkele hoge waarden uit de dataset weg te laten. Voor de testen in de volgende hoofdstukken maken we wel steeds gebruik van de volledige dataset. Alvorens de data te gebruiken wordt ze eerst genormaliseerd zodanig dat alle genormaliseerde kenmerken een gemiddelde 0 en een standaardafwijking 1 bezitten. Voor de tests zullen we steeds gebruik maken van een ontwikkelset en een testset. Van de 231 observaties gebruiken we er 150 als ontwikkeldata en 81 als testdata. De ontwikkeldata wordt gebruikt om een regressor te trainen, waarna deze regressor wordt ge¨evalueerd op de testdata. Aan de hand van de voorspelde en echte output van de testdata, kan de Root Mean Square Error (RMSE) berekend worden volgens formule (5.1). Hier staat Nt voor het aantal datapunten in de testset. v u Nt u 1 X RM SE = t (dt − h(xt ))2 Nt (5.1) t=1 Aangezien we door te testen een zo correct mogelijk beeld willen krijgen van de prestatie van de regressor, willen we uitzonderingen vermijden die zijn toe te schrijven aan een bepaalde indeling van de data in ontwikkeldata en testdata. We kunnen dit voorkomen door de tests 10 keer uit te voeren met 10 verschillende random indelingen. De totale RMSE is dan de gemiddelde RMSE van deze 10 deelexperimenten. Van de ontwikkeldata worden vijf verschillende combinaties gemaakt met een vari¨erend aantal gescoorde en ongescoorde datapunten. De ongescoorde datapunten worden verkregen door 21 Figuur 5.1: Verdeling van de scores in de volledige dataset 22 enkel de kenmerken van de observaties te gebruiken, en de scores weg te laten. De combinaties zien er als volgt uit: • • • • • 5.2 150 gescoorde en 0 ongescoorde datapunten; 120 gescoorde en 30 ongescoorde datapunten; 90 gescoorde en 60 ongescoorde datapunten; 60 gescoorde en 90 ongescoorde datapunten; en 30 gescoorde en 120 ongescoorde datapunten. Geteste algoritmes De verschillende algoritmes worden in Matlab gerealiseerd. De voordelen hiervan zijn dat een heleboel functies reeds voorhanden zijn, dat matrixbewerkingen snel kunnen gebeuren en dat het gemakkelijk is de code te debuggen. 5.3 Planning We kiezen ervoor om eerst met kNN te werken, aangezien dit een eenvoudige methode is, en er in de literatuur al goede resultaten mee bekomen zijn. We zullen co-training met kNN, clustering met kNN en standaard kNN met elkaar vergelijken. Hierna zullen we ook ELR uitproberen teneinde zo algemeen mogelijke conclusies te kunnen trekken. Merk op dat ELR een geparametriseerde methode is, in tegenstelling tot kNN. We zullen SVR niet testen, hoewel dit wel besproken werd. Hier zijn twee redenen voor. Ten eerste is het SVR algoritme traag en dus niet geschikt om complexe testen mee te doen. Ten tweede verwachten we dat we na het testen van zowel kNN als ELR een vrij goed beeld zullen hebben over de prestatie van co-training. In de tests die we zullen doen, zal het aantal gescoorde datapunten vari¨eren van 30 tot 150 in stappen van 30. Het aantal ongescoorde datapunten varieert mee, zodat de som van beide steeds gelijk is aan 150. 5.4 Prestatieanalyse We verwachten dat geen enkel algoritme het beter kan doen dan gesuperviseerde regressie met 150 gescoorde datapunten. Dit zal dus de ondergrens zijn voor de semi-gesuperviseerde methoden. Gesuperviseerde regressie met 120, 90, 60 en 30 gescoorde datapunten fungeert al bovengrens voor de prestatie van de semi-gesuperviseerde methoden omdat deze regressie helemaal geen gebruik maakt van de ongescoorde voorbeelden. Indien de toevoeging van ongescoorde data voor slechtere resultaten zou zorgen, zouden ze geen nut hebben, integendeel zelfs. In Figuur 5.2 werden deze boven- en ondergrens geplot. De semi-gesuperviseerde methoden zouden dus idealiter zo dicht mogelijk bij de ondergrens moeten liggen, en op z’n minst een RMSE onder de bovengrens moeten opleveren. 23 Figuur 5.2: RMSE in functie van het aantal gescoorde datapunten voor gesuperviseerde regressie als bovengrens, de lijn van gesuperviseerd 150 werd doorgetrokken als ondergrens 24 Hoofdstuk 6 Resultaten van kNN In dit hoofdstuk zullen we semi-gesuperviseerde methoden met kNN onderzoeken en ze vergelijken met standaard (gesuperviseerde) kNN. Eerst zullen we de parameters voor standaard kNN optimaliseren (zie Sectie 6.1). In Sectie 6.2 zullen we standaard kNN vergelijken met co-training en zal gepoogd worden de co-training verder te optimaliseren. In Sectie 6.3 wordt ditzelfde gedaan met de combinatie van clustering en kNN. Uiteindelijk zullen we standaard kNN, co-training met kNN en clustering met kNN met elkaar vergelijken. 6.1 Standaard kNN Teneinde het standaard kNN algoritme op een eerlijke manier te kunnen vergelijken met cotraining, zal ook hier gebruik gemaakt worden van een uitmiddeling van twee regressors. De parameters die men daarbij kan kiezen zijn k (de grootte van de omgeving van een datapunt) en p1 , p2 (de machten in de Minkowsky afstanden die de beide regressors hanteren). Aangezien bij co-training de waarden 2 en 5 werden aangeraden voor p1 en p2 , zullen deze ook hier gebruikt worden. Voor k worden wel een aantal waarden uitgeprobeerd, om zo de beste waarde voor elke grootte van de gescoorde dataset te vinden. De resultaten zijn te vinden in Tabel 6.1. Uit deze tabel zien we dat we de beste resultaten krijgen voor k = 4, 5 en 6. Als we deze waarden uitzetten op een grafiek (zie Figuur 6.1), zien we dat de resultaten heel dicht bij elkaar liggen. Omdat k = 5 voor de meeste datasets het beste resultaat geeft, en de RMSE dataset 30 60 90 120 150 k=1 11,42 10,99 10,62 10,36 10,33 k=2 10,5 9,95 9,52 9,34 9,37 k=3 10,33 9,59 9,23 9,26 9,00 k=4 10,17 9,55 9,18 9,15 8,90 k=5 10,13 9,61 9,17 9,06 8,89 k=6 10,13 9,64 9,26 9,10 8,86 k=7 10,13 9,68 9,24 9,09 8,84 k=8 10,17 9,72 9,28 9,08 8,84 k=9 10,22 9,78 9,32 9,14 8,88 Tabel 6.1: Overzicht van de RMSE voor verschillende k-waarden, de beste waarde per dataset werd schuin gezet 25 Figuur 6.1: RMSE in functie van het aantal gescoorde datapunten voor standaard kNN met verschillende k-waarden 26 (a) Originele afstandsmaat (b) Nieuwe afstandsmaat Figuur 6.2: De twee afstandsmaten voor kNN voor de andere datasets niet veel verschilt met de beste waarde, kiezen we k = 5 voor alle datasets. In het kNN algoritme dat nu gebruikt wordt, wordt de score van een ongescoord datapunt berekend door de scores van de buren te vermenigvuldigen met de inverse van de afstanden tot die buren. In Figuur 6.2a zien we dat dit de heel nabijgelegen datapunten fel bevoordeelt. Om dit te milderen zou men een andere functie kunnen gebruiken, namelijk een functie die slechts langzaam daalt voor kleine afstanden, en snel voor grote. We kunnen hiervoor −1 D 2 gebruik maken van de functie e 2 D0 (zie Figuur 6.2b). Hier staat D voor de afstand van het datapunt tot de buur, D0 is een referentie afstand die bepaalt wat ‘dicht’ betekent. Een voorstel voor de berekening van een geschikte D0 is het volgende: neem D0 evenredig met de gemiddelde afstand tussen een datapunt en diens dichtste buur. Twee voorbeelden van waarden voor D0 zijn te vinden onder formule (6.1) en (6.2), waarbij de waarde voor β nog vrij gekozen kan worden. 27 dataset 30 60 90 120 150 β = 0.2 10,36 9,79 9,50 9,19 9,18 kwadraat β = 0.3 β = 0.4 β = 0.5 10,18 10,13 10,10 9,56 9,53 9,55 9,22 9,15 9,14 9,04 9,02 9,03 8,95 8,89 8,88 β = 0.6 10,10 9,57 9,15 9,04 8,88 origineel 10,13 9,61 9,17 9,06 8,89 Tabel 6.2: Overzicht van de RMSE voor verschillende waarden van β bij formule (6.1) (kwadraat) dataset 30 60 90 120 150 β = 0.2 10,39 9,82 9,53 9,21 9,21 geen kwadraat β = 0.3 β = 0.4 β = 0.5 10,19 10,14 10,11 9,56 9,53 9,54 9,23 9,15 9,14 9,04 9,02 9,03 8,97 8,90 8,88 β = 0.6 10,10 9,56 9,15 9,04 8,88 origineel 10,13 9,61 9,17 9,06 8,89 Tabel 6.3: Overzicht van de RMSE voor verschillende waarden van β bij formule (6.2) (geen kwadraat) v u N u1 X D0 = β ∗ t Di2 N (6.1) i=1 D0 = β ∗ N 1 X Di N (6.2) i=1 Eerst zullen we formule 6.1 vergelijken met het vorige resultaat. De RMSE voor verschillende waarden van β is te vinden in Tabel 6.2. Men kan zien dat er weinig verschil is tussen verschillende waarden voor β, en dat de nieuwe gewichtsfunctie ook geen significante verbetering oplevert ten opzichte van de originele aanpak met gewichtsfunctie D1i . Uit Tabel 6.3 kan men zien dat voor formule (6.2) dezelfde conclusies kunnen getrokken worden. Toch kiezen we ervoor om met de nieuwe gewichtsfunctie verder te gaan. Het lijkt ons namelijk een eerlijkere maat. Op basis van Tabellen 6.2 en 6.3 kiezen we voor formule (6.1) met β = 0.5, aangezien die voor de meeste datasets tot de kleinste RMSE leidt. 6.2 Co-training met kNN Nu de parameters voor standaard kNN geoptimaliseerd zijn, kunnen we het algoritme inbedden in het co-training raamwerk, zodat het resultaat werkt volgens Algoritme 2 (zie Sectie 2.2.1). De resultaten zijn te vinden in Figuur 6.3. Daaruit blijkt dat co-training het niet beter doet dan standaard kNN. In de volgende secties zullen we onderzoeken of we co-training nog kunnen optimaliseren opdat het alsnog beter zou presteren dan standaard kNN. 28 Figuur 6.3: RMSE in functie van het aantal gescoorde datapunten voor co-training en standaard kNN 29 30 60 90 120 150 formule (6.3) α = 0.25 α = 0.50 α = 0.75 10,34 10,24 10,28 9,54 9,54 9,50 9,12 9,07 9,11 9,00 8,98 8,99 8,88 8,88 8,88 formule (6.4) α = 0.25 α = 0.50 α = 0.75 10,26 10,34 10,33 9,59 9,52 9,51 9,09 9,11 9,14 8,99 8,98 8,97 8,88 8,88 8,88 Tabel 6.4: Overzicht van de RMSE voor verschillende waarden van α voor de betrouwbaarheid 6.2.1 Betrouwbaarheden invoeren We vinden toch dat er iets ontbreekt aan het originele co-trainingsalgoritme, namelijk het gebruik van betrouwbaarheden bij ongescoorde datapunten die worden toegevoegd aan de gescoorde dataset. Deze datapunten zijn immers voorspeld, en bijgevolg minder betrouwbaar dan de origineel gescoorde datapunten. Voor initieel gescoorde datapunten nemen we aan dat ze een betrouwbaarheid 1 bezitten. Voor datapunten die nadien gescoord worden, stellen we twee formules voor. In beide formules wordt de betrouwbaarheid B verkregen als een gewogen gemiddelde van de betrouwbaarheden van de k buren. We nemen hiervoor dezelfde gewichten (gerelateerd aan de afstand tussen xi en xu ) als bij kNN. B(dˆu ) = α ∗ P B(dˆu ) = α ∗ P xi ∈neigbours(xu ) B(di ) P ∗ gewicht(xi , xu ) (6.3) ∗ gewicht(xi ) (6.4) xi ∈neigbours(xu ,xu ) gewicht(xi ) xi ∈neigbours(xu ,xu ) B(di ) k Er zijn verschillende waarden van α mogelijk voor beide formules. In Tabel 6.4 worden de resultaten van enkele waarden opgelijst. Hieruit zien we dat er nauwelijks verschil is tussen de verschillende waarden voor α. We kiezen toch voor α = 0.50 en (6.3). We kunnen nu co-training met en zonder betrouwbaarheden vergelijken met standaard kNN (zie Figuur 6.4). Uit de figuur blijkt dat betrouwbaarheden geen verbetering opleveren ten opzicht van het originele co-trainingsalgoritme. Omdat betrouwbaarheden ons ’eerlijker’ lijken, gaan we ze behouden in volgende experimenten. 6.2.2 Invloed van de kwaliteitsmaat Het kritische punt in co-training is de kwaliteitsmaat die bepaalt welke datapunten zullen worden toegevoegd aan de gescoorde dataset. Als we de datapunten op een random wijze zouden toevoegen, dan is de gemiddelde fout op de score van die datapunten even groot als de overeenkomstige RMSE van het standaard algoritme. We hopen dat de kwaliteitsmaat ervoor kan zorgen dat enkel die datapunten worden toegevoegd waarvoor de berekende score een kleinere fout vertoont. 30 Figuur 6.4: RMSE in functie van het aantal gescoorde datapunten voor co-training met en zonder betrouwbaarheden 31 Figuur 6.5: Absolute verschil tussen de voorspelde en echte score in functie van de verbetering door toevoeging van het datapunt Het huidige co-trainingsalgoritme voegt het datapunt toe dat voor de beste verbetering zorgt op de voorspellingen van de trainingsdata. Dit geeft niet zo’n goede resultaten en we willen dus graag weten wat er mis gaat. Daarom hebben we in de eerste iteratie van het algoritme gekeken naar de echte en voorspelde waarde van alle ongescoorde datapunten. Daarna onderzochten we welke datapunten eerst werden toegevoegd en al snel werd duidelijk dat dit niet altijd de best voorspelde datapunten waren. In Figuur 6.5 is de fout op de voorspelling uitgezet in functie van de berekende verbetering van de regressor. Hier verwachten we dat de datapunten met een grote verbetering een goede voorspelling zullen hebben en dat de fout voor zulke datapunten minimaal is. We zien in deze figuur dat dit niet het geval is: datapunten met een grote verbetering hebben vaak ook een grote fout. Een probleem dat optreedt bij de beste verbetering is dat de gekozen datapunten de fout wel verbeteren, maar eigenlijk niet correct gescoord zijn. Door toevoeging van het datapunt wordt de RMSE kleiner, maar zal de fout kunnen propageren naar naburige datapunten. Daarom kan men op zoek gaan naar andere methoden om aan te geven of een datapunt goed voorspeld is. Een eerste alternatief zou kunnen zijn om de gemiddelde afstand tot de buren als kwaliteitsmaat te beschouwen. Op Figuur 6.6 werd de fout uitgezet in functie van deze gemiddelde afstand. We zien dat er wel een correlatie tussen beide waar te nemen is; datapunten die een kleinere gemiddelde afstand hebben tot hun buren, zijn ook vaak vrij goed voorspeld. Een tweede alternatief zou kunnen gebruik maken van de hypothese dat een datapunt goed 32 Figuur 6.6: Absolute verschil tussen de voorspelde en echte score in functie van de gemiddelde afstand van het datapunt tot zijn buren voorspeld is als er niet veel verschil zit op de scores van zijn buren. Daarom bekeken we de fout in functie van de standaardafwijking op de scores van de buren (zie Figuur 6.7). Hieruit blijkt dat de standaardafwijking geen goede indicator is voor de correctheid van de voorspelling van een datapunt. Een mogelijke reden hiervoor is dat het aantal buren (k = 5) eerder beperkt is, en de schatting van een standaardafwijking hiervan niet zeer betrouwbaar is. Een alternatief zou kunnen zijn om te kijken hoe ver de twee uiterste scores van de buren uit elkaar liggen. De resultaten hiervan zijn te vinden in Figuur 6.8. Ook hier zien we dat er niet echt een verband te vinden is. Er zijn datapunten waarbij de scores heel dicht bij elkaar liggen, die toch een grote fout hebben. Omdat de afstand tussen de buren het meest een verband toonde van alle besproken methoden, zullen we deze methode uitproberen. In onze testen zullen we in elke iteratie het datapunt toevoegen dat de kleinste afstand heeft tot zijn buren. We zullen deze methode vergelijken met de originele methode, waarbij het datapunt met de grootste verbetering eerst zal worden toegevoegd, en met een methode waarbij een willekeurig datapunt wordt gekozen om toe te voegen. In Figuur 6.9 zijn de resultaten van deze tests te vinden. Om deze drie methoden met elkaar te kunnen vergelijken, werd slechts een derde van de datapunten toegevoegd. De figuur toont dat er geen verschil is tussen de uitgeteste methoden. Aangezien het doel van co-training is om met de ongescoorde punten het model zo goed mogelijk te verbeteren, kiezen we om in verdere tests gebruik te maken van de beste verbetering. 33 Figuur 6.7: Absolute verschil tussen de voorspelde en echte score in functie van de standaardwafwijking op de scores van de buren 6.2.3 Invloed van het stopcriterium We kunnen ons tenslotte afvragen of het stopcriterium een merkbare invloed heeft op de resultaten. Het huidige algoritme stopt als er geen verbetering meer optreedt op de trainingsdata door datapunten toe te voegen. De experimenten hebben aangetoond dat dit gemiddeld is nadat 2/3 van de ongescoorde dataset is toegevoegd. Om de invloed van het stopcriterium te onderzoeken, zullen we een test doen met meer en met minder data. In het eerste geval voegen we alle ongescoorde datapunten toe, in het tweede stoppen we als een derde van de ongescoorde datapunten is toegevoegd. De resultaten hiervan zijn te vinden in Figuur 6.10. Uit de figuur zien we dat het stopcriterium eigenlijk niet veel effect heeft. Enkel bij veel ongescoorde datapunten is vroegtijdig stoppen een beter oplossing, waarschijnlijk omdat slechte voorspellingen anders kunnen propageren. Omdat het voorzichtiger is om met een weldoordacht stopcriterium te werken, maken we gebruik van het criterium dat stopt als er geen verbetering meer optreedt. 6.3 Clustering met kNN Clustering met kNN is een andere methode om SSL toe te passen. In deze sectie zullen we bekijken wat de mogelijkheden zijn met deze methode. 34 Figuur 6.8: Absolute verschil tussen de voorspelde en echte score in functie van het verschil tussen de maximale en de minimale score van de buren 6.3.1 Bepalen van de clustergrootte Voordat we clustering kunnen vergelijken met standaard kNN, zullen we eerst de ideale grootte van de cluster (K) bepalen. Hiervoor maken we enkel gebruik van gescoorde data en nemen we de grootte van de omgeving van een datapunt (k) gelijk aan 1. De resultaten voor verschillende clustergroottes zijn te vinden in Tabel 6.5. Uit deze tabel kunnen we besluiten dat de beste resultaten bekomen worden met slechts ´e´en cluster, wat betekent dat we het standaard kNN algoritme zouden toepassen. In dat geval is het niet nuttig om over te gaan naar verdere testen met clustering. 30 60 90 120 150 K=1 11,42 10,99 10,62 10,36 10,33 K=2 11,65 11,35 10,63 10,58 10,40 K=3 11,81 11,60 11,06 10,56 10,71 K=4 11,84 11,53 11,33 10,19 10,69 K=5 11,90 11,33 11,21 10,61 11,03 K=6 11,81 11,58 10,93 10,57 10,56 K=7 11,82 11,37 10,99 10,63 10,53 K=8 11,92 11,28 10,93 10,52 10,45 Tabel 6.5: Overzicht van de RMSE voor verschillende clustergroottes met k = 1, de kleinste waarde staat schuin 35 Figuur 6.9: RMSE in functie van het aantal gescoorde datapunten voor co-training met toevoeging op basis van de beste verbetering, de kleinste gemiddelde afstand, en random toevoeging. Slechts een derde van de ongescoorde datapunten werden toegevoegd. 36 Figuur 6.10: RMSE in functie van het aantal gescoorde datapunten voor co-training met en zonder stopcriterium 37 Hoofdstuk 7 Resultaten van ELR In dit hoofdstuk zullen we de semi-gesuperviseerde methoden bekijken in combinatie met ELR. We optimaliseren eerst de parameters voor standaard ELR, daarna onderzoeken we het effect van co-training bij deze parameters. 7.1 Standaard ELR De parameter die we kunnen laten vari¨eren bij ELR is het aantal random permutaties m van de trainingsset waarop een regressor geleerd wordt (zie Sectie 3.4.1). We zullen het aantal random permutaties laten vari¨eren om zo de optimale waarde te vinden. We zullen testen uitvoeren voor m = 5, 10, 20, 50 en 100. De resultaten zijn te vinden in Tabel 7.1. We zien dat de resultaten weinig afhankelijk zijn van het aantal permutaties. Teneinde ook rekening te houden met de rekentijd, kiezen we daarom voor 10 permutaties van de data. We zijn ge¨ınteresseerd in het aantal kenmerken dat geselecteerd wordt voor de verschillende datasets. Een grafiek hiervan is te vinden in Figuur 7.1. Zoals verwacht neemt het aantal geselecteerde kenmerken toe met de grootte van de gescoorde dataset. Aangezien er door co-training datapunten zullen bijkomen, vermoeden we dat er meer kenmerken zullen kunnen geselecteerd worden. We vragen ons af hoe standaard ELR presteert in vergelijking met standaard kNN. Beide algoritmen werden getest en de resultaten hiervan zijn te vinden in Figuur 7.2. Uit deze figuur kunnen we afleiden dat er geen significant verschil is tussen de beide regressiemethoden. dataset 30 60 90 120 150 5 10,40 10,37 9,61 9,46 9,11 10 10,32 10,36 9,57 9,26 9,05 20 10,28 10,42 9,62 9,21 9,07 50 10,35 10,27 9,61 9,21 9,07 100 10,28 10,30 9,54 9,22 9,08 Tabel 7.1: Overzicht van de RMSE met een verschillend aantal random permutaties voor standaard ELR 38 Figuur 7.1: Gemiddeld aantal geselecteerde kenmerken in functie van de grootte van de gescoorde datasets voor zowel de deelmodellen als het volledige model 39 Figuur 7.2: Vergelijking tussen standaard kNN en standaard ELR voor de RMSE in functie van het aantal gescoorde datapunten 40 Figuur 7.3: RMSE in functie van het aantal gescoorde datapunten voor co-training en standaard ELR 7.2 Co-training met ELR Standaard ELR is geoptimaliseerd, nu kunnen we het standaard algoritme vergelijken met co-training. Doordat gewerkt wordt met m deelmodellen, kunnen we deze gebruiken in de kwaliteitsmaat. Als de voorspellingen van alle deelmodellen gelijkaardig zijn, kunnen we verwachten dat het datapunt een vrij correcte score zal gekregen hebben. Daarom zullen we in het co-trainingsalgoritme ongescoorde datapunten toevoegen op basis van de kleinste standaardafwijking op de voorspelling van de m deelmodellen van ELR. De datapunten worden toegevoegd totdat er geen meer over zijn. De vergelijking tussen co-training en standaard ELR is te vinden in Figuur 7.3. Het aantal kenmerken dat nu geselecteerd wordt, kan gevonden worden in Figuur 7.4. We zien dat co-training het vooral voor weinig gescoorde datapunten een slechter doet dan standaard ELR. Het probleem zou - net als bij co-training met kNN - kunnen liggen aan de kwaliteitsmaat. We zullen dit verder onderzoeken in Sectie 7.2.1. Als we kijken naar het aantal kenmerken dat geselecteerd wordt voor co-training in vergelijking met standaard ELR (zie Figuur 7.4), zie we dat onze verwachtingen niet kloppen. Hoewel er in de deelmodellen een kleine stijging waar te nemen is van het aantal geselecteerde kenmerken, zien we voor het volledige model toch een opvallende daling. Dit betekent 41 Figuur 7.4: Gemiddeld aantal geselecteerde kenmerken in functie van de grootte van de gescoorde datasets voor standaard ELR en co-training ELR voor de deelmodellen en de volledige regressor 42 Figuur 7.5: Absolute verschil tussen de voorspelde en echte score in functie van de standaardafwijking op de voorspelling van de deelmodellen van ELR dus dat de verschillende submodellen vaker dezelfde datapunten selecteren. Een mogelijke verklaring hiervoor kan zijn dat de datapunten die worden toegevoegd degene zijn die de beste veralgemening zijn van de verschillende trainingssets. Het datapunt wordt gekozen als de modellen gelijkaardige voorspellingen doen voor de score van dat datapunt. Dit zal het datapunt zijn dat het meest algemeen is, en dus het meest vergelijkbaar is met alle trainingsdata. De toevoeging van datapunten zal er dan voor zorgen dat de datasets gelijkaardiger worden en dus vaker dezelfde kenmerken zullen selecteren. 7.2.1 Invloed van de kwaliteitsmaat De huidige kwaliteitsmaat gaat op zoek naar het datapunt dat de kleinste standaardafwijking heeft op de voorspellingen van de submodellen. We hebben ook hier de voorspelling van de ongescoorde datapunten in de eerste iteratie bekeken en vergeleken met de standaardafwijking die bepaalt welk datapunt wordt toegevoegd. Het resultaat is te zien in Figuur 7.5. Uit de figuur blijkt dat de standaardafwijking op de deelmodellen weinig verband houdt met de fout op de voorspelling van een ongescoord datapunt. Daarom zouden we kunnen kiezen voor een andere kwaliteitsmaat, zoals de beste verbetering. Deze kwaliteitsmaat werd al gebruikt voor kNN (zie Hoofdstuk 6). Het nadeel van het gebruik van de beste verbetering bij ELR is dat er voor elk ongescoord punt een nieuw model moet worden opgesteld, wat zeer lang duurt aangezien het ELR algoritme trager is. Uit het vorige hoofdstuk (Hoofdstuk 6) 43 Figuur 7.6: RMSE op de testset en gemiddelde RMSE van de validatiesets van ´e´en regressor in functie van de iteratie, getest voor 60 gescoorde datapunten bleek dat de kwaliteitsmaat niet veel verschil maakte voor het algoritme. We zullen dan ook geen andere mogelijkheden testen in dit hoofdstuk. 7.2.2 Invloed van het stopcriterium Als we datapunten toevoegen totdat er geen meer over zijn, riskeren we dat op het einde ook slechte voorspellingen zullen worden toegevoegd die de RMSE niet ten goede zullen komen. Daarom kan het belangrijk zijn om vroegtijdig te stoppen met het toevoegen van datapunten. Een mogelijk stopcriterium zou het volgende kunnen zijn: we stoppen van zodra de gemiddelde RMSE op de validatiesets niet meer afneemt. Bij het testen hiervan merken we echter dat de RMSE op de validatiesets erg variabel is, wat er zou toe leiden dat het algoritme al na enkele iteraties zou stoppen (zie Figuur 7.6). Bovendien zien we dat de gemiddelde RMSE op de validatieset bijna geen verband heeft met de RMSE op uiteindelijke testset. Het lijkt dan ook niet nuttig om dit stopcriterium uit te proberen. Een andere mogelijkheid zou kunnen zijn om te stoppen wanneer de standaardafwijking op de voorspellingen van de deelmodellen te groot wordt. Als dat het geval is, is de kans kleiner dat de uitmiddeling van alle deelmodellen de juiste score oplevert. De moeilijkheid bestaat er nu in om de juiste maximale waarde te vinden voor de standaardafwijking. Aangezien de RMSE op de testset ongeveer 10 is, en we willen dat de toegevoegde datapunten een kleinere fout hebben dan het gemiddelde, zetten we deze grens op 10. Het resultaat van de invoering van het stopcriterium is te vinden in Figuur 7.7. We kunnen 44 Figuur 7.7: RMSE in functie van het aantal gescoorde datapunten voor co-training zonder stopcriterium, met stopcriterium, en standaard ELR 45 uit deze figuur besluiten dat het stopcriterium weinig effect heeft op de prestatie van het co-trainingsalgoritme. 46 Hoofdstuk 8 Conclusie en verder onderzoek In dit hoofdstuk zullen we enkele algemene conclusies trekken uit onze experimenten (zie Sectie 8.1). In Sectie 8.2 zullen we bespreken wat de mogelijkheden nog zijn voor verder onderzoek. 8.1 Conclusie We kunnen besluiten dat co-training en clustering (en dus semi-gesuperviseerd leren in het algemeen) momenteel nog geen verbetering kunnen opleveren. Bij clustering hebben we het probleem dat de clusters te weinig gescoorde data bevatten om daaruit een goede regressor te kunnen afleiden. Voor co-training blijkt het moeilijk een maat te vinden die kan inschatten welke datapunten voldoende goed voorspeld werden. Doordat slechte voorspellingen vaak vroeg toegevoegd worden, kunnen fouten propageren en ervoor zorgen dat volgende datapunten ook een slechtere voorspelling krijgen. Om de keuze te kunnen maken tussen kNN en ELR, zetten we de twee even naast elkaar in Figuur 8.1. We zien dat kNN het beter doet dan ELR voor alle datasets. Bovendien is het kNN algoritme ook sneller dan ELR. Op basis van deze twee bevindingen, raden we aan om te kiezen voor kNN. 8.2 Verder onderzoek In verder onderzoek zou kunnen gezocht worden naar een kwaliteitsmaat die correct voorspelde datapunten beter zou kunnen identificeren. Het kan hierbij handig zijn om ook de a priori waarschijnlijkheid van de scores in rekening te brengen, aangezien in Figuur 5.1 kon gezien worden dat er veel meer data voorhanden is voor hoge scores. Dit probleem zou ook kunnen omzeild worden door de dataset uniformer te proberen maken. Een andere interessante piste om te onderzoeken is of het niet beter is te werken met twee regressors die niet op dezelfde dataset werken, maar met een andere set van kenmerken. Op die manier kunnen we meer data gebruiken en zullen de regressors toch verschillend zijn. 47 Figuur 8.1: RMSE in functie van het aantal gescoorde datapunten voor co-training en standaard kNN en ELR 48 Hierop aansluitend kan het ook interessant zijn om meer dan twee regressors te gebruiken. Wanneer voldoende ongescoorde data voorhanden is, kunnen meer regressors zorgen voor een betrouwbaardere score. De regressors kunnen werken op verschillende data- en/of kenmerkensets, en voegen een voorspelling toe aan de gescoorde datasets van alle andere regressors. Meerdere regressors zorgen er natuurlijk ook voor dat het standaard algoritme beter zal presteren, waardoor we niet zeker zijn dat het verschil tussen co-training en het standaard algoritme groter zal worden. 49 Bibliografie [1] Avrim Blum en Tom Mitchell, Combining labeled and unlabeled data with co-training, Proceedings of the 11th Annual Conference on Computational Learning Theory (COLT 98), 1998, pp. 92-100. [2] Colorado Reed, Compendium of Machine-Learning-Related Knowledge: A Quick Reference, University of California, Berkeley, 2012. [3] Luca Didaci en Fabio Roli, Using Co-training and Self-training in Semi-supervised Multiple Classifier Systems, Lecture Notes in Computer Science 2006, vol. 4109, pp. 522-530. [4] Matthias Seeger, Learning with labeled and unlabeled data, Technical Report, University of Edinburgh, Edinburgh, UK, December 2002. [5] Shuo Xu et al., Semi-supervised Least-squares Support Vector Regression Machines, Journal of Information and Compututing Science 2011, vol. 8, pp. 885-892. [6] Xiaojin Zhu, Semi-Supervised Learning Tutorial, Technical Report, Department of Computer Sciences, University of Wisconsin, Madison, USA, 2007. [7] ZH. Zhou en Ming Li, Semi-Supervised Regression with Co-Training, Proceedings of the 19th International Joint Conference on Artificial Intelligence 2005, Edinburgh, Scotland, pp. 908-913. [8] Catherine Middag. Automatic Analysis of Pathological Speech. Universiteit Gent, 20122013. 50 Lijst van tabellen 6.1 6.2 6.3 6.4 6.5 7.1 Overzicht van de RMSE voor verschillende k-waarden, de beste waarde per dataset werd schuin gezet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Overzicht van de RMSE voor verschillende waarden van β bij formule (6.1) (kwadraat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Overzicht van de RMSE voor verschillende waarden van β bij formule (6.2) (geen kwadraat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Overzicht van de RMSE voor verschillende waarden van α voor de betrouwbaarheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Overzicht van de RMSE voor verschillende clustergroottes met k = 1, de kleinste waarde staat schuin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Overzicht van de RMSE met een verschillend aantal random permutaties voor standaard ELR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 51 Lijst van figuren 1.1 Verschil tussen classificatie en regressie . . . . . . . . . . . . . . . . . . . . . . 2 2.1 Algemene flow-charts voor training en scoring met behulp van co-training . . 6 3.1 Schematische voorstelling van ELR . . . . . . . . . . . . . . . . . . . . . . . . 16 5.1 Verdeling van de scores in de volledige dataset . . . . . . . . . . . . . . . . . 22 5.2 RMSE in functie van het aantal gescoorde datapunten voor gesuperviseerde regressie als bovengrens, de lijn van gesuperviseerd 150 werd doorgetrokken als ondergrens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 RMSE in functie van het aantal gescoorde datapunten voor standaard kNN met verschillende k-waarden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.2 De twee afstandsmaten voor kNN . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.3 RMSE in functie van het aantal gescoorde datapunten voor co-training en standaard kNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 RMSE in functie van het aantal gescoorde datapunten voor co-training met en zonder betrouwbaarheden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Absolute verschil tussen de voorspelde en echte score in functie van de verbetering door toevoeging van het datapunt . . . . . . . . . . . . . . . . . . . . . 32 Absolute verschil tussen de voorspelde en echte score in functie van de gemiddelde afstand van het datapunt tot zijn buren . . . . . . . . . . . . . . . . . . 33 Absolute verschil tussen de voorspelde en echte score in functie van de standaardwafwijking op de scores van de buren . . . . . . . . . . . . . . . . . . . 34 Absolute verschil tussen de voorspelde en echte score in functie van het verschil tussen de maximale en de minimale score van de buren . . . . . . . . . . . . . 35 RMSE in functie van het aantal gescoorde datapunten voor co-training met toevoeging op basis van de beste verbetering, de kleinste gemiddelde afstand, en random toevoeging. Slechts een derde van de ongescoorde datapunten werden toegevoegd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.10 RMSE in functie van het aantal gescoorde datapunten voor co-training met en zonder stopcriterium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.1 6.4 6.5 6.6 6.7 6.8 6.9 52 7.1 7.2 7.3 7.4 7.5 7.6 7.7 8.1 Gemiddeld aantal geselecteerde kenmerken in functie van de grootte van de gescoorde datasets voor zowel de deelmodellen als het volledige model . . . . 39 Vergelijking tussen standaard kNN en standaard ELR voor de RMSE in functie van het aantal gescoorde datapunten . . . . . . . . . . . . . . . . . . . . . . . 40 RMSE in functie van het aantal gescoorde datapunten voor co-training en standaard ELR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Gemiddeld aantal geselecteerde kenmerken in functie van de grootte van de gescoorde datasets voor standaard ELR en co-training ELR voor de deelmodellen en de volledige regressor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Absolute verschil tussen de voorspelde en echte score in functie van de standaardafwijking op de voorspelling van de deelmodellen van ELR . . . . . . . 43 RMSE op de testset en gemiddelde RMSE van de validatiesets van ´e´en regressor in functie van de iteratie, getest voor 60 gescoorde datapunten . . . . . . . . 44 RMSE in functie van het aantal gescoorde datapunten voor co-training zonder stopcriterium, met stopcriterium, en standaard ELR . . . . . . . . . . . . . . 45 RMSE in functie van het aantal gescoorde datapunten voor co-training en standaard kNN en ELR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 53 Lijst van Algoritmes 1 2 3 4 5 6 7 8 Bereken h(x) voor kN N . . . . . . . . . . . . . Co-training met kN N . . . . . . . . . . . . . . Scoren met clusters . . . . . . . . . . . . . . . . Algemeen algoritme voor co-training . . . . . . Kenmerkenselectie met lineaire regressie . . . . Algemeen raamwerk voor clustering . . . . . . Algoritme voor K-means clustering . . . . . . . Algoritme voor incrementele k-means clustering 54 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8 9 11 17 18 19 19
© Copyright 2024 ExpyDoc