Implementering i python
Det IDE (Integrated Developement Environement) vi anvender til at køre python er Jupyter Notebook. Det får man ved at downloade Anaconda 5.1 Vælg Graphical Installer.
Installer Anaconda, start den og vælg Jupyter Notebook.
Nu skal du have percetronalgoritmen og data importeret.
Først downloader du denne zip-fil. Unzipper den og uploader de tre filer ved at bruge uploadknappen i Jupyter.
Åben den der hedder PerceptronIplanen.ipynb ved at klikke på den i Jupiter.
- Læs den
Den laver det vi gjorde i øvelsen. På de samme punkter.
- Prøv at identificere hvad de enkelte dele af programmet gør. Som du selv lige har gjort i øvelsen.
- Udpeg løkker, forgreninger og variable.
- Kør programmet. Fik du den samme linje $w$ som i øvelsen?
Nu kan du åbne den fil der hedder PerceptronGenerelt.ipynb og data.py. Den sidste er data.
- Hvor mange koordinater er der i hvert punkt?
- Hvor mange punkter er der?
- Hvad er forskellen på dette program og det første program?
- Kør programmet.
DR2: Hvad pokker er kunstig intelligens
Slut af med DR2's "Hvad pokker er kunstig intelligens", hvor gennemgår og udvikler et neuralt netværk til at genkende katte, bruger machine learning til at kende forskel på ting i en butik og laver en fake nytårstale, hvor det ser ud til, at det er Lars Løkke der taler.
minutter
Machine Learning for dummies » Neurale netværk: 16:00-25.00
https://www.dr.dk/tv/se/so-ein-ding-forar-2018/-/hvad-pokker-er-kunstig-intelligens#!/
Program på pythonanywhere.com
eta = 0.2 #Lærningsrate
w=[0,1,0.5] #Hyperplan: 0,1,0.5 er startsættet
y=[1,0,0,0,1,1] #Tabel med kendt output: 1 = rød punkt; 0 = blåt punkt
x=[[1,1,1],[1,2,-2],[1,-1,-1.5],[1,-2,-1],[1,-2,1],[1,1.5,-0.5]] #Tabel med placeringer for værdier:
def delta(i):
if y[i]>0: delta = 1
else: delta = -1
return delta
def countOutput(i):
output = 0
for j in range(0,len(x[i])):
output += w[j]*x[i][j]
if output > 0: return 1
else: return -1
def placedCorrectly(i):
return countOutput(i)==delta(i)
def update(w,i):
for j in range(0,len(x[i])):
w[j]=w[j]+delta(i)*eta*x[i][j]
print("Update w(" + str(j) + ")" + str(w)) #Udskriv opdateret linje
return w
def perceptron(w,x):
for i in range(0,len(x)):
print("Punkt :" + str(i))
if not placedCorrectly(i):
update(w,i)
print("Start W : " + str (w)) #Udskriv startlinje
perceptron(w,x) #Kør perceptron
print("Result W : " + str (w)) #Udskriv resultat