давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд ,
но вот погуглил тут по зарплатам и выпускам документации , да и по самому кывту —
кажется тема пыталась набирать обороты в районе 2006-2008 , а потом както совсем сошла на нет ,
так ли это или мне так кажется ?
Здравствуйте, carpenter, Вы писали:
C>давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд , C>но вот погуглил тут по зарплатам и выпускам документации , да и по самому кывту - C>кажется тема пыталась набирать обороты в районе 2006-2008 , а потом както совсем сошла на нет , C>так ли это или мне так кажется ?
Сейчас нейронные сети это просто один из многих доступных методов интерполяции сложных функций, со своими плюсами и минусами. Искать зарплату по ним это как искать зарплату по циклам "for".
Здравствуйте, Don Reba, Вы писали:
DR>Сейчас нейронные сети это просто один из многих доступных методов интерполяции сложных функций, со своими плюсами и минусами. Искать зарплату по ним это как искать зарплату по циклам "for".
ну все равно — приступая к изучению чегото нового , сначала оцениваешь востребованность на рынке ,
я например так выбирал между перлом и руби .
А потратить скажем полгода на то что нафиг никому не нужно — не для меня , если даже это и интиересное но бесполезное хобби .
Зайдем с другой стороны — в каких областях программирования распространены сети и знание их пользуется спросом ?
или какой там должен быть правильный вопрос ?
(для того чтобы задать правильный вопрос надо знать 2\3 ответа (с) )
по текущему моменту — начал я с того что нужна либа распознавания текста и изображений —
первый простой вариант — взять готовые и ковыряться с ними
второй долгий — реализовать распознавание на сетях , и затем с полученными знаниями
реализовать остальную логику , благо она должна быть нечеткая .
C>Зайдем с другой стороны — в каких областях программирования распространены сети и знание их пользуется спросом ?
Data Mining, распознавание речи, фото и видео.
Последние области очень узкие, мало кто таким занимается. Первое на российском рынке с трудом продается. У нас дай бог лет через 5 начнут понимать что можно извлекать пользу и накопленного объема данных.
Причем в этих областях НС — лишь один инструмент из многих.
C>по текущему моменту — начал я с того что нужна либа распознавания текста и изображений - C>первый простой вариант — взять готовые и ковыряться с ними C>второй долгий — реализовать распознавание на сетях , и затем с полученными знаниями C>реализовать остальную логику , благо она должна быть нечеткая .
Здравствуйте, carpenter, Вы писали:
C>давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд , C>но вот погуглил тут по зарплатам и выпускам документации , да и по самому кывту - C>кажется тема пыталась набирать обороты в районе 2006-2008 , а потом както совсем сошла на нет , C>так ли это или мне так кажется ?
1. Обучать — замучаешься. У нас студни лабу писали по распознаванию русских букв.
Все мучались.
2. Нужно четко подбирать вид сети под задачу. Для распознавания небольшого множества подойдет сеть Кохонена.
3. Произошла диффузия нечеткостей в сети. Например, нечеткая нейронная сеть Ванга-Менделя.
Это еще японцы начинали. Но серьезные результаты пошли в 90-е.
Книжки вот: http://www.ozon.ru/context/detail/id/2899145/
полностью функционирование живой нервной системы никто не понимает, но почему-то решили использовать эту модель в ээм... программировании.
Изначально они появились, как попытка смоделировать процессы, протекающие в мозге. Не совсем понятно, почему их решили использовать за пределами исследовательских задач.
Я уже 3 загнувшихся стартапа видел, где пионеры решили использовать сабж в практических целях. Сначала пионеры строят небольшую сабж и пытаются её обучать, потом решают, что мало нейронов, затем — процесс обучения не верный, потом стартап разваливается в связи с отсутствием средств к существованию у участников, которые в поисках пропитания просто разбегаются.
Самая главная проблема — не видно границ применимости сабжа.
Всё сказанное выше — личное мнение, если не указано обратное.
имхо, нейронные сети не жизнеспособны, потому что не поддерживают композицию и декомпозицию.
т.е. если есть НС размера N, которая распознает буквы А и B, то из нее нельзя вычленить часть, которая распознает только букву A, кроме как заново переобучить НС. Верно и обратно, имея НС размера N для распознавания буквы A, и имея НС размера N для распознавания буквы B — их нельзя объединить в одну сеть размера N для распознавания букв A и B (даже, если известно, что НС размера N достаточно для распознавания обоих букв)
другими словами, любое изменение входных условий приводит к тому, что требуется полное переобучение при этом без всякой гарантий, что результат будет не хуже предыдущих.
C>давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд , C>но вот погуглил тут по зарплатам и выпускам документации , да и по самому кывту - C>кажется тема пыталась набирать обороты в районе 2006-2008 , а потом както совсем сошла на нет , C>так ли это или мне так кажется ?
я работаю с человеком, который в до ~200x года нейрочипы разрабатывал. не терминатор, но нехилый AI на аппаратном уровне для бирж, военных и людей в гражанском. ушел из отрасли, т.к. сейчас время такое... тяжелое для AI. старые темы уже отработаны и реализованы в железе и софте, а для новых требуется рывок. а для рывка требуются вложения в ресерч. а никто вкладывать не хочет. ну или практически никто. ждем когда подтянутся смежные области и начнут двигать AI, а пока... короче так, на рынке труда есть куча опытных людей, сменивших ореентиацию по финансовым соображениям. если им платят недостаточно, на что расчитывать новичкам?
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, carpenter, Вы писали:
C>давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд
НС — это один из инструментов в исследованиях по ИИ. Соответственно тебе нужно подумать именно об изучении ИИ, и методах его разработке, среди которых есть и НС. Покоцанный ИИ есть в играх, но вот стоит ли там применять НС — хз.
Здравствуйте, DarkGray, Вы писали:
C>>так ли это или мне так кажется ?
DG>имхо, нейронные сети не жизнеспособны, потому что не поддерживают композицию и декомпозицию. DG>т.е. если есть НС размера N, которая распознает буквы А и B, то из нее нельзя вычленить часть, которая распознает только букву A, кроме как заново переобучить НС. Верно и обратно, имея НС размера N для распознавания буквы A, и имея НС размера N для распознавания буквы B — их нельзя объединить в одну сеть размера N для распознавания букв A и B (даже, если известно, что НС размера N достаточно для распознавания обоих букв)
DG>другими словами, любое изменение входных условий приводит к тому, что требуется полное переобучение при этом без всякой гарантий, что результат будет не хуже предыдущих.
А другие алгоритмы классификации поддерживают?
Например Naive Bayes. Пусть будет два классификатора: один определяет спам\неспам, второй определяет написан ли текст женщиной или мужчиной. Как из двух сделать один, который скажет что спам написан женщиной? Толькео прогнать оба и объединить результат.
С сетями аналогично: если есть есть для определения А или не-А, и сеть для определения Б и не-Б, то можно прогнать обе и получить результат.
Проблема ИНС в виде многослойных перцептронов — непонято что они определяют на самом деле. Это создает сложности с обучением и практическим применением.
Здравствуйте, Философ, Вы писали:
Ф>ложный путь.
Ф>полностью функционирование живой нервной системы никто не понимает, но почему-то решили использовать эту модель в ээм... программировании.
Потому что математическую модель построили и выяснилось что ИНС можно для классификации использовать.
Здравствуйте, monax, Вы писали:
M>Здравствуйте, carpenter, Вы писали:
C>>давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд
M>НС — это один из инструментов в исследованиях по ИИ. Соответственно тебе нужно подумать именно об изучении ИИ, и методах его разработке, среди которых есть и НС. Покоцанный ИИ есть в играх, но вот стоит ли там применять НС — хз.
Это мнение 70-х годов. Современная наука не говорит о том что ИНС или ГА как-то относятся к ИИ. Даже само понятие ИИ вышло из обихода, заменившись более практическими data mining и recognition.
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Философ, Вы писали:
Ф>>ложный путь.
Ф>>полностью функционирование живой нервной системы никто не понимает, но почему-то решили использовать эту модель в ээм... программировании.
G>Потому что математическую модель построили и выяснилось что ИНС можно для классификации использовать.
предположили, что эту мат. модель можно использовать.
Ещё раз — выверенные методы и границы применимости!
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, gandjustas, Вы писали:
G>А другие алгоритмы классификации поддерживают?
G>Например Naive Bayes. Пусть будет два классификатора: один определяет спам\неспам, второй определяет написан ли текст женщиной или мужчиной. Как из двух сделать один, который скажет что спам написан женщиной? Толькео прогнать оба и объединить результат.
С Naive Bayes проще: есть априорные вероятности, которые подставляются в одну неизменную формулу. Просто элементов в ней будет больше. Ну и два раза применить классификатор — не проблема.
G>С сетями аналогично: если есть есть для определения А или не-А, и сеть для определения Б и не-Б, то можно прогнать обе и получить результат.
Сети медленные, даже два раза их применять нет особого смысла.
Кроме того, общий смысл работы сети примерно такой:
1. какая-то часть сети выделяет качественные признаки во входных данных (редукция в персептронах, свёрточные слои и т.д.);
2. эти признаки классифицируются какой-то другой частью сети (последние слои в персептроне).
Фактически, мощности части сети из пункта 1 для одного символа должно хватить на выделение признаков сразу для нескольких символов. Но этим никак не воспользоваться на практике.
Здравствуйте, carpenter, Вы писали:
C>давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд , C>но вот погуглил тут по зарплатам и выпускам документации , да и по самому кывту - C>кажется тема пыталась набирать обороты в районе 2006-2008 , а потом както совсем сошла на нет , C>так ли это или мне так кажется ?
Все самые последние (и продвинутые) алгоритмы в области фото и видео анализа нейросети не используют.
Кинект — Random forest.
Поиск лиц и улыбок в фотоаппаратах — AdaBoost.
Поиск пешеходов в автомобилях — AdaBoost.
Поиск похожих изображений в поисковиках — Bag of words.
Единственное, что мне неизвестно алгоритм в FineReader'е. Открытие OCR — довольно отстойные.
C>давно планирую заняться этим сабжем , тема должна быть перспективная и интересная на мой взгляд , C>но вот погуглил тут по зарплатам и выпускам документации , да и по самому кывту - C>кажется тема пыталась набирать обороты в районе 2006-2008 , а потом както совсем сошла на нет , C>так ли это или мне так кажется ?
Имхо популярность нейросетей была обусловлена двумя факторами: (1) романтикой (2) грантами. Романтика состоит в том, что вроде бы как моделируются процессы в мозгу (на самом деле это не совсем так, но грамотно выбрано название). Это обусловило большой приток желающих их пощупать. Ну а гранты и вообще вся система образования так построена, что отрицательный результат не очень поощряется. Например, студент пытается применить нейросеть для решения некоторой задачи. Допустим, он всесторонне исследовал задачу и получил результат: нейросети непригодны для решения. Результат безусловно полезный в сельском хозяйстве, но вот можно ли с ним получить хорошую оценку, гранты? Да и мысль задняя, что подумают, что ты глупее остальных, ниасилил. Вот и привирают немного, и этот процесс итерационный --- каждая новая волна привирает чуть больше, дабы приукрасить свою роль. Ну а потом произошел обвал, нейросети перестали быть панацеей, они заняли свое законное место.
Здравствуйте, Mystic, Вы писали:
M>Допустим, он всесторонне исследовал задачу и получил результат: нейросети непригодны для решения. Результат безусловно полезный в сельском хозяйстве, но вот можно ли с ним получить хорошую оценку, гранты?
у меня примерно так сестра дипломную писала:
Для работы нужно было провести серию соц. исследований и выявить наличие корреляции. Исследования были проведены добросовесно, но корреляции по результатам рассчётов не было. Писать в дипломную такие результаты было нельзя: дипломная получилась бы меньшего размера чем нужно и не в ту сторону, в которую нужно. Корреляция должна была быть обязательно, притом выраженной и положительной — сидели и притягивали данные за уши. Реальное исследование можно было вообще не делать — лишний, никому не нужный труд.
Вот так вот она делается, современная наука.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Nuzhny, Вы писали:
G>>С сетями аналогично: если есть есть для определения А или не-А, и сеть для определения Б и не-Б, то можно прогнать обе и получить результат.
N>Сети медленные, даже два раза их применять нет особого смысла.
Это техническое ограничение, а не концептуальное.
N> Кроме того, общий смысл работы сети примерно такой: N>1. какая-то часть сети выделяет качественные признаки во входных данных (редукция в персептронах, свёрточные слои и т.д.); N>2. эти признаки классифицируются какой-то другой частью сети (последние слои в персептроне).
Адаптировать ИНС для композиции с другой сложно, если они не изначально для этого разрабатывались. Потому что для одной сети еще можно понять семантику значений на входе и выходе, а для их композиции это уже нереально.
N>Фактически, мощности части сети из пункта 1 для одного символа должно хватить на выделение признаков сразу для нескольких символов. Но этим никак не воспользоваться на практике.
Да можно сколько угодно признаков выделять, но так как нельзя сказать какой признак на выходе что означает — толку ноль вообще.
Здравствуйте, Философ, Вы писали:
Ф>Реальное исследование можно было вообще не делать — лишний, никому не нужный труд.
Ф>Вот так вот она делается, современная наука.
Ну у меня диплом тоже был на ИНС (rbf). Делал интерполяцию по заданным точкам, которые приходили из реального мира. Теоретически всё хорошо, практически — тоже, замечательная интерполяция. Но для практического применения (что тоже было важно в дипломе) я мог обойтись без нейронных сетей, что могло существенно упростить разработку программы. А раз упростилась бы программа, то её можно было бы запихнуть в простой контроллер. А я в дипломе предполагал использовать FPGA.
G>Адаптировать ИНС для композиции с другой сложно, если они не изначально для этого разрабатывались. Потому что для одной сети еще можно понять семантику значений на входе и выходе, а для их композиции это уже нереально.
Это очевидно нет так, т.к. с математической точки зрения многослойные сети это обычный такой математический функционал, который в многомерном пространстве строит многомерную плоскость — которая, может использоваться для разделения данных на классы.
Здравствуйте, Mystic, Вы писали:
M>Ну а потом произошел обвал, нейросети перестали быть панацеей, они заняли свое законное место.
А в чем суть обвала?
Нейросети или похожие структуры сейчас используются на порядки больше, чем десяток лет назад.
Просто общая грамотность в этом вопросе чуть подросла, т.е. народ уже понимает, что до реального ИИ еще как минимум 6 порядков по кол-ву эмулируемых нейронов и связей. Поэтому произошел обвал лишь этой романтики, но зато всплеск сухого применения по-делу.
Здравствуйте, Nuzhny, Вы писали:
N>Все самые последние (и продвинутые) алгоритмы в области фото и видео анализа нейросети не используют.
Откуда дровишки?
N>Поиск лиц и улыбок в фотоаппаратах — AdaBoost. N>Поиск пешеходов в автомобилях — AdaBoost.
AdaBoost тренирует вектор (весовую ф-ию) — полный аналог однослойной сетки. Распознавание изображений как раз строится на сетках без обратных связей по классике, а для этих сетей все многослойные можно свести к эквивалентной однослойной. Так что мимо.
N>Поиск похожих изображений в поисковиках — Bag of words.
Точно такая же весовая ф-ия и точно так же обучается. Опять мимо.
N>Единственное, что мне неизвестно алгоритм в FineReader'е.
Очевидно, тебе не только это неизвестно.
Наработки ИИ используют как готовый аппарат обучаемых весовых ф-ий, на вход которых уже подается закодированная информация, типа как номера литералов для Bag of words.
DG>имхо, нейронные сети не жизнеспособны, потому что не поддерживают композицию и декомпозицию. DG>т.е. если есть НС размера N, которая распознает буквы А и B, то из нее нельзя вычленить часть, которая распознает только букву A, кроме как заново переобучить НС. Верно и обратно, имея НС размера N для распознавания буквы A, и имея НС размера N для распознавания буквы B — их нельзя объединить в одну сеть размера N для распознавания букв A и B (даже, если известно, что НС размера N достаточно для распознавания обоих букв)
Как раз объединить можно, если структура идентичная. Например, для многослойной сетки просто "склеиваешь" связи с одинаковыми коэффициентами из обоих сеток, уменьшая кол-во нейронов в промежуточных слоях. Правда если использовалась большая разрядность для коэф, то, возможно, не удастся ничего склеить... т.е. тогда их объединение будет равносильно тому, что две независимые сетки расположили рядом.
DG>другими словами, любое изменение входных условий приводит к тому, что требуется полное переобучение при этом без всякой гарантий, что результат будет не хуже предыдущих.
Это проблема кодирования, скорее. Меняется входной "алфавит", старый становится недействителен. Хотя и тут надо смотреть на конкретику.
Здравствуйте, vdimas, Вы писали:
V>Просто общая грамотность в этом вопросе чуть подросла, т.е. народ уже понимает, что до реального ИИ еще как минимум 6 порядков по кол-ву эмулируемых нейронов и связей.
А откуда эта романтичная идея, что увеличение числа нейронов вдруг даст ИИ? Принцип работы же не меняется, а на небольших сетях видно, как далек он от какого-либо интеллекта. Впрочем, это здесь уже обсуждалось...
Здравствуйте, D. Mon, Вы писали:
DM>А откуда эта романтичная идея, что увеличение числа нейронов вдруг даст ИИ? Принцип работы же не меняется, а на небольших сетях видно, как далек он от какого-либо интеллекта.
Мы еще не видели больших сетей. IBM, получив "бесценный" опыт экспериментов в этом направлении пришла к тому, что архитектура ЭВМ общего назначения никогда эту задачу не поднимут. Поэтому стала идти в сторону специализированных чипов.
Здравствуйте, vdimas, Вы писали:
N>>Поиск лиц и улыбок в фотоаппаратах — AdaBoost. N>>Поиск пешеходов в автомобилях — AdaBoost.
V>AdaBoost тренирует вектор (весовую ф-ию) — полный аналог однослойной сетки. Распознавание изображений как раз строится на сетках без обратных связей по классике, а для этих сетей все многослойные можно свести к эквивалентной однослойной. Так что мимо.
Во-первых в НС количество нейронов фиксированно и соответственно количество возможных слабых классификаторов тоже фиксированно(а это плохо), как их выбирать тоже непонятно, во-вторых adaboost подругому обучает эту комбинацию . Для adaboost доказано, что модель можно дообучать до нулевой ошибки.
N>>Поиск похожих изображений в поисковиках — Bag of words.
V>Точно такая же весовая ф-ия и точно так же обучается. Опять мимо.
Не такая же и не также.
N>>Единственное, что мне неизвестно алгоритм в FineReader'е.
V>Очевидно, тебе не только это неизвестно. V>Наработки ИИ используют как готовый аппарат обучаемых весовых ф-ий, на вход которых уже подается закодированная информация, типа как номера литералов для Bag of words.
Для распознования букв лучше использовать SVM, благо на сей день разработаны очень быстрые алгоритмы для обучения.
Пять лет назад я пытался применить их для распознования паттернов в сигналах с датчиков. Получилось крайне неустойчивая система, для военного заказчика никуда не годная, но в академическом смысле интересная. Я не нашел в этом инструменте того, что искал. Сигналы, которые поступают от естественной среды она обрабатывает плохо. Может быть для распознования искусственных объектов она годиться лучше. Буквы на картинках это да, а вот вещи типа показаний сейсмодатчиков — нет. Я нашел приемлемое решение на основе вейвлет анализа. Предыдущее поколение тех систем, что мы разрабатывали базировалось на БПФ, логичным продолжением стало дискретное вейвлет-преобразование.
Т.е. нейросети сейчас один из множества инструментов, нашедших своё применение в узких нишах. Ничего тайного и магического в них нет. Есть субъективное ощущение, что раз они моделируют работу нервных клеток, то в них есть огромные возможности. На практике это просто метод обработки данных, требующий больших ресурсов и не дающий даже на намека на возможность найти оптимальное или субоптимальное решение задачи распознования.
M>НС — это один из инструментов в исследованиях по ИИ. Соответственно тебе нужно подумать именно об изучении ИИ, и методах его разработке, среди которых есть и НС. Покоцанный ИИ есть в играх, но вот стоит ли там применять НС — хз.
Насколько я помню на сайте библиотеки libfann они писали что Кармак их библу использовал в Q3 для ботов.
Я тоже её использовал, очень давно, для программы которая по спонсорским банерам кликала там потом нужно было капчу пройти с числами и буквами.
AM>Во-первых в НС количество нейронов фиксированно и соответственно количество возможных слабых классификаторов тоже фиксированно(а это плохо), как их выбирать тоже непонятно, во-вторых adaboost подругому обучает эту комбинацию . Для adaboost доказано, что модель можно дообучать до нулевой ошибки.
В упор не понимаю, что тебе мешает считать, что в процессе работы adaboost мы не только обучаем, но и строим сетку? Выход-то один и тот же — такая же точно модель сетки, только однослойная. Я не уверен, что есть алгоритмы построения из готовой однослойной сетки многослойной — это лишь вопрос оптимизации, т.е. не принципиальный. (Просто однослойные сетки — это как "раскрытые скобки" в выражении, по-сути — существенная избыточность/неэффективность в вычислениях).
V>>Точно такая же весовая ф-ия и точно так же обучается. Опять мимо. AM>Не такая же и не также.
Так же так же. Векторный спуск вообще вне ИИ был разработан изначально.