0440949 Andreas van Cranenburgh 1. Both values should be negative, because the area where the "u" should be detected is when both x and y are below some value, and negative weights work like a "lower than" operator. The reason only two values need to be specifically chosen is that any line can be specified by two values (starting value and direction coefficient). 2. A u-detector: w_u,1 = (600 - 1600) / (550 - 200) = -2.8571 w_u,0 = 1600 - w_u,1 * 200 = 2171.429 The values 200, 550, 1600 and 600 are the coordinates of the line that separates u from the other vowels (x1, x2, y1 and y2 respectively). 3. Arabic vowel detector: w_u,1 = (600 - 1600) / (550 - 200) = -2.8571 w_u,0 = 1600 - w_u,1 * 200 = 2171.429 w_a,1 = (2600 - 600) / (1000 - 800) = 10 w_a,0 = 600 - w_u,1 * 800 = -7400 w_i,1 = (1600 - 2600) / (200 - 550) = -2.8571 w_i,0 = 2600 - w_u,1 * 550 = -1028.6 4. A single layer network cannot perform this task because it is not possible to draw a single line that separates "e" or "o" from all the other vowels. To detect them it is necessary to combine at least two such separating lines. 5. A network with two hidden units can detect an "o" because one of the units can detect everything above and the other everything below the "o". A network with three hidden units can be more selective because using three lines it is possible to draw a triangle around the "o", in such a way that only points close to the prototypical "o" sound cause all the units to fire. With only two units the two lines describe an area that stretches to infinity at at least one side (two if the lines are parallel), causing a lot of spurious matches.