MENACE: Machine Educable Noughts And Crosses Engine

Door kazz1980 op vrijdag 10 augustus 2018 17:37 - Reacties (5)
Categorie: Smart Home, Views: 1.268

Dit is een vreemde post in deze blog. Ik zeg het er zelf maar bij... Maar ik kom er op terug waarom ik dit verhaal toch geplaatst heb in het kader van Mijn Smart Home.

MENACE, ofwel Machine Educable Noughts And Crosses Engine, is een kunstmatig intelligente machine ontwikkeld door Donald Michie in de jaren 60 die in staat was te leren om Boter Kaas en Eieren te spelen. Het is een machine die gebaseerd is op gekleurde kralen en doosjes (oorspronkelijk lege lucifer doosjes). En ondanks deze zeer low-tech (of eigenlijk non-tech!) oplossing is het wel degelijk een zelflerende machine die op een soortgelijke manier werkt als alle huidige generatie zelflerende kunstmatig intelligente machines!


Menace original
De originele MENACE zoals gemaakt door Michie

Het principe is simpel, maar lastig uit te leggen... (je bent gewaarschuwd!).
Er zijn 9 kleuren kralen. Elk staat voor een enkel vakje op het bord waarop Boter Kaas en Eieren gespeeld wordt. MENACE begint altijd het spel. Dat doe je door uit het doosje met een leeg bord erop afgebeeld een willekeurige gekleurde kraal te pakken. Afhankelijk van de kleur die gepakt is plaats je de eerste zet van MENACE op het bord. De betreffende kraal wordt bewaard bij het doosje.

Menace kralen

Nu ben jij als speler aan de beurt. Je plaatst een zet op het bord en gaat op zoek naar het doosje met daarop afgebeeld het huidige bord (dus inclusief de eigen zet!). Zodra gevonden pak je uit dit doosje een willekeurige kraal. Deze kan een kleur hebben van een mogelijke zet of een onmogelijke zet (te weten: een kleur corresponderend met een veld dat reeds gevuld is!). Indien de zet onmogelijk is wordt betreffende kraal uit het doosje verwijderd en wordt een nieuwe gepakt (nb. dit verschilt per inrichting van de machine, de oorspronkelijke machine had per doosje slechts een beperkt aantal kleuren afhankelijk van de mogelijke zetten... Daarmee is echter al een stuk intelligentie in de machine gevoerd zonder dat het leerproces begonnen is!). De volgende zet wordt geplaatst op basis van de gekleurde kraal die gepakt is. Ook deze kraal wordt bij het betreffende doosje bewaard. De speler is weer aan de beurt en het proces gaat door totdat het spel is afgelopen. Er zijn drie mogelijke uitkomsten met bijbehorende acties:
  • MENACE verliest: Alle kralen bij de doosjes worden weg gehaald
  • Gelijkspel: Alle kralen gaan terug in het eigen doosje PLUS er wordt een extra kraal van dezelfde kleur in ieder doosje gedaan
  • MENACE wint: Alle kralen gaan terug in het eigen doosje PLUS er worden drie extra kralen van dezelfde kleur in het doosje gedaan.
Op deze manier worden slechte zetten bestraft en goede zetten beloond. In meer of mindere mate afhankelijk van winst of gelijkspel.

In de loop der tijd zal de machine het spel steeds beter leren spelen totdat deze op enig moment nooit meer zal verliezen! Het spel is ooit in een prachtig meubelstuk gevat, gemaakt door Julien Prévieux. Deze ben ik vele jaren geleden tegengekomen tijdens een expositie in Frankrijk. Mijn zoon (toen nog zoontje) heeft er letterlijk uren mee gespeeld en het is sindsdien in mijn geheugen blijven hangen als hét schoolvoorbeeld van hoe Kunstmatige Intelligentie werkt... Het is belonen van goed gedrag en bestraffen van slecht gedrag. Het versterken van verbindingen die leidden tot winst en het verzwakken van verbindingen die leidden tot verlies.

https://tweakers.net/ext/f/EmtD7qelk7Q9wwgQJUR0XLYk/medium.jpghttps://tweakers.net/ext/f/TLJgQUpjfXEyeHaUQ6f45Q0I/medium.jpghttps://tweakers.net/ext/f/LiXXohazSS0vokOJbY1YYEMa/medium.jpg

Alle hedendaagse kunstmatige intelligentie werkt nog altijd op deze manier. En dat is logisch want onze eigen menselijke intelligentie gebruikt ook exact dit principe! Verbindingen in de hersenen die tot succes leiden worden sterker, verbindingen die tot verlies leiden zwakker.

Waarom wilde ik dit nu delen op deze plek? Om twee redenen.
Allereerst: ik vind zowel het principe achter MENACE als het meubelstuk dat Prévieux ervan maakte prachtig!
Maar belangrijker: deze intelligentie gaat ervoor zorgen dat onze huizen (en auto's, en kantoren, en...) in de toekomst echt slim gaan worden! Mijn huidige Smart Home is nog gebaseerd op 'ouderwetse' techniek: ALS dit gebeurt, DAN moet je dat doen. Maar écht interessant wordt het wanneer ik mijn huis kan vertellen dat het iets gedaan heeft dat ik wél of juist niet wilde en mijn huis op basis daarvan leert. Dus dat de code afhankelijk van mijn commentaar kralen verwijdert of juist éen of meer kralen toevoegt aan de uitgevoerde actie. Wanneer dat eenmaal realiteit is wordt een huis echt slim en zal deze leren van diens inwoners en stééds beter inspelen op de behoeften van die inwoners. Dat is mijn ultieme doel voor mijn Smart Home. Voorlopig een droom, maar iedere grote ontwikkeling begint met een droom... Toch?

https://tweakers.net/ext/f/2mZcHduAhPXsK2sto08SQnKB/medium.jpg
Mijn zoon(tje) bij MENACE 2, het kunstwerk van Julien Prévieux

'Hello home!': Praten met je Smart huis

Door kazz1980 op vrijdag 3 augustus 2018 09:12 - Reacties (29)
Categorieën: Controlicz, Domoticz, Google, IFTTT, Views: 7.620

Wanneer je denkt aan een Smart home denk je aan een huis waar mee te communiceren valt. Bij voorkeur niet via ouderwetse knopjes, maar gewoon via spraak! Nu is dit tamelijk complexe technologie die je niet zomaar even zelf in elkaar kunt klussen... Gelukkig zijn er mogelijkheden om deze technologie (betaalbaar) in huis te halen in de vorm van smart speakers. Alleen, hoe koppel je die aan je thuisautomatisering op een manier dat de intelligentie van het systeem behouden blijft? Een lichtknop vervangen door een spraakopdracht is niet zo ingewikkeld, maar een smart speaker volwaardig onderdeel maken van intelligente domotica? Dat is lastiger... Gelukkig kent Domoticz diverse mogelijkheden om thuis assistenten te koppelen. Ik zal mij hier focussen op de Google Home omdat ik die zelf gebruik - maar ook voor Amazon Alexa (Dot) en Apple Siri (HomePod) zijn er vergelijkbare mogelijkheden met veelal dezelfde software, al heb ik zelf voor Siri nog niets weten te vinden helaas!


IFTTT

Mijn eerste experiment was met IFTTT ("If This Then That": http://www.ifttt.com). Een briljant simpele web interface die precies doet wat de naam zegt... Als er Dit gebeurt, dan doet het systeem Dat. Dus bijvoorbeeld als ik mijn Google Assistant zeg 'Doe het licht aan' dan kan ik inregelen dat via een directe URL een lamp in Domoticz ingeschakeld wordt. Zo'n URL ziet er bijvoorbeeld als volgt uit:
http://<gebruikersnaam>:<wachtwoord>@<IP-adres>:<poort>/json.htm?type=command&param=switchlight&idx=30&switchcmd=Set%20Level&level=20
Briljant in zijn eenvoud! Maar daardoor dus ook tamelijk beperkt... Zo moet je bijvoorbeeld exact de opgegeven spraakopdracht uitspreken. Er zit geen enkele intelligentie in. De Google Home zal vervolgens altijd exact het antwoord geven dat je zelf hebt ingesteld. Dat is even leuk, maar het maakt van een volwaardige spraak assistent ineens een simpel antwoordapparaat welke tevens beperkt Domoticz aan kan sturen. Beperkt aangezien je maar 1 switch tegelijk kunt aansturen met 1 bepaalde instelling. Dus ik zocht verder...

Controlicz

Na het nodige zoekwerk kwam ik uit bij Controlicz (https://www.controlicz.com/). Van oorsprong een hobby project van ene Nick Madge. Een veelbelovende interface die het mogelijk maakt om ieder apparaat in Domoticz te koppelen aan Google Home of Alexa. Het werkt simpel.

Je maakt binnen je Domoticz setup een gebruiker aan, bijvoorbeeld met de naam 'Controlicz'. Vervolgens geef je deze gebruiker de controle ver de apparaten die je wilt bedienen met je Home Assistant. Vervolgens maak je een Controlicz account aan waarin je de gegevens opgeeft van je Domoticz installatie inclusief de gebruikersnaam en wachtwoord van de zojuist aangemaakte gebruiker. En voila! Controlicz is ingesteld voor gebruik....

Controlicz instellen 1 Controlicz instellen 2 Controlicz instellen 3

Controlicz instellen 4 Controlicz instellen 5 Controlicz instellen 6

Nu moet je enkel Google Home/Assistant of Alexa nog vertellen dat deze gebruik moet maken van Controlicz. Hierbij de stappen om dit binnen de Google Assistant in te regelen:
Je voegt een nieuw apparaat toe (bij apparaatinstellingen te vinden onder 'Home-apparaten bedienen'). Druk op het plusje en zoek naar Controlicz. Vervolgens wordt je gevraagd in te loggen in je Controlicz account en Google toegang te geven tot dit account. Daarna zal de Assistant alle apparaten vinden die je binnen Domoticz vrijgegeven hebt voor de Controlicz gebruiker. Je kunt eventueel nog opgeven in welke kamers deze zich bevinden. En dan is alles gereed om te kunnen praten met je huis!!

Google Assistant instellen 1 Google Assistant instellen 2 Google Assistant instellen 3

Je kunt lichten aan en uit zetten, maar ook kleuren instellen, de media bedienen... Gewoon alles dat vanuit Domoticz mogelijk is...

Ikzelf gebruik Controlicz om de Toggle aan en uit te zetten die zorgt dat het licht aan en uit gaat op momenten dat mijn systeem dit niet zelf doet. Bijvoorbeeld als ik overdag het licht aan wil, of juist na zonsondergang eens in het donker wil zitten... Ik heb tevens een Dummy Switch gemaakt die al mijn media uit schakelt via een script. In Domoticz heb ik deze als lamp aangemerkt met als gevolg dat wanneer ik Google vraag alle lichten uit te schakelen deze automatisch ook al mijn media apparatuur uitschakelt. Iets dat ik eigenlijk altijd wil op het moment dat ik alle lichten uit doe. En omdat je nu de volwaardige intelligentie van de Assistant tot je beschikking hebt kun je gewoon normale taal gebruiken in plaats van bepaalde voor gedefinieerde zinnen en kun je ook meerdere apparaten bedienen. Bijvoorbeeld opdrachten als 'Doe alle lichten in de keuken aan' werkt perfect! Of 'Zet de Playstation uit', geen probleem!

Een machtig mooi systeem dat uitermate eenvoudig in te regelen is.
Zijn er dan geen minpunten? Jawel:

Allereerst: het is niet gratis (meer)! Het kost je 2 pond per maand (of 20 pond voor het hele jaar)... Is het wat mij betreft zeker waard! En uiteraard kost het in de lucht houden van deze dienst gewoon geld... Dus ik begrijp de keuze prima dat de ontwikkelaar recent besloten heeft toch een bijdrage te vragen voor Controlicz.
Een tweede minpuntje is dat Controlicz héél af en toe niet reageert waarop de Assistant aangeeft dat Controlicz onbereikbaar is, in plaats van dat je apparaten bediend worden. Eén enkele keer bleek dit bij mij zelfs zo hardnekkig dat ik in de settings van Google Assistant heel Controlicz moest verwijderen en opnieuw instellen. Een klusje van slechts enkele minuten, maar toch vervelend wanneer je eigenlijk gewoon even het licht uit had willen doen om naar bed te gaan... Sindsdien is me dit niet meer gebeurt, dus ik hou het op een eenmalige hick-up in het systeem...

Conclusie
Toen ik begon met een blog over spraak besturing binnen mijn domotica op basi van Domoticz had ik het idee vele systemen te proberen en ervaringen te beschrijven. Maar ik ben blijven hangen bij Controlicz, simpelweg omdat het in mijn ogen precies doet wat het moet doen... En het prijskaartje? Dat neem ik dan maar voor lief... Wil je er geen geld aan uitgeven dan is IFTTT een leuk alternatief om op een simpele manier en met de nodige beperkingen Domoticz aan te sturen middels spraakopdrachten via Google Home of Alexa. En wil je je huis nu aansturen met Siri? Tja... ik heb nog niks gevonden dat dit mogelijk maakt! Maar aangezien ik zelf Siri niet gebruik heb ik ook niet heel hard gezocht moet ik eerlijk bekennen... Dus als iemand hier iets voor weet: laat het weten in de comments!