То, о чем вы написали, не лишено смысла. Это называется Energy based learning. Вы задаете некоторую функцию энергии и в процессе обучения формируете ее характер с помощью как позитивных так и негативных примеров.
Погуглив можно найти много статей и туториал на эту тему.
Некоторые уже ответили на этот вопрос. Но позволю себе добавить уточнение. Да экспансия нейросетей существенно замедлилась в 2000х, но есть более свежие данные о том что нейросети возвращаются. Вот данные о количестве публикаций на тему нейросетей в 90-е:
А вот более свежая статистика:
Информация взята из поста Ярослава Булатова: yaroslavvb.blogspot.com/2011/04/neural-networks-making-come-back.html
Кроме того, те кто записался на курсы Andrew Ng по Machine learning, на одной из последних лекций должны были слышать объяснение этого возродившегося интереса тем фактом, что нынешние вычислительные ресурсы (не в последнюю очередь CUDA) позволили применять нейросети на практике.
Еще одна причина спада интереса, это отсутствие эффективных алгоритмов для обучения «глубоких» нейронных сетей (3 и больше слоев). Алгоритм обратного распространения сам по себе не годится для этой задачи. Это мнение ряда авторитетных исследователей в этой области (Geofrey Hinton, Yann LeCun, Yoshua Bengio)
Думаю особой спецификой отличается написание научного кода.
Тут совсем не нужно полное покрытие теста. Поскольку 90% кода пишется временно, для проверки тех или иных идей, алгоритмов. И тесты играют роль чек пойнтов в некоторых частях алгоритма. Т.е. меня обычно мало волнует, если моя программа упадет при неком хитром параметре командной строки, зато важно знать, что подав на вход некой функции рандомную и единичную матрицы, я получу на выходе первую. И что это всегда верно.
Такие чекпоинты занимают от силы процентов 10% от полного покрытия.
Когда алгоритм закончен его можно вылизывать до посинения. Но это уже в принципе может делать и другая команда.
Я так понял вы NITE используете? А как с лицензией поступали, купили?
Не кажется ли что необходимость долгой инициализации скелета и надежность работы NITE недостаточна для подобных применений? Свой трекер не собираетесь делать?
Равно как мне становится смешно, когда я вижу очередные рассуждения о том, как «бессмысленно» люди проводят время, торча вконтактике и болтая с подругами/друзьями. Мозг затем человеку и дан, чтобы общаться. Не нравится? Ищите другой глобус.
Хорошая статья, спасибо. Но не соглашусь с тезисом — «наш мозг развился в результате активного социального общения, давайте и будем его для этого использовать». Думаю то, как мы пришли к нынешнему состоянию не так важно (хотя и крайне интересно), важно то, как мы будем двигаться дальше. Если сейчас получится так, что навыки логического мышления станут важнее для выживания вида, то ничто не помешает эволюции изменить траекторию в этом направлении.
Думаю отсутствие CUDA все же более серьезный функциональный недостаток, чем скажем отсутствие стильного корпуса. А вообще, конечно, если бы все то же, но с nVidia, я бы им очень заинтересовался.
Я думаю в минусы нужно добавить отсутствие nVidia -> отсутствие CUDA. Для меня например этого уже достаточно, чтобы на остальное не смотреть. Для других возможно не так критично, но все же минус.
К этой новости можно подойти с другой стороны. Люди занимались байесовыми сетями и подумали что было бы круто реализовать их аппаратно. И сделали это. И естественно аппаратно реализованная байесова сеть будет гораздо компактней и менее энерготребовательной, чем ее реализация на стандартных компонентах. Это как создать нейропроцессор, к примеру. Вполне естественно, что везде, где применяются эти байесовы сети, такой процессор будет эффективнее обычного CPU, но реализующего те же алгоритмы.
Хотя все равно радует, что сделали такой.
Абсолютно согласен. Поначалу, думал, что на НС подается, например, изображение с камер. А так, когда все параметры известны не вижу смысла в НС. Для имеющегося набора входных данных существуют аналитические подходы, позволяющие синтезировать регулятор, формирующий траектории обхода. Да и классики робототехники тома написали по поводу того как их обходить, если известны расстояния, тот же Хатиб с его потенциальными полями.
Считается усреднением. Т.е. если подходить к вопросу классически как в полносвязной сети, то для каждого разделяемого веса у вас будет получаться множество ошибок. Вычисляем среднее и получаем ошибку для данного разделяемого веса в ядре. Смысл введенного ограничения на веса — способности к обобщению, усреднение градиентов именно к этому и ведет. Веса становятся инвариантны к локальным особенностям изображения и лучше реагируют на независимые фичи.
Погуглив можно найти много статей и туториал на эту тему.
А вот более свежая статистика:
Информация взята из поста Ярослава Булатова: yaroslavvb.blogspot.com/2011/04/neural-networks-making-come-back.html
Кроме того, те кто записался на курсы Andrew Ng по Machine learning, на одной из последних лекций должны были слышать объяснение этого возродившегося интереса тем фактом, что нынешние вычислительные ресурсы (не в последнюю очередь CUDA) позволили применять нейросети на практике.
Еще одна причина спада интереса, это отсутствие эффективных алгоритмов для обучения «глубоких» нейронных сетей (3 и больше слоев). Алгоритм обратного распространения сам по себе не годится для этой задачи. Это мнение ряда авторитетных исследователей в этой области (Geofrey Hinton, Yann LeCun, Yoshua Bengio)
Не понятно какую функцию активации вы использовали?
Что можно читать как: мы бы использовали исключения если бы не большое количество уже написанного кода без исключений.
Тут совсем не нужно полное покрытие теста. Поскольку 90% кода пишется временно, для проверки тех или иных идей, алгоритмов. И тесты играют роль чек пойнтов в некоторых частях алгоритма. Т.е. меня обычно мало волнует, если моя программа упадет при неком хитром параметре командной строки, зато важно знать, что подав на вход некой функции рандомную и единичную матрицы, я получу на выходе первую. И что это всегда верно.
Такие чекпоинты занимают от силы процентов 10% от полного покрытия.
Когда алгоритм закончен его можно вылизывать до посинения. Но это уже в принципе может делать и другая команда.
Жаль что только для 2010
Не кажется ли что необходимость долгой инициализации скелета и надежность работы NITE недостаточна для подобных применений? Свой трекер не собираетесь делать?
Хотя все равно радует, что сделали такой.