2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 инвариантность нейросети к переносу
Сообщение08.10.2007, 23:26 


08/10/07
9
Не обладая достаточной эрудицией в вопросе, хочу узнать, как можно сделать нейросеть (какова она должна быть), чтобы она вполне могла с картинки распознавать, скажем, горизонтальные линии, где бы они не находились и какой бы длины они не были.

Более конкретно: первый слой такой сети должен быть сенсорным - т.е. к каждому пикселю нейрон, у него на выходе 1, если пиксел черный и 0 в ином случае. Картинка бинаризована.
И в сети должен быть один нейрон, на выходе которого 1, если линия есть и 0 если нет. Можно считать, что достаточно лишь наличия группы горизонтальных черных пикселов без пропусков, именно "линию" иметь необязательно.

И еще интересно, решается ли такая задача в более общем случае?

Заранее благодарен за помощь!

 Профиль  
                  
 
 
Сообщение09.10.2007, 11:05 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Решать такие задачи нейросетью - примерно что забивать гвозди ноутбуком, имхо. Для такой задачи несложно написать непосредственный алгоритм работающий с картинкой, если все грамотно сделать, то гораздо быстрее будет. Нейросети не для таких задач существуют.

 Профиль  
                  
 
 
Сообщение09.10.2007, 16:10 


08/10/07
9
В том то и дело, что всем известно, что нейросети не для таких задач :) Но я хочу знать не это, я хочу знать, как ее решить нейросетью!

Хочу обратить внимание, что эта задача - не практическая, т.е. что-то вроде головоломки с потенциально возможными практическими последствиями

Кроме того, также всем известно (но почему-то все об этом забывают), что зрительной корой любого животного (достаточно развитого) задача решается именно в такой постановке.

Итак, как быть?

 Профиль  
                  
 
 
Сообщение07.11.2007, 10:05 


22/10/07
54
neurofish писал(а):
Кроме того, также всем известно (но почему-то все об этом забывают), что зрительной корой любого животного (достаточно развитого) задача решается именно в такой постановке.

Не так уж и известно. И с чего вы взяли, что любое животное, даже человек, видя изображение прямой линии решает эту задачу именно в такой постановке, в смысле находит параметры данной линии ;) ?

Что такое прямая линия?

 Профиль  
                  
 
 
Сообщение09.11.2007, 22:09 


08/10/07
9
был простой эксперимент, кошке показывали простые фигуры (линии в том числе) и измеряли потенциал на некотором количестве нейронов зрительной коры. Для одного объекта находился нейрон, который был возбужден независимо от положения объекта.
Конечно, такие эксперимента имеют долю неопределенности, допустим, нельзя сказать что некий нейрон реагирует именно на линию, может быть, на на некое множество объектов, куда линия входит. Окончательно и достоверно такие эксперименты сейчас провести нельзя.
И тот же Глезер утверждает, что в престриарной коре есть такой механизм (правда, это очень смелое положение), кроме того, есть хитрый механизм в той же коре как объединение рецептивных полей и набор полей одинакового размера, отличающихся только сдвигом. Это похоже на сверточные сети. Однако как можно обучить некую сеть с подобными свойствами без копирования весов?

 Профиль  
                  
 
 
Сообщение12.11.2007, 10:36 


22/10/07
54
Сравните размеры Вашей модели неросети с реальным мозгом человека и станет очевидно, что далеко не все функции мозга можно воспроизвести прямой имитацией. Просто не хватит ресурсов. Чтобы достичь хоть какого то уровня интеллекта придется большинство задач решать прямыми математическими методами, интегрировав их с нейросетью.

Насчет вашего последнего поста. Наличие одного возбужденного нейрона, даже для человека, не тоже самое что понятие о прямой линии, как абстрактном математическом объекте, определенном в рамках математической теории. Даже если получится достичь узнавания прямой, что не так уж трудно, задача остается не решенной, т.к. не определены основные определяющие параметры прямой. Баз таковых параметров, говорить о прямой линии не имеет смысла. Найти эти параметры при помощи нейросети тоже не сложно, достаточно реализовать сетевой аналог, реализующий оптимизацию параметрической модели. Однако, совершенно очевидно, что в природе это не реализуется, т.к. в природе нет теории о прямых линиях, там всё по другому. А вы хотите реализовать, как в природе... Для нахождения этих параметров существуют более простые, прямые математические методы. Поэтому Вам и сказали, что решение этой задачи при помощи нейросети, это всё равно что забивать гвозди ноутбуком.

 Профиль  
                  
 
 
Сообщение12.11.2007, 22:02 


08/10/07
9
CyberCraft писал(а):
Сравните размеры Вашей модели неросети с реальным мозгом человека и станет очевидно, что далеко не все функции мозга можно воспроизвести прямой имитацией. Просто не хватит ресурсов. Чтобы достичь хоть какого то уровня интеллекта придется большинство задач решать прямыми математическими методами, интегрировав их с нейросетью.

Насчет вашего последнего поста. Наличие одного возбужденного нейрона, даже для человека, не тоже самое что понятие о прямой линии, как абстрактном математическом объекте, определенном в рамках математической теории. Даже если получится достичь узнавания прямой, что не так уж трудно, задача остается не решенной, т.к. не определены основные определяющие параметры прямой. Баз таковых параметров, говорить о прямой линии не имеет смысла. Найти эти параметры при помощи нейросети тоже не сложно, достаточно реализовать сетевой аналог, реализующий оптимизацию параметрической модели. Однако, совершенно очевидно, что в природе это не реализуется, т.к. в природе нет теории о прямых линиях, там всё по другому. А вы хотите реализовать, как в природе... Для нахождения этих параметров существуют более простые, прямые математические методы. Поэтому Вам и сказали, что решение этой задачи при помощи нейросети, это всё равно что забивать гвозди ноутбуком.

У меня нет желания и необходимости воспроизводить все функции мозга. Нужна только инвариантность к переносу обученных объектов. И это не практическая задача. Если она будет решена умозрительно, я буду удовлетворен.
Мне не подходят математические методы, мне они известны, но они специфичны. Конечно, в моей постановке задачи есть нехорошие неявные предположения: предполагается, что сеть обучается этому объекту, к переносу которого она гипотетически инвариантна. Хотелось бы обучать сеть не для всех возможных положений объекта, а всего для двух например. Чтобы были основания считать, что этот объект является таковым независимо от положения в матрице яркостей. Кроме того, бросьте эту линию, это пример объекта, а не фиксированное условие. Для простоты. Ни о какой абстрактной математике речи тут не идет. Показали сети один объект на месте 1, показали его же (в точности его же, для простоты) в месте 2, каким образом сеть "сообразит", что тут нечисто? Нет необходимости определять координаты или параметры объекта, только его наличие. Здесь еще один подвох - получается, сеть должна отличать данный объект от всех остальных, которым она не обучалась.
Да, я хочу забить гвоздь ноутбуком. Без последствий для окружающих :)

 Профиль  
                  
 
 
Сообщение13.11.2007, 20:20 


22/10/07
54
neurofish писал(а):
Нет необходимости определять координаты или параметры объекта, только его наличие.

Есть древний, но эффективный метод стохастической геометрии, решающий эту задачу в такой постановке. Он легко моделируется в сетевом варианте.

Суть метода:
Пусть детектор(поле зрения) распознавателя имеет круглую форму.
Пусть для простоты объект, который нужно распознать бинаризован, т.е. имеет 1 градацию яркости. В качестве объекта возьмем любую букву или цифру или отрезок прямой.

Выполним обучение распознаванию данного объекта.
1. Поместим объект в случайное место детектора и повернем на случайный угол.
2. Просканируем детектор одним из способов (фиксированным для всех случаев)
- Отрезком единичного размера << диаметра детектора, бросаемым случайным образом на детектор. Представте иголку, бросаемую на круглую площадку. Иголка будет случайно пересекать объект.
- Прямой линией пересекающей детектор под случайным углом и случайным смещением по x и y
- Синусоидой, окружностью или любой другой линией. Главное, чтобы всегда одинаковой.
Сканирование заключается в подсчете пересечений объекта со сканирующей линией
Выполним цикл 2 достаточное число раз и найдем среднее значение для единичного теста.
Выполним цикл 1 достаточное число раз и найдем среднее значение для всех тестов.

Эта величина и будет использоваться для распознавания данного объекта.
Для разных форм объектов эта величина будет уникальна с некоторой небольшой погрешностью.

Хотите, реализуйте несетевой вариант, просто поиск наилучшего соотвествия по массиву.
Или сетевой вариант - 1-3 слойный перцептрон, на вход подается сигнал (число с плавающей точкой), на выходе идентификатор объекта.
Можно заменить алгоритм сканирования, на вспомогательную нейросеть-глаз, выполяющую тоже самое, т.е преобразующую изображение в сигнал(число с плавающей точной), которое будет подавать на второй перцептрон-моск. Суть от реализации не меняется.

Метод устойчив к небольшим афинным искажениям формы, кривизны, масштаба, топологии
и абсолютно инвариантен к поворотам и сдвигам. Легко реализуется аппаратно, что и было сделано во многих быстродействующих устройствах технического зрения.

Ищите книги на тему "Методы стохастической геометрии для распознавания образов"

 Профиль  
                  
 
 
Сообщение15.11.2007, 23:06 


08/10/07
9
CyberCraft писал(а):
Или сетевой вариант - 1-3 слойный перцептрон, на вход подается сигнал (число с плавающей точкой), на выходе идентификатор объекта.
Можно заменить алгоритм сканирования, на вспомогательную нейросеть-глаз, выполяющую тоже самое, т.е преобразующую изображение в сигнал(число с плавающей точной), которое будет подавать на второй перцептрон-моск. Суть от реализации не меняется.

Метод устойчив к небольшим афинным искажениям формы, кривизны, масштаба, топологии
и абсолютно инвариантен к поворотам и сдвигам. Легко реализуется аппаратно, что и было сделано во многих быстродействующих устройствах технического зрения.


Спасибо, CyberCraft! Необычно ново для меня было про стохастическую геометрию. Интересно, за сколько циклов сходятся процедуры обучения?
Признаю, такой метод в нейросетевой постановке действительно инвариантен ко многим преобразованиям образа. Однако он содержит в себе проблему - это сканирование. В процессе сканирования, чем бы его не делать, отдельной нейросетью или специальным методом, каждый нейрон будет принимать много тысяч решений. Как известно, глаз человека имеет хорошую разрешающую способность, грубо говоря, 100 мегапикселей. Еще известно, что скорость реакции на простые объекты не ниже 100 мс. Т.е., 100 мс минимум мозгу требуется чтобы классифицировать объект. Скорость реакции отдельного нейрона - порядка сотен микросекунд. Если все упрощать, можно говорить, что сигнал от отдельного зрительного рецептора за 100 мс проходит не более тысячи нейронов. Если эта тысяча нейронов обучалась распознавать некий конкретный объект, то при сканировании всех ста мегапикселей ей (или хотя бы одному нейрону из этой тысячи) придется принимать столько решений, сколько совершает шагов "сканирующее устройство". Даже если допустить, что объект распознается сразу в сетчатке, то есть сигнал проходит только 1 нейрон, то быстродействия этого решающего нейрона хватит только на тысячу решений за 100 мс. То есть, "сканирующее устройство" может совершить только тысячу шагов по матрице яркости. Это слишком мало. Думаю, мозг делает иначе и вариант со сканированием неприемлем.
Как избежать сканирования?

 Профиль  
                  
 
 
Сообщение16.11.2007, 10:44 


22/10/07
54
neurofish писал(а):
Думаю, мозг делает иначе

Исследования движения зрачка в процессе анализа сцены показывают, что некоторое сканирование имеет место быть.

 Профиль  
                  
 
 
Сообщение16.11.2007, 20:19 


08/10/07
9
Цитата:
Исследования движения зрачка в процессе анализа сцены показывают, что некоторое сканирование имеет место быть.

да, вы имеете в виду саккадические движения
Цитата:
Saccades last from about 20 to 200 milliseconds.
это из http://en.wikipedia.org/wiki/Saccade
то есть, эти движения к распознаванию образов имеют отдаленное отношение.
Я настаиваю на том, что вопрос об инвариантном к переносу распознавании стоит именно в моей постановке :) Малое быстродействие нейронов имеет значение

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group