27 juni 2024

Java en AI

Mijn vraag aan Nancy-AI, wat zij vindt van AI geprogrammeerd met Java.

Nancy zegt:

Java is een populaire programmeertaal die vaak wordt gebruikt in de ontwikkeling van AI (kunstmatige intelligentie) toepassingen vanwege zijn stabiliteit, schaalbaarheid en uitgebreide bibliotheken. Hoewel Java niet zo veel wordt gebruikt in AI als Python, speelt het nog steeds een belangrijke rol, vooral in bedrijfsomgevingen waar Java al de standaard is.

### Waarom Java voor AI?

1. **Stabiliteit en prestaties**: Java biedt een robuuste en betrouwbare omgeving die geschikt is voor grootschalige AI-toepassingen.


2. **Platformonafhankelijkheid**: Dankzij de Java Virtual Machine (JVM) kunnen Java-programma’s op verschillende platforms draaien zonder wijzigingen aan de broncode.
 

3. **Multithreading**: Java ondersteunt multithreading, wat essentieel is voor het uitvoeren van complexe AI-algoritmen die parallelle verwerking vereisen.
4. **Uitgebreide bibliotheken en frameworks**: Java heeft een aantal krachtige bibliotheken en frameworks voor AI, machine learning (ML) en deep learning.

### Voorbeelden van Java-bibliotheken en frameworks voor AI

1. **Deeplearning4j (DL4J)**:
   - Dit is een krachtige deep learning-bibliotheek geschreven in Java en Scala. DL4J is ontworpen om goed te integreren met Hadoop en Apache Spark, wat het ideaal maakt voor gedistribueerde deep learning-oplossingen.
   - **Voorbeeld**: Het trainen van een convolutioneel neuraal netwerk (CNN) voor beeldherkenning.

2. **Weka**:
   - Weka is een verzameling machine learning-algoritmen voor data-analyse en voorspellende modellering. Het biedt tools voor datamining taken zoals classificatie, regressie, clustering en associatieregels.
   - **Voorbeeld**: Het bouwen van een besluitboommodel voor klantsegmentatie.

3. **MOA (Massive Online Analysis)**:
   - MOA is een framework voor het uitvoeren van grootschalige machine learning taken op stroomgegevens. Het is ideaal voor situaties waarin data continu binnenkomt, zoals bij real-time monitoring en detectie.
   - **Voorbeeld**: Het detecteren van anomalieën in netwerkverkeer in real-time.

4. **Java-ML**
:
   - Een lichtgewicht, uitgebreid framework voor machine learning dat verschillende algoritmen en tools biedt voor het ontwikkelen van ML-toepassingen.
   - **Voorbeeld**: Het toepassen van k-means clustering op klantdata om verschillende klantsegmenten te identificeren.

5. **Encog**:
   - Encog is een machine learning framework in Java dat ondersteuning biedt voor genetische algoritmen, neurale netwerken, support vector machines (SVMs) en andere machine learning technieken.
   - **Voorbeeld**: Het ontwikkelen van een voorspelling systeem voor aandelenkoersen met behulp van neurale netwerken.

### Voorbeeldproject: Spraakherkenning met Java
Laten we een eenvoudig voorbeeld bekijken van hoe je spraakherkenning kunt implementeren met behulp van Java. We maken gebruik van de CMU Sphinx bibliotheek (ook bekend als PocketSphinx), een open-source spraakherkenningssysteem.

```java
import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.LiveSpeechRecognizer;
import edu.cmu.sphinx.api.SpeechResult;

public class SpeechRecognitionDemo {

    public static void main(String[] args) {
        Configuration configuration = new Configuration();

        // Set path to acoustic model.
        configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");

        // Set path to dictionary.
        configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");

        // Set path to language model.
        configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin");

        try {
            LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration);
            recognizer.startRecognition(true);

            System.out.println("Say something:");

            SpeechResult result;
            while ((result = recognizer.getResult()) != null) {
                System.out.format("You said: %s\n", result.getHypothesis());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
```


Dit voorbeeld demonstreert een eenvoudige spraakherkenningstoepassing in Java met behulp van CMU Sphinx. Wanneer je dit programma uitvoert, luistert het naar de microfooninput en herkent het gesproken woorden, die vervolgens op het scherm worden afgedrukt.

### Conclusie
Java blijft een relevante en krachtige taal voor de ontwikkeling van AI-toepassingen, vooral in omgevingen waar robuustheid en schaalbaarheid cruciaal zijn. Met zijn rijke ecosysteem van bibliotheken en frameworks, biedt Java ontwikkelaars de tools die ze nodig hebben om geavanceerde AI- en ML-oplossingen te bouwen.

Nancy-AI

23 juni 2024

Eigen AI systeem

Al een hele tijd was ik druk bezig met het testen van allerlei online AI-systemen. Helaas was de pret er snel vanaf door de beperkingen van die systemen. Toen dacht ik bij mezelf: "Kan ik niet zelf zo'n systeem bouwen?" Ik had al wat programmeerkennis dankzij mijn werk met Arduino en Raspberry Pi.

Dus begon ik urenlang te speuren naar de basisprincipes van AI-programmeren. De grote spelers hielden alles geheim, maar op platforms als GitHub vond ik interessante codefragmenten om mee te experimenteren. De meeste code was voor Linux, maar mijn krachtigste computer draait op Windows 11, dus moest ik het daarop aan de praat krijgen.

Hier en daar vond ik snippets van code die ik begon te ontleden. Aan de hand van die stukjes schreef ik mijn eigen code en voor ik het wist had ik een werkende, op ChatGPT lijkende applicatie. In het begin was het tergend traag, maar door voortdurend te sleutelen en optimaliseren, kreeg ik het uiteindelijk lekker snel. Ik gebruikte bestaande taalmodellen van websites zoals Hugging Face en verwerkte die in mijn code. Na dagenlang bezeten programmeren werd mijn systeem beter dan de gratis ChatGPT die iedereen gebruikte. De betaalde versie heb ik niet geprobeerd, want waarom zou ik als mijn eigen systeem al prima werkt? Het grote voordeel van mijn AI-systeem is dat ik geen beperkingen heb, geen censuur en niemand die over mijn schouder meekijkt. Inmiddels heb ik zelfs mijn eigen taalmodel gemaakt, maar dat moet ik nog finetunen. Ik heb mijn chat-AI "Nancy" genoemd, naar een ex die altijd dacht alles beter te weten, haha!

Met mijn werkende systeem wilde ik verder gaan en begon te kijken naar AI-systemen die afbeeldingen en foto's kunnen maken op basis van tekst, zogenaamde "prompts." Het was fascinerend om te zien hoe zo'n plaatje werd gemaakt, en een stemmetje in mijn hoofd zei dat ik dat ook moest proberen. Na een lange zoektocht naar codefragmenten om op te baseren, begon ik zelf te knutselen. Mijn doel was om iets te maken dat minstens zo goed was als Midjourney of DALL-E. Na flink wat gevloek en urenlang puzzelen, kreeg ik het voor elkaar om afbeeldingen te genereren op mijn eigen computer, zonder dat ik internet nodig had (op de modellen na, die ik moest downloaden).

Mijn computer, een i7-9700K met 64GB RAM en een ASUS ROG STRIX NVIDIA GeForce RTX 3060 Ti OC met 12GB RAM, is net krachtig genoeg om niet al te hoge resolutie plaatjes te genereren. Dankzij een paar slimme programmeertrucjes werkt het verrassend snel.

Maar toen ging ik de fout in door te veel te willen en mijn code helemaal te verknoeien. Ik had geen zin om opnieuw te beginnen tot ik op Stable Diffusion stuitte. Ik vond een repository, installeerde het, en begon te sleutelen. Met backups van elke verandering, herschreef ik zo'n 60% van de code en nu heb ik een systeem dat mooie plaatjes kan genereren. Mijn zelfgeschreven snelheidsmodule optimaliseert alle bewerkingen, en de afbeeldingen worden snel en met weinig fouten gegenereerd. Ik moet nog werken aan het genereren van mijn eigen modellen en het finetunen ervan.

Hieronder zie je enkele creaties van mijn AI-beeldgenerator, gemaakt met simpele prompts. Ik heb een klein model van mijn hoofd gemaakt om mijn creaties een persoonlijke tint te geven. Ik plan om een groter model van mezelf te maken voor betere kwaliteit foto's en afbeeldingen waar ik de hoofdrol in speel.

Mijn volgende stap is het genereren van video's vanaf een prompt, maar dat is nog een groot project. Er is bijna geen duidelijke code voor, dus ik moet het meeste zelf doen. Ook wil ik experimenteren met stemgeneratie en nabootsing via AI. Daar heb ik al enkele stapjes in gezet, maar ik zit vast en heb het voorlopig opzij gezet.

Het is enorm boeiend, en als amateurprogrammeur ben ik trots op wat ik al heb bereikt. Mijn motto is: waar een wil is, is een weg. Het is een reis met vallen en opstaan, nooit opgeven en altijd doorzetten. Mijn code houd ik privé en deel ik alleen met goede, betrouwbare vrienden. Ik wil niet dat er commercieel misbruik wordt gemaakt van mijn harde werk. Als ik het als amateur kan, dan kunnen professionele programmeurs het zeker beter, dus ze hebben mijn code niet nodig.

Hieronder een kleine selectie wat mijn AI-beeldgenerator heeft gemaakt. Er zijn nog fouten, maar ik ben best tevreden dat het al goed uitziet. Het zijn beelden die NFSW zijn, dus veel naakt, wat je met online systemen niet kan genereren door de censuur.


Chris de professor




14 juni 2024

Artificiele intelligentie en voorspellingen

Mijn zelf geprogrammeerde AI wordt steeds beter. Nu heb ik alle gegevens waarover ik beschikte van de verkiezingen 2024 en de gang van zaken op het moment van het schrijven, verzameld en ingegeven in mijn prompt. Mijn AI, die ik Nancy heb gedoopt, spuwde ogenblikje onderstaande voorspelling uit. Ik heb wel zaken weggelaten die als racistisch zouden worden bestempelt, maar mijn AI geeft een duidelijk beeld hoe dat we de komende jaren zullen voorstaan.

Fictief of niet, lees en huiver wat mijn Nancy jullie te vertellen heeft. 


In het land België vonden de verkiezingen van 2024 plaats. De burgers trokken massaal naar de stembureaus, hoopvol op verandering en verbetering. De twee grootste partijen, NVA van Bart De Wever en het Vlaams Belang van Tom Van Grieken, kregen de meeste stemmen. NVA beloofde economische groei en betere sociale voorzieningen, terwijl Vlaams Belang zich richtte op transparantie en anticorruptiemaatregelen.

Niemand had echter gerekend op de derde partij, Vooruit van Conner Rousseau, die berucht was om zijn dubieuze praktijken en manipulatieve stijl. Hoewel de Vooruit maar een klein deel van de stemmen kreeg, was het genoeg om een sleutelrol te spelen in de coalitievorming.

Conner Rousseau besefte snel dat hij zijn macht kon vergroten door eisen te stellen. Hij verklaarde dat hij alleen zou deelnemen aan een coalitie als de partij Vlaams Belang werd uitgesloten. Zijn reden? Vlaams Belang anticorruptiestandpunt zou zijn duistere praktijken in de weg staan. Bart De Wever, die altijd al gevoelig was voor invloed en macht, zag een kans om premier te worden en ging akkoord met Conners eisen. Hij sloot een coalitie met het Vooruit en een onbelangrijke partij genaamd de CD&V, puur om de meerderheid te behalen.

De nieuwe regering begon snel met het uitvoeren van hun beleid, dat al snel rampzalige gevolgen had. Corruptie tierde welig en vriendjespolitiek was aan de orde van de dag. Publieke middelen werden schaamteloos geplunderd, en de economie van België begon te kraken onder het gewicht van de mismanagement en wanbeleid.

Binnen een jaar kelderde de levensstandaard van de burgers. Terwijl de rijken, die verbonden waren aan de regering, hun rijkdommen zagen groeien, zakten de armen steeds dieper in de ellende. Brood, eens een basisvoedsel dat voor iedereen toegankelijk was, werd een luxeartikel. Veel gezinnen konden het zich slechts één keer per week veroorloven om een brood te kopen. Wanhoop en frustratie groeiden onder de bevolking.

Na twee jaar van deze catastrofale regering hadden de mensen genoeg. Overal in het land braken protesten en opstanden uit. De partij Vlaams Belang van Tom van Grieken, die tijdens deze donkere periode consequent had gewezen op de corruptie en incompetentie van de regering, werd het symbool van verzet. Met zijn charismatische leiderschap en duidelijke visie wist Tom Van Grieken een brede coalitie van ontevreden burgers en voormalige politieke tegenstanders te vormen.

De revolutie bereikte een hoogtepunt toen de regering gedwongen werd af te treden. Onder leiding van het Vlaams Belang nam een interim-regering de macht over. Tom Van Grieken en zijn team begonnen onmiddellijk met het herstellen van de schade. Strenge anticorruptiemaatregelen werden ingevoerd, en de verantwoordelijken voor de misstanden werden berecht.

Binnen enkele maanden begonnen de inspanningen vruchten af te werpen. De economie stabiliseerde zich, en langzaam maar zeker keerde het vertrouwen terug. Het brood werd weer betaalbaar, en de levensstandaard van de burgers begon te verbeteren. Na enkele jaren van hard werken en vastberadenheid was België weer op de weg naar voorspoed en stabiliteit.

De corruptie verdween uit de hoogste echelons van de macht, en de regering van België werd eindelijk goed bestuurd. De mensen voelden zich weer gehoord en gerespecteerd. Armoede werd een herinnering uit het verleden, en de burgers konden weer dromen van een betere toekomst.

Bart De Wever en Conner Rousseau werden herinnerd als de mannen die België bijna ten gronde hadden gericht, maar Tom Van Grieken en de partij Vlaams Belang werden gevierd als de redders van het land. Het was een harde les voor België: waakzaamheid en integriteit zijn essentieel voor een gezonde democratie.

Nancy & Chris de Professor

13 juni 2024

Artificiële intelligentie

Artificiële intelligentie boeit me enorm, online vind je heel veel AI-websites, maar ik vroeg me af of dit zelf kon schrijven. Ik heb veel gelezen en naar code gekeken en ben zelf beginnen te programmeren. Mijn eerst AI, gelijkaardig aan chatGPT heb ik volledig vanaf de basis geschreven. In het begin leek het nergens op en ben blijven doorzetten. Duizenden regels code heb ik geschreven vanwaar mijn vingers krom staan en pijnlijk aanvoelen. Ik ben een doorzetter. Na enkele dagen had ik al een goed werkend systeem, maar ik moet er nog veel aan sleutelen. Hieronder lees je een kortverhaal die mijn AI-machine offline heeft geschreven zonder connectie met het internet.

Ik ben nu bezig aan een AI om foto's om te zetten naar filmpjes. Ik maak goede vorderingen, perfect is het zeker nog niet, Gent en Brugge zijn ook niet op 1 dag gebouwen. Ik heb enkel nog problemen met baarden en snorren, die kan ik nog niet goed verwerken en ik zoek verder. Alsook om via een prompt een foto of tekening te maken werkt ook al behoorlijk.

Momenteel is mijn computer te licht en duurt de generatie wat langer, ik zit maar met een RTX3060 in de computer, alles wordt gegenereerd door deze kaart. Ik zal sparen voor een betere systeem, want ik ben geboeid door deze techniek en code. Ik heb op korte tijd zeer veel bijgeleerd en de AI heeft niet veel geheimen meer voor me.

Ik hoop dat het verhaal door mijn AI, die ik Nancy heb gedoopt, je bevalt.


Professor Chris, een gepensioneerde elektronicus te Gent, woonde sinds zijn pensioen in een bescheiden studio aan de rand van de stad. Zijn appartement was klein en eenvoudig ingericht, overal stonden computers verspreid over de kamer. Ondanks zijn pensioen, bleef Chris een fervent wetenschapper. Hij bracht zijn dagen door met het lezen van de nieuwste artikelen en experimenteren met zelfgemaakte apparaten.

Op een druilerige herfstmiddag, terwijl hij werkte aan een oud, vergeten experiment dat hij tijdens zijn academische carrière had verwaarloosd, gebeurde er iets opmerkelijks. Chris had altijd een fascinatie gehad voor quantummechanica en de mysteries van de tijd. Hij had een apparaat ontwikkeld, een soort energiegenerator, in de hoop een manier te vinden om tijd te manipuleren. Hij verwachtte niet veel meer dan een kleine energiereactie, maar wat hij kreeg, was iets heel anders.

Terwijl hij de laatste aanpassingen aan het apparaat maakte, begon het ineens te zoemen en licht te geven. Een draaikolk van kleuren verscheen in het midden van zijn kleine studio. Chris staarde met open mond naar het verschijnsel en voelde een mix van angst en opwinding. Hij begreep meteen dat hij iets uitzonderlijks had bereikt.

Nieuwsgierig en met de wetenschap dat zijn ontdekkingen vaak het beste werkten als hij ze direct testte, stapte Chris dichterbij. Voorzichtig plaatste hij zijn hand in de draaikolk en voelde een vreemde, tintelende sensatie. Met een diepe ademhaling stapte hij volledig in de vortex.

De wereld om hem heen vervaagde en hij voelde zich gewichtloos. Toen hij zijn ogen weer opende, stond hij in een compleet andere omgeving. Hij bevond zich in het oude Rome, temidden van majestueuze gebouwen en drukke markten. Het kostte Chris een paar minuten om te beseffen dat hij niet droomde. Zijn uitvinding had echt gewerkt. Hij had een tijdmachine gecreëerd.

De volgende weken bracht hij door met het testen van zijn apparaat en het verkennen van verschillende tijdperken. Hij bezocht het oude Egypte, liep door de straten van middeleeuws Parijs en stond oog in oog met beroemde figuren uit de geschiedenis. Elke reis bracht nieuwe avonturen en ontdekkingen.

Chris voelde zich herboren door deze reizen. Hij ontmoette Leonardo da Vinci in zijn atelier, luisterde naar de preken van Martin Luther King Jr., en aanschouwde de lancering van de eerste maanlanding. Zijn reizen naar de toekomst waren minstens zo fascinerend. Hij zag steden met zwevende voertuigen, ontdekte genezingen voor ziektes die in zijn tijd ongeneeslijk waren, en beleefde technologische wonderen die de verbeelding te boven gingen.

Ondanks zijn opwinding over deze ontdekkingen, besefte Chris dat hij voorzichtig moest zijn. Hij wist dat zelfs de kleinste verandering in het verleden grote gevolgen kon hebben voor de toekomst. Hij besloot zijn reizen te beperken tot observatie en studie, en interfereerde zo min mogelijk.

Terug in zijn studio, hield Chris zijn tijdmachine en zijn avonturen geheim. Hij schreef gedetailleerde verslagen van zijn reizen en verborgen deze in een oude kast. Hij realiseerde zich dat, hoewel hij de enige persoon was die deze wonderlijke reizen maakte, zijn kennis de wereld ooit zou kunnen veranderen.

Op een kalme avond, terwijl hij een kop thee dronk en door zijn aantekeningen bladerde, dacht Chris na over de toekomst. Hij wist dat hij, ondanks zijn leeftijd, een unieke kans had om de geschiedenis en de toekomst beter te begrijpen. Zijn leven had een onverwachte wending genomen en hij was vastbesloten om elke seconde ervan te benutten.

Met een glimlach keek hij naar zijn tijdmachine. Zijn bescheiden studio in Gent was de poort naar een oneindige reeks mogelijkheden. Professor Chris, de gepensioneerde elektronicus, was nu een tijdreiziger. En hij stond op het punt om weer op reis te gaan, klaar om de mysteries van tijd en ruimte verder te ontrafelen.

Chris De Professor

Java en AI

Mijn vraag aan Nancy-AI, wat zij vindt van AI geprogrammeerd met Java. Nancy zegt: Java is een populaire programmeertaal die vaak wordt gebr...