Re[11]: Нейросеть для чайников
От: De-Bill  
Дата: 18.07.18 09:14
Оценка: +1
_>Попробуй напиши систему уравнений, чтобы отличить кошку от собаки на фотографии.

Дело даже не в том, что такую систему уравнений сложно написать. Даже если модель и система уравнений существует, она может запросто оказаться такой, для решения которой нужны очень мощные компьютеры и для поиска решения всё равно будет требоваться куча времени. А нейронная сеть сделает вычисления гарантировано очень быстро.
Re[2]: Нейросеть для чайников
От: Sharov Россия  
Дата: 18.07.18 09:14
Оценка:
Здравствуйте, anton_t, Вы писали:

_>А питон лучше подучить, если в этой области развиваться хочешь.


А язык R подойдет вместо питона?
Кодом людям нужно помогать!
Re: Нейросеть для чайников
От: BrainSlug Израиль  
Дата: 18.07.18 09:40
Оценка:
K>Мне кажется, лучшим вариантом было бы видео, где знающий человек долго объясняет профанам суть концепции, и до тех понемногу начинает доходить.
для совсем чайников, красивые картинки и даже переведенные субтитры
https://www.youtube.com/watch?v=aircAruvnKk
а дальше книжки...в НС скорее важно некоторое знание математики, нежели языка (затем уже важен тот иди иной фрэймворк)
.
Re[7]: Нейросеть для чайников
От: steep8  
Дата: 18.07.18 10:17
Оценка: :)
Здравствуйте, De-Bill, Вы писали:

DB>В "больших книжках" она не делается. В больших книжках рассказывают про подходы и алгоритмы для решения этих задач. И алгоритмы эти не на основе нейронных сетей работают в большинстве своём с очень хреновым качеством. На основе же нейросетей эти задачи сейчас решаются относительно легко и с хорошей точность.


И конечно у тебя припасено несколько ссылочек на статьи, которые проводят сравнительный анализ алгоритмов обработки изображений с нейросетями?
Re[8]: Нейросеть для чайников
От: De-Bill  
Дата: 18.07.18 10:44
Оценка: +1
S>И конечно у тебя припасено несколько ссылочек на статьи, которые проводят сравнительный анализ алгоритмов обработки изображений с нейросетями?

Зачем сравнивать алгоритмы? Сравнивают результаты. Но в настоящее время сравнивать результаты "классических алгоритмов обработки изображений" с результатми нейросетей уже смысла не имеет никакого. Сравнивают результаты нейронных сетей с разными архитектурами. Места для классических алгоритмов осталось не много. Но если тебе интересно, то можешь начать с MNIST (раздел сопоставление систем) . Это самый простой, можно сказать игрушечный, пример. Далее можешь порыться в архивах PASCAL VOC и ILSVRC. Наверное, года так до 2010 там были участники с решением не на нейронных сетях, потом по очевидным причинам их не стало.
Отредактировано 18.07.2018 10:46 De-Bill . Предыдущая версия .
Re[8]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:05
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Ок, похоже, ты не совсем понял, про что я, но это не важно.


Почему? Я тебя понял. Ты боишься, что есть какие-то области в пространстве состояний входа, для которых сеть сделает неверное обобщение, а реальных данных в датасете не будет, и всё сломается, когда реактор выйдет на такой режим (или что там у вас рулится этим прибором?)

Сетка эта даёт кусочно-линейную аппроксимацию. Если есть физические основания надеяться, что внутри непокрытых датасетом областей линейная аппроксимация подойдёт, то будет работать, если нет, то нет.

Но тут есть такой момент, что редкие точки редко будут не только при посещении попадаться, но и при работе.
Ещё можно по упрощённой физ. модели предобучить, например.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:27
Оценка:
Здравствуйте, steep8, Вы писали:

S>Ну нейросеть это же просто суперпозиция функторов. Если у тебя нейросетевики такие офигенно умные и все знают, то зачем они вообще пользуются нейрорсетью?



От задачи зависит. В задачах аппроксимации часто нейросети дают выигрыш по скорости на какой-нибудь SIMD архитектуре...

То есть можно написать тормозную честную модель, которая численно дифуры решает и там ещё что-то долгое делает, а потом нагенерить ей синтетики и на этом сеть обучить. Потом на частых реальных данных можно ещё и доучить, кстати...

Но задача аппроксимации сильно не единственная задача, которую можно решать сетями.
Например, задача переноса стиля. Мы берём твой почерк, и надпись сделанную мной, и хотим мою надпись на выходе, твоим почерком.
Или берём на входе кучу роликов с Обамой, и сценку сыгранную мной, а на выходе хотим ролик, который сыграл я, но что бы "играл" в нём Обама.
Какие прямые методы решения такой задачи ты предлагаешь?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:28
Оценка: +1
Здравствуйте, steep8, Вы писали:

S>Для прогноза погоды давным давно придумали модели без всяких нейросетей. Если есть модель, на основе которой строятся системы уравнений, то нейросеть там только мешаться будет.


Проблема в том, что они не работают... А когда вдруг работают, делают это очень медленно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[7]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:35
Оценка:
Здравствуйте, steep8, Вы писали:

S>Почему надо ипользовать именно эту, а не другую "функцию" ? на это вопрос ответа нет, как правило о нем "нейросетевики" даже не задумываются. Это помимо того что надо подготовить правильные входные данные, понять как признаки у данных значимые. В итоге вполне может получится, что все люди которые ели огурцы умерли, на основе этого делаются выводы космического масштаба.


То, что написано выше и есть теория, которой 50 лет в обед уже. Современное понимание намного круче.

S>Вообще теория нейросетей была развита в 60-х. С появлением нормальных компов у ученых возник к ним интерес в конце 90-х начале 2000-х. После этого интерес как то угас — прорыва никакого не получилось. Зато сейчас нейросети стали пользоваться спросом у "программистов". Тут же думать особо не надо — фигачь данные в черный ящик и результат какой то будет, если че подкрутим параметры и покажем на митинге как круто сеть работает на тестовых данных .


Люди придумали как смотреть на нейросети не как на инструмент аппроксимации, а как на инструмент обобщения и получения закономерностей.
Пример задачи, которую нейросеть решает очень хорошо -- построение пространства признаков.

Ну и штуки вроде GAN, сильно выходят за задачу аппроксимации...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:38
Оценка:
Здравствуйте, steep8, Вы писали:

S>Вот безусловно систему уравнений мы можем выписать и без сетей. но тогда придется отвечать на неудобные вопросы — для чего здесь x и почему он в степени и т.п.

S>Т.е. защищать свою построенную модель.
Есть куча задач, где модель построить нельзя. Скажем распознавание арабицы или речи


S>А тут все просто это же нейросеть, она все сама, я тут не причем, добавил слой, обучил , показал бигбоссу как оно круто работает на тестовых данных и вперед в

S>продакшен. А как оно, а почему на эти вопросы можно не отвечать.
Можно обучить на синтетике, построенной по модели, можно проверить, что предсказания сети соответствуют модели в широком диапазоне параметров. Если аппроксимация сети кусочно-линейная, можно построить границы линейных кусков и построить области особенностей модели и потестировать вокруг пересечений и т. д...

Но халтурить можно и с сетями и без. Анекдот про эвакуированного сфероконя знаешь?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:43
Оценка:
Здравствуйте, steep8, Вы писали:

S>Кстати, что такое обработка изображений? распознавание это одно, улучшений качество другое, трансформация третье, там куча разделов в этой самой обработке и в


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

Задача -- получить отдельно три вещи
1) карту глубин для каждого из изображений документа (либо тех частей, для которых можно достоверно построить)
2) распрямлённые изображения "слоя" с печатями и подписями
3) распрямлённое изображение слоя с текстом.

При этом для (2) и (3) убрать шум, смаз и расфокусировку.

Вперёд и с песнями, можешь сетями, можешь дифурами, можешь Фурье. Пусть расцветает сто цветов, когда засохнут будет много сена
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[9]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:45
Оценка:
Здравствуйте, steep8, Вы писали:

S>Давайте вот отложим хайп в сторону и посмотрим, что там изменилось с 2000-х годов? Компьютеры стали мощнее и мы можем черный ящик делать огроменных размеров? это не аргумент.


Всё ровно наоборот. "Чёрный ящик" научились очень сильно "сушить", и сделали полупрозрачным
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 13:51
Оценка:
Здравствуйте, steep8, Вы писали:

S>И конечно у тебя припасено несколько ссылочек на статьи, которые проводят сравнительный анализ алгоритмов обработки изображений с нейросетями?


Я бы мог написать несколько таких статей, но NDA того

Правда можно где-то тут поискать
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Нейросеть для чайников
От: Khimik  
Дата: 18.07.18 14:41
Оценка: 1 (1)
Здравствуйте, BrainSlug, Вы писали:

BS>для совсем чайников, красивые картинки и даже переведенные субтитры


Вроде я немного понял. Кажется работа (не обучение) нейронной сети – это банальное многократное перемножение матриц.
Вот пример из этого видео:



Это нейросеть из четырёх слоёв, которая видит картинку размером 28*28 пикселей (784) и на выходе даёт набор из 10 сигналов, каждый из которых соответствует цифре от 0 до 1 (если сигнал есть – значит цифра распозналась).
Первый слой имеет 784 элемента (нейрона), второй и третий – 16 нейронов, четвёртый – 10 нейронов.
Веса, определяющие переход от первого слоя ко второму, задаются набором из 784*16=12544 “синапсов”. Веса от второго к третьему слою – 16*16=256 “синапсов”. Веса от третьего к последнему слою – 16*10=160 “синапсов”. Суммарно имеем 12960 весов. Обучение нейронной сети заключается в хитрой оптимизации этих 12960 значений до тех пор, пока нейросеть не научится хорошо распознавать цифры. Пока всё правильно?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[3]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 14:46
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Это нейросеть из четырёх слоёв, которая видит картинку размером 28*28 пикселей (784) и на выходе даёт набор из 10 сигналов, каждый из которых соответствует цифре от 0 до 1 (если сигнал есть – значит цифра распозналась).

K>Первый слой имеет 784 элемента (нейрона), второй и третий – 16 нейронов, четвёртый – 10 нейронов.
K>Веса, определяющие переход от первого слоя ко второму, задаются набором из 784*16=12544 “синапсов”. Веса от второго к третьему слою – 16*16=256 “синапсов”. Веса от третьего к последнему слою – 16*10=160 “синапсов”. Суммарно имеем 12960 весов. Обучение нейронной сети заключается в хитрой оптимизации этих 12960 значений до тех пор, пока нейросеть не научится хорошо распознавать цифры. Пока всё правильно?

Более или менее да, но есть ещё активация. А так суперпозиция линейных операторов была бы тоже линейным оператором просто

Попробуй теперь ещё раз прочитать мой длинный пост (например в конце http://rsdn.org/forum/philosophy/7198783.flat
Автор: Khimik
Дата: 17.07.18
)
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Отредактировано 18.07.2018 14:47 Erop . Предыдущая версия .
Re[4]: Нейросеть для чайников
От: Khimik  
Дата: 18.07.18 15:30
Оценка:
Здравствуйте, Erop, Вы писали:

E>Попробуй теперь ещё раз прочитать мой длинный пост (например в конце http://rsdn.org/forum/philosophy/7198783.flat
Автор: Khimik
Дата: 17.07.18
)


Пока по-прежнему почти ничего не понимаю (. Наверно большая часть поста посвящена специфике обучения НС.
У меня возник такой вопрос.
Предположим, я пишу НС, которая распознаёт цифры в изображении 16*16 из готового набора шаблонов, например таких:





Т.е. задача крайне простая – если рисунок совпадает, например, с первым, то НС даёт 1.
Очевидно, для этого достаточно собрать НС из двух слоёв, первый 256 нейронов, второй 10 нейронов. Матрица весов будет 256*10=2560, и каждая строка этой матрицы будет представлять собой всё тот же рисунок буквы, как выше.
А теперь я хочу усложнить задачу: пусть НС распознаёт эти же цифры, но в произвольном положении, например так:



Что нужно добавить в описанную двухслойную сеть, чтобы это заработало? Сколько слоёв надо добавить?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[5]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 15:47
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Предположим, я пишу НС, которая распознаёт цифры в изображении 16*16 из готового набора шаблонов, например таких:


K>А теперь я хочу усложнить задачу: пусть НС распознаёт эти же цифры, но в произвольном положении, например так:


K>Image: c1bsh.JPG


K>Что нужно добавить в описанную двухслойную сеть, чтобы это заработало? Сколько слоёв надо добавить?


Я так понял, ты решил подавать на вход сети картинку побольше 16х16, а например, 20х20?
Ну, например, можно твою сеть заменить на CNN 16х16х3 -> 1х1х256, а потом 1х1х256 -> 1х1х10
Это будет аналог твоей сети, а потом сделать пулинг со всего окна до 1x1x10

Только проблема в том, что для решения таких задач НС плохо подходят и решают их плохо и смысла их использовать мало.
Надо более сложные задачи смотреть, вернее более подходящие для сети. Скачай себе MNIST, например, получишь картинки рукописных цифр, поймёшь о чём речь
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Отредактировано 18.07.2018 16:20 Erop . Предыдущая версия .
Re[6]: Нейросеть для чайников
От: Khimik  
Дата: 18.07.18 15:55
Оценка:
Здравствуйте, Erop, Вы писали:

K>>Что нужно добавить в описанную двухслойную сеть, чтобы это заработало? Сколько слоёв надо добавить?


E>Я так понял, ты решил подавать на вход сети картинку побольше 16х16, а например, 20х20?


Нет, на входе всё те же 16*16 пикселей, просто картинка может быть чуть сдвинута.

E>Ну, например, можно твою сеть заменить на CNN 16х16х3 -> 1х1х256, а потом 1х1х256 -> 1х1х10

E>Это будет аналог твоей сети, а потом сделать пулинг со всего окна до 1x1x10

Что такое CNN? Что такое пулинг?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[7]: Нейросеть для чайников
От: Erop Россия  
Дата: 18.07.18 16:12
Оценка: 3 (1)
Здравствуйте, Khimik, Вы писали:

K> Нет, на входе всё те же 16*16 пикселей, просто картинка может быть чуть сдвинута.

То есть исходная 16х16 с полями? Или часть картинки утрачивается при сдвиге?

E>>Ну, например, можно твою сеть заменить на CNN 16х16х3 -> 1х1х256, а потом 1х1х256 -> 1х1х10

E>>Это будет аналог твоей сети, а потом сделать пуллинг со всего окна до 1x1x10

K>Что такое CNN? Что такое пуллинг?


https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%91%D1%80%D1%82%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C

Попробуй перестать представлять НС как набор кружков со связями и перейти к представлению, как набору последовательно применяемых операторов, отображающих трёхмерные массивы в трёхмерные массивы.

Идя CNN в том, что есть некое "окошко", например 13х13, которое скользит по исходной картинке, и вычисляет с ОДНИМИ И ТЕМИ ЖЕ коэффициентами свёртки, например 128 разных свёрток. В результате (если не дополнять исходную картинку 16х16 нулями), получим "картинку" 4х4 в каждом "пикселе" которой лежит 128 чисел. Теперь можем сделать ещё одну свёртку, которая из 128 числе делает 10 (то есть матрица 128х10), получаем 10 вероятностей, что в соответствующем тому или иному "пикселю" квадрате есть та или иная цифра.

Пуллинг -- это ещё один нелинейный слой, который берёт наш "квадратик" 4х4х10 и заменяет его квадратиком 1х1х10, выбирая каждый раз максимальной значение из 16-и.

Ещё хорошо бы на выходе поставить soft-max (лучше глянь в вики формулу), но его хорошо и на выходе твоей сетки поставить, кстати. Он просто более удобным для сети способом нормирует вектор из 10 вероятностей.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Отредактировано 18.07.2018 17:07 Erop . Предыдущая версия .
Re[8]: Нейросеть для чайников
От: Khimik  
Дата: 18.07.18 17:24
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Khimik, Вы писали:


K>> Нет, на входе всё те же 16*16 пикселей, просто картинка может быть чуть сдвинута.

E>То есть исходная 16х16 с полями? Или часть картинки утрачивается при сдвиге?

Нет, всегда размер 16*16 пикселей, просто изображение единички может быть сдвинуто, например, на пару пикселей вправо (не настолько далеко, чтобы потерять часть картинки).


E>Пуллинг -- это ещё один нелинейный слой, который берёт наш "квадратик" 4х4х10 и заменяет его квадратиком 1х1х10, выбирая каждый раз максимальной значение из 16-и.


Я чувствую какую-то путаницу в обозначениях. Здесь 4*4 — это размер растра, а третья цифра (10) — количество вариантов значений в каждом растре?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.