2016-05-19 1 views
0

Недавно я загрузил Deeplearning для Java (DL4J), и теперь я немного экспериментирую с сверточными сетями. Я нашел несколько рабочих образцов на домашней странице и в Интернете, например, как классифицировать изображения, т. Е. Распознавать лица. Я точно понимаю, как читаются данные обучения и что изображения помечены меткой, которую должна распознать сеть («Барак Обама - Рисунок 1»). Однако отсюда я немного застрял. Я не могу понять выход. Как описано в статье http://deeplearning4j.org/image-data-pipeline, мы используем ImageRecordReader для чтения изображений и создания учебных данных из него. Но как тогда программа, например, знает, чтобы классифицировать одно изображение как «barack obama», а не «barack obama - образец изображения 1»? Или сеть делает это? Я так не думаю. Моя следующая проблема заключается в том, чтобы изменить приложение, чтобы не просто распознать объект, но и просчитать изображение, вроде как в AlphaGo, оценивая позицию доски, представленную как изображение. Как я буду вводить данные тогда? Я мог бы назвать, например, штаты тренировочных платформ с их счетом ... но я не знаю, хорошо ли это. Надеюсь, это было понятно, помощь и минимальные образцы были бы очень благодарны!Использование DL4J для оценки типа изображения, как в AlphaGo

Спасибо и хороший день Оливер

ответ

0

В примере вы цитируете использует меченых Faces в диком набора данных, который имеет следующую структуру папок:

lfw 
├── Aaron_Eckhart 
├── Aaron_Guiel 
├── Aaron_Patterson 
│ ├── Aaron_Patterson_0001.jpg 

ImageRecordReader класса расширяет abstract BaseImageRecordReader класс, который в своем методе initialize() использует следующие строки (131-134) для создания массива меток:

File parentDir = imgFile.getParentFile(); 
String name = parentDir.getName(); 
if(!labels.contains(name)) 
    labels.add(name); 

Другими словами, он не использует имена файлов JPEG, а не имена его родительской папки.

Что касается вашего второго вопроса:

Моей следующая проблема, то это изменить приложение, чтобы не только распознать объект но evaulate изображения, вроде как в AlphaGo оценки положения доски, представленное в виде изображения , [..] Я мог бы назвать, например, штаты тренировочных платформ с их счетом ... но я не знаю, хорошо ли это вообще.

Я хотел бы предложить, начиная с чтением следующих бумаг: http://www.nature.com/nature/journal/v529/n7587/fig_tab/nature16961_F1.html, и следующий план: https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/ (особенно, начиная от секции AlphaGo).

AlphaGo опирается на два разных компонента: процедуру поиска деревьев и сверточные сети, которые ведут процедуру поиска дерева. [...] В общей сложности три сверточные сети обучаются двух разных типов: двух сетей политики и одной сети ценностей. Оба типа сетей принимают в качестве входных данных текущее состояние игры, представленное как изображение.

[..]

Сеть значение обеспечивает оценку стоимости текущего состояния игры: какова вероятность черного игрока, чтобы, в конечном счете выиграть игру, учитывая текущее состояние? Вход в сеть значений - это целая игровая плата, а выход - это единственное число, представляющее вероятность выигрыша.

Политические сети предоставляют руководство относительно того, какое действие выбрать, учитывая текущее состояние игры.Выходной сигнал представляет собой значение вероятности для каждого возможного правового перемещения (т. Е. Выход сети такой же большой, как плата). Действия (ходы) с более высокими значениями вероятности соответствуют действиям, которые имеют более высокий шанс привести к победе.

Смежные вопросы