Sieht aus wie eine Ente, schwimmt wie eine Ente, quakt wie eine Ente, dann ist es eine Ente
Diese Schlussfolgerung entsteht anhand von Vergleichen zu der geistigen Representation, was der Argumentierende unter einer Ente versteht. Durch gezielte Fragen kann man mit Hilfe der Antworten beurteilen ob die Behauptung nützlich oder eventuell eine Lüge ist z.B.:
Welche Erfahrugen hast du mit Enten gehabt? Echte Beobachtungen oder aus dem Fernsehen?
Wie schmeckt eine Ente? Selbst zubereitet? Wie?
Welche Vögel haben eine Ähnlichkeit mit Enten?
usw.
Der besagte Professor hat übrigens auch ein Unternehmen. Über das Motiv bin ich mir allerdings uneinig. Entweder sieht er eine potenzielle Anwendung in seinem Fachbereich oder es ist seine starke Verbindung zu der Uni, die in der behandelten Thematik führend ist.
ist es üblich, dass man z.B. bei einer Bachelorarbeit eine Kopie des Quellcodes an den Professor abgeben muss? Wenn man zusätzliche Funktionen für die Webseite der Hochschule entwickelt ist es auch vollkommen nachvollziehbar. Was ist aber wenn die Themen kommerziell angelegt sind?
Noch ein Beispiel: Man wählt sich ein eigenes Thema aus und vereinbart mit den beiden Betreuern den Quellcode nicht auszuliefern. Nach einiger Zeit fängt einer der Betreuer an ungewöhnliches Verhalten zu zeigen. Das blöde ist, dass bei ihm noch eine mündliche Prüfung absolviert werden muss. Mich würden speziell Erfahrungen im Bezug auf das letzte Beispiel interessieren.
Es handelt sich hierbei nicht um ein Unternehmen und genau genommen geht es nicht um einen Rechtsfall, sondern um eine Nachweißbarkeit ungewöhnlicher Umstände im Sinne einer Reportage.
Ich hab Screenshots des E-Mail-Verkehrs gemacht, der eventuell den Betreiber belasten kann. Gibt es da eine Software, die gleichzeitig eine Signatur erstellt und die Echtheit beweist?
Zudem hab ich Kopien von PDF-Dateien gamacht, die auch den Betreiber belasten könnten. Ich will mir später keine Manipulation vorwerfen lassen müssen.
gibt es eine technische Möglichkeit zu beweißen, dass eine Datei oder ein Thread auf einem Server zu einer bestimmten Zeit in einem bestimmten Zustand existiert hat?
Bei Threads kann man Screenshots machen, aber mit Dateien funktioniert das nicht.
jetzt stellt sich für mich die Frage, ob eine dieser (oder eine beliebige) Techniken vernünftig mit der Dynamik komplexer Bedingungen innerhalb der Daten umgehen kann z.B. haben 20 Grad C an einem Wintertag die selbe Erklärungskraft wie 20 Grad C an einem Sommertag? Die Erklärungskraft kann doch je nach Bedingung unterschiedlich sein?
Mit neuronalen Netzen löst man das Problem in dem man einfach mehrere Netze verwendet. Im Wetterbeispiel für jeden Monat oder jede Woche ein eigenes Netz.
Wird der Effekt von nur jeweis einer Variable auf die Zielvariable erklärt oder kann auch die gemeinsame Wirkung von 2, 3, 4,.., 100 Variablen erklärt werden? Die Frage bezieht sich auf statistische Verfahren.
Aber wir sollten darauf achten dass wir beim Thema Datenaufbereitung bleiben.
Der Zug ist schon abgefahren
Zitat
Noch besser parallelisieren lässt sich das Ganze indem pro CPU ein MLP werkt. Hierzu kann ein Producer/Consumer erstellt werden (zB mittels BlockingCollection<T> ab .net 4.0 oder vorher mittels SyncQueue <T> - Eine praktische Job-Queue). Wichtig dabei ist nur dass jeder Thread sein eigenes MLP instanziiert damit gemeinsame Zugriffe vermieden werden können.
Naja die Software ist für eine Bachelorarbeit und muss auch nicht ausgehändigt werden. Hab schon ohne Multi-Threading das Gefühl übers Ziel hinauszuschießen.
Danke nochmal für die verständliche Wissensvermittlung
Ich wieß jetzt nciht worauf du genau hinauswillst, aber ich denke das wurde bereits geschrieben: (0,1)-Transformation. Das soll zwar kein Allheilmittel sein, aber für die meisten realen Fälle ist es die beste Wahl.
Naja ein Softwareentwickler ist nicht zwangsläufig ein Experte (in diesem Fall ist der Begriff gut gemeint) in Wettervorhersagen, Aktienprogranosen usw. d.h. man muss rausfinden welche Variablen einen Erklärungswert auf die Zielvariablen haben und dementsprechend seine Inputs gestalten.
Dafür gibt es ja einige Verfahren z.B.:
Korrelationsanalyse: Gibt es einen Zusammenhang?
Regressionsanalyse: Welche Art von Zusammenhang besteht usw.?
Zitat
Welches Trainingsverfahren verwendest du? Mit ResilientPropagation hab ich eigentlich die besten und zuverlässigsten Ergebnisse in kürzester Zeit erreicht. Es ist mMn um Ecken besser als das (klassisiche) Backpropagation.
Backpropagation. AForge hat das oben erwähnte Lernverfahren nicht.
Zitat
Nebnebemerkung 2:
Wozu verwendest du das Netz? Eventuell gibt es besser Möglichkeiten als das MLP.
Wenn du nicht willst brauchst du dies nicht zu beantworten, auch nicht wenn du den Code eh nicht (Komplett) um-/neuschreiben willst (ich hab natürlich keine Ahnung wie dein Code ausschaut, es kann also mehr oder weniger aufwändig sein).
Ich muss nur 3 Werte vorhersagen, wobei das größte Netz 49 Inputs hat. Die wichtigste Bedingung ist Simulierbarkeit d.h. Millionen von Zugriffen sollten nicht länger als ein paar Sekunden dauern. Zwar bieten Entscheidungsbäume ein größeres Maß an Genauigkeit, sind aber langsamer und haben keine Generalisierungsfähigkeit.
Bei dem verwendeten Netz handelt es sich um ein MLP mit 3 Schichten und sigmoider Aktivierungsfunktion. 4 Schichten haben sich nicht als vorteilhaft erwiesen d.h. längere Trainingszeit ohne zusätzlichen Erfolg.
Ich hab die Daten instinktiv normalisiert und erst im Nachhinein herausgefunden, dass die Inputs nicht auf einen Wertebereich beschränkt sind. Man hat z.B. bei Wetterdaten Variablen wie Temperatur (5.2 Grad C) oder Höhe über dem Meeresspiegel (5000m). Dann ist es logisch nachvollziehbar, dass die Werte zu Instabilität führen können.
Noch eine Frage. Hat es Vorteile -1 statt 0 für einen nicht vorhandenen Wert zu nehmen? Gibt es dafür Beispiele?
Bei 0 weiß das Netz gar nicht, dass der Wert existiert. -1 stellt aber eine Information da und könnte einen Effekt auf die Zielvariable haben.
Oder man macht eine Korrelations-/Regressionsanalyse mit beiden Varianten und überprüft die Erklärungskraft.
Gibt es bei der Inputauswahl ein best practice mit den oben erwähnten Verfahren oder ist es eher try and error?
so wie ich das verstehe müssen die Outputs dem Wertebereich der verwendeten Aktivierungsfunktion entsprechen.
Bei den Inputs können alle reelen Zahlen verwendet werden. Stimmt das soweit?
Welche Vorteile würde eine Normalisierung der Inputs mit sich bringen?
Beschleunigung des Lernens? Vermeidung von Fehlern?
In der Praxis läuft das Programm zu meiner vollsten Zufriedenheit aber das theoretische Verständnis hinkt noch etwas hinterher ;
der Versuch mit der TextBox hat funktioniert, allerdings geht es nur, wenn man die Zeile mit dem iframe entfernt. Nun läuft in der Map.htm ein JavaScript-Steuerelement mit einem Timer. Da sollte auf die aktuelle Position zugegriffen werden. Die Sessionvariable gibt den richtigen Wert in der TextBox aus. Leider kann ich aber nicht aus der Map.htm darauf zugreifen. position="<%=Account.Position%>"; hat einen leeren Wert. Wie könnte ich an die Daten rankommen?
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<contenttemplate>
<asp:Timer id="Timer1" runat="server" OnTick="Timer1_Tick" Interval="1000"></asp:Timer>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
</contenttemplate>
</asp:UpdatePanel>
<% Response.WriteFile("/LogIn/Map/Map.htm"); %>
</asp:Content>
protected void Timer1_Tick(object sender, EventArgs e)
{
Account.Position = DbData.GetPosition(); //Sessionvariable setzen
TextBox1.Text = Account.Position; //funktioniert
}
//Account.cs
public static string Position
{
get
{
bool keyFound = false;
for (int i = 0; i < HttpContext.Current.Session.Keys.Count; i++)
{
if (HttpContext.Current.Session.Keys[i].Equals("Position"))
{
keyFound = true;
break;
}
}
if (keyFound)
return (string)HttpContext.Current.Session["Position"];
return "0.0";
}
set { HttpContext.Current.Session["Position"] = value; }
}
//Map.htm
<html>
<head>
<script type="text/javascript">
var position = 0.0;
function init()
{
window.setInterval("doSomething()", 1000);
}
function doSomething()
{
position="<%=Account.Position%>";
}
</script>
</head>
<body onload="init();">
<div style="width:100%; height:100%" id="map"></div>
</body>
</html>
ein Timer tickt jede Sekunde und holt sich aktuelle Daten aus der Datenbank. Auf einer üblichen aspx Seite funktioniert es wunderbar. Sobald man das Ganze in einen ContentPlaceHolder plaziert, wird das Tick-Ereignis nicht mehr ausgelöst. Weiß jemand einen Rat?
hat sich erledigt. Es ging darum einen Marker in OpenLayers anzulegen und diesen zu bewegen. Allerdings gibt es verschiedene Möglichkeiten das umzusetzen und mittlerweile hab ich die richtige gefunden.
wenn man sich den Link direkt anschaut ist ja alles in Ordnung. Das Problem tritt erst auf, wenn man das Bild bearbeitet. Ich hab den weißen Rand transparent gemacht, sodass nur ein rundes Schild übrig bleibt. Beim ersten laden sieht das Bild auch noch gut aus. Sobald man die Fenstergröße des IE verändert oder das Bild mit Hilfe von JavaScript bewegt, tauchen auf einmal schwarze Ränder auf.
edit: Hab testweise ein grünes Rechteck auf eine transparente Fläche gezeichnet. Dieses kriegt auch einen schwarzen Rand. Es liegt also nicht direkt am Bild. Könnte das JavaScript-Steuerelement, das zum Darstellen verwendet wird, dafür verantwortlich sein?
ich hab bei diesem Bild den weißen äußeren Rand mit Paint.NET transparent gemacht (Zauberstab + Entf). Im IE 8 bekommt das Bild auf einmal schwarze Ränder, sowohl als png als auch als gif. Bei einem anderen Browser funktioniert es einwandfrei. Wie also könnte man die schwarzen Ränder entfernen?
eine html-Seite, die ein JavaScript-Steuerelement beinhaltet wird beim Page_Load-Event mit Response.WriteFile("MyPage.htm") geladen und in einem UpdatePanel dargestellt. Wenn man die Größe in der css-Formatierung in Pixel angibt wird die Komponente richtig dargestellt. Allerdings funktioniert das ganze nicht mit Prozentangaben. Hat jemand einen Rat?
bei dem unten stehenden Server gibt es das Problem, dass die CPU-Auslastung auf 100% steigt wenn der Client verschwunden ist. Es wird keine Exception geworfen und wenn man SendMessageBack ausschaltet hilft es auch nicht weiter. Habt ihr einen Tipp für mich?
using System;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;
namespace TCPServer
{
class Server
{
TcpListener tcpListener;
Thread listenThread;
public void Start()
{
tcpListener = new TcpListener(IPAddress.Any, 2000);
listenThread = new Thread(new ThreadStart(ListenForClients));
listenThread.Start();
}
private void ListenForClients()
{
tcpListener.Start();
while (true)
{
TcpClient client = tcpListener.AcceptTcpClient();
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
clientThread.Start(client);
}
}
private void HandleClientComm(object client)
{
while (true)
{
TcpClient tcpClient = (TcpClient)client;
if (tcpClient.Connected)
{
NetworkStream clientStream = tcpClient.GetStream();
byte[] message = new byte[tcpClient.ReceiveBufferSize];
int bytesRead = 0;
do
{
try
{
bytesRead = clientStream.Read(message, 0, tcpClient.ReceiveBufferSize);
}
catch (Exception)
{
break;
}
if (bytesRead == 0) break;
String result = ASCIIEncoding.ASCII.GetString(message, 0, bytesRead);
String ip = tcpClient.Client.RemoteEndPoint.ToString();
Console.WriteLine(ip + " " + result);
Thread sendThread = new Thread(new ParameterizedThreadStart(SendMessageBack));
sendThread.Start(tcpClient);
Thread importThread = new Thread(new ParameterizedThreadStart(ImportInDB));
importThread.Start(result);
} while (clientStream.DataAvailable);
}
}
}
private void SendMessageBack(object client)
{
try
{
TcpClient tcpClient = (TcpClient)client;
NetworkStream clientStream = tcpClient.GetStream();
byte[] message = ASCIIEncoding.ASCII.GetBytes("OK");
clientStream.Write(message, 0, message.Length);
clientStream.Flush();
}
catch (Exception)
{
Console.WriteLine("Client ist verschwunden.");
}
}
private void ImportInDB(object data)
{
//kommt noch
}
}
}
die Übertragung des Kartenmaterials ist eigentlich nicht das Problem. Je nach Bedarf können die Rohdaten auf dem Server oder Client in Bilder umgewandelt werden. Nur stellt sich für mich die Frage wie man mit einer freien Kamera auf ein 2d Bild blicken und sich darin bewegen kann. Flash wäre auch eine Alternative, bei Silverlight weiß ich nicht ob es unter Mono läuft.
ich hab eine 2d Landkarte als Bitmap und würde diese gerne in einer 3d Ansicht darstellen. Das Ziel ist ein Look and Feel wie bei Google Earth d. h. die Kamera fliegt über eine 2d Map im 45° Winkel. Wie könnte man das am besten für ASP.NET 2 realisieren?
Hab den Server zum Laufen gebracht und ich muss sagen: es läuft wie geschmiert. Auch die Datenbankanbindung zu PostgreSQL läuft reibungslos. Für die, die eine ähnliche Aufgabe haben ist hier eine Anleitung wie man einen Ubuntu/ASP.NET Server aufsetzt: klick.