deep learning voor dummies?!

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • digidokter.net
  • Registratie: April 2014
  • Laatst online: 07-01-2024

digidokter.net

... en 'Niets' van 'Alles' LOL

Topicstarter
Ik ben leek (noob) op gebied van programeren maar ik ben geinteresseerd in deep learning. Ik heb gegoogled en youtube bekeken. En alleen HTML is voor mij een beetje te volgen: http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html
De rest is in talen die ik niet vaardig ben oa python, C, C+ etc.
Is er een makkelijke manier om in die materie te geraken zonder 20 weken een cursus te volgen?
Gewoon een makkelijke taal en waarbij je de variablen en files kan aanpassen en de werking hetzelfde blijft? :)

Verstand van 'Alles' van 'Niets'


Acties:
  • 0 Henk 'm!

  • diondokter
  • Registratie: Augustus 2011
  • Laatst online: 14-10 16:21

diondokter

Dum spiro, spero

nee...

De cursus hoef je niet te doen (Het internet staat vol goede gratis tutorials).
Maar dan nog zal het je erg veel tijd kosten. Je moet eerst namelijk leren programmeren en vervolgens nog over deep learning leren. Als je héél veel vrije tijd hebt, dan lukt het misschien binnen een half jaar.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Hee, ik wil hersenchirurg worden maar alle manieren die ik daarvoor vond kosten mee te veel werk of moeite. Is er geen geheime fast-track?

Sommige dingen kosten gewoon tijd en als je het die tijd niet wil geven kun je er beter maar vanaf blijven.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • afraca
  • Registratie: April 2009
  • Laatst online: 13-08 16:46

afraca

Open Source!

Pedantic mode:
Strikt genomen kan je natuurlijk nagenoeg alles over deep learning leren zonder ook maar 1 keer te programmeren. Een groot deel van computation an sich is namelijk gewoon prima te beredeneren zonder het uit te voeren.

In de praktijk is het natuurlijk zo dat als je iets van resultaten wilt hebben je dat wel moet gaan uitwerken, en dat praktisch alleen maar kan op een computer, en je dus moet gaan programmeren.

[ Voor 0% gewijzigd door afraca op 11-04-2015 21:19 . Reden: typo ]

IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB


Acties:
  • 0 Henk 'm!

  • digidokter.net
  • Registratie: April 2014
  • Laatst online: 07-01-2024

digidokter.net

... en 'Niets' van 'Alles' LOL

Topicstarter
Ok ik moet gaan programmeren welke taal bevelen jullie aan? Er zoveel talen? Wat is een universele goede programmeertaal die je ook uiteindelijk voor deep learning kan gebruiken?

Verstand van 'Alles' van 'Niets'


Acties:
  • 0 Henk 'm!

  • diondokter
  • Registratie: Augustus 2011
  • Laatst online: 14-10 16:21

diondokter

Dum spiro, spero

Welke taal

Ikzelf gebruik voornamelijk C#. Maar het is een erg 'gevaarlijke' vraag die daar stelt...

Acties:
  • 0 Henk 'm!

  • Compizfox
  • Registratie: Januari 2009
  • Laatst online: 14-10 22:41

Compizfox

Bait for wenchmarks

Je wilt leren programmeren met als doel deep learning. Zoek dan een taal uit die daar veel voor wordt gebruikt ;) Ik heb geen verstand van deep learning, maar ik kan me zo voorstellen dat dat niet PHP of Bash is.

Gewoon een heel grote verzameling snoertjes


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

paranoia68 schreef op zaterdag 11 april 2015 @ 23:46:
Ok ik moet gaan programmeren welke taal bevelen jullie aan? Er zoveel talen? Wat is een universele goede programmeertaal die je ook uiteindelijk voor deep learning kan gebruiken?
Wat had je zelf al gezocht en gevonden over het onderwerp? GoT is niet een plek waar je even snel een vraagje dumpt, we willen wel graag zien dat je zelf ook even over je eigen probleem nadenkt. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Je zou eens naar Caffe kunnen kijken: http://caffe.berkeleyvision.org/ Het is geschreven in C++, maar heeft ook interfaces voor: command line, Python en MATLAB.

Wat dingen vanaf de command line aanroepen moet niet al te lastig zijn. Verder is Python wel een taal je die snel op kunt pakken. Wil je er echt meer mee doen, dan zul je later je ook in C++ moeten verdiepen.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik ken iemand die op dit moment zijn master thesis in deep learning aan het doen is, en die gebruikt hoofdzakelijk matlab en python. Voor python zijn schijnbaar een aantal librarys beschikbaar.

Acties:
  • 0 Henk 'm!

  • digidokter.net
  • Registratie: April 2014
  • Laatst online: 07-01-2024

digidokter.net

... en 'Niets' van 'Alles' LOL

Topicstarter
Ja @diondokter en @Compizfox en @NMe aan python en C# zat ik ook al te denken in die volgorde...:)
@HuHu Caffe ben ik ook tegen gekomen en ga er zeker naar kijken.
Ik heb Anaconda al gedownload en volg momenteel de cursus:
https://www.coursera.org/course/pythonlearn
Maar ik wilde mijn vraag niet dumpen en zelf geen inspanning doen. Zoals ik in mijn openingspost heb vermeld heb ik youtube videos gezien over deep learning maar er zijn weinig praktische voorbeelden. Behalve bij veel universiteiten maar dan moet je een expert in wiskunde en programmeren zijn. Daaar liep ik dus tegen het probleem op!
Ook deze site is makkelijk voor python:
http://www.codecademy.com/courses/introduction-to-python-6WeG3/0/1?curriculum_id=4f89dab3d788890003000096

Ik ga dus mijn wiskunde en python vaardigheden verbeteren en daarnaast in deeplearning verdiepen...bedankt allen! _/-\o_

Maar mijn algemene conclusie is dat deep learning niet toegankelijk is voor dummies zoals breinchirurg voor dummies gewoon te moeilijk is om in lekentaal te vervaardigen? Het is HBO/WO niveau en ik heb maar MBO+ :(

[ Voor 9% gewijzigd door digidokter.net op 12-04-2015 18:46 ]

Verstand van 'Alles' van 'Niets'


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 14-10 21:27
Denk dat je met python opzich wel goed zit ... veel wetenschappelijke en computation projecten(openCV bijvb) hebben wel language bindings met python voor hun libs. Zodat niet iedereen (en elke student) zich een lower level programmeertaal als C hoeft eigen te maken.
De libs zijn in C of assembly voor de snelheid, je eigen glue-code om er een applicatie van te maken kun je dan in een hogere programmeertaal doen met een hoop meer gemak :)

Als je dan ooit beperkt wordt door de snelheid van je eigen code kun je altijd nog C gaan leren.

Machine learning, deep learning, beeldherkenning etc .. het is allemaal hogere wiskunde, maar om er resultaten mee te behalen is het niet altijd noodzakelijk om alle wiskundige achtergrond te begrijpen (wel handig, niet noodzakelijk) vaak heb je genoeg aan een globaal idee van de concepten en kun je met expirimenteren met de diverse functies (en goed lezen en expirimenteren met bestaande voorbeelden) een heel eind komen.

Acties:
  • 0 Henk 'm!

  • Bliep
  • Registratie: September 2003
  • Laatst online: 30-09 19:05
Dit is wel een prima online boek:
http://neuralnetworksanddeeplearning.com/chap1.html

Hij gebruikt python, maar geeft je wel tips over hoe en wat. Neural networks is 90% theorie, voornamelijk wiskunde, maar die laatste 10% praktijk (coderen dus) kan je nog wel is hoofdpijn geven.
Jezelf direct bezig gaan houden met Deep Learning is nogal ambitieus denk ik, ik zeg dit omdat ik wel ietwat bekend ben met de materie.

Ik ben zelf hier begonnen met de Artificial Intelligence:
https://www.cs.berkeley.edu/~russell/classes/cs188/f14/
Je wordt dan ingeleid in de materie en zult fundamentele problemen in Deep Neural Networks wellicht beter begrijpen en er mee om kunnen gaan. De video opnames van de colleges zijn van erg hoge kwaliteit trouwens, aanrader.

Succes!

Acties:
  • 0 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
Goede tip van Bliep om te kijken naar materiaal van Russel.

Ik zou daarnaast beginnen met een generieke machine learning cursus op coursera (https://www.coursera.org/course/ml), om basis principes te begrijpen. Daarna kun je deze kennis uitbreiden naar specifieke deep learning algoritmen.

Als je uiteindelijk klaar bent om je begrip in praktijk te brengen kun je met python wel uit de voeten, kijk dan ook naar de theano module. Dan kun je met bekende datasets spelen om je begrip te vergroten (IRIS, MNIST).

Je kunt deep learning algoritmen gebruiken zonder dat je de onderliggende theorie kent of aan kan passen, maar of je er echt wat aan hebt.. There ain't no such thing as a free lunch.

Acties:
  • 0 Henk 'm!

  • register
  • Registratie: Januari 2003
  • Laatst online: 23-03-2019
Inderdaad, een algemene cursus ML om te beginnen lijkt aangewezen. En zonder programmeren zal je ook wel niet ver raken. Ik ben het ook eens met hierboven dat Python zeker een bruikbare eerste taal is als je ML wil gaan doen. Je kan machine learning zien als een verlenging van je programmeerarm. In plaats van een moeilijke taak (spamfiltering, spellingcontrole, ...) manueel te programmeren, pas je machine learning toe op training data om een deel van het programma automatisch te genereren. Maar er blijft doorgaans een deel dat je met de hand programmeert, om de data in een geschikte vorm te krijgen.

Wil je deep learning gebruiken omdat het een buzzword is of omdat het de beste techniek is om een specifiek probleem op te lossen? Deep learning is niet meteen de goedkoopste ML techniek in termen van benodigde rekenkracht (voor training noch voorspelling), noch in termen van wiskundige achtergrond die je nodig hebt om het echt te begrijpen. Het is een jonge techniek, dus zelfs de experts begrijpen nog niet alle finesses en er worden elk jaar meer papers over gepubliceerd. Het is wel een techniek die voor sommige problemen (maar uiteraard niet alle problemen - "No Free Lunch") wat betere voorspelllingen levert, of minder voorbeelden nodig heeft, dan andere technieken. Er is in sommige gevallen ook het voordeel van de interpreteerbaarheid van het model als je de activatiepatronen visualiseert (maar neurale netwerken zijn doorgaans niet bepaald de kampioen in interpreteerbaarheid).

Voor deep learning wordt er nogal eens acceleration gebruikt: OpenCL of CUDA, en distributed computing. Dat is ook nog eens extra bagage (talen en hardware) en maakt het ontoegankelijker voor een leek. Maar je zou wel wat moeten kunnen experimenteren zonder die extra bagage.

Acties:
  • 0 Henk 'm!

  • digidokter.net
  • Registratie: April 2014
  • Laatst online: 07-01-2024

digidokter.net

... en 'Niets' van 'Alles' LOL

Topicstarter
@gekkie Ik zal mijn (hogere) wiskunde een update moeten geven en mijn verder vaardigen in python en daarna wellicht c#?
@Bliep Dank je voor de links Hoe bekend ben je met de materie? En hoeveer ben je in AI? Heb je ook ervaring met DNN en CNN?
@Reynouts Die link van je kende ik ook niet en zal ik zeker gaan onderzoeken voor mijn basisbegrip. (IRIS, MNIST) bestanden en data heb ik al allen krijg ik het niet werkende
omdat ik weinigbegrip heb van python en Github bestanden. Hoe je Github zipfiles in de python software werkende kan krijgen. Ik heb geprobeerd maar krijg errors of foutmeldingen. Dit omdat ik geen idee heb wat ik doe maar wel globaal verstand heb van compileren etc. en een model van een programma.
Wil je deep learning gebruiken omdat het een buzzword is of omdat het de beste techniek is om een specifiek probleem op te lossen?
Nee niet omdat het een buzzword is maar omdat het een van de meest vooruitstreefende IA technieken is die je op een home pc kan gebruiken zonder een supercomputer te hebben. Het is alsof je een eigen kernbom maakt in je kelder :) het idee dat je het kan beheersen en wordt gestumuleerd door youtube video's en online cursus. Ik was op de propedeuse goed in programmeren in pascal. Toen moest ik samen met mijn medestudenten een school adminstratiesysteem opzetten. We namen ieder een deel van de codeproces voor ons en werkten goed samen. Alles was overzichtelijk en je kon afzonderlijke processen testen zonder het hele programma klaar te hebben. Ik zat vaak in het computerlokaal. En was echt enthousiast. Jammer genoeg ben ik twee maal gedoubleerd.

Daarna ben ik als CAD tekenaar bij een ingeneursbureau gaan werken en programmeerde in Autocad en sun-unixsystemen voor CAD tekensoftware. Ik programmeerde alleen om bepaalde tekenprosessen te vergemakkelijken in sets van commando's of via opname van bewegingen en die automatiseren in batchprogramatuur. Ik ben altijd geintereseerd in programmaren maak altijd fuctioneel. Nu heb ik wel ideeen wat ik met deep learing kan doen en het fijne is dat de software "meedenkt" en steeds slimmer wordt! Dat is mijn motivatie voor DL te leren.
Deep learning is niet meteen de goedkoopste ML techniek in termen van benodigde rekenkracht (voor training noch voorspelling), noch in termen van wiskundige achtergrond die je nodig hebt om het echt te begrijpen. Het is een jonge techniek, dus zelfs de experts begrijpen nog niet alle finesses en er worden elk jaar meer papers over gepubliceerd. Het is wel een techniek die voor sommige problemen (maar uiteraard niet alle problemen - "No Free Lunch") wat betere voorspelllingen levert, of minder voorbeelden nodig heeft, dan andere technieken.
Ok bedankt
Als je DL techniek naast andere broertjes en zusjes in AI legt welke is dan meest vooruitstreefende?

allen _/-\o_ voor feedback

Ik zie op:
http://en.wikipedia.org/wiki/List_of_artificial_intelligence_projects#Software_packages

en

veel links naar software:
http://deeplearning.net/software_links/
veel AI projecten en welk is nou de makkelijkste om de onderzoeken voor MBO niveau (IQ100-110)? En makkelijk instromen voor een noob cq leek cq dummy?

[ Voor 6% gewijzigd door digidokter.net op 12-04-2015 23:28 ]

Verstand van 'Alles' van 'Niets'


Acties:
  • 0 Henk 'm!

  • Bliep
  • Registratie: September 2003
  • Laatst online: 30-09 19:05
Ik ben mezelf aan het klaarstomen voor een master in Artificial Intelligence, dus ik zit nu nog op Bachelor niveau Informatica.
Heb nog zelf nog nooit een Deep Neural Network in elkaar geschroefd, voornamelijk vanwege gebrek aan tijd. Het basisidee is echter niet zo ingewikkeld, immers is een DNN in de basis gewoon een "normaal" neural network on steroids. Vergelijk het met een excel sheetje vs big data ofzo :)

DNN (en AI in het algemeen) zijn zoals je zegt vooruitstrevende technieken. We lijken nu eindelijk na 50jaar onderzoek de belofte waar te kunnen maken en deze technieken echt te kunnen gaan inzetten en dat worden ze bovendien ook al.

Neural networks komen momenteel in twee smaken, feedforward- en recurrent neural networks. De eerste is waar wij nu over discussiëren hier. De recurrent netwerken zijn netwerken met cyclische structuren die schijnbaar onze hersenen beter weten te modelleren en theoretisch krachtigere modellen geven dan de feedforward netwerken. Dat gezegd hebbende, is er vrij weinig onderzoek naar omdat het ons vooralsnog aan computationele snelheid ontbreekt om hier echt iets nuttigs mee te doen.

Je noemt een praktisch voorbeeld over je CAD tekeningen. Begrijp goed dat neural netwerken voorbeelden nodig hebben om te leren. Niet 1, niet 2, maar misschien wel honderden. In de literatuur spreken ze vaak over "labeled data", dit zijn voorbeelden die voorgedefinieerd het goede antwoord bevatten waarmee het netwerk kan leren. Je zult meestal twee sets nodig hebben, eentje om mee te leren en dan eentje om mee te meten hoe goed je netwerk heeft geleerd van die data. We noemen dit "supervised learning".
Naast supervised learning is er ook unsupervised learning. Hierbij hoef je data niet te labelen, wat ontzettend veel tijd scheelt. Er zijn veel technieken te vinden die je hierbij kunnen helpen, maar ik zou dit even als meer advanced zien en voor later laten.

Neural networks zijn zoals gezegd geen magische oplossing. Als ik jou was zou ik eerst eens beginnen met een hello world in python draaiende te krijgen en vanaf daar verder. Je zult op de een of andere manier eerst de concepten van een object georiënteerde programmeertaal moeten leren. Bijna alle grote universiteiten hebben tegenwoordig hun curriculum wel online staan voor iedereen (zie berkley eerder), dus er is gelukkig informatie zat om mee te werken. De leercurve zal op tijden wel behoorlijk stijl zijn vermoed ik :)

Als laatste zou ik voor jouw specifieke voorbeeld misschien eerder kijken naar "State Machines". Heel iets anders dan neural netwerken, maar ook een breed gedragen techniek in de AI.

Acties:
  • 0 Henk 'm!

  • digidokter.net
  • Registratie: April 2014
  • Laatst online: 07-01-2024

digidokter.net

... en 'Niets' van 'Alles' LOL

Topicstarter
Als laatste zou ik voor jouw specifieke voorbeeld misschien eerder kijken naar "State Machines". Heel iets anders dan neural netwerken, maar ook een breed gedragen techniek in de AI.
Pff dat is pittige stof....ik heb nog een lange weg te gaan...bedankt voor uitgebreide info!
Afbeeldingslocatie: http://www.37steps.com/wp-content/uploads/2013/11/Deep-learning.png

[ Voor 13% gewijzigd door digidokter.net op 13-04-2015 00:33 ]

Verstand van 'Alles' van 'Niets'


Acties:
  • 0 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
Bedenk dat deep learning een tool is die in te zetten is om bepaalde problemen op te lossen, maar zeker niet nuttig voor alle problemen.

Is je doel slechts bezig te zijn met vooruitstrevende technieken? Of heb je ook echt een probleem wat je op wil lossen? Dan zou je eerst kunnen kijken en begrijpen of deep learning wel een handige methode is.

Zie deep learning niet als een holy grail, maar als één van de vele tools die je kunt gebruiken om modellen te maken van complexe problemen.

Acties:
  • 0 Henk 'm!

  • digidokter.net
  • Registratie: April 2014
  • Laatst online: 07-01-2024

digidokter.net

... en 'Niets' van 'Alles' LOL

Topicstarter
Reynouts schreef op maandag 13 april 2015 @ 07:29:
Zie deep learning niet als een holy grail, maar als één van de vele tools die je kunt gebruiken om modellen te maken van complexe problemen.
Nee, puur voor mijn interesse in IA en SYFY. En als ik die tool en vaardigheid eigen ben kan ik zelf wel een doel bedenken voor problemen die ik dan wil oplossen....Ik zie het meer als extra vaardigheid voor toekomstige projecten.

Verstand van 'Alles' van 'Niets'

Pagina: 1