{VERSION 3 0 "IBM INTEL NT" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Plot" 0 13 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 723 "This Maple file reads in \+ 1) a file containing the inputs/class information, and 2) a file conta ining parameters for a network trained on this data. This was generat ed using the Java network simulator written by G. Orr. This Maple fil e assumes the net can have any number of layers and that each layer is either linear or sigmoid. For each input, the network output is gene rated and the output node with the largest positive output is taken to be the network's prediction of the class. This prediction is compare d with the true class. The data from each class is plotted with a dif ferent color along all possible pairs of axes. If the prediction is co rrect, a circle is used to plot the point otherwise a cross is used." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 79 "currentdir(\"E:\\\\classes\\\\Neu ralNets99\\\\MySimulator\");\nfname := `netParams.dat`;" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#QLE:\\public_html\\classes\\cs449\\DataBases\\ir is6\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&fnameG%.netParams.datG" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 97 "Read in network parameters from t he file netParams.data. This file was output by the Java neural " }} {PARA 0 "" 0 "" {TEXT -1 58 "net simulator when the \"save weights\" b utton is pressed. " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "read fname: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "sigmoid := proc(x) " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " evalf(1./(1 + exp(-x) ));" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(sigmoidGR6#%\"xG6\"F(F(-%&evalfG6#,$*&\"\"\"F.,&\"\"\"F0-%$ex pG6#,$9$!\"\"F0!\"\"$F0\"\"!F(F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 55 "Given an input x, calculate the output of the network. " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "f := proc(x) local i, w, nodesU, no desL, y;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " y := x:" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 " for i from 1 to nops(wts) do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 " w := wts[i]; " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " nodesU := nops(w);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 " nodesL := nops(w[1]);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 " if (actfun[i] = \"sigmoid \") then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 " y := map( sigmoid,evalm(w &* y));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " \+ else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 " y := evalm (w &* y);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 " fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " end;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"fGR6#%\"xG6'%\"iG%\"wG%'nodesUG%'nodesLG%\"yG6 \"F.C$>8(9$?(8$\"\"\"F5-%%nopsG6#%$wtsG%%trueGC&>8%&F96#F4>8&-F76#F=>8 '-F76#&F=6#F5@%/&%'actfunGF?Q(sigmoidF.>F1-%$mapG6$%(sigmoidG-%&evalmG 6#-%#&*G6$F=F1>F1FTF.F.F." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 101 "Rea d in classification data. The first n-1 columns are the inputs followe d by the class index in the " }}{PARA 0 "" 0 "" {TEXT -1 105 "last col umn. The array \"a\" contains some extraneous info at the top such as the number of input vectors." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "fn ame := `iris.dat`;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "with(plots): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "cols := 5;" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 26 "a := readdata(fname,cols):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "b := a[4..nops(a)]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "len := nops(b);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "dim := col s-1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&fnameG%)iris.datG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%colsG\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$lenG\"$]\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$dimG\"\"%" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 76 "The function pickClass picks out all vectors in array x that are in class i." }}{PARA 0 "" 0 "" {TEXT -1 77 "v is a list containing the class indices (no duplicates). The l oop separates " }}{PARA 0 "" 0 "" {TEXT -1 44 "the different classes i nto their own arrays." }}{PARA 0 "" 0 "" {TEXT -1 76 "The array \"clas ses\" is a list of arrays. There is one array for each class." }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "pickClass := proc(x,i) is(x[dim+1] =i); end:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "v := sort(convert(\{op (map(u->u[dim+1], b))\},list));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " classes := []:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "for i from 1 to n ops(v) do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "classes := [ op(c lasses),select( pickClass, b,v[i])];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od:" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"vG7%$\"\"\"\"\"!$\"\"# F($\"\"$F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 91 "Given a vector x, determine position of m ax element. return the corresponding element of v." }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 37 "getclass := proc(x,v) local c, m, i;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 " m := max(op(x)): " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " for i from 1 to nops(x) do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 " if (m=x[i]) then c := i: " }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 11 " fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " v[c];" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)ge tclassGR6$%\"xG%\"vG6%%\"cG%\"mG%\"iG6\"F-C%>8%-%$maxG6#-%#opG6#9$?(8& \"\"\"F:-%%nopsGF6%%trueG@$/F0&F76#F9>8$F9&9%6#FCF-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "classes[2,1,1..dim+1];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7'$\"#q!\"\"$\"#KF&$\"#ZF&$\"#9F&$\"\"#\"\"!" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 78 "For each class, determine which \+ inputs the network correctly classifies. Place" }}{PARA 0 "" 0 "" {TEXT -1 78 "these in the list called setCorrect and place the others \+ in the list setWrong." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "classes2 : = []:setCorrect := []:setWrong := []: count := 0:" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 27 "for j from 1 to nops(v) do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " setCorrect := []; setWrong := [];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " for i from 1 to nops(classes[j]) do " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " x1 := classes[j,i,1..dim]: " } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 " x2 := [op(x1),1]: # add bias " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 " correctclass := classes[j, i,dim+1]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 " h := convert(f(x2 ),list):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " netclass := getcl ass(h,v):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 " if (correctclass= netclass) then " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 " setCorrec t := [ op(setCorrect),x1 ]: " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 " \+ else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 " setWrong := [ op( setWrong),x1]: count := count+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " fi; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 " od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 " classes2 := [op(classes2),setCorrect, setWron g]:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "ncorrect := nops(b)-count;\nprint(\"number incorrect= \",count,\" out of \",nops(b));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% )ncorrectG\"$F\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6&Q2number~incorrect =6\"\"#BQ*~~out~of~F$\"$]\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "map(u->nops(u),classes2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7(\"# ]\"\"!\"#M\"#;\"#V\"\"(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " with(plots): " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "This function ta kes two columns( n and m) and plots them with each class being a " }} {PARA 0 "" 0 "" {TEXT -1 16 "different color." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "myColors := [ blue, red, black, green ]; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "plotCut := proc(m,n) local i, mm, cc, fi g;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " fig := []: " }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 32 " for i from 1 to 2*nops(v) do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 " if (nops(classes2[i])>0) then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " cc := floor((i+1)/2);" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 49 " mm := map(u->[ u[n],u[m] ], classes2[i ]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 37 " if (modp(i,2)=1) then " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 55 " fig := [op(f ig),pointplot(mm, symbol=CIRCLE," }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 116 " color=myColors[cc],labels=[`xx`.n,`xx`.m])]; \+ " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " else " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 " fig := [op(fig),pointplot(mm, symbol=CROSS," }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 60 " color=myColors[cc],labels=[`x x`.n,`xx`.m])]; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 " fi; \+ " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 " fi; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 " od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " fig;" } }{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)myColorsG7&%%blueG%$redG%&blackG%&greenG" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 61 "This function loops over all pairs of columns and \+ plots them." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "all := []:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "for i from 1 to dim do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 " for j from i+1 to dim do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 " all := [op(all), plotCut(i,j)]; " }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 10 " od; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "for i from 1 to nops(al l) do display(all[i]) od;" }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6(-%'POINTSG6V7$$\"#N!\"\"$\"#^F)7$$\"#IF)$\"#\\F)7$$\"#K F)$\"#ZF)7$$\"#JF)$\"#YF)7$$\"#OF)$\"#]F)7$$\"#RF)$\"#aF)7$$\"#MF)F97$ FFF>7$$\"#HF)$\"#WF)7$F7F/7$$\"#PF)FC7$FF$\"#[F)7$F-FS7$F-$\"#VF)7$$\" #SF)$\"#eF)7$FL$\"#dF)F@F&7$$\"#QF)Fin7$F\\oF*7$FFFC7$FPF*7$FFH7$F'$\"#_F)7$FFFgoF17$F7FSF_o7$$\"#TF)Fgo7$$\"#UF)$\"#b F)FN7$F2F>7$F'FapFN7$F-FL7$FFF*7$F'F>7$$\"#BF)$\"#XF)7$F2FLFgpF^oFUF^o 7$F2F97$FP$\"#`F)7$FcoF>-%'COLOURG6&%$RGBG\"\"!Fgq$\"*++++\"!\")-%'SYM BOLG6#%'CIRCLEG-F$6F7$FipFap7$$\"#GF)$\"#lF)7$FcrFin7$$\"#CF)F/7$FJ$\" #mF)7$$\"#FF)Fgo7$$\"#?F)F>7$$\"#AF)$\"#gF)7$FJ$\"#hF)7$F_sFfn7$Fes$\" #iF)7$$\"#DF)$\"#cF)7$FcrFjs7$Fat$\"#jF)Fet7$FJ$\"#kF)7$Fcr$\"#oF)7$$ \"#EF)Fin7$FirFapFbuF\\t7$F_sFgs7$FipFgt7$FatFap7$F`uFap7$F-Fjs7$F`uFf n7$FipF>7$F_sFct7$F-Fin7$FJFin7$FJF^t7$FatF*Fgr-Fdq6&FfqFhqFgqFgqF[r-F $647$F2$\"#qF)7$F2Fjt7$F7$\"#pF)7$FcoFgt7$F-$\"#fF)7$FJFct7$F7$\"#nF)7 $F-Fct7$F2F\\w7$F-F\\s7$F-F`w7$FJFgs7$F-FC7$FFFgsF_wFbwF_v-F\\r6#%&CRO SSG-F$6OFjvF\\t7$F-$\"#rF)7$FJFgt7$F-Fer7$F-$\"#wF)7$FatF/7$F<$\"#sF)7 $F2Fer7$F_sFjt7$F-F]u7$FatFin7$FcrFfnFfvFbx7$F\\o$\"#xF)7$F`uF`y7$F2Fh v7$FcrFct7$F_sFgt7$FcoF`w7$F2Fhx7$FcrF^tFgu7$FcrFjt7$Fcr$\"#uF)7$F\\o$ \"#zF)Fiy7$F-F`y7$FFFgt7$F7Fjt7$F-FgsFgvF_wFgvF\\t7$F2F]uFfyFewFftFbx7 $FFF^tF[w-Fdq6&FfqFgqFgqFgqF[r-F$6+7$FJ$\"#tF)7$FatF`wFds7$FcrF`y7$F-F hx7$FcrFgt7$F`uFjsFfzFiw-%+AXESLABELSG6$%$xx2G%$xx1G" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6(-%'POINTSG6V7$$\"#9!\"\"$\"#^F)7$F'$\"#\\F)7$$ \"#8F)$\"#ZF)7$$\"#:F)$\"#YF)7$F'$\"#]F)7$$\"#F)FK 7$FIF:F_o7$F5$\"#_F)7$F'Fao7$FIF2FHFGF`o7$F'$\"#bF)FF7$FTF:7$F0FfoFF7$ F0FDFgn7$F0F:7$F0$\"#XF)FjoF_o7$F]oF*FM7$FIF*FA7$F5$\"#`F)F9-%'COLOURG 6&%$RGBG\"\"!Fhp$\"*++++\"!\")-%'SYMBOLG6#%'CIRCLEG-F$6F7$$\"#SF)Ffo7$ F7$\"#lF)7$F]pFY7$$\"#LF)F-7$F7$\"#mF)7$$\"#RF)Fao7$$\"#NF)F:7$Fcq$\"# gF)7$F2$\"#hF)7$$\"#TF)FV7$F]p$\"#iF)7$F`r$\"#cF)7$FcqFir7$F-$\"#jF)Fh r7$FQ$\"#kF)7$FK$\"#oF)7$FcrFY7$$\"#QF)Ffo7$$\"#PF)Ffo7$F`rFV7$F*Ffr7$ FDFfsFbq7$FDFfo7$F7Fir7$FcqFV7$FjqF:7$$\"#UF)Fbs7$F]uFYF_u7$FQF_s7$$\" #IF)F*7$F\\sFY-Fep6&FgpFipFhpFhpF\\q-F$647$F2$\"#qF)7$F]pFis7$F-$\"#pF )7$F2Ffs7$F]u$\"#fF)7$$\"#OF)Fbs7$FD$\"#nF)7$F]pFbs7$FKFbv7$FDF]r7$F:F hv7$F]pFfr7$F]pF?F^w7$F2Fhv7$F\\sFbsFeu-F]q6#%&CROSSG-F$6O7$FfrFfs7$F* FV7$Fbv$\"#rF)7$FbsFfs7$FVFfq7$F]r$\"#wF)7$F]pF-7$Fir$\"#sF)7$F*Ffq7$F bpFis7$FfoF\\t7$F:FYFhwFfx7$FfoFfq7$Fhv$\"#xF)7$F^vF[y7$FYF^v7$F-FbsFe s7$FYFhv7$FfrFcx7$FKF_s7$F-Fir7$FbsFis7$Fir$\"#uF)7$Fis$\"#zF)Fdy7$Fir F[yF\\x7$FfoFis7$FKFfr7$F?F^v7$FbsFhv7$F*F^vFhw7$FbvF\\tF`y7$FaoFhv7$F :Ffs7$FaoFfq7$F?F_s7$F*Fbv-Fep6&FgpFhpFhpFhpF\\q-F$6+7$Ffs$\"#tF)7$FVF hv7$F:FfrFjx7$FVFcx7$F*Ffs7$FbsFirFgzFbw-%+AXESLABELSG6$%$xx3G%$xx1G" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}{PARA 13 "" 1 " " {GLPLOT2D 400 300 300 {PLOTDATA 2 "6(-%'POINTSG6V7$$\"\"#!\"\"$\"#^F )7$F'$\"#\\F)7$F'$\"#ZF)7$F'$\"#YF)7$F'$\"#]F)7$$\"\"%F)$\"#aF)7$$\"\" $F)F3F57$F'$\"#WF)7$$\"\"\"F)F-7$F'F;7$F'$\"#[F)7$FDFH7$FD$\"#VF)7$F'$ \"#eF)7$F9$\"#dF)F87$F>F*7$F>FRFTFF7$F9F*F27$$\"\"&F)F*FGF57$F9F67$F'$ \"#_F)FenF/FGF87$FDFfn7$F'$\"#bF)FCF5FinFCF@F&7$F>F67$F>$\"#XF)F@7$$\" \"'F)F6FV7$F>FHF&F27$F'$\"#`F)F5-%'COLOURG6&%$RGBG\"\"!F[p$\"*++++\"! \")-%'SYMBOLG6#%'CIRCLEG-F$6F7$$\"#8F)Fjn7$$\"#:F)$\"#lF)7$FfpFR7$$\"# 5F)F-7$Ffp$\"#mF)7$$\"#9F)Ffn7$F_qF67$F_q$\"#gF)7$Feq$\"#hF)7$F_qFO7$F ip$\"#iF)7$$\"#6F)$\"#cF)7$FfpF\\r7$Fip$\"#jF)7$$\"#7F)F\\r7$Ffp$\"#kF )7$Feq$\"#oF)7$F_qFR7$FcrFjn7$F_qFjn7$F\\sFO7$$\"#;F)Fiq7$FfpFirFep7$F \\sFjnF[rFgsFgq7$FfpFer7$F\\sFRF]q7$FfpF`r7$FcrF*F]q-Fho6&FjoF\\pF[pF[ pF_p-F$647$Feq$\"#qF)7$FipF_s7$Fip$\"#pF)7$FisFir7$Fip$\"#fF)F]t7$Feq$ \"#nF)7$FipFer7$$\"#=F)F^u7$FeqFbq7$$\"#F)FO7$$\"#@F)$\"#rF)7$Fe uFir7$$\"#AF)F[q7$Fjv$\"#wF)7$FiuF-7$Fdv$\"#sF)7$$\"#?F)F[q7$FgvF_s7$F jvFbs7$FjwFR7$$\"#CF)FO7$$\"#BF)F_s7$FeuF[q7$F`w$\"#xF)7$FcxFgx7$FcxFj t7$FjwFerF^w7$FjvFau7$FeuFgw7$FeuF`r7$FeuF\\r7$FjvF_s7$Fgv$\"#uF)7$Fjw $\"#zF)7$F`wF_sFix7$F`xFir7$FeuF_s7$FeuFiq7$FjvFjt7$F`xFauFjxFfv7$FcxF bs7$FdvFau7$FcxFau7$FgvFirFiw7$FcxF`rFdu-Fho6&FjoF[pF[pF[pF_p-F$6+7$Fe u$\"#tF)7$FeuFauF[v7$FjwFgx7$FisFgwFhrF[rFbzF^v-%+AXESLABELSG6$%$xx4G% $xx1G" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }}}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6(-%'POINTSG6V7$$\"#9!\"\"$ \"#NF)7$F'$\"#IF)7$$\"#8F)$\"#KF)7$$\"#:F)$\"#JF)7$F'$\"#OF)7$$\"#F)FB7$FLF-FK7$F5F*FA7$FLF27$FLF7FD7$F5$\"#TF)7$F' $\"#UF)F47$FRF27$F0F*F47$F0F-FDF]p7$F0$\"#BF)F/7$FLF*7$F`oFenF,7$FLFen 7$F'F2FH7$F'F]o-%'COLOURG6&%$RGBG\"\"!F[q$\"*++++\"!\")-%'SYMBOLG6#%'C IRCLEG-F$6F7$FTF`p7$$\"#YF)$\"#GF)7$$\"#XF)Fiq7$F]o$\"#CF)7$FgqFF7$F?$ \"#FF)7$F*$\"#?F)7$FT$\"#AF)7$$\"#ZF)FF7$FgoFcr7$F\\rFir7$F?$\"#DF)7$F TFiq7$$\"#\\F)Fas7$F\\sFiq7$$\"#VF)FF7$$\"#[F)Fiq7$F*$\"#EF)7$FenF_r7$ FIF_rFbr7$$\"#^F)Fcr7$FWF`p7$FTFas7$FWF_t7$FgqF-7$FTF_t7$F]oF`p7$FjoFc r7$FjoF-7$FjoFFFhs7$F-Fas7$FgoFiq-Fhp6&FjpF\\qF[qF[qF_q-F$647$F\\sF27$ F\\rF27$FesF77$F\\sF]oF]u7$F:FF7$FWF77$F\\rF-7$F\\tF27$FWF-7$$\"#]F)F- 7$F\\rFFF[v7$F\\rFB7$F\\sF77$FgoF-Fau-F`q6#%&CROSSG-F$6O7$$\"#gF)F]oFc t7$$\"#fF)F-7$$\"#cF)FF7$$\"#eF)F-7$$\"#mF)F-7$F\\rFas7$$\"#hF)F:7$Fdt F27$$\"#`F)Fcr7$$\"#bF)F-7$F_vFas7$FdtFiq7$F_xF2Fax7$$\"#nF)Fen7$$\"#p F)F_t7$$\"#dF)F27$FesFiq7$FesFcr7$F^yF]o7$F[wF2F[t7$FesF-7$FawFiq7$F[x Fiq7$$\"#kF)FenFey7$F[xF-7$FawFB7$FbxF77$F\\tF-7$$\"#aF)F77$FawF77$Fdt F7Fct7$F^wF2Fby7$$\"#_F)F-FdxFdz7$F_zFB7$FdtF--Fhp6&FjpF[qF[qF[qF_q-F$ 6+7$$\"#jF)FF7$FdwFas7$F_vFir7$FhxFiqFcwFex7$FawF_tFizFev-%+AXESLABELS G6$%$xx3G%$xx2G" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }} }{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6(-%'POINTSG6V7$$ \"\"#!\"\"$\"#NF)7$F'$\"#IF)7$F'$\"#KF)7$F'$\"#JF)7$F'$\"#OF)7$$\"\"%F )$\"#RF)7$$\"\"$F)$\"#MF)7$F'F@7$F'$\"#HF)7$$\"\"\"F)F37$F'$\"#PF)FB7$ FGF-FL7$F'$\"#SF)7$F9$\"#WF)F87$F>F*7$F>$\"#QF)FTFB7$F9FJF57$$\"\"&F)$ \"#LF)FBF,7$F9F@F&FBF/F2Fgn7$FG$\"#TF)7$F'$\"#UF)FFF/F&FFF,FBFS7$F>$\" #BF)F/7$$\"\"'F)F*7$F9FU7$F>F-7$F'FUF/FI7$F'Fen-%'COLOURG6&%$RGBG\"\"! F\\p$\"*++++\"!\")-%'SYMBOLG6#%'CIRCLEG-F$6F7$$\"#8F)F_o7$$\"#:F)$\"#G F)7$FgpF\\q7$$\"#5F)$\"#CF)7$FgpFD7$$\"#9F)$\"#FF)7$F`q$\"#?F)7$F`q$\" #AF)7$FfqFD7$F`qFhq7$FjpF^r7$$\"#6F)$\"#DF)F^q7$FjpFfr7$$\"#7F)F\\qFdq 7$FfqF\\q7$F`q$\"#EF)7$FdrFbqF_q7$FjrFhq7$$\"#;F)FhqFfp7$FgpFfr7$FjrF^ s7$FfqF-Ffs7$F`qF_o7$FgpFhq7$FjrF-FdqFdqFcrF^q-Fio6&F[pF]pF\\pF\\pF`p- F$647$FfqF07$FjpF07$FjpF37$FcsFen7$FjpF-Fdq7$FfqF3Fct7$$\"#=F)F0Fgs7$$ \"#F)Fhq7$$\"#@F)F-7$FftFD7$F^rF-Fgu7$FitFfr7$FfrF67$F[rF0FduFgu7$F[rFf r7$FbqF\\q7$F_oF07$FftF-7$F^rFU7$F_oF^sFav7$F[rF\\q7$FftFhq7$FhuFenFet 7$FftF\\qFbv7$FhuF\\q7$FeuF\\q7$F[rFU7$F^rF\\q7$F_oF-7$FbqF@7$FftF3Fbv 7$FhuF37$FbqF37$F_oF3FduFavFcuF]w7$FeuFfr7$F[rF-7$F_oF@Fbv-Fio6&F[pF\\ pF\\pF\\pF`p-F$6+Fju7$FftFfrFbrFev7$FcsF-Fip7$FfqF^sFfwF^u-%+AXESLABEL SG6$%$xx4G%$xx2G" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 } }}{PARA 13 "" 1 "" {GLPLOT2D 400 300 300 {PLOTDATA 2 "6(-%'POINTSG6V7$ $\"\"#!\"\"$\"#9F)F&7$F'$\"#8F)7$F'$\"#:F)F&7$$\"\"%F)$\"#F)F=7$F3F>F/F &F=F=FGF:F&F:FDF,F:F,F/7$F8F-FVF,7$$\"\"'F)F>7$F3FSF7F=F&F/F&-%'COLOUR G6&%$RGBG\"\"!Fin$\"*++++\"!\")-%'SYMBOLG6#%'CIRCLEG-F$6F7$F-$\"#SF)7$ F0$\"#YF)7$F-$\"#XF)7$FM$\"#LF)7$F-Fgo7$F*$\"#RF)7$FM$\"#NF)7$FMFdo7$F *$\"#ZF)7$FM$\"#TF)7$F0Fjo7$FBFapFco7$F0$\"#\\F)7$FEFhp7$F-$\"#VF)7$F* $\"#[F)Fcp7$FB$\"#QF)7$FM$\"#PF)7$FEFap7$F>$\"#^F)7$F-$\"#WF)Fco7$FEFd r7$F*Fgo7$FEFdoF\\p7$F-$\"#UF)7$FEFjrFirFcq7$FB$\"#IF)7$F-F[q-Ffn6&Fhn FjnFinFinF]o-F$64FgpF]qF_q7$F>Fhp7$F0Fjr7$F-$\"#OF)7$F*FdrF]q7$$\"#=F) FgqFjs7$F5$\"#]F)F]qF]q7$F>Fjo7$F0FhpF`sFas-F^o6#%&CROSSG-F$6O7$$\"#DF )$\"#gF)7$FSFar7$$\"#@F)$\"#fF)7$F\\t$\"#cF)7$$\"#AF)$\"#eF)7$F_u$\"#m F)7$F5Fjo7$Fit$\"#hF)7$$\"#?F)Far7$FS$\"#`F)7$F_u$\"#bF)7$FcvF_t7$$\"# CF)Far7$$\"#BF)Ffv7$F\\tFiv7$Fgu$\"#nF)7$F`w$\"#pF)7$F`w$\"#dF)7$FcvF` q7$F\\tF`q7$F_uFjw7$F\\tF[uF[tF]x7$F_uFdu7$FSF`v7$Fcv$\"#kF)7$FguFdu7$ F`wF`v7$F]wFduFbwF[t7$F_u$\"#aF)Fgx7$F`wFarF]u7$F`wFau7$FitFjw7$F`w$\" #_F)7$FSF_t7$FcvF_y7$F`wFix7$F\\tFar-Ffn6&FhnFinFinFinF]o-F$6+7$F\\t$ \"#jF)7$F\\tFiu7$F0F_t7$FcvFdw7$F>Fiu7$F0Far7$F*FduFeyFct-%+AXESLABELS G6$%$xx4G%$xx3G" 1 2 0 1 0 2 9 1 4 2 1.000000 45.000000 45.000000 0 }} }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 " " {TEXT -1 23 "Calculating the Hessian" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 98 "Convert the class to a target vector of size \"size\". For example, \+ targvect(2,5) gives [0,1,0,0,0]" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " targvect := proc(n,size) local t, i;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " t := [seq(0,i=1..size)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 " t[n] := 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " t;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% )targvectGR6$%\"nG%%sizeG6$%\"tG%\"iG6\"F,C%>8$7#-%$seqG6$\"\"!/8%;\" \"\"9%>&F/6#9$F8F/F,F,F," }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 41 "Set u p targets and inputs. Include bias." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "for i from 1 to nops(v) do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 " t := map(u->targvect(trunc(u[5]),3) , b):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 " x := map(u->[op(u[1..4]),1] , b):" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 3 "od:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 49 "Compute the outer product of to ve ctors x and y. " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "outer := proc(x, y) local i, j, m;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 36 " m := matr ix(nops(x),nops(y),0);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 " for \+ i from 1 to nops(x) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 " f or j from 1 to nops(y) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 32 " \+ m[i,j] := x[i]*y[j];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 " \+ od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 " od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 " m;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&outerGR6$%\"xG%\"yG6%%\"iG%\"jG %\"mG6\"F-C%>8&-%'matrixG6%-%%nopsG6#9$-F56#9%\"\"!?(8$\"\"\"F>F4%%tru eG?(8%F>F>F8F?>&F06$F=FA*&&F76#F=F>&F:6#FAF>F0F-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "hess := proc(x) local i, h;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " h := matrix(nops(x[1]),nops(x[1]),0);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 " for i from 1 to nops(x) do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 " h := evalm( h &+ outer(x[i],x [i]));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 " od;" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 24 " evalm( 1/nops(x) * h);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%hessGR6#%\" xG6$%\"iG%\"hG6\"F+C%>8%-%'matrixG6%-%%nopsG6#&9$6#\"\"\"F2\"\"!?(8$F8 F8-F36#F6%%trueG>F.-%&evalmG6#-%#&+G6$F.-%&outerG6$&F66#F;FI-FA6#*&F. \"\"\"F " 0 "" {MPLTEXT 1 0 28 "row \+ := proc(x,t) local i, p;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 " p := matrix( nops(t[1]), nops(x[1]),0);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 " for i from 1 to nops(t) do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 " p := evalm( p &+ outer(t[i],x[i]));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 " od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " evalm( 1/nops(t) * p);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "wopt := evalm( row(x,t) &* inverse( hess(x)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%woptG-%'matrixG6#7%7' $\")dIkl!\"*$\"*1IZU#F,$!+tPhFA!#5$!):9NjF,$\")apC7!\")7'$!)EYa@F,$!*j bqS%F,$\"+ZO@&=#F1$!*'G\">$[F,$\"*!p(Hc\"F67'$!)*R)4WF,$\"*hDB)>F,$\") d**RUF1$\"*/FaY&F,$!)^YaoF6" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "wts := [convert(wopt,listlist)];" }}{PARA 12 "" 1 "" {XPPMATH 20 " 6#>%$wtsG7#7%7'$\")dIkl!\"*$\"*1IZU#F*$!+tPhFA!#5$!):9NjF*$\")apC7!\") 7'$!)EYa@F*$!*jbqS%F*$\"+ZO@&=#F/$!*'G\">$[F*$\"*!p(Hc\"F47'$!)*R)4WF* $\"*hDB)>F*$\")d**RUF/$\"*/FaY&F*$!)^YaoF4" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}}}{MARK "15 1 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }