Tanh-functie: waarom nulgecentreerde outputs belangrijk zijn voor neurale netwerken
Deze gids legt de wiskundige intuïtie achter de tanh-functie uit, hoe die zich verhoudt tot sigmoid en ReLU, de voordelen en afwegingen, en hoe je haar effectief implementeert in deep learning.
Zit je neurale netwerk vast op 60% nauwkeurigheid en kun je niet achterhalen waarom?
Je hebt de learning rate aangepast, extra lagen toegevoegd en met de batchgrootte gespeeld. Niets helpt. De training loss beweegt na de eerste paar epochs nauwelijks. Je begint je hele setup in twijfel te trekken. Misschien zijn de data slecht, misschien is de architectuur verkeerd. Maar wat er echt gebeurt, is dat je activatiefunctie alle outputs één kant op duwt, waardoor het netwerk geen gebalanceerde patronen kan leren.
Tanh (hyperbolische tangens) lost dit op door outputs rond nul te centreren, variërend van -1 tot 1. Dat helpt je modellen sneller te convergeren en houdt gradiënten tijdens backpropagation symmetrisch stromen.
In dit artikel leer je wat tanh is, hoe het wiskundig werkt, wanneer je het gebruikt in plaats van ReLU of sigmoid, en hoe je het implementeert in PyTorch. Ben je nieuw met deep learning, bekijk dan onze uitgebreide gids over activatiefuncties in neurale netwerken.
Wat is de tanh-functie?
De tanh-functie zet elke input om naar een waarde tussen -1 en 1.
Het is een vloeiende, S-vormige curve gedefinieerd door deze formule:
Tanh-functie. Afbeelding door de auteur
De functie gedraagt zich voorspelbaar aan de extremen. Geef je een groot positief getal, dan komt de output dicht bij 1. Voor een groot negatief getal krijg je iets dicht bij -1.
Rond nul gedraagt tanh zich bijna lineair. Dat betekent dat gradiënten tijdens backpropagation soepel doorstromen in plaats van weggedrukt of vervormd te worden.
Ter vergelijking: sigmoid geeft alleen positieve waarden tussen 0 en 1. Tanh geeft zowel positieve als negatieve getallen. Het houdt activaties rond nul in balans, wat in veel netwerkarchitecturen helpt om sneller te optimaliseren.
Je ziet tanh het vaakst in recurrente netwerken en overal waar gecentreerde activaties de stabiliteit verbeteren.
Wiskundige en computationele eigenschappen
Tanh heeft een paar wiskundige eigenschappen die elke toekomstige machine learning engineer moet kennen.
Vloeiend en differentieerbaar
Tanh is overal oneindig differentieerbaar en vloeiend.
Dat is belangrijk voor optimalisatie op basis van gradiënten. Je stuit niet op scherpe hoeken zoals bij ReLU, waar de afgeleide in één klap van 0 naar 1 springt. Vloeiende gradiënten betekenen voorspelbaardere gewichtsupdates tijdens backpropagation.
Nulgecentreerde output
Sigmoid geeft waarden tussen 0 en 1. Tanh geeft waarden tussen -1 en 1.
Als activaties rond nul in balans blijven, convergeert je netwerk sneller. Gewichtsupdates raken niet in één richting bevooroordeeld en gradiënten stromen gelijkmatiger door lagen.
Gebonden en stabiel
Het bereik van de tanh-output ligt vast tussen -1 en 1.
Deze grenzen voorkomen numerieke instabiliteit. Werk je met netwerken die geen exploderende activaties aankunnen, dan houdt tanh alles onder controle zonder clipping of speciale behandeling.
Gedrag aan de randen
Voor grote positieve waarden nadert tanh 1. Voor grote negatieve waarden nadert het -1.
Die symmetrie houdt activaties gecentreerd en voorkomt de biasverschuiving die je ziet bij niet-nulgecentreerde functies zoals sigmoid. In diepe netwerken helpt die eigenschap om gewichtsupdates gelijkmatiger door lagen te laten propaganderen – je netwerk ontwikkelt geen voorkeur voor positieve of negatieve waarden.
Afgeleide van tanh
De afgeleide van tanh is:
Tanh-afgeleide. Afbeelding door de auteur.
Dit betekent dat gradiënten sterk zijn rond nul maar naar de randen toe krimpen wanneer de functie satureert. Als tanh(x) dicht bij 1 of -1 ligt, nadert de afgeleide nul, wat het leren voor die neuronen vertraagt.
In de praktijk krijg je stabiel leren voor gematigde inputs, maar mogelijk verdwijnende gradiënten wanneer inputs te groot of te klein zijn. Daarom geven diepe netwerken vaak de voorkeur aan ReLU — die satureert niet voor positieve waarden.
Tanh versus andere functies
Tanh is niet de enige activatiefunctie, en begrijpen hoe het zich verhoudt tot alternatieven helpt je de juiste keuze te maken voor je netwerk.
Sigmoid is een naaste verwant van tanh. Sterker nog, tanh is gewoon een geschaalde en verschoven versie van sigmoid:
Waarbij σ(x) de sigmoidfunctie is.
Sigmoid-functie. Afbeelding door de auteur
Het belangrijkste verschil is dat sigmoid waarden tussen 0 en 1 geeft, terwijl tanh waarden tussen -1 en 1 geeft. Dat nulcentreren zorgt er in de meeste gevallen voor dat tanh sneller convergeert.
ReLU kiest een andere aanpak. Het geeft nul voor negatieve inputs en laat positieve inputs ongewijzigd door. Dit creëert schaarste: veel neuronen blijven inactief, wat de training versnelt. Maar ReLU doodt gradiënten voor negatieve waarden. Tanh heeft dat probleem niet, omdat het voor negatieve inputs niet-nulgradiënten behoudt. Het satureert wel aan beide uiteinden, wat het leren kan vertragen wanneer inputs te groot of te klein worden.
ReLU-functie. Afbeelding door de auteur
Softsign lijkt op tanh. Beide zijn vloeiende, S-vormige curves. Maar tanh convergeert sneller rond nul omdat de helling daar steiler is. Dat betekent sterkere gradiënten in de vroege trainingsfasen, wat je netwerk kan helpen sneller te leren voordat inputs de saturatiezones bereiken.
Softsign-functie. Afbeelding door de auteur
Dit is slechts een tipje van de sluier wat betreft activatiefuncties. Ben je geïnteresseerd in alternatieven voor Tanh en ReLU, lees dan onze uitgebreide gidsen over Softmax en Softplus.
Voordelen van tanh
Als je je afvraagt of Tanh het proberen waard is, zijn dit enkele voordelen die uiteindelijk tot een nauwkeuriger model kunnen leiden.
Nulgecentreerde output
Tanh produceert gebalanceerde outputs rond nul.
Dit vermindert bias in gewichtsupdates. Wanneer je activaties rond nul gecentreerd zijn in plaats van positief scheef zoals bij sigmoid, trekken gradiënten de gewichten niet meer de ene kant op dan de andere. Het resultaat is snellere convergentie en stabielere training.
Sterkere gradiënten rond nul
Tanh heeft een steile helling rond nul.
Dit betekent sterkere gradiënten tijdens backpropagation vergeleken met sigmoid. Je netwerk leert sneller in de vroege trainingsfasen wanneer de meeste activaties dicht bij nul liggen. Sigmoids zachtere helling maakt die eerste updates juist zwakker en trager.
Vloeiende gradiëntenstroom
De afgeleiden van tanh zijn overal continu.
Er zijn geen plotselinge sprongen of discontinuïteiten. Dat geeft je een stabielere optimalisatie dan bij stuksgewijze functies zoals ReLU, waar de afgeleide abrupt van 0 naar 1 schakelt bij nul. Vloeiende gradiënten betekenen voorspelbare gewichtsupdates tijdens de hele training.
Ideaal voor recurrente netwerken
RNN's, LSTM's en GRU's leunen op tanh in hun verborgen lagen.
Deze architecturen moeten vloeiende interne toestanden over tijdstappen behouden. Tanh laat zowel positieve als negatieve signalen door terwijl waarden begrensd blijven. Die balans voorkomt exploderende activaties en helpt het netwerk informatie over langere reeksen te onthouden.
Beperkingen en afwegingen
Voordat we in de code duiken, nog een paar punten waar Tanh tekort kan schieten.
Verdwijnende gradiënten
Wanneer inputs ver van nul afliggen, naderen de gradiënten nul.
Dit gebeurt omdat tanh satureert op -1 en 1. Zodra je activaties deze extremen bereiken, wordt de afgeleide piepklein en vertragen gewichtsupdates tot een slakkengang. In zeer diepe netwerken stapelt dit probleem zich op, omdat gradiënten krimpen terwijl ze door elke laag terugpropageren totdat leren praktisch stopt.
Tragere training
Tanh creëert geen schaarste.
Elke neuron blijft in zekere mate actief, in tegenstelling tot ReLU waar negatieve inputs nul output geven. Daardoor verwerkt je netwerk per forward pass meer informatie, wat goed klinkt maar het in feite vertraagt. De schaarste van ReLU maakt training sneller omdat inactieve neuronen de berekening volledig overslaan.
Minder hardware-optimalisatie
Moderne frameworks en hardware-accelerators geven de voorkeur aan ReLU.
Tanh-bewerkingen omvatten exponenten, die duurder zijn dan de eenvoudige max(0, x)-operatie van ReLU. GPU-kernels en gespecialiseerde AI-chips zijn geoptimaliseerd voor ReLU omdat het de standaard is geworden in de meeste architecturen. Dit betekent dat tanh op dezelfde hardware trager draait, zelfs met identieke netwerkarchitecturen.
Tanh in PyTorch
PyTorch biedt standaard een implementatie van de tanh-functie, dus je hoeft die niet vanaf nul te schrijven.
Zo gebruik je het als activatiefunctie in een eenvoudig neuraal netwerk:
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(10,20),
nn.Tanh(),
nn.Linear(20,1))
x = torch.randn(5,10)
output = model(x)print(output)Mogelijk gemaakt door
tensor([[0.0910],[-0.0994],[-0.0583],[-0.2177],[-0.2546]], grad_fn=<AddmmBackward0>)Mogelijk gemaakt door
Je kunt tanh ook direct op tensors toepassen:
x = torch.tensor([-2.0,-1.0,0.0,1.0,2.0])
output = torch.tanh(x)print(output)Mogelijk gemaakt door
Let op hoe de outputs symmetrisch rond nul liggen — negatieve inputs geven negatieve outputs, en de functie behandelt beide kanten gelijk. Deze gebalanceerde verdeling houdt je netwerk stabiel tijdens training en voorkomt de biasverschuiving die je ziet bij functies zoals sigmoid.
Wanneer tanh wordt gebruikt
Kies de tanh-functie wanneer je model baat heeft bij gecentreerde activaties of wanneer je met kleinere of recurrente netwerken werkt.
Het is vooral effectief wanneer:
Je RNN's of LSTM's traint die gebalanceerde activaties nodig hebben. Deze architecturen vertrouwen op tanh om vloeiende interne toestanden over tijdstappen te behouden, terwijl zowel positieve als negatieve signalen kunnen doorstromen.
Je continue of vloeiende doelen modelleert. De vloeiende gradiëntenstroom van tanh werkt goed wanneer je outputs continu en begrensd moeten zijn, zoals het voorspellen van waarden die van nature binnen een bereik vallen.
Je stabiele, differentieerbare gradiënten wilt maar niet de schaarste van ReLU nodig hebt. Als je netwerk niet diep genoeg is om te profiteren van ReLU’s snelheidsvoordeel, geeft tanh je voorspelbaarder trainingsgedrag.
Vermijd daarentegen tanh in zeer diepe architecturen waar verdwijnende gradiënten een probleem zijn. ReLU of GELU passen daar beter, omdat ze niet satureerden voor positieve waarden.
Conclusie
Kort samengevat: de tanh-functie zit tussen de eenvoud van sigmoid en de snelheid van ReLU in.
Ze is vloeiend, symmetrisch en nog steeds relevant in deep learning, vooral waar gebalanceerde activaties het belangrijkst zijn. Je ziet tanh niet in elke moderne architectuur, maar het heeft z'n plek wanneer je gecentreerde outputs en stabiele gradiëntenstroom nodig hebt.
Als je twijfelt of je tanh moet gebruiken, volg dan deze richtlijnen:
Gebruik ReLU voor grote, diepe netwerken. Het is sneller, werkt goed met moderne hardware en voorkomt verdwijnende gradiënten voor positieve waarden.
Gebruik tanh wanneer je stabiliteit, symmetrie en vloeiendere gradiëntenstroom nodig hebt. Denk aan recurrente netwerken, kleinere architecturen en gevallen waarin nulgecentreerde activaties de convergentie verbeteren.
Voer experimenten uit, vergelijk resultaten en laat je data bepalen welke activatie het beste bij je taak past. Meer leren? Schrijf je in voor onze Machine Learning Scientist in Python-track om de ins en outs van supervised, unsupervised en deep learning te begrijpen.
Senior Data Scientist, gevestigd in Kroatië. Top Tech-schrijver met meer dan 700 gepubliceerde artikelen en meer dan 10 miljoen weergaven. Auteur van het boek Machine Learning Automation with TPOT.
Senior Data Scientist, gevestigd in Kroatië. Top Tech-schrijver met meer dan 700 gepubliceerde artikelen en meer dan 10 miljoen weergaven. Auteur van het boek Machine Learning Automation with TPOT.
FAQs
Wat is de tanh-activatiefunctie?⌄
Tanh (hyperbolische tangens) is een activatiefunctie die elke input omzet in een waarde tussen -1 en 1. Ze is gedefinieerd als tanh(x) = (e^x - e^-x) / (e^x + e^-x) en vormt een S-vormige curve vergelijkbaar met sigmoid. Het belangrijkste verschil is dat tanh nulgecentreerd is, wat betekent dat het zowel positieve als negatieve waarden output, wat neurale netwerken helpt sneller te convergeren tijdens training.
Wanneer moet ik tanh gebruiken in plaats van ReLU?⌄
Gebruik tanh wanneer je recurrente netwerken (RNN's, LSTM's, GRU's) bouwt die gebalanceerde, nulgecentreerde activaties nodig hebben. Het is ook beter voor kleinere netwerken waar je vloeiende, differentieerbare gradiënten nodig hebt zonder de schaarste die ReLU biedt. Vermijd tanh in zeer diepe feedforward-netwerken, waar de snelheid van ReLU en de weerstand tegen verdwijnende gradiënten het een betere keuze maken.
Wat zijn de belangrijkste voordelen van tanh ten opzichte van sigmoid?⌄
De nulgecentreerde output van tanh (van -1 tot 1) voorkomt de biasverschuiving die optreedt bij het 0-tot-1-bereik van sigmoid. Dit leidt tot gebalanceerdere gewichtsupdates en snellere convergentie. Tanh heeft ook een steilere helling rond nul, wat sterkere gradiënten tijdens backpropagation betekent in vergelijking met sigmoid.
Waarom veroorzaakt tanh verdwijnende gradiënten?⌄
Tanh satureert op -1 en 1, wat betekent dat de afgeleide nul nadert wanneer inputs ver van nul liggen. In diepe netwerken vermenigvuldigen deze piepkleine gradiënten zich tijdens backpropagation, waardoor ze exponentieel krimpen per laag totdat ze effectief verdwijnen. Daardoor is het voor vroege lagen moeilijk om te leren, wat de reden is dat ReLU de voorkeur heeft in zeer diepe architecturen.
Hoe implementeer ik tanh in PyTorch?⌄
PyTorch biedt tanh via nn.Tanh() als laag of torch.tanh() als functie. Je kunt het aan je model toevoegen of direct op tensors toepassen. Beide benaderingen werken identiek en bieden automatische gradiëntberekening voor backpropagation.
Zit je neurale netwerk vast op 60% nauwkeurigheid en kun je niet achterhalen waarom?
Je hebt de learning rate aangepast, extra lagen toegevoegd en met de batchgrootte gespeeld. Niets helpt. De training loss beweegt na de eerste paar epochs nauwelijks. Je begint je hele setup in twijfel te trekken. Misschien zijn de data slecht, misschien is de architectuur verkeerd. Maar wat er echt gebeurt, is dat je activatiefunctie alle outputs één kant op duwt, waardoor het netwerk geen gebalanceerde patronen kan leren.
Tanh (hyperbolische tangens) lost dit op door outputs rond nul te centreren, variërend van -1 tot 1. Dat helpt je modellen sneller te convergeren en houdt gradiënten tijdens backpropagation symmetrisch stromen.
In dit artikel leer je wat tanh is, hoe het wiskundig werkt, wanneer je het gebruikt in plaats van ReLU of sigmoid, en hoe je het implementeert in PyTorch. Ben je nieuw met deep learning, bekijk dan onze uitgebreide gids over activatiefuncties in neurale netwerken.
Wat is de tanh-functie?
De tanh-functie zet elke input om naar een waarde tussen -1 en 1.
Het is een vloeiende, S-vormige curve gedefinieerd door deze formule:
Tanh-functie. Afbeelding door de auteur
De functie gedraagt zich voorspelbaar aan de extremen. Geef je een groot positief getal, dan komt de output dicht bij 1. Voor een groot negatief getal krijg je iets dicht bij -1.
Rond nul gedraagt tanh zich bijna lineair. Dat betekent dat gradiënten tijdens backpropagation soepel doorstromen in plaats van weggedrukt of vervormd te worden.
Ter vergelijking: sigmoid geeft alleen positieve waarden tussen 0 en 1. Tanh geeft zowel positieve als negatieve getallen. Het houdt activaties rond nul in balans, wat in veel netwerkarchitecturen helpt om sneller te optimaliseren.
Je ziet tanh het vaakst in recurrente netwerken en overal waar gecentreerde activaties de stabiliteit verbeteren.
Wiskundige en computationele eigenschappen
Tanh heeft een paar wiskundige eigenschappen die elke toekomstige machine learning engineer moet kennen.
Vloeiend en differentieerbaar
Tanh is overal oneindig differentieerbaar en vloeiend.
Dat is belangrijk voor optimalisatie op basis van gradiënten. Je stuit niet op scherpe hoeken zoals bij ReLU, waar de afgeleide in één klap van 0 naar 1 springt. Vloeiende gradiënten betekenen voorspelbaardere gewichtsupdates tijdens backpropagation.
Nulgecentreerde output
Sigmoid geeft waarden tussen 0 en 1. Tanh geeft waarden tussen -1 en 1.
Als activaties rond nul in balans blijven, convergeert je netwerk sneller. Gewichtsupdates raken niet in één richting bevooroordeeld en gradiënten stromen gelijkmatiger door lagen.
Gebonden en stabiel
Het bereik van de tanh-output ligt vast tussen -1 en 1.
Deze grenzen voorkomen numerieke instabiliteit. Werk je met netwerken die geen exploderende activaties aankunnen, dan houdt tanh alles onder controle zonder clipping of speciale behandeling.
Gedrag aan de randen
Voor grote positieve waarden nadert tanh 1. Voor grote negatieve waarden nadert het -1.
Die symmetrie houdt activaties gecentreerd en voorkomt de biasverschuiving die je ziet bij niet-nulgecentreerde functies zoals sigmoid. In diepe netwerken helpt die eigenschap om gewichtsupdates gelijkmatiger door lagen te laten propaganderen – je netwerk ontwikkelt geen voorkeur voor positieve of negatieve waarden.
Afgeleide van tanh
De afgeleide van tanh is:
Tanh-afgeleide. Afbeelding door de auteur.
Dit betekent dat gradiënten sterk zijn rond nul maar naar de randen toe krimpen wanneer de functie satureert. Als tanh(x) dicht bij 1 of -1 ligt, nadert de afgeleide nul, wat het leren voor die neuronen vertraagt.
In de praktijk krijg je stabiel leren voor gematigde inputs, maar mogelijk verdwijnende gradiënten wanneer inputs te groot of te klein zijn. Daarom geven diepe netwerken vaak de voorkeur aan ReLU — die satureert niet voor positieve waarden.
Tanh versus andere functies
Tanh is niet de enige activatiefunctie, en begrijpen hoe het zich verhoudt tot alternatieven helpt je de juiste keuze te maken voor je netwerk.
Sigmoid is een naaste verwant van tanh. Sterker nog, tanh is gewoon een geschaalde en verschoven versie van sigmoid:
Waarbij σ(x) de sigmoidfunctie is.
Sigmoid-functie. Afbeelding door de auteur
Het belangrijkste verschil is dat sigmoid waarden tussen 0 en 1 geeft, terwijl tanh waarden tussen -1 en 1 geeft. Dat nulcentreren zorgt er in de meeste gevallen voor dat tanh sneller convergeert.
ReLU kiest een andere aanpak. Het geeft nul voor negatieve inputs en laat positieve inputs ongewijzigd door. Dit creëert schaarste: veel neuronen blijven inactief, wat de training versnelt. Maar ReLU doodt gradiënten voor negatieve waarden. Tanh heeft dat probleem niet, omdat het voor negatieve inputs niet-nulgradiënten behoudt. Het satureert wel aan beide uiteinden, wat het leren kan vertragen wanneer inputs te groot of te klein worden.
ReLU-functie. Afbeelding door de auteur
Softsign lijkt op tanh. Beide zijn vloeiende, S-vormige curves. Maar tanh convergeert sneller rond nul omdat de helling daar steiler is. Dat betekent sterkere gradiënten in de vroege trainingsfasen, wat je netwerk kan helpen sneller te leren voordat inputs de saturatiezones bereiken.
Softsign-functie. Afbeelding door de auteur
Dit is slechts een tipje van de sluier wat betreft activatiefuncties. Ben je geïnteresseerd in alternatieven voor Tanh en ReLU, lees dan onze uitgebreide gidsen over Softmax en Softplus.
Voordelen van tanh
Als je je afvraagt of Tanh het proberen waard is, zijn dit enkele voordelen die uiteindelijk tot een nauwkeuriger model kunnen leiden.
Nulgecentreerde output
Tanh produceert gebalanceerde outputs rond nul.
Dit vermindert bias in gewichtsupdates. Wanneer je activaties rond nul gecentreerd zijn in plaats van positief scheef zoals bij sigmoid, trekken gradiënten de gewichten niet meer de ene kant op dan de andere. Het resultaat is snellere convergentie en stabielere training.
Sterkere gradiënten rond nul
Tanh heeft een steile helling rond nul.
Dit betekent sterkere gradiënten tijdens backpropagation vergeleken met sigmoid. Je netwerk leert sneller in de vroege trainingsfasen wanneer de meeste activaties dicht bij nul liggen. Sigmoids zachtere helling maakt die eerste updates juist zwakker en trager.
Vloeiende gradiëntenstroom
De afgeleiden van tanh zijn overal continu.
Er zijn geen plotselinge sprongen of discontinuïteiten. Dat geeft je een stabielere optimalisatie dan bij stuksgewijze functies zoals ReLU, waar de afgeleide abrupt van 0 naar 1 schakelt bij nul. Vloeiende gradiënten betekenen voorspelbare gewichtsupdates tijdens de hele training.
Ideaal voor recurrente netwerken
RNN's, LSTM's en GRU's leunen op tanh in hun verborgen lagen.
Deze architecturen moeten vloeiende interne toestanden over tijdstappen behouden. Tanh laat zowel positieve als negatieve signalen door terwijl waarden begrensd blijven. Die balans voorkomt exploderende activaties en helpt het netwerk informatie over langere reeksen te onthouden.
Beperkingen en afwegingen
Voordat we in de code duiken, nog een paar punten waar Tanh tekort kan schieten.
Verdwijnende gradiënten
Wanneer inputs ver van nul afliggen, naderen de gradiënten nul.
Dit gebeurt omdat tanh satureert op -1 en 1. Zodra je activaties deze extremen bereiken, wordt de afgeleide piepklein en vertragen gewichtsupdates tot een slakkengang. In zeer diepe netwerken stapelt dit probleem zich op, omdat gradiënten krimpen terwijl ze door elke laag terugpropageren totdat leren praktisch stopt.
Tragere training
Tanh creëert geen schaarste.
Elke neuron blijft in zekere mate actief, in tegenstelling tot ReLU waar negatieve inputs nul output geven. Daardoor verwerkt je netwerk per forward pass meer informatie, wat goed klinkt maar het in feite vertraagt. De schaarste van ReLU maakt training sneller omdat inactieve neuronen de berekening volledig overslaan.
Minder hardware-optimalisatie
Moderne frameworks en hardware-accelerators geven de voorkeur aan ReLU.
Tanh-bewerkingen omvatten exponenten, die duurder zijn dan de eenvoudige max(0, x)-operatie van ReLU. GPU-kernels en gespecialiseerde AI-chips zijn geoptimaliseerd voor ReLU omdat het de standaard is geworden in de meeste architecturen. Dit betekent dat tanh op dezelfde hardware trager draait, zelfs met identieke netwerkarchitecturen.
Tanh in PyTorch
PyTorch biedt standaard een implementatie van de tanh-functie, dus je hoeft die niet vanaf nul te schrijven.
Zo gebruik je het als activatiefunctie in een eenvoudig neuraal netwerk:
Je kunt tanh ook direct op tensors toepassen:
Let op hoe de outputs symmetrisch rond nul liggen — negatieve inputs geven negatieve outputs, en de functie behandelt beide kanten gelijk. Deze gebalanceerde verdeling houdt je netwerk stabiel tijdens training en voorkomt de biasverschuiving die je ziet bij functies zoals sigmoid.
Wanneer tanh wordt gebruikt
Kies de tanh-functie wanneer je model baat heeft bij gecentreerde activaties of wanneer je met kleinere of recurrente netwerken werkt.
Het is vooral effectief wanneer:
Vermijd daarentegen tanh in zeer diepe architecturen waar verdwijnende gradiënten een probleem zijn. ReLU of GELU passen daar beter, omdat ze niet satureerden voor positieve waarden.
Conclusie
Kort samengevat: de tanh-functie zit tussen de eenvoud van sigmoid en de snelheid van ReLU in.
Ze is vloeiend, symmetrisch en nog steeds relevant in deep learning, vooral waar gebalanceerde activaties het belangrijkst zijn. Je ziet tanh niet in elke moderne architectuur, maar het heeft z'n plek wanneer je gecentreerde outputs en stabiele gradiëntenstroom nodig hebt.
Als je twijfelt of je tanh moet gebruiken, volg dan deze richtlijnen:
Voer experimenten uit, vergelijk resultaten en laat je data bepalen welke activatie het beste bij je taak past. Meer leren? Schrijf je in voor onze Machine Learning Scientist in Python-track om de ins en outs van supervised, unsupervised en deep learning te begrijpen.