Вы пробовали писать свои векторы признаков к arff файл и кормить их weka, просто чтобы увидеть, если ваш подход может работать на всех? В Weka есть много интегрированных классификаторов, включая MLP. Как я понял до сих пор, я подозреваю, что функции и классификатор, которые вы выбрали, не работают.
К вашему оригинальному вопросу: предприняли ли вы какие-либо попытки реализовать нейронную сеть самостоятельно? Если да, то где вы застряли? Обратите внимание, что это не место, чтобы запросить полную рабочую реализацию от аудитории.
Чтобы дать общий ответ на общий вопрос: Обычно у вас есть узлы в MLP. В частности, входные узлы, выходные узлы и скрытые узлы. Эти узлы строго организованы в слои. Входной слой внизу, выходной слой сверху, скрытые слои между ними. Узлы соединены простым способом подачи (выходные соединения допускаются только к следующему более высокому уровню). Затем вы подключаетесь к каждому из своих float
к одному входному узлу и подаете векторы объектов в свою сеть. Для вашего backpropagation вам нужно указать сигнал ошибки, который вы укажете для выходных узлов. Поэтому, если у вас есть имена n
, которые можно отличить, вы можете использовать выходные узлы n
(т. Е. Один для каждого имени). Сделайте их, например, возвратом 1
в случае матча и 0
еще. Вы могли бы очень хорошо использовать один выходной узел и позволить ему возвращать n
разные значения для имен. Вероятно, было бы лучше всего использовать n
совершенно разные персептроны, т. Е. По одному для каждого имени, чтобы избежать побочных эффектов (катастрофические помехи).
Обратите внимание, что выход каждого узла является числом, а не именем. Поэтому вам нужно использовать какие-то пороги, чтобы получить отношение number-name. Также обратите внимание, что вам нужно много учебных данных для обучения большой сети (то есть подчиняться curse of dimensionality). Было бы интересно узнать размер вашего массива float
. Действительно, для сложного решения вам может потребоваться большее количество скрытых узлов или даже скрытых слоев. Обратите внимание, что вам может потребоваться большая оценка (т. Е. cross validation), чтобы найти оптимальную конфигурацию (количество слоев, количество узлов на слой) или найти любую рабочую конфигурацию.
Удачи, любым способом!
так, в чем ваша проблема: извлечение функции, реализация MLP, распознавание лиц? – moooeeeep
то, что вы просите, очень специфично для деталей алгоритма. Наилучший подход - поиск в Интернете материалов, связанных с обратным распространением. – blueskin
@moooeeeep: моя проблема заключается в вставке массива float, который я извлечил из изображения sobel, которое нужно обработать с помощью backpropagation, поэтому backpropagation может узнать мое изображение и распознать его с правильным именем. – anarchy99