package Ġcom . ser ge ys av . pages . projects Ċ Ċ import Ġcom . ser ge ys av . website generator . Environment Ċ import Ġcom . ser ge ys av . website generator . Static Resource Ċ import Ġkotlinx . html . MAIN Ċ import Ġkotlinx . html . a Ċ import Ġkotlinx . html . br Ċ import Ġkotlinx . html . div Ċ import Ġkotlinx . html . h 2 Ċ import Ġkotlinx . html . img Ċ import Ġkotlinx . html . p Ċ import Ġjava . time . LocalDateTime Ċ Ċ @ Suppress (" unused ") Ċ object ĠProject Che ss NN Ġ Ġ: ĠProjects Resource Page ( ĊĠĠĠ Ġ" chess nn ", ĊĠĠĠ ĠLocalDateTime . parse (" 2 0 1 7 - 0 5 - 3 0 T 0 0 : 0 0 : 0 0 "), ĊĠĠĠ Ġ" Che ss ĠNeural ĠNetwork ", ĊĠĠĠ Ġ" An ĠArt ificial ĠNeural ĠNetwork Ġwritten Ġfrom Ġscratch Ġand Ġta ught Ġto Ġplay Ġche ss ", ĊĠĠĠ Ġ" projects / Che ss NN _ icon . png ", ĊĠĠĠ Ġsource Code Ġ= Ġ" https :// github . com / Ser ge y Save / Neural Network " Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠMAIN . contents ( environment : ĠEnvironment ) Ġ= Ġdiv (" contents Ġcolumn ") Ġ{ ĊĠĠĠĠĠĠĠ Ġh 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" September Ġ 2 0 1 6 Ġ- ĠJune Ġ 2 0 1 7 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġp (" indent ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ """ Ċ Over Ġthe Ġcourse Ġof Ġmy Ġsen ior Ġyear Ġof Ġhigh Ġschool , ĠI Ġperformed Ġan ĠIndependent ĠStudy Ġon ĠArt ificial Ċ Int elligence Ġusing ĠNeural ĠNetworks Ġwhere ĠI Ġwrote Ġan Ġdee ply - connected Ġfeed - forward ĠArt ificial Ċ Neural ĠNetwork Ġfrom Ġscratch Ġin ĠJava Ġand ĠI Ġta ught Ġit Ġto Ġplay Ġche ss . ĠThis Ġwas Ġa Ġt rem end ous Ċ under t aking . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdiv (" right Ġfloat Ġtooltip Container Ġimage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ= Ġenvironment . getResource Path ( Static Resource (" projects / Che ss NN _ icon . png ", Ġ"$ path / board . png ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv (" tooltip Ġfull ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ """ Ċ A Ġvisual Ġrepresentation Ġof Ġthe Ġneural Ġnetwork 's Ġoutput Ġon Ġan Ċ empty Ġche ss Ġboard . ĠIn Ġthis Ġstage Ġof Ġits Ġtraining Ġthe ĠAI Ġthink s Ġthat Ġthe Ġpur ple Ġtile Ċ should Ġbe Ġmoved Ġto Ġthe Ġlight Ġblue Ġtile . ĠWith Ġenough Ġtraining Ġthe ĠAI Ġwill Ġstart Ġto Ċ make Ġlegal Ġmoves . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġp (" indent ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ """ Ċ I Ġstarted Ġoff Ġthis Ġproject Ġby Ġresearch ing Ġhow ĠArt ificial ĠNeural ĠNetworks Ġworked Ġand Ġwere Ċ written . ĠI Ġlearned Ġof Ġthe Ġunderlying Ġmath Ġand Ġcalculations Ġthat Ġoccurred Ġin Ġorder Ġto Ġmake Ġa Ġ Ċ computer Ġable Ġto Ġlearn . ĠI Ġread Ġa cademic Ġresearch Ġpapers , Ġprogrammer Ġblog Ġposts , Ġand Ġ Ċ wikipedia Ġarticles Ġall Ġdetail ing Ġthe Ġunderlying Ġprocesses Ġallowing Ġcomputers Ġto Ġsimulate Ġ Ċ int elligence . ĠAfter Ġover Ġa Ġmonth Ġof Ġresearch , ĠI Ġbel ieved Ġthat ĠI Ġknew Ġenough Ġand Ġthat ĠI Ġhad Ġ Ċ fig ured Ġout Ġenough Ġof Ġthe Ġmath Ġin Ġorder Ġto Ġwrite Ġmy Ġown ĠNeural ĠNetwork . ĠThis Ġsimple Ġnetwork Ġ Ċ was Ġjust Ġa Ġstarting Ġpoint Ġfor Ġme Ġto Ġlearn Ġhow Ġto Ġgo Ġabout Ġwriting Ġa ĠNeural ĠNetwork Ġand Ġfor Ġ Ċ me Ġto Ġplay Ġaround Ġwith Ġsome Ġof Ġthe Ġparameters Ġthat ĠI Ġwould Ġlater Ġhave Ġto Ġspend Ġa Ġlot Ġof Ġ Ċ time Ġfine - tuning . ĠI Ġta ught Ġthis Ġfirst Ġsimple Ġnetwork Ġthe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhref Ġ= Ġ" https :// en . wikipedia . org / wiki / Exclusive _ or " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+" XOR Ġfunction " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr Ġ{ Ġ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr Ġ{ Ġ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ """ Ċ After Ġit Ġwas Ġable Ġto Ġlearn Ġthis Ġfunction Ġwith Ġa Ġfairly Ġhigh Ġsuccess Ġrate Ġ( 9 0 % Ġof Ġrandom Ġstarts ), Ċ I Ġdecided Ġthat Ġit Ġwas Ġtime Ġto Ġswitch Ġto Ġa Ġmore Ġcomplex Ġtask : ĠChe ss . ĠWhile ĠI Ġrecognized Ġthat Ġthis Ċ would Ġbe Ġan Ġimm ense Ġchallenge Ġand ĠI Ġeven Ġdoub ted Ġmy Ġown Ġability Ġto Ġbe Ġable Ġto Ġwrite Ġa Ġneural Ġnetwork Ċ that Ġwould Ġbe Ġable Ġto Ġdo Ġanything Ġfrom Ġmy Ġfairly Ġsurface - level Ġunderstanding Ġof Ġall Ġof Ġthe Ġconcepts Ċ behind Ġall Ġthat ĠI Ġwas Ġdoing , ĠI Ġwas Ġdetermined Ġto Ġtake Ġmy Ġfailures Ġand Ġconvert Ġthem Ġto Ġsuc cesses , Ċ to Ġincrease Ġmy Ġunderstanding Ġand Ġlearn Ġhow Ġto Ġwrite Ġa Ġneural Ġnetwork Ġthat ĠI Ġnever Ġthought ĠI Ġcould . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdiv (" right Ġfloat Ġtooltip Container Ġimage ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ= Ġenvironment . getResource Path ( Static Resource (" projects / Che ss NN _ output . png ", Ġ"$ path / output . png ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiv (" tooltip Ġfull ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ """ Ċ A Ġgraph Ġof Ġthe Ġneural Ġnetwork 's Ġerror Ġas Ġit Ġrel ates Ġto Ġa Ġgiven Ċ input Ġinto Ġthe Ġnetwork . ĠA Ġsingle Ġunit Ġalong Ġthe Ġx Ġaxis Ġrepresents Ġa Ġsingle Ġiteration Ċ of Ġthe Ġback propagation Ġalgorithm . ĠThe Ġy Ġaxis Ġis Ġthe Ġsquared Ġerror Ġfor Ġthe Ġiteration Ċ of Ġthe Ġalgorithm . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġp (" indent ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ """ Ċ So Ġnext , ĠI Ġdownloaded Ġ 1 8 , 3 1 3 Ġgames Ġof Ġche ss Ġfrom Ġ 1 2 Ġdifferent Ġche ss Ġm asters Ġin Ġorder Ġto Ġuse Ġto Ċ train Ġmy Ġnetwork . ĠAfter Ġwriting Ġthe Ġcode Ġthat ĠI 'd Ġneed Ġto Ġbe Ġable Ġto Ġread Ġthese Ġche ss Ġtr as cript s Ġand Ċ convert Ġthem Ġinto Ġa Ġform Ġthat Ġwould Ġbe Ġusable Ġfor Ġmy Ġneural Ġnetwork , ĠI Ġre work ed Ġmy Ġcode Ġin Ġorder Ċ to Ġbe Ġable Ġto Ġhandle Ġand Ġbetter Ġprocess Ġthis Ġt rem end ous Ġvolume Ġof Ġdata . ĠOver Ġthe Ġcourse Ġof Ġthe Ġrest Ċ of Ġthe Ġschool Ġyear , ĠI Ġworked Ġon Ġimproving Ġmy Ġalgorithm Ġand Ġchanging Ġthe Ġsize Ġof Ġthe Ġneural Ġnetwork . Ċ I Ġspent Ġit Ġfixing Ġbugs Ġthat ĠI Ġke pts Ġdiscover ing Ġand Ġoptim izing Ġthe Ġmethods Ġthat ĠI Ġwas Ġusing Ġto Ċ te ach Ġthe ĠNeural ĠNetwork Ġche ss . ĠThe Ġend Ġof Ġthe Ġyear Ġcame Ġbefore Ġit Ġwas Ġable Ġto Ġfully Ġlearn Ġto Ġplay Ċ chess . ĠWhile Ġit Ġnever Ġtruly Ġlearned Ġto Ġplay Ġche ss Ġit Ġdid Ġmanage Ġto Ġmem or ize Ġthe Ġfirst Ġ 7 Ġmoves Ġof Ġa Ċ co uple Ġof Ġdifferent Ġopen ings . ĠIt Ġwas Ġalso Ġable Ġto Ġchange Ġwhich Ġopening Ġit Ġwould Ġuse Ġdepending Ġon Ġwhat Ċ moves Ġits Ġopponent Ġmade . ĠThen ĠI Ġpresented Ġmy Ġresults Ġto Ġa Ġrelated Ġclass , Ġin Ġmy Ġcase Ġthe ĠAP ĠComputer Ċ Science ĠA Ġclass , Ġand ĠI Ġcalled Ġit Ġa Ġyear . ĠI Ġdo Ġstill Ġplan Ġon Ġreturning Ġto Ġthis Ġproject . ĠProbably Ċ using Ġa Ġlibrary , Ġsuch Ġas ĠTensorFlow , Ġjust Ġto Ġsee Ġif Ġit Ġwas Ġmy Ġdata Ġor Ġmy Ġalgorithm Ġthat Ġwere Ġat Ċ fault Ġfor Ġthis Ġresult . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ