Archiv der Kategorie: IT

Azure Sphere – Microsoft veröffentlicht sein erstes Linux-Produkt

Microsoft hat ein Produkt veröffentlicht, das einen eigenen Linux-Kernel enthält, nämlich, nein nicht MS-Linux, sondern Azure Sphere. Überrascht mich das? Ja es überrascht mich, dass es so lange gedauert haben. Bei DOS waren sie wesentlich schneller.
Sie dazu „Introducing Microsoft Azure Sphere: Secure and power the intelligent edge„.

Das Azure Sphere-Betriebssystem enthält einen benutzerdefinierten Linux-Kernel sowie sichere Anwendungscontainer, die Code unterteilen. Da Microsoft mehr daran interessiert ist, Azure-Dienste zu verkaufen, als zu versuchen, Windows überall zu installieren, ist die Abhängigkeit von Linux für einen benutzerdefinierten Kernel hier offensichtlich.
Naja, freie, hervorragende Software steht auch Microsoft zur Verfügung und MS-Software gehört natürlich nach wie vor nur Microsoft.
[amazon_link asins=’3836258544′ template=’ProductCarousel‘ store=’helmesnotiz-21′ marketplace=’DE‘ link_id=’59968a4d-439b-11e8-9e05-3da16b99bd15′]

Sei nice und lass die CPU in Ruh‘

Ja, manche Programme ärgern mich, weil sie unverschämt lange 100% der CPU nutzen. Dann geht nicht einmal mehr „top“, weshalb ich sie von vornherein mit einem höheren Nice-Wert (niceness) starte.
Ausführen von Programmen mit verschiedenen Prioritäten. Mit „top“ sehe ich z.B., dass der Firefox lästig wird und mit „sudo renice 10 -p PID“ erhöhe ich dann seine niceness und schon gibt er Ruhe.
nice sagt uns allerdings:

Die Ausführungsgeschwindigkeit eines Befehls bzw. eines Programms kann zwar durch nice beeinflusst werden, hängt aber auch maßgeblich von anderen Faktoren ab wie z.B. der Gesamtzahl der laufenden Prozesse, Zugriffsgeschwindigkeit auf die Festplatte etc.

Aber ein zeitweiliges Ruckeln oder ein wenig langsamer stört mich nicht, nur ein „einfrieren oder aufhängen“ vertrage ich nicht und muss ich in Linux auch nicht vertragen, denn dank nice und renice laufen meine Programme immer ganz nett.

23.3 nice: Run a command with modified niceness
GNU Coreutils
Welcome to the Free Software Directory


Übrigens, „sudo“ benutze ich, wenn ich als normaler Benutzer mein System benutze und dann schnell root-Rechte brauche. Für Arbeiten als Sys-Admin ist der „root“ wesentlich praktischer, weshalb ich den in Ubuntu auch immer als erstes ein pw gebe, damit ich als solcher arbeiten kann – sudo passwd root – und schon habe ich einen neuen Job. 😉
Da ich Firefox z.B. sowieso immer brauche, starte ich ihn gleich mit dem Betriebssystem automatisch mit und zwar mit niceness 10.

Sie wähnen sich anonym und werden dabei spezialüberwacht

Es gibt viele Dienste, die Anonymität anbieten. Lese dazu
Web-Proxy: ohne Installation anonym im Browser surfen
Web-Proxy: ohne Installation anonym im Browser surfen
Anonym surfen: Wirksamer Schutz gegen den Lauschangriff ….
Wenn Sie nach Listen anonymous proxy suchen, werden Sie genügend finden und man kann dann einfach die IP im Browser eintragen und manche wähnen sich dann schon anonym.
Dazu ein Artikel aus dem Jahre 2012, der mir gefällt, weil ich damals als Squid-Fan ähnliche Experimente durchführte, Hacker warnt vor mitlesenden Proxy-Diensten.
Es ist wirklich sehr einfach, genau diese Leute auszuspionieren, die glauben, dass sie anonym wären.

Maschinelles Lernen mit Python 2a

[latexpage]
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 $latex \theta(z)$, welche eine lineare Kombination bestimmter Eingabewerte $latex \vec{x}$ und eines entsprechenden Gewichtsvektors $latex \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 + $latex \Delta$wi
$latex \Delta$wi mit dem wi aktualisiert wird, wird mit der Perceptron Lernregel berechnet $latex \Delta$wi = $latex \eta$ (y(i) – (ŷ(i))xj(i)
In dieser Lernregel ist $latex \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.
$latex \Delta$w0 = $latex \eta$ (y(i) – (output(i))
$latex \Delta$w1 = $latex \eta$ (y(i) – (output(i))x1(i)
$latex \Delta$w2 = $latex \eta$ (y(i) – (output(i))x2(i) ….
Wenn das Klass-Label richtig vorausgesagt wird, bleibt die Gewichtung unverändert.

Weblinks:
https://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

Debian 10 versus Fedora 33, Ubuntu 20.10 und Windows 10

Unlängst habe ich gerade wieder ein Loblied auf Ubuntu 20.10 angestimmt, aber dann musste ich leider feststellen, dass mein Drucker nicht mehr funktionierte. Ich konnte ihn auch nach stundenlanger Beschäftigung und Gutenberg-Treibern nicht dazu bringen, wieder zu funktionieren. Laut Protokoll hat er gedruckt und war alles in Ordnung, aber es hat sich nichts getan. Also probierte ich es in Fedora 33 und Windows 10 und dort funktioniert er.
Linux verwende ich seit 1993 und zwar mit Slackware, dann Suse, Mandrake (jetzt Mandriva) und schließlich seit gut 15 Jahren Ubuntu am persönlichen PC. Am Server verwendete ich immer ausschließlich Debian und zeitweise zusätzlich auch FreeBSD.
Damit will ich sagen, dass ich schon viel Erfahrung mit Linux habe, vor allem auch weil ich lange Zeit meine Server selbst betrieben haben. Weshalb ich nie auf die Idee kam, Debian auch am PC zu nutzen ist mir wirklich ein Rätsel, aber so ist es nun einmal.

Jetzt vergleiche die 4 Betriebssysteme kurz und zwar nur im Hinblick auf den Gebrauch am PC. Da möchte ich ein möglichst bequemes System, wobei Sicherheit, Stabilität weniger Rolle spielen, aber mir eben die Benutzerfreundlichkeit wichtig ist und in einer graphischen Oberfläche herum klicken ist doch bequemer, als das Tippen im Terminal. Ja, deshalb verwendete ich wahrscheinlich Debian nicht am PC, weil ich es gewohnt war mit Debian auf Sicherheit und Stabilität zu achten und natürlich ohne graphische Oberfläche arbeitete.
Seit gut 15 Jahren hatte also immer nur Ubuntu und Fedora am PC, wobei Ubuntu mein Standardsystem war. Seit ich ein Windows 9 geschenkt bekam, installierte ich es auch. Unlängst habe ich sogar das erste mal seit DOS und Windows 3.11 € 19.- für ein Windows 10 ausgegeben. Ja, bis zu € 20.- kann ich für ein OS, das ich eigentlich nicht brauche ausgeben, denn manche Anwendungen gibt es nur für Windows und laufen doch schneller in Windows als in Wine und außerdem kann ich mir dann ansehen, was die armen Windows-Benutzer so mitmachen müssen.
Nun zu den 4 Systemen:

Über Fedora will ich hier gar nicht viel sagen, aber es ist stabil, zufriedenstellend und hat eine eher dürftige Dokumentation.

Zu Windows 10 sage ich auch nicht viel, denn die Qualen der Installation, Administration und Benutzung sind ja jedem bekannt und das Geldbörserl der Benutzer versteckt sich auch sofort, sobald es Microsoft hört. Aber wer einen PC und die teuersten Speichermedien hat, der sehr, sehr schnell ist und dem es nichts ausmacht, wenn er den PC ab und zu, also wenn MS es gerade will, einen halben Tag nicht nutzen kann, weil Updates laufen, dem kann ich nur viel Geduld und Glück wünschen. Irgendwie schon bewundernswerte Menschen, die sich so etwas antun ohne dabei depressiv zu werden. Die iso-Datei ist übrigens 6,2 GB groß. Also da blieb das Verhältnis ungefähr gleich, denn früher, also vor fast 30 Jahren, musste ich 3 DOS-Disketten und 10 Disketten für Windows 3.1 installieren und mein Linux passte auf eine 3,5″-Diskette passte, also weniger als 1,4 MB hatte.

Zu Ubuntu muss ich leider sagen, obwohl ich es in den letzten 15 Jahren oder länger fast ausschließlich nutzte, dass ich seit dem Wechsel zu Unity und dann wieder zurück zu Gnome etwas enttäuscht bin. Das oben angeführte Problem mit dem Drucker ist nur ein Beispiel dafür und die immer größere Abhängigkeit von Canonical, sowie ihre angebliche Vorhaben (z.B. automatische Updates) gehen mir jetzt schon zu weit. Ja, ein geduldiger, quasi entmündigter Windows-Benutzer findet vielleicht, dass es immer benutzerfreundlicher wird.

Nun zu Debian, das als Basis für Ubuntu verwendet wird. Daher habe ich auch schon die spaßige Übersetzung des afrikanischen Wortes Ubuntu gehört – Ubuntu bedeutet soviel, wie „für die, die unfähig sind ein Debian zu konfigurieren“. 😉 Eigentlich ein schlechter Witz, denn am PC musste ich gar nichts konfigurieren bei Debian. Wie gesagt, mit Debian habe ich zwar viel Erfahrung, allerdings nur mit der Server-Version, also ohne graphischer Oberfläche.
Nun, jetzt installierte ich mir Debian am PC und es gibt nur einen einzigen Grund mich ein wenig zu ärgern. Nämlich deshalb, weil ich nicht früher auf die Idee kam. Debian ist von Anfang bis zum Ende ein Genuss. Das beginn schon beim Herunterladen der ISO. Man kann auswählen zwischen einer kleineren Version, die nur die nötigsten Programme enthält und 300 bis 500 MB groß ist, oder der Vollversion, die mit 4 GB leicht auf eine DVD passt. Übrigens hatte ich ein Linux, dass auf eine 3,5″-Diskette passte, also weniger als 1,4 MB hatte.

Zum Download werden Torrents angeboten, weshalb ich die ISO in weniger als 5 Minuten hatte. Der richtige Genuss begann aber dann bei der Installation. Man hat Optionen und Werkzeuge und bei jedem Schritt wird einem gezeigt, was das System macht und mittels Fortschrittsbalken, wie weit es ist. Man wird sogar gefragt, ob man dies oder das möchte und z.B. Daten an Debian übertragen werden sollen oder nicht usw. – genial, ich bin nicht entmündigt und habe keine Ahnung was das System tut und wie lange es noch braucht, sondern ich bin echt der Besitzer und kann selbst entscheiden und zusehen, was mein System macht. Man kann u.a. auch die graphische Oberfläche auswählen und mir ist Gnome am liebsten. Also wählte ich Gnome und nach der Installation hat alles wunderbar funktioniert. Drucker einschalten – und schon wurde er automatisch erkannt – drucken – funktioniert. Und das, obwohl Ubuntu ein Linux ist, dass auf Debian aufbaut. Debian hat auch eine sehr gute Dokumentation, die ich hier noch hervorheben möchte.

Naja, ich kann Debian und Gnome nur empfehlen und bedanke mich bei den Teams, die da großartige Arbeit leisten.

Übrigens, liebe Windows-Benutzer bitte nehmt es mir nicht übel, ich meine es wirklich nicht böse, sondern ihr tut mir ganz aufrichtig leid. 😉