Archiv der Kategorie: EDV

Unterwegs lernen mit dem Anki-Karteikartensystem

Ursprünglich am 18. Jan. 2015 um 07:24 Uhr gepostet, aber da es noch immer gut auf Linux, Windows und dem Handy (Android) funktioniert habe ich es jetzt neu gepostet. Danke an die Entwickler!

Karteikarten sind ein nützliches Hilfsmittel, um etwas zu lernen. Heutzutage braucht niemand mehr mit einem Stapel Karteikarten herum laufen oder gar mit einer dazu gehörigen unterteilten Box. Nein Anki app am Smartphone, das man sowieso immer dabei hat, installieren und los geht’s.
Da ich am Handy nicht gerne viel schreibe, finde ich es besonders angenehm, dass es auch eine Version für den PC gibt. Sogar für verschiedene Betriebssysteme, aber in meinem Ubuntu brauche ich nur auf das Software-Center gehen „Anki“ eintippen und auf installieren klicken.
Dann kann man die Karteikarten stapelweise exportieren und mit der Handy-Version importieren.
Hier der Link zur Computerversion – Anki.
Nicht zu vergessen, die vorgefertigten Stapel zu verschiedenen Themen können ebenfalls nützlich sein. Und natürlich das Anki 2.0 Handbuch

Auf Youtube findet man dazu auch jede Menge Tutorials:

(1026)

gedit unterstützt RegExp bzw Regex

gedit ist nicht nur das Standard-Programm für Textbearbeitung in vielen Linux Distributionen, wie meinem Ubuntu, sondern es ist auch für Windows und macOS erhältlich.

In Ubuntu ist die Textbearbeitung schon installiert und bietet ein schnelles, einfaches aber trotzdem mächtiges Werkzeug. Öffnet man „Finden und Ersetzen“ kommt die Dialogbox

Reguläre Ausdrücke auch RegExp oder Regex von regular expression, können in Linux auch gleich mit grep verwendet werden, siehe Regular expressions in grep ( regex ) with examples oder Using grep (and egrep) with Regular Expressions aus Bash programming, aber in gedit finde ich es sehr praktisch.
Vorraussetzung ist allerdings, dass man mit regex umgehen kann. Aber dazu muss man nicht unbedingt Perl Programmierer sein, sondern die Grundlagen sind eigentlich recht einfach und auf regular-expressions.info sehr gut beschrieben. Nach dem Regexp Tutorial ist man für alle schnellen Manipulationen im Textfile gut gerüstet.

(55)

Linux für Kinder – Edubuntu, Childsplay

Wer Ubuntu auf seinem Rechner hat, kann auf Ubuntu-Software mit einem Klick „Childsplay“ installieren und hat schon ein paar Spiele für die Kleinsten bereit. Siehe auch auf childsplay.


Wenn das Kind dann ins Vorschulalter kommt, kann ich nur Edubuntu empfehlen.

Auf Edubuntu Programme bekommen Sie einen Überblick über das Angebot der enthaltenen Programme.

Unter anderem sind das die Programme für

Astronomie & Geographie:

Chemie

Grafik und Konstruktion

Mathematik

Physik

Das neben den erwähnten Programmen auch alle anderen Linux-Hilfsmittel und -Programme verwendet werden können, versteht sich von selbst, egal ob Sie jetzt einen Farbpicker, ein Wörterbuch, Text2Speach, Tipptrainer, Lernspiele oder sonst irgend etwas benötigen. Mir fällt da zum Beispiel gerade Oregano oder die Seite Schaltungssimulation als Fundgrube oder kleine Schatztruhe ein.

Es lohnt sich für Interessierte vielleicht auch, einen Blick auf KDE-Education zu werfen und natürlich auf httpss://www.edubuntu.org/.

(3082)

Maschinelles Lernen mit Python 2b

zurück zu HeliHuBot Planung und Umsetzung


Training ML-Lernalgorithmen für die Klassifizierung

Mit Schwerpunkten auf:

  • Benutzung von pandas, NumPy und matplotlib zum Einlesen, Verarbeitung und Visialisierung
  • Implementierung linear classification Algos in Python

Schema Perceptron:

Achtung – Halt – Stop!
Einerseits ist es schade, dass ich meine Notizen zu „Maschinelles Lernen mit Python“ nun einstellen werde, aber anderseits erspart es mir viel Zeit und Aufwand. Ich wollte gerade das Schema oben besprechen und mir den ersten Python-Code notieren, als ich auf scikit stieß. Da meine Notizen sicher nicht übersichtlicher und besser werden können, erspare ich mir weitere Artikel zu diesen Thema.

Auf SciPy findet man den Einstieg für die hier, zur Verwendung geplanten Module. Auf UC Irvine Machine Learning Repository! findet man über 450 Datensätze und eine ausgezeichnete Beschreibung zu allen Bereichen findet sich auf scikit.

Weblinks und weitere Quellen:
SciPy
UC Irvine Machine Learning Repository!
Iris flower data set

Python und Docs, sowie Tutorial
Python unter Linux: Erste Schritte
PyPy
Künstliche Intelligenz von Stuart Russell und Peter Norvig; ISBN 978-3-86894-098-5
Python Machine Learning von Sebastian Raschka; ISBN 978-1-78355-513-0
Neuronale Netze von Günter Daniel Rey und Karl F. Wender; ISBN 978-3-456-54881-5

(66)

Maschinelles Lernen mit Python 2a

zurück zu HeliHuBot Planung und Umsetzung


Training ML-Lernalgorithmen für die Klassifizierung

Mit Schwerpunkten auf:

  • kurze Vorstellung eines Perceptrons und adaptive linearer Neuronen
  • erster Einblick in ML-Algorithmen

Vom Neuron zum Perzeptron

Ein biologisches Neuron (Nervenzelle) ist schematisch im folgenden grob umrissen:

Wer sich für Details interessiert, findet welche im Kapitel I, meiner Physiologie für Biologen und Mediziner. Besonders 1) Das Ruhemembranpotential, 2) Entstehung und Fortleitung eines Aktionspotentials und 5) Synapsen kann ich als Einstieg empfehlen.

Hier werden wir nicht auf neurophysiologische Details oder auf die Vernetzung (Konnektom) eingehen, sondern wir brauchen an dieser Stelle eigentlich nur zu wissen, dass an den Dendriten Synapsen von anderen Axonenden zu finden sind (stellt den Input dar), die hemmen oder erregen können und somit das Ruhemembranpotential (RM) der Membran (Umgibt den Körper der Nervenzelle) beeinflusst. Das RM summiert sich auf und nur wenn eine bestimmte Schwelle erreicht wird (Alles oder Nichts Prinzip), entsteht ein Aktionspotential am Axonhügel (dort wo das Axon vom Körper abgeht) und breitet sich über das Axon zu den Enden aus, wo sich wieder Synapsen befinden, welche auf die nächsten Dentriten hemmend oder erregend wirken können (unser Output).

Natürlich kann ich an dieser Stelle nicht umhin, W.S. McCulloch und W. Pitts, sowie Frank Rosenblatt zu erwähnen, die Pionierarbeit auf dem Gebiet der KI leisteten, sodass 1958 das Perzeptron, das erste, sehr vereinfachte neuronales Netz, basierend auf dem McCulloch-Pitts neuron, vorgestellt werden konnte. Mit den Perzepron-Regeln konnte Rosenblatt eine Algo entwickeln, der automatisch die optimalen Gewichungskoeffizienten lernte, die dann mit den Input-Features verknüpft entschieden, ob ein Neuron feuerte (die Schwelle erreicht wurde), oder nicht. Im Kontext von supervised learning und der Klassifikation bedeutet das, dass der Algo benutzt werden konnte, um eine Zuordnung zu einer Klasse zu erreichen.
Formal können wir dieses Problem als binäre Klassifikationsaufgabe darstellen, wobei wir zur Vereinfachung unsere beiden Klassen als 1 und -1 bezeichnen. Dann können wir eine Aktivierungsfunktion definieren \theta(z), welche eine lineare Kombination bestimmter Eingabewerte \vec{x} und eines entsprechenden Gewichtsvektors \vec{w} erfordert, wobei z der sogenannte net input ist z = (w1x1 + …. + wmxm):

\vec{w} =  \begin{bmatrix} w\textsubscript{1}	\\ \vdots	 \\ w\textsubscript{m}	 \end{bmatrix} , \vec{x} =  \begin{bmatrix} x\textsubscript{1}	\\ \vdots	 \\ x\textsubscript{m}	 \end{bmatrix}
Wenn die Aktivierung eines bestimmten Beispiels x(i), also die Ausgabe von \theta(z), größer ist als ein definierter Schwellenwert \phi, sagen wir Klasse 1 oder andernfalls Klasse -1 voraus.

\phi(z) = \biggl\{  \frac{1 if z \geq \theta}{-1 sonst}
Was die Notation betrifft, greife ich hier inkonsequent auf die grundlegende und oft übliche, kurze Schreibweise zurück, wie sie hier zu finden ist

Bemerkenswert ist hier, dass somit statt \sum\nolimits_{j=0}^m einfach xjwj = wTx geschrieben werden kann.

Die folgende Skizze zeigt, wie der Net-Input einen binären Output ergibt und wie die Aktivierugsfunktion benutzt werden kann, um zwischen zwei linear unterscheidbaren Klassen zu unterscheiden.

Wie oben schon angemerkt, ist die Tatsache, dass ein Neuron ab einen bestimmten Schwellwert feuert im MCP-Neuron einfach umgesetzt. Rosenblatt’s Initialisierungsregel für das Perzeptron ist daher einfach zu umschreiben:
1.) Initialisiere die Gewichtung mit 0 oder kleinen zufälligen Zahlen
2.) für jedes Training, Beispiel x(i) sind die folgenden Schritte durchzuführen
a.) berechene den Ourtput-Wert ŷ
b.) aktualisiere die Gewichtung
Der Output-Wert ist hier das vorausgesagte Class-Label mittels besprochener Heaviside step function und der gleichzeitigen Aktualisierung der Gewichtung des Gewichtungsvektor wi also wi := wi + \Deltawi
\Deltawi mit dem wi aktualisiert wird, wird mit der Perceptron Lernregel berechnet \Deltawi = \eta (y(i) – (ŷ(i))xj(i)
In dieser Lernregel ist \eta die Lernrate (zwischen 0,0 und 1,0)
yi ist das Klass-Label und
ŷi ist das vorausgesagte Klass-Label.
Es müssen alle Gewichtungen aktualisiert werden, bevor ŷi neu berechnet wird.
\Deltaw0 = \eta (y(i) – (output(i))
\Deltaw1 = \eta (y(i) – (output(i))x1(i)
\Deltaw2 = \eta (y(i) – (output(i))x2(i) ….
Wenn das Klass-Label richtig vorausgesagt wird, bleibt die Gewichtung unverändert.

Weblinks:
httpss://www.cs.cmu.edu/~zkolter/course/linalg/linalg_notes.pdf von Linear Algebra Review
Weitere Quellen
Künstliche Intelligenz von Stuart Russell und Peter Norvig; ISBN 978-3-86894-098-5
Python Machine Learning von Sebastian Raschka; ISBN 978-1-78355-513-0
Neuronale Netze von Günter Daniel Rey und Karl F. Wender; ISBN 978-3-456-54881-5

(118)