SlideShare a Scribd company logo
1 of 24
Download to read offline
AI VOOR RIOOLWATERZUIVERING.
Machine learning in de industriële praktijk
Robert van Straalen
• Robert van Straalen
• Lead data scientist @ Data Science Lab
• Data scientist @ ING
• Database marketing, BI, Software development
• Studie Kunstmatige Intelligentie @ Universiteit Utrecht
EVEN VOORSTELLEN.
• Rioolwaterzuivering
• Drinkwaterzuivering
• Dijkenbeheer
• Natuurbeheer
• ...
RWZI AMSTERDAM WEST.
• Rioolwater stroomt binnen
• Primaire behandeling...
• Microbacteriën worden toegevoegd
• Slib wordt nu actiefslib
• Bacteriën zetten NH4 en O2 om naar NO3
en H2O
• Bacteria hebben zuurstof nodig, dus we
pompen er lucht doorheen
• Tertiaire behandeling...
• Schoon water!
HOE WERKT EEN RWZI?
BELUCHTINGSPROCES.
Druk 1
Flow 1
Flow 3
Kleppen 3.1, 3.2, 3.3
Blowers 1 t/m 6
Kleppen 7.1, 7.2, 7.3
Flow 7
Druk 2
• Deel 1: Basis
• Bepaal continu (i.e. elke minuut):
• Hoeveel lucht er naar elke AT stroomt
• Hoeveel energie er verbruikt wordt door elke AT
• Deel 2: Optimalisatie
• Bepaal een control strategy die continu (i.e. elke minuut):
• Het beluchtingsproces aanstuurt
• Blowerstanden
• Klepstanden
• Zodanig dat
• de juiste hoeveelheid lucht door elke AT wordt gepompt
• met minimaal energieverbruik
PROBLEEMDEFINITIE.
• Doel: bepaal airflow en energieverbruik per AT
• Aanpak:
1. Bepaal airflow (luchtdebiet) per AT
1. Gebruik data van flowmeter voor AT 5 (betrouwbaar)
2. Bouw model op deze data
3. Gebruik model om flow voor overige AT’s te voorspellen
2. Bepaal totale energieverbruik 6 blowers
3. Energieverbruik AT = (airflow AT / airflow totaal) * energieverbruik totaal
AANPAK.
• Azure Data Science Virtual Machine met GPU
• Anaconda (Python)
• PyCharm
• Tensorflow + Tensorboard
• OpenAI Gym
• Flask
TOOLING.
• Input scaling in lambda layers
• Luchtdruk puur afhankelijk van blowers
en kleppen
• ➤ geen bias
• ➤ non-negative constraints
• Output layers:
• Linear activation
• Gebruik bias initializer met
gemiddelde output-waarde
• Tune loss_weights voor juiste balans
• Adam optimizer; learning rate 0.0003
NEURAAL NETWERK.
MODEL PERFORMANCE.
• Luchtdruk:
Mean absolute error 0.37
(op een range van ± 0-90)
• Airflow:
Mean absolute error 177
(op een range van ± 0-11.000)
• Energieverbruik:
Mean absolute error 3.1
(op een range van 0-400)
• predict.py
• Python module om modelvoorspellingen op te halen
• api.py
• Flask script voor API-definitie
• Gunicorn
• web server om API te ontsluiten
• Dockerfile:
• Python + packages
• Starten Gunicorn
DEPLOYMENT.
• In het eerste deelproject hebben we airflow en energieverbruik
voorspeld adhv blower- en klepstanden
• In dit vervolgtraject willen we blower- en klepstanden zodanig
controleren/aansturen dat
• de benodigde airflow gerealiseerd wordt
• met minimaal energieverbruik
Pffff en dat was nog maar deel 1!
1. Observeer benodigde airflow
• Afleiden uit waterdebiet + zuurstof-/ammoniummetingen
2. Bepaal nieuwe standen blowers en kleppen
• Dit doet het controlemodel
3. Observeer resulterende airflow en energieverbruik
• Dit doet het voorspelmodel uit het 1e deelproject
4. Beoordeel resultaat
• Bestraf afwijkingen van benodigde airflow
• Bestraf energieverbruik
5. Pas het model aan n.a.v. het resultaat
6. Terug naar 1.
AANPAK.
• Observeer state s0
• Kies beste actie a0 gegeven s0
• Voer actie a0 uit in de environment
• Observeer reward r0 en state s1
• Evalueer keuze van actie a0 in state s0,
gegeven reward r0
• Herhaal
REINFORCEMENT LEARNING.
• Deep Deterministic Policy Gradient
• Lijkt op Deep Q-learning, maar dan voor
continuous action spaces
• Model opgesplitst in 2 delen:
• Actor bestuurt beluchting
• Critic beoordeelt het resultaat
• Beide worden iteratief getraind o.b.v.
geobserveerde data
• Eerdere model is simulator van de environment
DDPG ALGORITME.
• Environment in OpenAI’s gym format
• Definiëer mogelijke acties
• Definiëer hoe de states eruit zien
• Definiëer een functie die, gegeven een state en een actie, een reward terug geeft
• Gebruikt het eerder gebouwde model
• DDPG d.m.v. Keras-RL library
• Relatief overzichtelijk en begrijpelijk; DDPG geïmplementeerd
• States: Luchtdruk, Airflow, Blowers, Kleppen
• Actions: Blowers, Kleppen
• Reward: benodigde vs. behaalde airflow + energieverbruik
IMPLEMENTATIE.
• Actor: State ➤ Action
• Input = State (Luchtdruk, Airflow, Blowers, Kleppen)
• Scaling
• 2 dense layers met ReLU activatie
• Output met tanh activatie ➤ Blowers + Kleppen
• Critic: State + Action ➤ Reward
• Input = State + Action
• Scaling
• 2 dense layers met ReLU activatie
• Output met linear activatie ➤ Reward
N.B. Actor netwerk is pre-trained op huidige control strategy
ACTOR & CRITIC.
MONITORING TOOL.
• Wie heeft de domeinkennis?
• Welke data is betrouwbaar?
• Data augmentatie voor betere generalisatie
• Andrej Karpathy’s Recipe for training neural networks:
• Tensorboard: write_images laat logs exploderen, maar helpt wel om gewichten te valideren
• Neuraal netwerk tunen obv loss curve is een ding, maar reinforcement learning agent tunen op
reward curve...
• Reinforcement learning staat nog in de kinderschoenen
• Pre-training helpt
LEARNINGS.
• Impediment:
• blowers & kleppen direct besturen
voorlopig niet mogelijk
• Scope:
• niet meer alleen kijken naar
energieverbruik
• maar ook (of eigenlijk met name) naar
uitstoot
STATUS QUO.
• Een nieuw environment model dat
• gegeven een ‘state’ (metingen)
• gegeven voorgestelde actie / control settings
• de volgende state voorspelt (metingen)
• Een influent forecast model dat
• gegeven een datum en tijd
• het verwachte influent voorspelt
• Een control strategy model dat
• gegeven een ‘state’
• gegeven een influent forecast
• de beste actie / control settings voorspelt
VERVOLGPLANNEN.
+ ➤
➤
➤
DANK VOOR JULLIE AANDACHT!

More Related Content

More from webwinkelvakdag

ISM eCompany: Sander Berlinski
ISM eCompany: Sander BerlinskiISM eCompany: Sander Berlinski
ISM eCompany: Sander Berlinskiwebwinkelvakdag
 
Thuiswinkel.org & Omoda: Alicja Van Ewijk
Thuiswinkel.org & Omoda: Alicja Van EwijkThuiswinkel.org & Omoda: Alicja Van Ewijk
Thuiswinkel.org & Omoda: Alicja Van Ewijkwebwinkelvakdag
 
ANWB: Carolina van den Hoven & Margot van Leeuwen
ANWB: Carolina van den Hoven & Margot van LeeuwenANWB: Carolina van den Hoven & Margot van Leeuwen
ANWB: Carolina van den Hoven & Margot van Leeuwenwebwinkelvakdag
 
HEMA: Ilse Lankhorst, Bas Karsemeijer
HEMA: Ilse Lankhorst, Bas KarsemeijerHEMA: Ilse Lankhorst, Bas Karsemeijer
HEMA: Ilse Lankhorst, Bas Karsemeijerwebwinkelvakdag
 
ISM eCompany: Kees Beckeringh
ISM eCompany: Kees BeckeringhISM eCompany: Kees Beckeringh
ISM eCompany: Kees Beckeringhwebwinkelvakdag
 
Martijn Kozijn: Jessica van Haaster & Martijn Leclaire
Martijn Kozijn: Jessica van Haaster & Martijn LeclaireMartijn Kozijn: Jessica van Haaster & Martijn Leclaire
Martijn Kozijn: Jessica van Haaster & Martijn Leclairewebwinkelvakdag
 
Cemex trescon: Marloe de Ruiter
Cemex trescon: Marloe de RuiterCemex trescon: Marloe de Ruiter
Cemex trescon: Marloe de Ruiterwebwinkelvakdag
 
LINDA.Foundation: Jocelyn Nassenstein-Brouwer
LINDA.Foundation: Jocelyn Nassenstein-BrouwerLINDA.Foundation: Jocelyn Nassenstein-Brouwer
LINDA.Foundation: Jocelyn Nassenstein-Brouwerwebwinkelvakdag
 
Aanhangwagendirect & PI Marketing: Merin Eggink & Mascha Soors
Aanhangwagendirect & PI Marketing: Merin Eggink & Mascha SoorsAanhangwagendirect & PI Marketing: Merin Eggink & Mascha Soors
Aanhangwagendirect & PI Marketing: Merin Eggink & Mascha Soorswebwinkelvakdag
 
ISM eCompany: Ralph van Woensel
ISM eCompany: Ralph van WoenselISM eCompany: Ralph van Woensel
ISM eCompany: Ralph van Woenselwebwinkelvakdag
 
ISM eCompany: Sander Lems
ISM eCompany: Sander LemsISM eCompany: Sander Lems
ISM eCompany: Sander Lemswebwinkelvakdag
 

More from webwinkelvakdag (20)

ISM eCompany: Sander Berlinski
ISM eCompany: Sander BerlinskiISM eCompany: Sander Berlinski
ISM eCompany: Sander Berlinski
 
Social Nomads - Lynn
Social Nomads - LynnSocial Nomads - Lynn
Social Nomads - Lynn
 
Thuiswinkel.org & Omoda: Alicja Van Ewijk
Thuiswinkel.org & Omoda: Alicja Van EwijkThuiswinkel.org & Omoda: Alicja Van Ewijk
Thuiswinkel.org & Omoda: Alicja Van Ewijk
 
Worldpay: Maria Prados
Worldpay: Maria PradosWorldpay: Maria Prados
Worldpay: Maria Prados
 
Van Moof: Simon Vreeman
Van Moof: Simon VreemanVan Moof: Simon Vreeman
Van Moof: Simon Vreeman
 
ANWB: Carolina van den Hoven & Margot van Leeuwen
ANWB: Carolina van den Hoven & Margot van LeeuwenANWB: Carolina van den Hoven & Margot van Leeuwen
ANWB: Carolina van den Hoven & Margot van Leeuwen
 
HEMA: Ilse Lankhorst, Bas Karsemeijer
HEMA: Ilse Lankhorst, Bas KarsemeijerHEMA: Ilse Lankhorst, Bas Karsemeijer
HEMA: Ilse Lankhorst, Bas Karsemeijer
 
ISM eCompany: Kees Beckeringh
ISM eCompany: Kees BeckeringhISM eCompany: Kees Beckeringh
ISM eCompany: Kees Beckeringh
 
ING: Dirk Mulder
ING: Dirk MulderING: Dirk Mulder
ING: Dirk Mulder
 
Martijn Kozijn: Jessica van Haaster & Martijn Leclaire
Martijn Kozijn: Jessica van Haaster & Martijn LeclaireMartijn Kozijn: Jessica van Haaster & Martijn Leclaire
Martijn Kozijn: Jessica van Haaster & Martijn Leclaire
 
ING: Dirk Mulder
ING: Dirk MulderING: Dirk Mulder
ING: Dirk Mulder
 
Cemex trescon: Marloe de Ruiter
Cemex trescon: Marloe de RuiterCemex trescon: Marloe de Ruiter
Cemex trescon: Marloe de Ruiter
 
LINDA.Foundation: Jocelyn Nassenstein-Brouwer
LINDA.Foundation: Jocelyn Nassenstein-BrouwerLINDA.Foundation: Jocelyn Nassenstein-Brouwer
LINDA.Foundation: Jocelyn Nassenstein-Brouwer
 
Maersk: Niek Minderhoud
Maersk: Niek MinderhoudMaersk: Niek Minderhoud
Maersk: Niek Minderhoud
 
Q&A: Brenda Hoekstra
Q&A: Brenda HoekstraQ&A: Brenda Hoekstra
Q&A: Brenda Hoekstra
 
Aanhangwagendirect & PI Marketing: Merin Eggink & Mascha Soors
Aanhangwagendirect & PI Marketing: Merin Eggink & Mascha SoorsAanhangwagendirect & PI Marketing: Merin Eggink & Mascha Soors
Aanhangwagendirect & PI Marketing: Merin Eggink & Mascha Soors
 
ISM eCompany: Ralph van Woensel
ISM eCompany: Ralph van WoenselISM eCompany: Ralph van Woensel
ISM eCompany: Ralph van Woensel
 
Lecot: Raf Maesen
Lecot: Raf MaesenLecot: Raf Maesen
Lecot: Raf Maesen
 
Lobbes: Berry de Snoo
Lobbes: Berry de SnooLobbes: Berry de Snoo
Lobbes: Berry de Snoo
 
ISM eCompany: Sander Lems
ISM eCompany: Sander LemsISM eCompany: Sander Lems
ISM eCompany: Sander Lems
 

AI VOOR RIOOLWATERZUIVERING: MACHINE LEARNING IN DE INDUSTRIËLE PRAKTIJK - Big Data Expo 2019

  • 1. AI VOOR RIOOLWATERZUIVERING. Machine learning in de industriële praktijk Robert van Straalen
  • 2. • Robert van Straalen • Lead data scientist @ Data Science Lab • Data scientist @ ING • Database marketing, BI, Software development • Studie Kunstmatige Intelligentie @ Universiteit Utrecht EVEN VOORSTELLEN.
  • 3. • Rioolwaterzuivering • Drinkwaterzuivering • Dijkenbeheer • Natuurbeheer • ...
  • 5. • Rioolwater stroomt binnen • Primaire behandeling... • Microbacteriën worden toegevoegd • Slib wordt nu actiefslib • Bacteriën zetten NH4 en O2 om naar NO3 en H2O • Bacteria hebben zuurstof nodig, dus we pompen er lucht doorheen • Tertiaire behandeling... • Schoon water! HOE WERKT EEN RWZI?
  • 7. Druk 1 Flow 1 Flow 3 Kleppen 3.1, 3.2, 3.3 Blowers 1 t/m 6 Kleppen 7.1, 7.2, 7.3 Flow 7 Druk 2
  • 8. • Deel 1: Basis • Bepaal continu (i.e. elke minuut): • Hoeveel lucht er naar elke AT stroomt • Hoeveel energie er verbruikt wordt door elke AT • Deel 2: Optimalisatie • Bepaal een control strategy die continu (i.e. elke minuut): • Het beluchtingsproces aanstuurt • Blowerstanden • Klepstanden • Zodanig dat • de juiste hoeveelheid lucht door elke AT wordt gepompt • met minimaal energieverbruik PROBLEEMDEFINITIE.
  • 9. • Doel: bepaal airflow en energieverbruik per AT • Aanpak: 1. Bepaal airflow (luchtdebiet) per AT 1. Gebruik data van flowmeter voor AT 5 (betrouwbaar) 2. Bouw model op deze data 3. Gebruik model om flow voor overige AT’s te voorspellen 2. Bepaal totale energieverbruik 6 blowers 3. Energieverbruik AT = (airflow AT / airflow totaal) * energieverbruik totaal AANPAK.
  • 10. • Azure Data Science Virtual Machine met GPU • Anaconda (Python) • PyCharm • Tensorflow + Tensorboard • OpenAI Gym • Flask TOOLING.
  • 11. • Input scaling in lambda layers • Luchtdruk puur afhankelijk van blowers en kleppen • ➤ geen bias • ➤ non-negative constraints • Output layers: • Linear activation • Gebruik bias initializer met gemiddelde output-waarde • Tune loss_weights voor juiste balans • Adam optimizer; learning rate 0.0003 NEURAAL NETWERK.
  • 12. MODEL PERFORMANCE. • Luchtdruk: Mean absolute error 0.37 (op een range van ± 0-90) • Airflow: Mean absolute error 177 (op een range van ± 0-11.000) • Energieverbruik: Mean absolute error 3.1 (op een range van 0-400)
  • 13. • predict.py • Python module om modelvoorspellingen op te halen • api.py • Flask script voor API-definitie • Gunicorn • web server om API te ontsluiten • Dockerfile: • Python + packages • Starten Gunicorn DEPLOYMENT.
  • 14. • In het eerste deelproject hebben we airflow en energieverbruik voorspeld adhv blower- en klepstanden • In dit vervolgtraject willen we blower- en klepstanden zodanig controleren/aansturen dat • de benodigde airflow gerealiseerd wordt • met minimaal energieverbruik Pffff en dat was nog maar deel 1!
  • 15. 1. Observeer benodigde airflow • Afleiden uit waterdebiet + zuurstof-/ammoniummetingen 2. Bepaal nieuwe standen blowers en kleppen • Dit doet het controlemodel 3. Observeer resulterende airflow en energieverbruik • Dit doet het voorspelmodel uit het 1e deelproject 4. Beoordeel resultaat • Bestraf afwijkingen van benodigde airflow • Bestraf energieverbruik 5. Pas het model aan n.a.v. het resultaat 6. Terug naar 1. AANPAK.
  • 16. • Observeer state s0 • Kies beste actie a0 gegeven s0 • Voer actie a0 uit in de environment • Observeer reward r0 en state s1 • Evalueer keuze van actie a0 in state s0, gegeven reward r0 • Herhaal REINFORCEMENT LEARNING.
  • 17. • Deep Deterministic Policy Gradient • Lijkt op Deep Q-learning, maar dan voor continuous action spaces • Model opgesplitst in 2 delen: • Actor bestuurt beluchting • Critic beoordeelt het resultaat • Beide worden iteratief getraind o.b.v. geobserveerde data • Eerdere model is simulator van de environment DDPG ALGORITME.
  • 18. • Environment in OpenAI’s gym format • Definiëer mogelijke acties • Definiëer hoe de states eruit zien • Definiëer een functie die, gegeven een state en een actie, een reward terug geeft • Gebruikt het eerder gebouwde model • DDPG d.m.v. Keras-RL library • Relatief overzichtelijk en begrijpelijk; DDPG geïmplementeerd • States: Luchtdruk, Airflow, Blowers, Kleppen • Actions: Blowers, Kleppen • Reward: benodigde vs. behaalde airflow + energieverbruik IMPLEMENTATIE.
  • 19. • Actor: State ➤ Action • Input = State (Luchtdruk, Airflow, Blowers, Kleppen) • Scaling • 2 dense layers met ReLU activatie • Output met tanh activatie ➤ Blowers + Kleppen • Critic: State + Action ➤ Reward • Input = State + Action • Scaling • 2 dense layers met ReLU activatie • Output met linear activatie ➤ Reward N.B. Actor netwerk is pre-trained op huidige control strategy ACTOR & CRITIC.
  • 21. • Wie heeft de domeinkennis? • Welke data is betrouwbaar? • Data augmentatie voor betere generalisatie • Andrej Karpathy’s Recipe for training neural networks: • Tensorboard: write_images laat logs exploderen, maar helpt wel om gewichten te valideren • Neuraal netwerk tunen obv loss curve is een ding, maar reinforcement learning agent tunen op reward curve... • Reinforcement learning staat nog in de kinderschoenen • Pre-training helpt LEARNINGS.
  • 22. • Impediment: • blowers & kleppen direct besturen voorlopig niet mogelijk • Scope: • niet meer alleen kijken naar energieverbruik • maar ook (of eigenlijk met name) naar uitstoot STATUS QUO.
  • 23. • Een nieuw environment model dat • gegeven een ‘state’ (metingen) • gegeven voorgestelde actie / control settings • de volgende state voorspelt (metingen) • Een influent forecast model dat • gegeven een datum en tijd • het verwachte influent voorspelt • Een control strategy model dat • gegeven een ‘state’ • gegeven een influent forecast • de beste actie / control settings voorspelt VERVOLGPLANNEN. + ➤ ➤ ➤
  • 24. DANK VOOR JULLIE AANDACHT!